随着神经网络的发展,网络的深度逐渐加深(更深的层数以及更小的感受野,能够提高网络分类的准确性(Szegedy et al.,2014;Simonyan & Zisserman,2014)),网络的训练也就变得越来越困难。Highway Networks就是一种解决深层次网络训练困难的网络框架。
以下这几篇文章证明了优化深层神经网络十分困难(写文章的时候肯定用得到,先记下):(Glorot & Bengio,2010;Saxe et al.,2013;He et al.,2015,) (Simonyan & Zisserman,2014; Romero et al., 2014) (Szegedy et al.,2014; Lee et al., 2015)。
Highway Networks:一种可学习的门限机制,在此机制下,一些信息流没有衰减的通过一些网络层,适用于SGD法。
公式:
传统的神经网络前项传播(忽略偏置和层索引):
(1)
H为非线性函数,W权重,x输入,y输出。
Highway
Networks的前项传播:
(2)
T为转换门(transform
gate),C为携带门(carry gate)(不知道这么起名对不,反正很难听,哈哈),
C=1-T,即
x,y,
H(x,WH)andT(x,WT)的维度必须相同,不够补零。
最后得到
该层的雅可比变换为:
这样一部分数据进行处理,一部分直接通过。最后的输出公式就是
转化门T定义,WT 为权重矩阵,bT 为偏置。
整个结构差不多就是这样,在过深的网络里,如果每个数据流都进行所有的处理,加大计算复杂度和反向传播的难度,所以就需要对数据进行处理,在某些网络层,数据不进行处理(个人理解啊)。
接下来就是实验
相对于深层神经网络,在相同的结构与深度的条件下,Highway
Networks与一般的网络进行对比,结果为下图
从图上可以看到,当深度为10的时候,Highway
Networks的结果并不理想,但20层以及以后,结果显而易见,远远好于一般的网络。
相对浅层神经网络,作者将Highway
Networks与Fitnet(文章地址: http://arxiv.org/abs/1412.6550)网络进行对比,数据集为CIFAR-10,效果如下:
从上表看出,在浅层网络,Highway Networks的的效果也还不错。
caffe 代码 https://github.com/flukeskywalker/highway-networks
快12点了,就到这吧,有些精华的东西可能表达的不准确,大家多提意见,睡~
参考文章:Highway Networks : http://arxiv.org/abs/1505.00387
来源:CSDN
作者:后脑勺
链接:https://blog.csdn.net/l494926429/article/details/51737883