您的位置:首页 > 理论基础 > 计算机网络

深度残差网络的一波两折

2017-12-10 10:55 260 查看
  最近拜读了何凯明大神的深度残差网络,一方面惊讶于其对网络深度的拓展,一方面又被Andreas等人的挑战思路所震惊,残差网络并不是扩展深度,而是增强了网络多样性。果然,科学探索的路上权威不可迷信,真理总是被不断发掘。现梳理下残差网络的思路、工作原理的讨论、残差Block的变化。

Residual Network

  16年的时候,深度残差网络横空出世,将神经网络的深度由百层拓展到了千层量级,并且获得了N多竞赛奖项,一时风头无两。那么问题来了,它是怎么将深度搞得这么深的?背后又是什么原理?为什么会有效呢?

What is ResNet

  假设,层间需要学习的隐藏映射为H(x),残差映射表示为F(x)=H(x)−x,将原本需要学习的映射H(x)变为残差函数F(x)+x。这里的残差定义: 输出 - 输入 = 残差

  残差单元示意图:



  图中右侧skip-connect为identity mapping(output≡input)。上图只是一种残差单元类型,后面会补充其他的类型。由这些类似的block组成的网络,就是残差网络

Residual idea inspired by What ?

  残差网络的思想是受到什么启发才得来的呢?这是我很好奇的地方。

  已知,一个浅层网络,可以通过叠加恒等映射(yl≡xl)的方式得到深层网络,并且其效果不会比原浅层网络弱才对。但是,加大网络的深度,训练&测试误差却随之增加,说明是没有训练好模型,而并不是overfitting带来的问题。该现象如下图。



  猜测,是不是网络对恒等映射更难以学习,如果每层并行加上恒等映射,会不会更好呢?于是残差的思路就有了,在单/多层间并行加个恒等映射。

why it work ?

  对于残差网络为什么在深层下有明显效果提升,有两种解释,一个是原作者的数据流解释,一个是挑战者的集成思路解释。后者对残差网络的性质做了更深入的研究,刷新了大家对残差网络的认识。

[b] Explanation One :: Data Dirtectly Flow [/b]

  这个解释,认为数据在残差网络中有两套流转路径,一个是skip-connect(恒等映射)所表示的直传路径,一个是残差部分所表示的非线性路径。

  1)残差网络的数据流形式。

    简化网络,去掉累加后的激活函数ReLU(下层输入直接等于本层输出),则整个网络可表示为:xl+1=xl+F(xl,wl)     从L层逐层拆解xl到l层得到:xL=xl+∑L−1i=lF(xi,wi)

    整个网络从输入到输出表示为:y=x0+∑L−1i=0F(xi,wi)

    从上式可以看到,任意两层[l,L]间,输入xl是可以直达xL的。

  

  2)数据流的损失情况

    重点来了,损失函数E对xl求偏导得:∂E∂xl=∂E∂xL∂xL∂xl=∂E∂xL[1+∂∂xl∑i=lL−1F(xi,wi)]    上式能得到什么有用信息,L层的导数可以从L层直达l层,构成l层偏导的一部分。

    疑问:为什么是对x求偏导,为什么不是对w求偏导?

    回答:对x求偏导,表示w的变化率,上式表示有w变化恒为1的传播路径,该路径可以保证数据的无损传输,不管是正向传播还是反向传播,都可以在该路径上无损的传播。(前面的系数∂E∂xL是固定的,不会随着深度而放缩,不用担心)

    假设skip-connect不是恒等映射yl≡xl,而是yl=λlxl,又会怎么样呢?那就不是1,而是一个不确定的导数乘积∏L−1i=lλi(当然后半部分也在变的,但这里只关注前部分,也是疑问的地方),要么放大要么缩小,反正不是很友好的1。对数据的传输就是各种可能都有了。其他更复杂的函数,就更是不知怎么放缩了,谁知道呢。

