您的位置:首页 > 其它

Convolutional Neural Networks:第二周

2018-02-24 21:45 148 查看

1. Classic Networks

第二周的课程首先介绍了几种经典的卷积神经网络模型:

LeNet-5

AlexNet

VGG

1.1 LeNet-5



1.2 AlexNet



1.3 VGG-16

VGG模型把所有的卷积层和池化层的大小都固定了,因此结构简单,但是参数量巨大。



2. ResNets

使用Residual block能够帮助训练非常深的模型。

2.1 Residual block

将某层的输出跨过若干层直接喂给指定层作为输入的一部分。



一般的神经网络模型随着层数到一定程度,训练误差反而会开始增大,如下图左下角所示;而ResNet能够避免该情况的产生,即层数越多,训练误差总是在下降。



2.2 Why do residual networks work?

ResNets能够保证下一层的预测效果至少不会比前几层差;而普通深度神经网络模型往往很难做到这点。



2.3 ResNet 模型

模型例子:



2.4 1x1Convolutions

1x1Convolutions将输入对象的相同位置的所有层的元素求和并乘以一个固定值。



1x1Convolutions能够在不影响高、宽的情况下有效地改变原对象的层数。



2.5 Inception Network Motivation

为什么使用Inception Network?

Inception Network将若干种卷积层和池化层的结果合并在一起,让算法自己去挑选合适的结构。



The problem of computational cost

增加一个常规卷积层,往往会使模型的参数量变得巨大。如下:



而在常规卷积层前添加一层1x1Convolutions,能够有效降低参数量(从120M到12.4M)。



2.6 Inception Network

Inception module



Inception Network

Inception Network 由多个Inception module组成。



3. 应用ConvNets的建议

3.1 积极使用开源程序

因为即使是一名优秀的博士生也很难完全从头重复文献中结果,也使用开源程序将大大节约时间

3.2 迁移学习

从头训练一个模型常常耗时又费力,然而使用别人训练好的模型的权重作为你初始模型的权重,往往效果不错。

当你的训练集样本较少时,尤其应当考虑迁移学习。如下:



当训练集样本较大时,可以考虑只冻结前面若干层。如下:



当训练集样本足够多时,可以考虑重新训练所有的权重,只是将初始权重设置为已有模型的权重。如下:



3.3 Data Augmentation

当训练集样本不够时,可以通过对已有图片进行变形来增加训练集样本量。

Common augmentation method



Color shifting



3.4 State of Compute Vision

Data vs. hand-engineering

当样本量足够多,可以只使用简单的算法,并且不需过多的手工处理特征;当样本量较少时,往往需要更多地手工处理特征。

吴老师认为相对于机器视觉任务的复杂度,现有的数量量还远远不够,因此对于大多数图像识别任务,仍然需要较多的hand-engineering.



Use open source code



注:如无特殊说明,以上所有图片均截选自吴恩达在Coursera开设的神经网络系列课程的讲义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: