首页 人工智能

训练深层神经网络时,如果深度特别大,其实是很难训练下去的,因为会遇到梯度消失和梯度爆炸的问题。残差网络可以帮助我们更好地训练深层神经网络。

一、残差块

在这里插入图片描述
在神经网络的两层中,会执行如下运算过程(主路径)
在这里插入图片描述
如果将$a^{[l]}$拷贝到最后一个linear之后,ReLU之前,这个路径称作是捷径(shortcut):
在这里插入图片描述
有时候这个捷径(shortcut)也称作远跳连接(skip connection)
在这里插入图片描述

通过这种方式,计算过程有一些改变,如下所示。
在这里插入图片描述

二、残差神经网络

首先给出一个普通神经网络
在这里插入图片描述
要使它变成残差神经网络,就是加上远跳连接。
每两层增加一个捷径,构成一个残差块,残差块组合在一起形成一个残差网络。
在这里插入图片描述
残差神经网络在训练深层神经网络时,有效预防了梯度爆炸/消失的问题,也解决了网络结构臃肿的问题,相比普通神经网络效果更佳。
在这里插入图片描述

三、为什么残差网络如此有效?

在这里插入图片描述
权重w和偏差b都取0的时候,$a^{[l+2]}=a^{[l]}$,这种恒等式不会影响到网络的效率,通过那两层还可以学习到一些特征信息,反倒可以提高网络效率。
值得注意的是$z^{[l+2]}$和$a^{[l]}$应该具有相同的维度才能实现加法运算!在ResNet中使用了许多same卷积方式,所以使得$a^{[l]}$维度可以等于输出的维度,从而实现了远跳连接。
在这里插入图片描述

四、残差网络作图像识别

普通神经网络
在这里插入图片描述
残差神经网络
在这里插入图片描述
每两层卷积就添加一个捷径形成一个残差块,从而形成一个大型的残差网络。由于大量使用了same卷积方式,所以维度得以保留,从而实现远跳连接中的同纬度相加过程。



文章评论