CNN实例
1.经典网络
- LeNet-5
- AlexNet
- VGG
2.ResNet
3.Inception
经典网络
LeNet-5
Alex
VGG-16
- 优点:规整,简化了网络结构,卷积层和全连接层(也就是有权重的层)加起来有16个,每轮filter size增加一倍;当feature map尺寸缩小一半,feature map层数增加一倍,呈现规律性。
- 缺点:非常深,1.38亿个参数,难以计算
残差网络ResNet
- short cut:捷径,基本是远眺连接的路径
- skip connection:远眺连接,某层的输出跳过几层网络,直接将信息传给后面的某层网络作为输入
-Residual Block残差块:包含远眺连接的最小网络结构
残差网络有残差块连接构成:
1X1卷积/网络中的网络
- 减少/保持/增加 通道数
- 增加了非线性的成都,有助于实现更复杂的学习
Inception模块
叠加多种过滤器,让计算机来判定哪种过滤器更合适。
注意:下图的MAX-POOL层中包含一个1X1CONV层,将通道数减少至32
这种方法存在计算量巨大的问题,可以用1X1卷积来解决,使用1X1卷积来建造“瓶颈层(bottom neck)”可以在不影响性能的前提下,大大缩减计算量
基于Inception模块,搭建inception network,下图结构由google搭建:
迁移学习
实际应用时,最好依据需求来查阅论文,基于其他人的成果来进行研究迁移学习。迁移学习方法分三种:
- 小数据集时,将他人的神经网络的除了输出层的其层冻结,不进行训练,只训练输出层,即将输出层之前的层视为一个整体,不训练他们。
- 中数据量时,“冻结”一定数量的靠近输入层的网络层,不对他们进行训练。
- 大数据量时,使用开源模型的权重作为自己的模型的初始值,训练更新所有权重。
数据增强
由于数据增强也具有不少的超参数,使用前人的超参取值是一个不错的办法。训练时,CPU的一部分线程(thread)负责数据增强,另一部分线程进行训练,增加效率。
常见数据扩充
- 垂直翻转 Mirroring
- 随机剪裁 Random Cropping
- 旋转、拉伸 Rotation,Searing,Local Warping
色彩变换
影响不同白平衡下的鲁棒性
PCA(主成分)色彩增强:对大的值进行大的操作,小的值进行小的操作,达到总体平衡。
工作量和数据量
工作量和数据量呈反比,数据增强是增加数据量的一种办法,但牺牲时间。
在竞赛或者论文研究时,可以尽可能多的采用数据增强来获得更好的表现:
- 训练多个模型,然后平均结果
- 对测试集进行Multi-crop,将一张图片分为多张图片,并且平均结果。如10-crop方法。
但是因为计算的金钱成本和时间成本,这在实际工程中不太行得通,所以还是在竞赛和研究中多使用吧。