致初学者的深度学习入门系列(二)—— 卷积神经网络CNN基础

卷积神经网络CNN

文章目录

  • 卷积神经网络CNN
    • 卷积
    • Padding
    • Pooling
    • Flatten
    • 网络连接数以及参数数量的计算
    • 残差网络(ResNet)
    • 1x1卷积
    • 迁移学习
    • 数据扩充
    • 后续

卷积

​ 卷积运算的过程就是设定一个特定大小和内容的卷积核后,将卷积核在图像上遍历滑动,每次滑动后得到对应卷积核中心位置上的数值等于卷积核上的权重于卷积核对应位置的图像像素值的乘积和。

​ 作用:提取特征

​ 提取垂直边缘特征的示例:

致初学者的深度学习入门系列(二)—— 卷积神经网络CNN基础_第1张图片

输入层的维度决定了提取原始特征的数量。

常见卷积核

致初学者的深度学习入门系列(二)—— 卷积神经网络CNN基础_第2张图片

Padding

​ 由于卷积的特性,没经过一次卷积得到的结果尺寸就会变小,这样也会导致边缘信息的消失,甚至影响深层网络的工作。通过Padding操作,在图像边缘增加行和列的像素(默认像素值为0),可以解决以上问题。

​ Valid Conv:不经过Padding;Same Conv:经过Padding。

Pooling

​ 池化层也是神经网络中层次结构的一种。

  • Max Pooling

致初学者的深度学习入门系列(二)—— 卷积神经网络CNN基础_第3张图片

  • Average Pooling

致初学者的深度学习入门系列(二)—— 卷积神经网络CNN基础_第4张图片

**作用:**缩减模型大小,提高计算速度,还可以提高所提取特征的鲁棒性。

Flatten

​ 中文译为“压平”,即将多维度的卷积层的每个节点全部展平成一维的向量,以实现卷积层到全连接层的过渡。但Flatten并不会影响Batch的大小。

网络连接数以及参数数量的计算

以LeNet-5为示例

致初学者的深度学习入门系列(二)—— 卷积神经网络CNN基础_第5张图片

map尺寸 连接数 参数量
32x32x3 3072 0
28x28x6 4704 156((5x5+1)x6)
14x14x6 1176 0
10x10x16 1600 416((5x5+1)x16)
5x5x16 400 0
120x1 120 48001(400x120x+1)
84x1 84 10081(120x84+1)
10x1 10 841(84x10+1)

残差网络(ResNet)

​ 普通的CNN网络结构会造成很多问题,例如梯度消失、梯度爆炸、退化问题等。

  • 梯度消失:网络每向前传播一层,若乘以一个小于1的误差梯度,当网络越来越深时,梯度越来越接近于0,逐渐消失。
  • 梯度爆炸:网络每向前传播一层,若乘以一个大于1的误差梯度,当网络越来越深时,梯度越来越趋向于无穷,造成梯度爆炸。
  • 退化问题:理论上网络越深能够学习的问题就应该越复杂,而实际中层数深的网络反而没有层数浅的网络表现好。

Residual 结构
Z [ l + 1 ] = W [ l + 1 ] a [ l ] + b [ l + 1 ] a [ l + 1 ] = g ( Z [ l + 1 ] ) Z [ l + 2 ] = W [ l + 2 ] a [ l + 1 ] + b [ l + 2 ] a [ l + 2 ] = g ( Z [ l + 2 ] + a [ l ] ) Z^{[l+1]}=W^{[l+1]}a^{[l]}+b^{[l+1]}\quad a^{[l+1]}=g(Z^{[l+1]})\\ Z^{[l+2]}=W^{[l+2]}a^{[l+1]}+b^{[l+2]}\quad a^{[l+2]}=g(Z^{[l+2]}+a^{[l]})\\ Z[l+1]=W[l+1]a[l]+b[l+1]a[l+1]=g(Z[l+1])Z[l+2]=W[l+2]a[l+1]+b[l+2]a[l+2]=g(Z[l+2]+a[l])
致初学者的深度学习入门系列(二)—— 卷积神经网络CNN基础_第6张图片

意义:解决了随着网络深度造成的无法拟合恒等函数问题,从此开创了“网络越深,效果越好”的时代。

致初学者的深度学习入门系列(二)—— 卷积神经网络CNN基础_第7张图片

原因:随着网络深度不断增大,所经过的非线性函数越多,数据被映射到更加离散的空间,导致难以实现恒等变换。

ResNet提出一种新的思路,不直接学习目标函数H(x),而是去学习残差F(x)=H(x)-x,这种方法更加容易学习。然后再将学习后的结果加上x即为要学习的函数H(x)。

1x1卷积

​ 特征map的宽和高可以通过池化层进行压缩,但如果要压缩通道的数量呢?

致初学者的深度学习入门系列(二)—— 卷积神经网络CNN基础_第8张图片

​ 每一次卷积相当于对着192个通道进行全连接,这样的操作等同于添加了一个非线性操作,可以压缩或保持通道的数量,增加非线性以及进行跨通道的信息交互等。

迁移学习

固定网络前面的层,根据类别构建softmax层。

  1. 用预训练好的模型来初始化网络当前模型参数
  2. 冻结最终完全连接层之外的所有网络权重,这个完全连接层被替换成具有随机权重的新层,并且只有该层被训练。

数据扩充

​ 镜像对称、随即裁剪、色彩转换等

后续

 喜欢的话可以关注一下我的公众号技术开发小圈,尤其是对深度学习以及计算机视觉有兴趣的朋友,我会把相关的源码以及更多资料发在上面,希望可以帮助到新入门的大家!
在这里插入图片描述

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