深度学习基础知识点【更新中】

2023-05-16

深度学习基础知识点

文章目录

  • 深度学习基础知识点
    • 1. 数据归一化
    • 2. 数据集划分
    • 3. 混淆矩阵
    • 4. 模型文件
    • 5. 权重矩阵初始化
    • 6. 激活函数
    • 7. 模型拟合
    • 8. 卷积操作
    • 9. 池化操作
    • 10. 深度可分离卷积
    • 11. 转置卷积

1. 数据归一化

过大的输入数据未归一化会导致损失过大,导致溢出无法正常训练。归一化方法有:Min-Max归一化、平均值归一化等。

为什么要数据归一化:

  • 数值问题:标准化可以避免一些不必要的数值问题。因为激活函数sigmoid/tanh的非线性区间大约在 [ -1.7 , 1.7 ]。意味着要使神经元有效,线性计算输出的值的数量级应该在1(1.7所在的数量级)左右。这时如果输入较大,就意味着权值必须较小,一个较大,一个较小,两者相乘,就引起数值问题了。
  • 梯度更新:若果输出层的数量级很大,会引起损失函数的数量级很大,这样做反向传播时的梯度也就很大,这时会给梯度的更新带来数值问题。
  • 学习率:如果梯度非常大,学习率就必须非常小,因此,学习率(学习率初始值)的选择需要参考输入的范围,不如直接将数据标准化,这样学习率就不必再根据数据范围作调整。

2. 数据集划分

数据集一般划分为训练集、验证集和测试集。

训练集用于模型迭代训练。

在神经网络中,验证数据集用于:

  • 寻找最优的网络深度。
  • 或者决定反向传播算法的停止点。
  • 或者在神经网络中选择隐藏层神经元的数量。
  • 在普通的机器学习中常用的交叉验证(Cross Validation)就是把训练数据集本身再细分成不同的验证数据集去训练模型。

测试集用来评估最终模型的泛化能力。但不能作为调参、选择特征等算法相关的选择的依据。

3. 混淆矩阵

  • 正例中被判断为正类的样本数(TP-True Positive)
  • 正例中被判断为负类的样本数(FN-False Negative)
  • 负例中被判断为负类的样本数(TN-True Negative)
  • 负例中被判断为正类的样本数(FP-False Positive)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. 模型文件

目前绝大部分的深度学习框架都将整个AI模型的计算过程抽象成数据流图(Data Flow Graphs)。为了方便地重用AI模型的计算过程,我们需要将它运行的数据流图、相应的运行参数(Parameters)和训练出来的权重(Weights)保存下来,这就是AI模型文件的内容。

TensorFlowCheckpoint FilesProtobuf去保存数据流图,用SSTable去保存权重;KerasJson表述数据流图而用h5py去保存权重;PyTorch由于是主要聚焦于动态图计算,模型文件甚至只用pickle保存了权重而没有完整的数据流图。

TensorFlow在设计之初,就考虑了从训练、预测、部署等复杂的需求,所以它的数据流图几乎涵盖了整个过程可能涉及到操作,例如初始化、后向求导及优化算法、设备部署(Device Placement)和分布式化、量化压缩等,所以只需要通过TensorFlow的模型文件就能够获取模型完整的运行逻辑,所以很容易迁移到各种平台使用。

开放式神经网络交换(Open Neural Network Exchange,简称ONNX)是由微软、FaceBook、亚马逊等多个公司一起推出的,针对机器学习设计的开放式文件格式,可以用来存储训练好的模型。它使得不同的人工智能框架可以采用相同格式存储模型数据并交互。

5. 权重矩阵初始化

对于多层网络来说,绝对不能用零初始化!!如果初始值都是0,所以梯度均匀回传,导致所有W的值都同步更新,没有差别。这样的话,无论多少轮,最终的结果也不会正确。

标准正态初始化方法(随机初始化)保证激活函数的输入均值为0,方差为1。

