通过上图可以发现多分支融合的网络形式可以近似很多潜在网络的集成过程,区别是没有中间的信息交互,只是他们共享对应层的网络参数。通过10组不同深度的网络结构实验发现,这样一个共享参数的集成网络与带信息交互的深度融合网络性能表现很相似。 深度融合网络与集成网络的表现类似 二、深度带来更多组成网络 下一步就可以利用集成学习中的一些思路来指导我们对该类型的深度融合网络进行剖析。首先是研究其潜在的基础网络数目,很明显上面图中融合3次的网络能够组合8个基础网络,即2^3个。那么我们可以发现增加融合次数可以提升基础网络的组合数目。那么像ResNet、Highway、Inception等形式的网络,增加“深度”带来的一个影响就是增加了其潜在基础网络的组合数目(Ensemble Size)。 不同融合次数会得到不同数目的组合网络(路径) 我们也通过实验在不同深度的网络结构上验证了:增加组合数目能像传统Ensemble理论中增加Ensemble Size一样提升整体性能。 较多的组合网络数目能够取得更好的结果 我们也通过实验在不同深度的网络结构上验证了增加组合网络数目能够提升整体性能,这也与传统Ensemble理论中增加Ensemble Size能提升性能的结论相吻合。我们可以看到ResNet在增加深度的同时,极大地增加了组合数目,这也是其性能优异的原因之一。 三、深度影响整体性能 我们继续研究每一个基础组合网络,并且探索在深度融合的过程中其相互之间会产生怎样的影响。对比每个网络单独分开训练得到的模型,我们发现,深度融合网络里较深的组合网络性能得到了提升,但较浅的组合网络性能反而下降了。我们猜想在训练过程中,由于浅层的网络容易收敛,它们能够帮助深层的网络进行优化。但深度融合网络的各个潜在的组成网络是共享参数的,极深的网络可能会影响较浅网络的求解空间与难度,从而产生相互影响性能往中间靠拢的现象。 每一个单独的组成网络行为分析 既然我们认为最终的表现是一种集成的近似,那么我们是否可以着手寻找更优的组合网络以达到整体性能的提升?通过上述组合网络之间相互影响的启发,我们认为极深的网络会产生“拖后腿”的效果,反而较深但又不是特别深的“中间”网络会对结果影响比较大。上图的实验结果也验证了我们的这个想法:(a)显示了每个组成网络由于共享参数导致的性能变化;(b)显示了每个组成网络对整体网络(ensemble)的相对贡献程度。 我们依然需要浅层网络来帮助训练较深网络,而且实际设计神经网络的时候很难做到只保留中间深度的网络结构。那么一个折中的方案是把这里面最深的组成网络去掉,这样看看对结果会产生什么影响。 去除最深的组成网络(重新训练或只是测试时候去除) 上图三个方法的实验结果表明,去除极深的组成网络不会对整体性能产生太大影响,有时候反而会提高最终结果。 去除极深的组成网络不会影响太大,大部分情况下反而会提升性能 四,提出新的方法 基于上述观察,我们认为一个好的网络结构应该包含如下两个特性:足够多的潜在网络数目,以及足够好的组成网络。最简单的策略是去掉“拖后腿”的极深网络,将其变成“中间”深的组成网络。下面是我们提出的方法: 基于ResNet的形式,我们提出新的网络结构(b)和(c) (责任编辑:本港台直播) |