[b] Explanation Two :: Ensemble By Construction [/b]

  上面的解释,说不清楚的是非1的那部分权重变化率,如何影响整个网络的。

  很快Andreas对ResNet的深度进行质疑,声明ResNet并没有解决深度问题,而是将相关浅层网络集成的网络,其网络深度并没有增加,而是增加了网络的多样性(multiplicity),并给出证明,同时说明了残差网络的工作原理,对其真正起作用的网络部分进行了分析。牛人一个,真汉子。

  1)残差网络结构拆解,是输入多路并行的集成结构。

    将3层残差网络拆开如下:

    y3=y2+f3(y2)

    y3=[y1+f2(y1)]+[f3(y1+f2(y1))]

    y3=[y0+f1(y1)]+[f2(y0+f1(y0))]+[f3(y0+f1(y0)+f2(y0+f1(y0)))]



  2)损伤研究,测试时具有集成表现。

    删掉残差网络的某些部分,对网络在测试集上的表现无明显影响,这是集成结构的特点。

    如何删除某个残差模块?将其残差部分屏蔽掉,只留其skip-connect,相当于这个block变为恒等映射,这个skip所在的block也就不起作用了。

    整个残差网络从输入==>输出的路径数量为2L条,路径长度(path-length)表示该路径上的残差模块个数。指数基数2,是由于每个节点都有两条路可走。

    每删除d个残差模块,则路径数据降低为2L−d条,少量删除无明显影响,但是随着删除残差模块越来越多,测试误差也随着变大。

  

  3)残差网络中,到底什么在起作用?梯度消失到底有没有被解决掉?

    这里是论文最精彩的部分,前面都只是开胃的说明。以54层残差网络为例。

    path-length的分布,是Binomial-distribution,怎么样,能想到吧。

    发现: 95%的路径,其上残差模块个数在19~35之间。

    在串行网络中,梯度是受到串行链路的长度影响的。残差网络中的梯度到底有没有消失呢?

    Andreas设计了一种方法,能描述 残差网络的梯度与path-length的关系。一方面,可以将梯度表示出来,一方面与path-length结合到一起,简直帅到没朋友

    方法如下:

    1. feed data forward propagate.

    2. during back-propagate,

      随机选择k个Residual Block,构成一条path-length=k的路径;

      对这条路径,只在残差部分传播误差;

      对其余的L-k个Block构成的路径,则只在skip-connect中传播。

    3. 计算反馈到input的梯度。

    4. 多次输入数据,多次采样,求每个k值下的梯度平均值。

    发现: path-length为[5,17]的路径集,只占总路径的0.45%,却贡献了绝大部分梯度。



    疑问:随机采样k个Residual Block,不会影响残差网络所描述的网络路径结构吧?

    回答:不影响,因为每个Residual Block都有skip-connect,相当于每个Residual Block都可以任意相邻。

    残差网络中,真正起作用的是effective path,那些短些精悍的路径,Residual Block不多,27(Bin-dis的均值)左,相对浅的网络。

    为更有力的说明(最后致命一击),作者又加了个试验,每次训练的时候,随机挑23个Residual Block训练,结果证明,只训练理论上的effective path,整个网络的效果不比整体训练若,还更好(5.96% vs 6.1% 尴尬脸)。

    至此,残差网络被解释地更透彻:

    1)残差网络并不是真正的深度网络,而是浅层网络的集成网络(ensemble by construction)。

    2) 没有解决掉梯度消失问题,长路径上仍然存在梯度消失现象。

    3)真正起作用的,是相对浅层的网络。

Variant of Residual module

  对残差单元的结构设计,会影响性能么~答案,是的。下面看下几个网络结构。

  激活函数ReLU,虽然在正值部分无影响,但是人为约束了负值。将其从post-activation变形到pre-activation怎么样?答案,OK。虽然这种变形不对称,但是对性能有提升。见附图。

思考 与 小结

  一,集成的形态:

    1)跟dropout相比,dropout更近似于在单条路径上,通过训练来达到网络结构集成的效果(ensemble by training)。

    2)而残差网络,则是在网络结构本身,就是集成的结构(ensemble by construction)。

    3)随机森林,是在结构本身是集成的,并且训练输入对特征随机采样,也在某种程度上达成训练的ensembel。

    4)随机深度,这个方法稍后再补充。

  二,网络路径的表达:

    1)残差网络中,每个节点有均等机会的两条路可走。

    2)HighwayNet中,在每个节点的两条路上,有个门函数控制。

    3)如果多个其他选择,是不是可以多路径,某些路径具有决定性判别权重。人对初始新生事物的认知,是基于单个样本的,并无批量样本可供学习。

  三,残差网络的理解:

    1)残差网络不是真正意义上的深层网络,而是浅层网络的集成。

    2)网络深度问题仍然是未来的开放研究课题。

Reference

Deep Reisdual Learning for Image Recognition

Identity Mappings in Deep Residual Networks

Residual Networks are Exponential Ensembles of Relatively Shallow Networks

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