Xavier初始化方法:正向传播时,激活值的方差保持不变;反向传播时,关于状态值的梯度的方差保持不变。

MSRA初始化方法:正向传播时,状态值的方差保持不变;反向传播时,关于激活值的梯度的方差保持不变。

以下是几种初始化方法的应用场景:

在这里插入图片描述

6. 激活函数

在线性变换后应用以引入非线性,帮助神经网络学习各种现象。

为什么要使用激活函数:非线性激活函数可以使神经网络逼近复杂函数。如果没有激活函数,多层神经网络和单层神经网络没有差别。

7. 模型拟合

网络的泛化问题:所谓泛化,就是模型在测试集上的表现要和训练集上一样好。

在这里插入图片描述

在这里插入图片描述

出现过拟合的原因:

  1. 训练集的数量和模型的复杂度不匹配,样本数量级小于模型的参数
  2. 训练集和测试集的特征分布不一致
  3. 样本噪音大,使得神经网络学习到了噪音,正常样本的行为被抑制
  4. 迭代次数过多,过分拟合了训练数据,包括噪音部分和一些非重要特征

解决过拟合问题:

  1. 数据扩展:过拟合的原因之一是训练数据不够,通过丰富的图像处理手段,我们往往可以把样本数量翻好几倍。SMOTE(Synthetic Minority Over-sampling Technique),通过人工合成新样本来处理样本不平衡问题,提升分类器性能。
  2. 正则(L1正则使权重参数矩阵稀疏化;L2正则使权重矩阵中的值变小)
  3. 丢弃法(Dropout):在每个训练批次中,通过忽略一部分的神经元(让其隐层节点值为0),可以明显地减少过拟合现象。
  4. 早停法(Early stopping):在训练的过程中,记录到目前为止最好的验证集准确率,当连续N次Epoch没达到最佳准确率时,则可以认为准确率不再提高了。此时便可以停止迭代了。
  5. 集成学习法
  6. 特征工程(属于传统机器学习范畴,不在此处讨论)
  7. 简化模型,减小网络的宽度和深度

8. 卷积操作

  • 多入单出的降维卷积

在这里插入图片描述

  • 多入多出的同维卷积

在这里插入图片描述

9. 池化操作

池化,又称为下采样(downstream sampling or sub-sampling)。池化方法分为两种,一种是最大值池化 Max Pooling,一种是平均值池化 Mean/Average Pooling。

  • 最大值池化,是取当前池化视野中所有元素的最大值,输出到下一层特征图中。
  • 平均值池化,是取当前池化视野中所有元素的平均值,输出到下一层特征图中。

在这里插入图片描述

池化层的目的是:

  • 扩大视野:就如同先从近处看一张图片,然后离远一些再看同一张图片,有些细节就会被忽略
  • 降维:在保留图片局部特征的前提下,使得图片更小,更易于计算
  • 平移不变性,轻微扰动不会影响输出:比如上图中最大值池化的4,即使向右偏一个像素,其输出值仍为4
  • 维持同尺寸图片,便于后端处理:假设输入的图片不是一样大小的,就需要用池化来转换成同尺寸图片

10. 深度可分离卷积

相比常规卷积,深度可分离卷积的参数更少。

  • 逐通道卷积(Depthwise Convolution):拆分为单个通道特征图,分别进行单通道卷积,然后重新堆叠到一起。

在这里插入图片描述

  • 逐点卷积(Pointwise Convolution):将逐通道卷积输出得到的特征图进行第二次卷积,卷积核大小为1×1,滤波器的通道数与逐通道卷积输出的特征图的通道数一致。

在这里插入图片描述

11. 转置卷积

转置卷积(Transpose Convolution),一些地方也称为“反卷积”,在深度学习中表示为卷积的一个逆向过程,可以根据卷积核大小和输出的大小,恢复卷积前的图像尺寸,而不是恢复原始值。

