第四部分 深度卷积网络-实例探究 3 笔记
2.7 Inception网络
Inception network
2.6提出的模块结构加上1x1卷积的思想就构成了Inception模块。
Inception网络所做的就是将这些模块都组合到一起:
Inception网络,即是很多个Inception模块一环接一环,最后组成了网络。自从Inception模块诞生以来,经过研究者们的不断发展,衍生了许多新的版本,比如Inception V2、V3以及V4,以及引入了跳跃连接的网络,有时也会有特别好的效果。但所有的这些变体都建立在2.6中基本思想上。
2.8 使用开源的方案
Using open-source implementations
ResNet的实现网址: https://github.com/KaimingHe/deep-residual-networks (基于Caffe框架)鼓励开源,训练的好的网络,可以很好的用来进行迁移学习。
2.9 迁移学习
Transfer Learning
开源数据集举例:ImageNet、MS COCO、Pascal。
小数据集学习时,可以利用已经训练好的网络,丢掉最后的softmax层,然后创建自己对应类别的softmax层,然后freeze其他层的权重,随后进行训练。当数据集稍大时,可以从后往前依次放开权重,逐次进行训练。如果有一个更大的数据集,也许有足够多的数据,则不要单单训练一个softmax单元,而是考虑训练中等大小的网络,包含最终要用的网络的后面几层。 最后当数据量足够大时,可将训练好的网络权重作为初始化的值,进而训练整个网络,即每次迭代对所有权重进行更新。
另一方面,可以将已训练好的网络,作为特征提取器,将softmax前面的一层作为提取的特征,将每个数据输入到网络后得到相应的特征,然后针对转换后的特征训练softmax分类器。预计算方法的优点就是,不需要每次遍历训练集再重新计算这个**值。
2.10 数据扩充
Data augmentation
针对计算机视觉问题,数据扩充会对训练带来很大帮助。
扩充手段:
- 影像镜像(Mirroring)
- 随机裁剪(Random Cropping)
- 旋转(Rotation)
- 剪切(Shearing)
- 局部弯曲(Local warping)
- 彩色转换(Color shifting)(PCA颜色增强)
- ...
扩充后数据训练示意
2.11 计算机视觉现状
The state of computer vision
少量数据 —————————————————————————————————————————————> 大量数据
更多手动工程 物体检测 图像识别 语音识别 简单算法,少量手动工程
数据量的大小影响着手动工程的多少。
- 当有很多数据时,倾向于使用更简单的算法和更少的手工工程,因为我们不需要为这个问题精心设计特征。当有大量的数据时,只要有一个大型的神经网络,甚至一个更简单的架构,可以是一个神经网络,就可以去学习它想学习的东西。
- 当没有太多数据时,手工工程实际上是获得良好表现的最佳方式。
学习算法有两种知识来源:1、来源是被标记的数据,就像(x,y)应用在监督学习;2、来源是手工工程,有很多方法去建立一个手工工程系统,它可以是源于精心设计的特征,手工精心设计的网络体系结构或者是系统的其他组件。所以当没有太多标签数据时,只需要更多地考虑手工工程。
基准测试(benchmark)建议:
- 集成。独立训练多个网络,随后对结果取平均。
- Multi-crop at test time。将数据扩充应用到测试集上,即针对同一测试数据的不同扩充,对其测试结果取平均值。