深度学习(四) 卷积神经网络基础
4.1 卷积层
卷积层的作用:
稀疏连接(局部感知):核大小远小于输入,存储的参数小,输入只和少部分输出的连接。以、一般认为图像的空间联系是局部的像素联系比较密切,而距离较远的像素相关性较弱,因此,每个神经元没必要对全局图像进行感知,只要对局部进行感知。
参数共享:在每一层内部,使用相同的卷积核。卷积核共享有个问题:提取特征不充分,可以通过增加多个卷积核来弥补,可以学习多种特征。
平移等变:对输入先平移在卷积,和先卷积再平移效果一样
降低过拟合与计算量
卷积运算:
卷积后的图像大小:
卷积核大小:
大卷积核能够有更高的感视野,小卷积核能够感知局部特征,可以使用小卷积核来替代大卷积核,在相同感视野的情况下提升网络的深度。3个3*3替换一个7*7,2个3*3替换一个5*5。
4.2 池化层
池化层的作用:
学习不变特征,局部平移不变性。尤其我们关心某一特征是否出现而不是具体位置
减少数据量的同时保留有用信息,减少过拟合
常用池化层:
Average pooling,Max pooling
4.3 常用卷积神经网络
AlexNet
特点:
使用ReLU、Dropout、数据增强(水平翻转、平移变化、颜色光照变换)
训练时随机从256*256的原始图像中随机截取224*224的区域,测试的时候裁剪则是固定的,对
他们进行预测最后对结果求均值。
卷积核采用11*11,5*5,3*3的卷积核,池化3*3,采用全连接层
VGG
特点:
全部使用3*3卷积核替代大卷积核,maxpooling采用2*2,
GoogleNet
InceptionV1结构:
四通道:1*1卷积,1*1卷积+3*3卷积,1*1卷积+5*5卷积,3*3max_pooling+1*1卷积
特点:
增加网络对多尺度的适应性;增加网络宽度;提供多尺度特征,输出感受野变化
采用Bottleneck Layer,使用1*1行降维,降低计算量
NIN 跨通道组织信息,提高网络的表达能力同时可以对输出有效进行降维
取消全连接,使用Global average pooling代替全连接降低参数,本质上是个全卷积网络
InceptionV2结构:
使用两个3*3替代5*5,并使用BN
InceptionV3结构:
采用Factorization into small convolutions思想,将3*3拆为1*3与3*1,降低参数并提高非线性。
这种非对称的卷积结构拆分,其结果比对称地拆为几个相同的小卷积核效果更明显,
InceptionV4结构:
结合ResNet,short cut连接,短路连接
Inception结构的特征是不同尺寸卷积核之间提取特征之间的拼接
ResNet
残差:
残差即为 y−x y − x 部分,ResNet解决的是网络随着深度的加深出现的网络退化(训练集的误差增长,并不是过拟合)的
问题,本质上解决的还是梯度的问题
bottleneck结构:
1*1卷积核 + 3*3卷积核 + 1*1卷积核
第一个NIN降维+提取局部特征 第二个NIN升维+跨通道组合特征
NIN主要用来减少计算量Bottleneck Design的ResNet通常用于更深的如101这样的网络中,目的是减少计算和参
数量(实用目的)。浅层的可以不适用Bottleneck ,直接两个3*3的residual model
梯度消失问题的解决:
式子的第一个因子 ∂loss/∂xL 表示的损失函数到达 L 的梯度,小括号中的1表明短路机制可以无损地传播梯度,而
另外一项残差梯度则需要经过带有weights的层,梯度不是直接传递过来的。残差梯度不会那么巧全为-1,而且就算其比
较小,有1的存在也不会导致梯度消失。所以残差学习会更容易。
预激活:
BN+激活函数+CONV这种结构 代替 CONV+BN+激活函数
可以不用在初始化的时候进行whiting
bottleneck residual的特征采取的是各通道之间特征的加和