人工智能实践——经典卷积神经网络模型(part2)
GoogLeNet
Inception经历了V1,V2,V3,V4四个版本
Inception V0
最初版本
增加了网络的宽度
增加了网络对尺度的适应性。因为既有长步卷积核,也有短步的卷积核
还可以进行一个池化操作,以减少空间大小,降低过度拟合
更为重要的,结构化网络
Inception V1
改进一:在33和55的卷积层前加了一个11的卷积层,主要是降低参数数量。
解释:对于33的卷积核,输入数据为100x100x256的层。
经过33192的卷积核,参数个数为33256192
而如果先经过1164的卷积核,参数1125664,此时数据为10010064,所以经过33192后参数个数为3364192
注意两点:单个33的卷积核对于100100256,是将256个100100上33的区域对应相乘求和后再256相加也许会有其他归一化操作?总之生成的是一个100*100的输出边长有没有改变不清楚
改进二:最后average pooling(平均池化)来代替全连接层。降低了参数全连接的瓶颈就在空间复杂度
改进三:网络额外增加了2个辅助的softmax用于向前传导梯度(辅助分类器)。辅助分类器是将中间某一层的输出用作分类,并按一个较小的权重(0.3)加到最终分类结果中,这样相当于做了模型融合,同时给网络增加了反向传播的梯度信号,也提供了额外的正则化理解为避免过拟合?
Inception V2
优化1:用两个3´3的卷积代替5´5的大卷积(用以降低参数量并减轻过拟合)
参数数量2 5》18
优化2:Batch Normalization。
传统网络:很小的学习速率,Dropout
引入BN:增大学习速率——大幅减少时间
去掉Dropout——优化网络结构
Inception V3
addition factorization(分解)
使用N1和1N卷积联级代替N*N卷积
一方面节约了大量参数
7´7卷积拆成1´7卷积和7´1卷积,比拆成3个3´3卷积更节约参数
一方面增加了一层非线性扩展模型表达能力。
Inception V4
与Residual Connection(残差)相结合这个模型没有搞懂
resNet
skip connect
将residual representation残差与网络结合,使得网络不再学习输入输出之间的映射,而是学习之间的残差
前提:学习到较饱和的准确率(或者当发现下层的误差变大时)。即某一层的输出离正确输出已经很接近的时候, 再增加网络反而过拟合导致下降。
此时使用恒等映射。即输入是x,但是经过模型训练得到的F(x),F(x)相当于残差,调整模型使得F(x)接近0。而x+F(x)才作为下一层的输入
shortcut connections(捷径连接):直接把输入x传到输出加上F(x)作为输出(下一层的输入)
于是,ResNet相当于将学习目标改变了,不再是学习一个完整的输出,而是目标值H(X)和x的差值,也就是所谓的残差F(x) := H(x)-x,因此,后面的训练目标就是要将残差结果逼近于0,使到随着网络加深,准确率不下降。
当X+F(x)通道相同时候可以直接相加,如果不同呢?
实线代表通道相同,直接相加H(x)=F(x)+x
虚线代表通道不同,需要卷积H(x)=F(x)+Wx