【VALSE前沿技术选介16-15期】
http://mp.weixin.qq.com/s?__biz=MzA3Mjk0OTgyMg==&mid=503639365&idx=1&sn=66b40d56c04d4a644d9c4a50631cba67#rd想必大家对 ResNet 和其火爆程度都非常了解。ResNet 被提出后,有不少相关和跟进工作。但其中,大部分工作都是集中在对 ResNet 的层数(深度)理论分析和如何将其更 generalized 上。今天要为大家推荐的一篇论文,则有点反其道而行之的味道——ResNet 的最大优势不仅并不在于其可以训练很深的网络(1001层),而且此深度有时是有害处的。这篇论文 提出了 Wide Residual Network (WRN),与 original ResNet 的 thin and deep networks 形成对立。
首先我们来介绍为何 wide network 可能比 thin and deep network 具有更强的 representation power,这也是这篇论文的 motivation & observation。第一,就如 ResNet generalized 版本的 Highway Network 中提到的一样,一味地追求 deep network,会导致 training 不到位,使得出现 deminishing feature reuse problem——即使很 deep,也只有少数 residual block 学到了有用的 feature,大部分都没激活没发挥作用。而我们希望的是,stacked 起来的 residual blocks 能一起发挥功能,学到不同的 representations。第二,作者也指出,以前比较成功的 Inception 和 VGG 网络也都是比较 wide 的 network。第三,wide network 会更加有效地利用 GPU。基于以上几点,这篇论文就想去探索,有没有可能我们通过 widen residual block 的方式(而不是 deepen)去更有效的 training networks 呢?答案是可以的。这是这篇论文 的第一个贡献。他们提出了几种 widen 的方式,并探究了合理的 width/depth ratio。这是论文 的第二个贡献。
这时候,就出现了一个问题。以前不是总有工作表面,wide block 或者 wide networks 是容易 overfitting 么?而之前 ResNet 的工作 中又发现把 dropout 直接放在 residual block 里很多时候是有损 performance 的。那么这篇论文 提出的 WRN 该怎么解决这个问题呢?其作者一改以往的把 dropout 加在 top layers 的方式,成功把 dropout 引入在了 convolutional layers 之间,从而解决了 WRN 可能存在的 overfitting problem。这是论文 的第三个贡献。
下面我们来具体看一下作者提出了哪些 widen 的方式,也就是具体的 WRN 的 block 是什么样子的。上图的 (a) 为原始 ResNet 中的 block,(b) 为 ResNet 中提出的一种 bottleneck 结构(在论文 中并没有进行继续探索)。(c) 和 (d) 则是这篇论文 提出的两种 wide block 结构,有无 dropout 是其区别。(c) 和 (a) 的主要区别其实就在于是否有更多的 feature planes,也就是是否 convolutional layers 更 wide。所以,(c) 这个 basic wide block 就表示为一个 l=2, k=1 的 2个convolutional layer 每个 convolutional 只有 1个 feature的结构单元。所以这个 factor k 也就控制着每个 block 的 width。作者也把 width k=1 的 block 称作 thin residual block,k>1 的称为 wide residual block。
有了这个基础,作者重点就去探索了,到底 width vs. depth 对于 residual block 的 representation power 的影响。因为 widen block 会增加参数,所以作者控制了 width/depth ratio,去保证一个比较公平地比较。这个实验是整篇论文最重要的实验,结果见 Table 4 和 Table 5(以下只贴 Table 5)。从这些实验结果,可以得出几个重要结论:
[*]固定 depth,增大 width(widen network),都会提高 performance。
[*]在一定范围内,增大 depth 和 width,也会一直提高 performance。
[*]Table 5 中,ResNet-1001 和 WRN-40-4 几乎拥有同样的参数大小,也取得了几乎同样低的错误率。说明 depth 对于 representation power 的影响比较有限。与此同时,继续增大 with,WRN-28-10 甚至成功 train 出了三倍于 ResNet-1001 参数空间大小的网络,并取得了新的最低错误率。
[*]作者又额外提供了 computational efficiency 方面的实验数据。发现尽管 ResNet-1001 和 WRN-40-4 表现相仿,但是后者的 training 会比前者快8倍。即使是表现最优(参数空间远大于 ResNet-1001)的 WRN-28-10 也会快1.6倍。
这些结论表明:对于 residual block 或者说 residual network 来讲,不仅 width 在 generalized representation power 上有比 depth 更强的作用,甚至在 efficiency 上也能有所助益(从 GPU 的角度)。
除了上述内容,这篇论文在总结过去工作方面也一针见血。其工作也是开源的。有兴趣的同学快去动手看看吧。
Sergey Zagoruyko and Nikos Komodakis. "Wide Residual Networks". 2016. arXiv preprint: arXiv:1605.07146. Rupesh Kumar Srivastava, Klaus Greff, Jürgen Schmidhuber. "Highway Networks". NIPS 2015. Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. "Identity Mappings in Deep Residual Networks". 2016. arXiv preprint: 1603.05027.
页:
[1]