《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成

第二章是Python基础,笔记省略

《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成_第1张图片

深度学习中常见的各种层

  • 卷积的本质是用卷积核的参数来提取数据的特征,通过矩阵点乘运算来得到结果。

  • 激活函数层的作用是为网络引入非线性,提升整个网络的表达能力。
    《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成_第2张图片
    Sigmoid函数

  • Sigmoid可以用来做二分类,但计算量较大,且容易出现梯度消失的现象。
    《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成_第3张图片
    ReLU函数

  • 计算简单速度快。
    《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成_第4张图片

Leaky ReLUctant函数

  • 效果没有ReLU好。
    《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成_第5张图片

Softmax函数

  • 用于多分类问题。

池化层用于降低特征图的参数量,提升计算速度,增加感受野,是一种降采样操作。

常用的池化操作为最大值池化和平均值池化。

Dropout用于处理深度学习中的过拟合现象。在训练过程中,每个神经元以概率p保留,以1-p的概率停止工作,每次前向传播保留下来的神经元都不同,使模型不太依赖于某些局部特征,泛化性能更强。
《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成_第6张图片
Dropout示意图。

网络越深,越难以训练和调参。因为浅层微弱变化经过多层线性变换和激活函数后会被放大,改变每一层的输入分布,造成深层的网络不断调整以适应这些分布变化,这种现象叫做ics (Internal Covariate Shift)。

BN层对每一个Batch的输入特征进行白化操作,即去均值方差过程。
《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成_第7张图片

这里的e应该是一个扰动,避免除零的情况(个人猜测)。

白化操作虽然从一定程度上避免了梯度饱和,但也限制了网络中数据的表达能力。

BN层在白化操作后又增加了一个线性变换 操作,让数据尽可能恢复本身的表达能力。
在这里插入图片描述
r和b是网络要学习的参数。

BN的优点:

  • 缓解梯度消失,加速网络收敛。
  • 简化调参,网络更稳定。
  • 防止过拟合。

BN的缺点:

  • BN在Batch较大的情况下才有较好的效果,但较大的Batch比较占内存,这是个矛盾点。
  • 测试集和训练集的Batch大小不同,测试集的效果受训练集的影响较大。

BN的后继者是GN(Group Normalization),从通道方向计算均值与方法,使用较为灵活,避开了Batch大小对归一化的影响。

全连接层(Full Connected Layers)一般都在卷积网络输出的特征图后面,每一个节点都与上下层的所有节点相连。
《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成_第8张图片
全连接层将卷积抽象出的特征图进一步映射到特定维度的标签空间。

全连接层的缺点是参数量太大,目前都采用全局平均池化层(Global Average Pooling)来取代全连接层。
GAP的优点:

  • 利用池化降低维度,减少网络参数。
  • 将特征提取与分类合二为一,可防止过拟合。
  • 去除了全连接层,可支持任意尺度的图像数据。

感受野(Receptive Field)是指特征图上的某个点能看到的输入图像的区域。
《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成_第9张图片
《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成_第10张图片
感受野的计算公式。

空洞卷积(Dilated Convolution)的作用是提升感受野的同时,保持图像尺寸的不变。
《深度学习之PyTorch物体检测实战》读书笔记(二)神经网络的基本组成_第11张图片
空洞卷积的缺点:

  • 网格效应,很多像素没有被利用到,会损失信息的连续性与相关性。
  • 远距离的信息没有相关性:本质上跟第一条是一样的。
  • 不同尺度物体的关系:这种方法对大尺度物体的检测有利,小尺度物体检测效果不理想。

你可能感兴趣的:(计算机视觉)