0%

highway network

identity mapping in resnet

$$
y=H(x,W_H)+x
$$

Highway

所谓Highway网络,无非就是输入某一层网络的数据一部分经过非线性变换,另一部分直接从该网络跨过去不做任何转换,就像走在高速公路上一样
而多少的数据需要非线性变换,多少的数据可以直接跨过去,是由一个权值矩阵和输入数据共同决定的。

$$
y=H(x,W_H)\bigodot T(x,W_T)+x\bigodot C(x,W_C)
$$

highway就是在resnet的基础上增加了两个gate。即$T$: transform gate,$C$: carry gate。

为了简便起见,有时候令C=1−T,1 代表了维度和T 一样长的向量。

如果我们想更改x的维度从A变成B的话,一种方法是采用zero-padding和下采样的方法,或者是引入一个维度为A*B的变换矩阵,使每次都乘上这个矩阵。

主要解决的是多层深度神经网络的训练收敛问题,即使层数很多也可以使用简单的方法比方说 backpropogation来进行训练,保证合理的迭代范围内收敛,而传统的网络是很难保证收敛的。

motivation

A highway layer can smoothly vary its behavior between that of a plain layer and that of a layer which simply passes its inputs through.

也就是说Highway也就是让输入数据的一部分变换,另一部分直接通过,相当于整体上来讲在这两者的效果中选了一个均衡。

从广义的角度来说,Highway更像是一种思想,它不但可以用在全连接网络中,也可以用在卷积神经网络中,原文里说:“Convolutional highway layers are constructed similar to fully connected layers. Weight-sharing and local receptive fields are utilized for both H and T transforms. We use zero-padding to ensure that the block state and transform gate feature maps are the same size as the input.”。

其实深度残差网络和Highway网络这两种网络结构都能够让一部分的数据可以跳过某些变换层,而直接到后面的层中去,只不过Highway网络需要一个权值来控制每次直接通过的数据量,而深度残差网络就直接让一部分数据通到了后面。从大量的实验中,我感觉这两种网络只有在很深的场景中才能发挥出“威力”,如果本身网络层数较浅,勉强使用这两种结构是很难得到好的结果的。

highway network很大程度借鉴了LSTM的长期短期记忆的门机制的一些思想,使得网络在很深都可以学习!

对比

ResNet可以被看作是Highway Network的一个特例。

ResNet并不是第一个利用shortcut connection的,Highway Network[5]引入了“gated shortcut connection”,其中带参数的gate控制了shortcut中可通过的信息量。类似的做法也存在于LSTM[6]单元里,在LSTM单元中也有一个forget gate来控制着流入下一阶段的信息量。因此,ResNet可以被看作是Highway Network的一个特例。然而实验结果显示,Highway Network的表现并不比ResNet要出色。这个结果似乎有些奇怪,因为Highway Network的解空间(solution space)中包含了ResNet,所以它的性能表现按理来说应该要比ResNet好的。这就表明保持这些“梯度高速路”的畅通可能比追求更大的解空间更重要。

照着这一想法,文章的作者们进一步完善了残差块,并且提出了一个残差块的pre-activation变体,梯度可以在这个变体中通过shortcut无阻碍地传播到前面的任何一层。实际上,利用[2]中的原始残差块,训练后1201层ResNet的性能比110层的ResNet的性能要差。

参考

  • https://www.jianshu.com/p/e96b473926ed
  • https://blog.csdn.net/guoyuhaoaaa/article/details/54093913