详细版【卷积神经网络CNN】基础模型(邱锡鹏)

卷积神经网络CNN

  • 全连接前馈问题:

    • 参数太多:效率低且容易过拟合
    • 局部不变特性:忽略物体的局部不变性特征,比如图像中的尺度缩放、平移、旋转等操作不影响其语义信息。如果使用全连接,则所有维度都被一视同仁,如(x1,y1) (x2,y2)中的四个数字被等价看待,但是实际上x1和x2的关联度(相关性)会高于x1和y1,一般需要进行数据增强来提高性能。
  • 卷积神经网络CNN是一种具有局部连接、权重共享、汇聚等特性的深层前馈神经网络。

  • 一维卷积(信号处理中使用)

    • = ∑ −+1 ( 1 ≤ ≤ K) ,其中1 , 2 , ⋯ 称为滤波器或卷积核,滤波器长度为K,这里假设卷积的输出 的下标 从 开始。信号序列和滤波器的卷积定义为 = ∗ , 其中∗表示卷积运算。
    • 简单移动平均: = [1/, ⋯ , 1/] ;信号序列的二阶微分: = [1, −2, 1],可以检测信号序列中的高频信息(高频和低频指信号变化的强烈程度
      详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第1张图片
  • 二维卷积(图像)

    • 给定图像 ∈ ℝ× 和滤波器 ∈ ℝ×, << , << ,其卷积 = ∑ = 1 \sum_{=1}^{} u=1U ∑ = 1 \sum_{=1}^{} v=1V−+1,−+1 ,这里假设卷积的输出 的下标(, )从(, )开始。输入信息和滤波器 的二维卷积定义为 = ∗
      详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第2张图片

    • 均值滤波: = 1 / 。一幅图像在经过卷积操作后得到结果称为特征映射。在计算卷积的过程中需要进行卷积核翻转(从两个维度(从上到下、从左到右)颠倒次序,即旋转180度)以上图为例,卷积是右下角元素减去左上角元素,和常规想法是相反的。

    • 互相关(不翻转卷积)= ∑ = 1 \sum_{=1}^{} u=1U ∑ = 1 \sum_{=1}^{} v=1V+-1,+-1,和卷积的区别仅仅在于卷积核是否进行翻转。公式写法是 = ⊗ = = rot180 ( ) ∗ 。我们用互相关来代替卷积。

  • 卷积的变种

    • 步长:卷积核在滑动时的时间间隔;零填充:在输入向量两端进行补零。
    • 假设卷积层的输入神经元个数为,卷积大小为,步长为,在输入两端各填补 个0,那么该卷积层的神经元数量为 ( − + 2) / + 1
    • 三种卷积
      • 窄卷积 :步长 = 1,两端不补零 = 0,卷积后输出长度为 − + 1
      • 宽卷积 :步长 = 1,两端补零 = − 1,卷积后输出长度 + − 1
      • 等宽卷积 :步长 = 1,两端补零 = ( − 1)/2,卷积后输出长度
  • 其他卷积方式:**转置卷积 / 微步卷积 / 空洞卷积 **
    详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第3张图片
    详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第4张图片

  • 卷积神经网络的具体结构:局部连接,权重共享
    详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第5张图片
    详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第6张图片
    通常的交叉堆叠结构:
    详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第7张图片
    注:⼀个卷积块为连续M 个卷积层和b个汇聚层(M通常设置为2 ∼ 5,b为0或1 )⼀个卷积网络中可以堆叠N 个连续的卷积块,然后在接着K个全连接层 (N 的取值区间比较大,比如1 ∼ 100或者更大;K一般为0 ∼ 2)

    1. 深度就是特征个数,如果是灰度图像,就只有一个特征映射, 输入层的深度 = 1;如果是彩色图像,分别有 RGB 三个颜色通道的特征映射, 输入层的深度 = 3。

    2. 汇聚层也叫子采样层,其作用是进行特征选择,降低特征数量,从而减少参数数量。卷积层虽然可以显著减少网络中连接的数量,但特征映射组中的神经元个数并没有显著减少,如果后面接一个分类器,分类器的输入维数依然很高,很容易出现过拟合。为了解决这个问题,可以在卷积层之后加上一个汇聚层,从而降低特征维数,避免过拟合。

    3. 常用的汇聚函数有两种:最大汇聚(取区域中所有神经元活性值的max)和平均汇聚(取区域内所有神经元活性值的平均值)。典型的汇聚层是将每个特征映射划分为2 × 2大小的不重叠区域,然后使用最大汇聚的方式进行下采样。汇聚层也可以看作一个特殊的卷积层,卷积核大小为 × ,步长为 × ,卷积核为max函数或 mean函数。过大的采样区域会急剧减少神经元的数量,也会造成过多的信息损失。

    4. 卷积网络整体结构趋向于使用更小的卷积核以及更深的结构
      详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第8张图片

  • 二维卷积的数学性质(一维适用)
    详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第9张图片
    详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第10张图片

  • 参数学习:只有卷积层有参数,因此只需要计算卷积层中参数的梯度

    • 误差计算
      详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第11张图片
      关于b的误差项:因为z(l,p) 的每个元素都要加上⼀样的偏置b(l,p) , 即b(l,p) 与z(l,p)的每个元素都有关,根据链式法则,需要将关于z(l,p) 的每个元素的偏导数,即每个误差项相加。

    • 反向传播

      • 汇聚层(第 + 1层):该层每个神经元的误差项对应于第 层的相应特征映射的一个区域。根据链式法则,第 层的一个特征映射的误差项 (,) 只需要将 + 1层对应特征映射的误差项 (+1,) 进行上采样操作,再和 层特征映射的激活值偏导数逐元素相乘,就得到了 (,)。具体推导过程如下:
        详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第12张图片
        其中′ (⋅)为第 层使用的激活函数导数,up为上采样函数,与汇聚层中使用的下采样操作刚好相反。如果zp= max 则关于最大xp的导数为1,其余为0。如果zp 是平均,则每个xp的导数都为1/n。

      • 卷积层
        详细版【卷积神经网络CNN】基础模型(邱锡鹏)_第13张图片
        第 层的第d个输入x(,d) 关联到 +1层的全部 p=1,…P个净输入z(+1),因此反向传播时 需要把关于全部P个输出的偏导数累加。

你可能感兴趣的:(机器学习,神经网络,深度学习,pytorch,cnn,卷积神经网络)