解释残差结构的有效性

声明:文章目的只是方便自己之后回顾,无意侵权,若有不合适请留言,会尽快删除。

1. 举例讲解残差单元为什么有效。

来自知乎链接 :【模型解读】resnet中的残差连接,你确定真的看懂了?

首先大家已经形成了一个通识,在一定程度上,网络越深表达能力越强,性能越好。
不过,好是好了,随着网络深度的增加,带来了许多问题,梯度消散,梯度爆炸;在resnet出来之前大家没想办法去解决吗?当然不是。更好的优化方法,更好的初始化策略,BN层,Relu等各种激活函数,都被用过了,但是仍然不够,改善问题的能力有限,直到残差连接被广泛使用。

在反向传播过程中,一旦其中某一个导数很小,多次连乘后梯度可能越来越小,这就是常说的梯度消散,对于深层网络,传到浅层几乎就没了。但是如果使用了残差,每一个导数就加上了一个恒等项1,dh/dx=d(f+x)/dx=1+df/dx。此时就算原来的导数df/dx很小,这时候误差仍然能够有效的反向传播,这就是核心思想。

我们举个例子直观理解一下:
假如有一个网络,输入x=1,非残差网络为G,残差网络为H,其中H=F(x)+x

有这样的一个输入输出关系:

在t时刻:

非残差网络G(1)=1.1,

残差网络H(1)=1.1, H(1)=F(1)+1, F(1)=0.1

在t+1时刻:

非残差网络G’(1)=1.2,

残差网络H’(1)=1.2, H’(1)=F’(1)+1, F’(1)=0.2

这时候我们看看:

非残差网络G的梯度 = (1.2-1.1)/1.1

而残差网络F的梯度 = (0.2-0.1)/0.1

因为两者各自是对G的参数和F的参数进行更新,可以看出这一点变化对F的影响远远大于G,说明引入残差后的映射对输出的变化更敏感,输出是什么?不就是反应了与真值的误差吗?

所以,这么一想想,残差就应该是有效的,各方实验结果也证明了。

2. 解释了什么叫做神经网络的退化

知乎链接 :残差网络解决了什么,为什么有效?

神经网络的退化:在神经网络可以收敛的前提下,随着网络深度增加,网络的表现先是逐渐增加至饱和,然后迅速下降

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注