>>> input = torch.randn(1, 16, 12, 12)
>>> downsample = nn.Conv2d(16, 16, 3, stride=2, padding=1)
>>> upsample = nn.ConvTranspose2d(16, 16, 3, stride=2, padding=1)
>>> h = downsample(input)
>>> h.size()
torch.Size([1, 16, 6, 6])
>>> output = upsample(h, output_size=input.size())
>>> output.size()
torch.Size([1, 16, 12, 12])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习基础知识点【更新中】 的相关文章

  • 远程连接工具——WindTerm

    一 简介 WindTerm 是一款开源免费 跨平台SSH Sftp Shell Telnet Serial 客户端 xff0c 即远程连接工具 该网站有详细的介绍 xff0c 可以了解一下 xff0c 网址 xff1a https king
  • Eclipse自定义注释

    我们在使用eclipse编写Java代码时 xff0c 想要让自己生成相关注释 xff0c 可以通过自定义注释模板来实现 xff0c 操作如下 xff1a 选择点击导航栏的Window xff0c 在打开的列表框里 xff0c 选择点击Pr
  • MarkDown 编辑器——Moeditor

    Moeditor是一款免费开源的MarkDown 编辑器 xff0c 界面清新简洁 xff0c 支持多平台 下载 浏览器输入框输入Moeditor进行搜索 xff0c 选择官网进入 xff0c Moeditor 进入官网界面如下 xff1a
  • Github的加速访问

    文章目录 概述Steam 43 43 的下载Steam 43 43 的安装使用 概述 GitHub打开访问速度比较慢 xff0c 这儿介绍一种加速访问的方式 xff0c 是正规的方式 xff0c 采用 Steam 43 43 来加速 Ste
  • 脚本基本命令自定义变量讲解

    功能 自定义变量功能 不再受固定几个变量限制 使用方法 三个步骤 1 首先要声明变量 2 读取变量 3 保存变量该变量支持增加 减少 脚本查看 检查大小等功能 xff0c 该功能的开发突破了变量使用受限制 xff0c 利用该变量可制作出超强
  • RPLIDAR A2 Windows 下开发

    RPLIDAR A2 Windows 下开发 一 思岚雷达官网 xff1a 传送门1 传送门2 二 SDK库文件学习 xff1a 传送门
  • 工业互联网项目积累

    新时代的物联网工程师 xff1a 做算法 要会图像处理 PCL 软件要会常见的通信协议 数据库 界面设计 串口通信 TCP UDP网络通信 1 物联网 传感器通信协议 MODBUS 2 什么是通信协议 xff1f 1 xff09 通信协议是
  • 标定--故事的开端 (阅读请评论,技术交流,创造不易)

    第一章 感知传感器 万物皆可标 离开slam xff0c 踏足视觉测量已经5个月 xff0c 出去转一趟 xff0c 进一步了解PCL点云库的应用 再次回归slam xff0c 倍感亲切 继续奋斗吧 xff01 加油 xff01 知识有限
  • PCL 缘起缘灭

    一 PCL是什么 PCL xff08 Point Cloud Library xff0c 点云库 xff09 是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C 43 43 编程库 xff0c 它实现了大量点云相关的通用算法和高校数
  • 随机变量 的 分布函数 与 概率密度函数 的区别

    目录 1 分布函数 2 概率密度函数 1 分布函数 分布函数 显示了随机变量的取值落在某个区间上的概率 xff0c 是一种不减函数 设 X 是一个随机变量 xff0c x 是任意实数 xff0c 函数 成为 X 的分布函数 分布函数是一个普
  • PCL(1)搭建与工业测量应用 总结

    PCL搭建与工业测量应用 PCL Point Cloud Learning 0 摘要 windows和ROS下安装配置PCL开发环境 利用CMake等编程模式建立实例应用程序 掌握PCL开发环境搭建流程 注意事项和关键配置选项 开发自己的P
  • 创建ROS工作空间

    创建ROS工作空间
  • matlab 相机标定

    matlab 相机标定 原理链接描述 matlab 自带相机标定工具 1 教程链接描述 2 链接描述 3 链接描述
  • 大疆览沃浩界(Livox Horizon)激光雷达测评(激光相机联合标定)

    1 大疆览沃浩界 xff08 Livox Horizon xff09 激光雷达测评 测评链接 2 livox horizon激光与zed相机彩色点云地图构建 3 Autoware激光雷达与网络摄像机联合标定 四 Livox Horizon
  • ceres-slover库安装

    安装ceres slover 2 1版本
  • ZED相机+ubuntu 18.04+ros melodic

    0 l环境配置 1 安装链接描述 2 双目标定 3 zed cpu安装 guithub
  • UBUNTU 笔记常用软件

    金山文档 有道笔记 JOPLIN
  • ROS中用cv_bridge和opencv时出现cv::xxx未定义的问题

    1前景提要 xff1a cv bridge是ros中常用的消息类型转换的包 xff08 ros自带的包 xff09 xff0c 要在ros环境下利用opencv处理USB相机拍摄的视频必须用到cv bridge xff08 如下图 xff0
  • 忘记hadoop安装路径,忘记hadoop根目录怎么进入根目录启动hadoop

    有时候很久没用VMware虚拟机了 xff0c Linux操作系统如果不是刻意去用 xff0c 基本上没什么机会去使用 更别提计算机小白了 xff0c Windows系统都没弄懂 xff0c 又出来一个Linux系统 某天我打开目录 xff

