Deep Learning Specialization 4: Convolutional Neural Networks - Week2

mac2024-02-19  54

1. Case studies

1.1 Classic Networks1

LetNet-5/AlexNet 比较久远,其中一些方法现在可能不用了,略过。

VGG-16 值得关注,因为它将网络结构变得简单——层数更多,但是组合单一。

统一的参数:

CONV = 3 × 3 3 \times 3 3×3 filter, s = 1, padding = “same”MAX-POOL = 2 × 2 2 \times 2 2×2, s = 2 (输入减小一半)

一共有16层网络有参数需要学习,合计138M参数,整个过程满足输入的 n H ↓ n_H \downarrow nH, n W ↓ n_W \downarrow nW, n c ↑ n_c \uparrow nc的规律。

猜测:可能是低级特征比较少,边缘检测只需要少量filter就可以,而高级组合特征更复杂,需要更多。

1.2 Residual Networks (ResNets)

增加了一个"short cut/skip connection"(可能看图未必有公式清晰):

z [ l + 1 ] = W [ l + 1 ] a [ l ] + b [ l + 1 ] a [ l + 1 ] = g ( z [ l + 1 ] ) z [ l + 2 ] = W [ l + 2 ] a [ l + 1 ] + b [ l + 2 ] a [ l + 2 ] = g ( z [ l + 2 ] ) ⇒ g ( z [ l + 2 ] + a [ l ] ) \begin{matrix} z^{[l+1]} = W^{[l+1]}a^{[l]} + b^{[l+1]} \\ a^{[l+1]} = g(z{[l+1]}) \\ z^{[l+2]} = W^{[l+2]}a^{[l+1]} + b^{[l+2]} \\ a^{[l+2]} = g(z^{[l+2]}) \Rightarrow g(z^{[l+2]} + a^{[l]}) \\ \\ \end{matrix} z[l+1]=W[l+1]a[l]+b[l+1]a[l+1]=g(z[l+1])z[l+2]=W[l+2]a[l+1]+b[l+2]a[l+2]=g(z[l+2])g(z[l+2]+a[l])

可以让网络更好的学习到Identity,能够有效解决梯度vanish/explode的问题,从而训练更深的网络。

比如,如果 W [ l + 2 ] W^{[l+2]} W[l+2]出现了梯度消失,那么 a [ l + 2 ] a^{[l+2]} a[l+2]至少也能学会 a [ l + 2 ] = a [ l ] a^{[l+2]} = a^{[l]} a[l+2]=a[l]

网络分为两部分:

Identity Block: 有skip connection的基本模块

Convolutional Block: 输入和输出不匹配时使用

1.3 Inception Network

1 × 1 1\times1 1×1 Convolutions:用于 n c n_c nc的压缩,大大减少计算量

网络中的一个基本单元如下2

所有的不同大小的filter都是做的same padding, n H n_H nH n W n_W nW保持不变在做 3 × 3 3\times3 3×3 5 × 5 5\times5 5×5的卷积之前先利用 1 × 1 1\times1 1×1卷积对channel进行压缩,减少后续的计算量pooling做的是特殊的same pooling,再接 1 × 1 1\times1 1×1卷积对 n c n_c nc进行压缩将4种结果连接在一起,形成下一级的输入直接将模块叠加起来,避免用户去手工设计网络,常用节点都已经包含在这一个大模块中了。

2. Practical advicse for using ConvNets

Use architecture of networks published in the literature

Use open source implementations if possible (复现并不一定容易)

Use pretrained models and fine-tune on your dataset (Transfer Learning)

锁住网络的参数,重新训练输出层(比如softmax层),来完成自己的工作。


本节图片均来自Coursera课程 week 2 ↩︎

inception block图片来自 A Simple Guide to the Versions of the Inception Network ↩︎

最新回复(0)