残差网络是一种深度神经网络体系结构
,旨在解决深层网络训练时的梯度消失和梯度爆炸问题
。它通过引入残差
或跳跃连接来允许网络跨层直接传递信息
,从而使得网络更加容易训练且提高了网络性能。
在传统的神经网络中,输入数据通过一系列的层逐层传递
,每个层都将数据进行线性变换和非线性变换
。而在残差网络中,每个网络块再加上未经过变换的输入作为输入,称为“恒等连接(identity connection)”
。这意味着输出可以直接添加到输入中,以产生残差。这个残差能够传递到后面的层中,使得网络更加容易优化和训练。
例如,假设我们有一个输入x需要经过两层变换(每层都采用ReLU激活函数),如下所示:
y = ReLU(W2 * ReLU(W1*x))
现在,我们在每个块中添加一个跳过连接,得到以下残差块的形式:
y = ReLU(W2 * (ReLU(W1*x) + x))
这里,(ReLU(W1*x) + x) 就是输入x和网络块的输出之和,意味着我们从前面的输出上“跳过”了一层
。通过这样的跳跃连接,我们能够将信息直接跨越网络层级,防止梯度在一些深层神经元上消失
,从而加快训练速度并提高特征提取能力。