http://mp.weixin.qq.com/s?__biz= ... 4d9c4a50631cba67#rd
想必大家对 ResNet 和其火爆程度都非常了解。ResNet 被提出后,有不少相关和跟进工作。但其中,大部分工作都是集中在对 ResNet 的层数(深度)理论分析和如何将其更 generalized 上。今天要为大家推荐的一篇论文[1],则有点反其道而行之的味道——ResNet 的最大优势不仅并不在于其可以训练很深的网络(1001层),而且此深度有时是有害处的。这篇论文[1] 提出了 Wide Residual Network (WRN),与 original ResNet 的 thin and deep networks 形成对立。
首先我们来介绍为何 wide network 可能比 thin and deep network 具有更强的 representation power,这也是这篇论文的 motivation & observation。第一,就如 ResNet generalized 版本的 Highway Network[2] 中提到的一样,一味地追求 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 呢?答案是可以的。这是这篇论文[1] 的第一个贡献。他们提出了几种 widen 的方式,并探究了合理的 width/depth ratio。这是论文[1] 的第二个贡献。
这时候,就出现了一个问题。以前不是总有工作表面,wide block 或者 wide networks 是容易 overfitting 么?而之前 ResNet 的工作[3] 中又发现把 dropout 直接放在 residual block 里很多时候是有损 performance 的。那么这篇论文[1] 提出的 WRN 该怎么解决这个问题呢?其作者一改以往的把 dropout 加在 top layers 的方式,成功把 dropout 引入在了 convolutional layers 之间,从而解决了 WRN 可能存在的 overfitting problem。这是论文[1] 的第三个贡献。
下面我们来具体看一下作者提出了哪些 widen 的方式,也就是具体的 WRN 的 block 是什么样子的。 上图的 (a) 为原始 ResNet 中的 block,(b) 为 ResNet[3] 中提出的一种 bottleneck 结构(在论文[1] 中并没有进行继续探索)。(c) 和 (d) 则是这篇论文[1] 提出的两种 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,去保证一个比较公平地比较。这个实验是整篇论文[1]最重要的实验,结果见 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 的角度)。
除了上述内容,这篇论文[1]在总结过去工作方面也一针见血。其工作也是开源的。有兴趣的同学快去动手看看吧。
[1] Sergey Zagoruyko and Nikos Komodakis. "Wide Residual Networks". 2016. arXiv preprint: arXiv:1605.07146. [2] Rupesh Kumar Srivastava, Klaus Greff, Jürgen Schmidhuber. "Highway Networks". NIPS 2015. [3] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. "Identity Mappings in Deep Residual Networks". 2016. arXiv preprint: 1603.05027.
|