神经网络的深度对模型效果有很大的作用,可是传统的神经网络随着深度的增加,训练越来越困难,这篇paper基于门机制提出了Highway Network,使用简单的SGD就可以训练很深的网络,而且optimization更简单,甚至收敛更快。
1.传统的神经网络
传统的神经网络对输入使用一个非线性变换 H 来得到输出output,公式如下:
其中x表示网络输入,WH表示网络权重。
2.Highway Network
Highway Network基于门机制引入了transform gate T 和carry gate C ,输出output是由tranform input和carry input组成。
简单理解,可以把C设置为1-T,式子中各向量维度相同,公式变为:
特别的,原式子可变换成以下形式:
雅可比变换得到
可以看到Highway Network其实就是对输入一部分进行处理(和传统神经网络相同),一部分直接通过。
其中T函数可设置为,一般设置为负值(例如-1,-3),使得网络初始的时候更偏向carry behavior. 还有一个比较有意思的是 , 公式(4)永远都不会是True, 这就使得highway network的behavior介于transform和carry之间。
在实验中还发现将 设置成负值,即是网络层数很深, 用各种各样的方法初始化用不同的激活函数都可以让网络高效的学习。
论文对比了不同网络深度Highway Networks与普通神经网络的区别。
可以看到,随着网络深度的逐渐增加,Highway Networks能够更好的optimize,收敛也更快了,整体来看高速网络最大的意义在于:跳过没有用的层,加快信息传递,而这种没有用的层在深度网络和简单任务中是非常常见的。