本期介绍历史上比较重要的几个网络结构模型
一、lenet
目的:做手写数字识别
结构:卷积层取特征,池化层减小图片大小,最终全连接层转化到类别空间
二.alexnet
观念改变:正式提出了用网络来提取特征的思想,这样就不用学习图像方面的专业知识
方法改进
1.在前一基础上使用了relu替换sigmoid(由于0点出导数为1,可以有效减缓梯度消失)
2.加入丢弃层
3.做数据增强
4.更大的池化窗口和更大的卷积核窗口和步长,用以处理更大的图片
三.VGG网络
解决问题:alexnet设计不规则,容易被问为什么这样设计宽度和深度以及为什么这样选卷积层个数
方法:n个卷积层和一个最大池化层组成一个块,进行堆叠
四.NIN网络
解决问题:之前提到的三种网络卷积层后的第一个全连接层参数量都很大,容易过拟合
方法:NIN块:卷积层后跟两个步幅1无填充的卷积层(实际作用和全连接层一样,混合通道)
架构:交替使用NIN块和最大池化层,逐步减小图片大小并增大通道数,最后用全局平均池化层得到输出
五.googlenet
思路:用四条路径并行尝试四种卷积层组合思路
(称为inception块)
六.残差网络(resnet)
解决的问题:加更多的层并不总能提升模型精度
解决方法:设计残差块,f(x)=x+g(x)(x为原来的输出)
在训练模型的时候,用前一个的输出x和f(x)做差,然后拟合这个差值(有点类似xgboost的思想)
一般把块设计成如下形式
补充一组概念:batch norm和layer norm
batch:同一个batch内所有样本计算均值方差
layer:单个样本的所有特征做正则化