随机推荐

  • 微服务应用之OAuth2.0的四种授权方式

    引言 OAuth 2 0 是一种授权机制 xff0c 主要用来颁发令牌 xff08 token xff09 OAuth 2 0 的标准是 RFC 6749 文件 xff0c 这个文件写出 xff08 由于互联网有多种场景 xff0c xff
  • 期望、方差、协方差、相关系数的理解

    目录 1 数学期望 xff08 均值 xff09 2 方差 D X 或 Var X 3 协方差 Cov X Y 4 相关系数 5 协方差矩阵 一句话概括 xff1a 期望 反映了平均水平 xff0c 方差 反映了数据波动程度 xff0c 协
  • Ubuntu系统通过脚本实现循环访问网页

    bin bash step 61 5 间隔的秒数 for i 61 0 i lt 60 i 61 i 43 step do curl https www baidu com crul能达到想要的效果 w3m https www csdn n
  • resource not found: roslaunch和Command ‘rosrun‘ not found的解决方法

    安装ros的时候 xff0c 历经种种困难后终于完成了前面的步骤 xff0c 却在运行roscore时再次出现了问题 xff1a Resource not found roslaunch ROS path 0 61 opt ros noet
  • vscode配置clang-tidy插件

    先拥有一个 clang tidy文件 首先确保系统已经安装clang tidy xff0c 在项目的目录下新建一个 clang tidy文件 xff0c 具体如何配置在网上搜索 xff0c 或者用已有的 也可以在vscode的文件中配置 x
  • 4、linux初级——Linux在开发板中的使用

    目录 一 用CRT连接开发板 1 安装CRT调试工具 2 连接开发板 3 开机后ctrl 43 c关闭登录程序可以进入命令行 二 开发板和电脑文件之间的传输 xff08 串口 xff09 1 rx xff08 从电脑下载文件到开发板 xff
  • FreeRtos--中断

    采用二值信号量同步 二值信号量可以在某个特殊的中断发生时 xff0c 让任务解除阻塞 xff0c 相当于让任务与中断同步 这样就可以让中断事件处理量大的工作在同步任务中完成 xff0c 中断服务例程 ISR 中只是快速处理少部份工作 如此
  • FreeRTOS--资源管理

    函数重入 如果一个函数可以安全地被多个任务调用 xff0c 或是在任务与中断中均可调用 xff0c 则这个函数是可重入的 每个任务都单独维护自己的栈空间及其自身在的内存寄存器组中的值 如果一个函数除了访问自己栈空间上分配的数据或是内核寄存器
  • vscode代码提交到gittee码云 第一次提交方法

    学习3 xff1a 今天是第一次将vscode代码提交到gittee xff0c 废话不多说 xff0c 直接上方法 xff1a 查看git仓库 gt git status 将当前项目文件初始化为仓库 如果当前文件夹不是git仓库 xff0
  • 明火烟雾目标检测项目部署(YoloV5+Flask)

    明火烟雾目标检测项目部署 文章目录 明火烟雾目标检测项目部署1 拉取Docker PyToch镜像2 配置系统环境2 1 更换软件源2 2 下载vim2 3 解决vim中文乱码问题 3 运行项目3 1 拷贝项目到容器中3 2 安装项目所需的
  • 操作系统实践课作业(南航)

    操作系统实践课作业 xff08 南航 xff09 文章目录 操作系统实践课作业 xff08 南航 xff09 1 job21 1 main c1 2 math c1 3 Makefile 2 job32 1 myecho c2 2 myca
  • 在Linux系统下安装Neo4j图数据库

    在Linux系统下安装Neo4j图数据库 文章目录 在Linux系统下安装Neo4j图数据库1 Java JDK1 1 安装1 2 查看安装路径 2 Neo4j2 1 下载2 2 拷贝到容器中2 3 修改neo4j conf配置文件2 4
  • 大数定律 与 中心极限定理 的理解

    目录 1 大数定律 2 中心极限定理 1 大数定律 当样本的数量足够大时 xff0c 样本的统计特性就可以近似代表总体的统计特性 大数 是指样本的数量足够大或者试验的次数足够多 2 中心极限定理 设总体为 为总体的 N 个样本集 xff0c
  • 操作系统实践05—文件描述符和系统调用

    操作系统实践05 文件描述符和系统调用 文章目录 操作系统实践05 文件描述符和系统调用1 概念1 1 文件描述符1 2 系统调用1 3 例子 2 内核实现2 1 file结构体2 2 文件描述符表2 3 进程控制块2 4 私有的文件描述符
  • 医疗问答机器人项目部署

    医疗问答机器人项目部署 文章目录 医疗问答机器人项目部署1 拉取TensorFlow镜像2 配置系统环境2 1 更换软件源2 2 下载vim2 3 解决vim中文乱码问题2 4 安装Neo4J图数据库2 5 安装网络工具包 3 运行项目3
  • SimpleITK学习

    SimpleITK学习 文章目录 SimpleITK学习1 SimpleITK ReadImage path 2 SimpleITK GetArrayFromImage itk img 3 itk img GetOrigin 4 itk i
  • 【Docker】服务器部署项目

    服务器部署项目 文章目录 服务器部署项目1 远程连接服务器2 在Linux系统上安装Docker2 1 卸载旧版本2 2 使用 APT 安装2 3 安装Docker2 4 使用脚本自动安装2 5 启动Docker2 6 测试 Docker
  • 计算机网络04—网络层

    网络层 学习参考资料 xff1a 湖南科技大学 计算机网络谢希仁 计算机网络 xff08 第7版 xff09 文章目录 网络层1 概述1 1 IP协议及配套协议 2 两种服务2 1 面向连接的虚电路服务2 2 无连接的数据报服务2 3 对比
  • torch.nn学习

    torch nn学习 文章目录 torch nn学习1 卷积层1 1 Conv2d 2 池化层2 1 MaxPool2d2 2 MaxUnpool2d2 3 AvgPool2d 3 代码实践3 1 Inception Module3 2 R
  • 深度学习基础知识点【更新中】

    深度学习基础知识点 文章目录 深度学习基础知识点1 数据归一化2 数据集划分3 混淆矩阵4 模型文件5 权重矩阵初始化6 激活函数7 模型拟合8 卷积操作9 池化操作10 深度可分离卷积11 转置卷积 1 数据归一化 过大的输入数据未归一化