最近在家里听斯坦福CS231n的课程,很系统的学习了一些深度学习的知识,很受启发。其中,我对深度学习中的梯度流的概念印象深刻。讲到RNN时,提到LSTM能够解决普通RNN的梯度消失和梯度爆炸的问题。LSTM包含两个隐状态,分别为单元状态和隐藏状态。其中,单元状态是梯度传播的主要路径。上一时刻和下一时刻单元状态的传播通过一个加法和一个逐元素的矩阵乘法操作。这两个操作降低了计算复杂度,同时也能避免梯度消失和梯度爆炸问题(主要是由于forget gate是变化的,避免梯度反复乘以相同的权重矩阵)。因此,该课程提到单元状态中的加法和逐元素乘法可为梯度提供一条类似ResNet的梯度高速公路。从某种程度说,通过加法连接和乘法门管理梯度流是很有用的。因此,我特意看了高速公路网络的论文《Training Very Deep Networks》,并且总结一下这篇论文。
普通神经网络:
highway networks:
其中,T(x)和C(x)分别对应transform gate和carry gate。
简化的highway networks: