吴恩达《深度学习》四、2.3 残差网络 | 个人笔记

ResNets(残差网络)

本节课需要学习的是 skip connection(跳远连接)

跳远连接可以让我们能够训练非常深的网络,甚至超过100层


1. Residual block(残差快)

1.1 Plain Networks的原理

一般神经网络的信息传递如下:

      吴恩达《深度学习》四、2.3 残差网络 | 个人笔记_第1张图片

       (Figure 1.1) 一般神经网络部分信息传递过程

大体需要经历的过程如下:
a [ l ] → L i n e a r → R e L U → a [ l + 1 ] → L i n e a r → R e L U → a [ l + 2 ] a^{[l]} \quad → Linear \quad→ ReLU \quad → a^{[l+1]} \quad → Linear \quad → ReLU \quad → a^{[l+2]} a[l]LinearReLUa[l+1]LinearReLUa[l+2]

公式推导如下:
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 ] ) z [ l + 1 ] = W [ l + 1 ] a [ l ] + b [ l + 1 ] z^{[l+1]}=W^{[l+1]} a^{[l]}+b^{[l+1]} \quad a^{[l+1]}=g\left(z^{[l+1]}\right) \quad z^{[l+2]}=W^{[l+2]} a^{[l+1]}+b^{[l+2]} \quad a^{[l+2]}=g\left(z^{[l+2]}\right)z^{[l+1]}=W^{[l+1]} a^{[l]}+b^{[l+1]} \quad 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])z[l+1]=W[l+1]a[l]+b[l+1]


1.2 Residual block的结构

但是此处的残差网络并非直接将 a[l]放入ReLU中得到的就算是a[l+2]了,而是将在将z[l+2]投入ReLU函数的前提下(main path),将a[l]也投入进去(skip connect /short cut),得到 a [ l + 2 ] = g ( z [ l + 2 ] + a [ l ] ) a^{[l+2]}=g\left(z^{[l+2]} + a^{[l]}\right) a[l+2]=g(z[l+2]+a[l])

综上,残差块是由 主路径跳跃连接 二者共同组成的,如下图:
     

吴恩达《深度学习》四、2.3 残差网络 | 个人笔记_第2张图片

        (Figure 1.2) 残差块的组成


2. ResNets(残差网络)

2.1 残差网络的组成

对于未添加残差块的网络叫做 Plain Networks(普通网络)

而由一个个残差块组成的网络就是ResNets(残差网络),如下图:
     

吴恩达《深度学习》四、2.3 残差网络 | 个人笔记_第3张图片

        (Figure 2.1) 残差网络是由一个个残差块构成的
图中的中间部分就是main path, 上面的蓝色箭头为skip connect,下面每一个蓝线包含的就是一个Residual block(残差块)


2.2 残差网络的大体效果

Plain Networks的网络随着层数的增加,在一定程度后结构会变得十分的臃肿,以至于误差没能 继续降低 反而在 持续增加(因为梯度消失和梯度爆炸)

ResNets的网络可以有效地解决这个问题,让网络的层数可以达到上百层

     

吴恩达《深度学习》四、2.3 残差网络 | 个人笔记_第4张图片

        (Figure 2.2) PlainNets VS ResNets随着层数增加效果图


本次所提及的论文为:
He et al., 2015, Deep Residual Learning networks for imagerecognition

你可能感兴趣的:(吴恩达,深度学习)