ResNet|DeepLearning論文の原文を読む #3

DeepLearning系の研究を中心に論文の読解メモをまとめていきます。
エポックになった有名どころの論文を精読し、所感などをまとめられればと思います。
(必要以上に固く書きたくなく90%〜95%程度の確信度で書きますので、もし間違いなどがあれば気軽にご指摘いただけたらと思います。)

#1はAlexNet、#2はVGGNetについて取り扱いました。

 #3はResNetについて取り扱います。
https://arxiv.org/abs/1512.03385
以下論文の目次です。基本的な書き方の流れとしてはAbstractは和訳&補足、それ以外の章に関しては要約を中心にまとめます(省く章もあるかもしれません)

0. Abstract
1. Introduction
2. Related Work
3. Deep Residual Learning
4. Experiments


0. Abstract

Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously.

和訳:『より深いネットワークの学習は非常に難しいが、我々はそれに対し残差を利用した(residual)学習のフレームワークを導入し、従来のものよりもより深いネットワークの学習を用意にした。』
2015年当時、深いネットワークの方が精度が良くなるということから色々と深くするにあたっての研究が行われていたのですが、20層〜30層くらいで勾配消失(gradient vanishing)/勾配爆発(gradient exploding)が起こり、精度が頭打ちになっていました。これに対し残差ネットワークという構造を考案し、ネットワークを深くすることに成功したのがResNetの功績となります。

We explicitly reformulate the layers as learning residual functions with reference to the layer inputs, instead of learning unreferenced functions.

和訳:『我々は"unreferenced functions"の代わりに層の入力を参照することで残差の学習をする関数としてニューラルネットワークの層の構造を明示的に再構成している。』
こちらは後述にショートカットという恒等写像をアウトプットに足し合わせることを示唆していると思います。"unreferenced function"がいまいち掴めないところではあるのですが、ショートカットを導入する以外の方法を示唆しているように思われます(要検証)。

We provide comprehensive empirical evidence showing that these residual networks are easier to optimize, and can gain accuracy from considerably increased depth.

和訳:『我々はこれらの残差ネットワークがより最適化しやすいことを示す包括的なエビデンスを提供し、相当なレベルで深さを増やすことから精度を得ることができている。』
ResNetはいくつもの実験結果を載せていますが、それについてSection4のExperimentsで諸々まとまっています。

On the ImageNet dataset we evaluate residual nets with a depth of up to 152 layers—8× deeper than VGG nets but still having lower complexity.

和訳:『ImageNetのデータセットにおいてResNetをVGG19の8倍にあたる152層のネットワークで評価したが、ネットワークの複雑性自体は低く保ったままできている。』
ネットワークの複雑性というのはResNet的な考え方は層単位に汎用的に導入できるためハイパーパラメータの調整にあたってさほど複雑にならないということを言っているのではと思います。タスク単位で細かい調整をするよりResidual Network(Residual Blockと表現されることもある)を導入することで深さを増やすことができ、それによって単純に精度が上がったということをまとめているような印象を受けます。

An ensemble of these residual nets achieves 3.57% error on the ImageNet test set. This result won the 1st place on the ILSVRC 2015 classification task.

和訳:『これらのResNetのアンサンブル(集合)はImageNetのテストセットで3.57%のエラー率を達成した。結果として2015年のILSVRCの分類タスクでNo.1の成果となった。』
ILSVRCの1,000クラス分類問題の人間の識別率は5%と言われていたので、3.57%を実現し人間を上回ったというのが大きな成果でした。また、2015年のILSVRCをはじめとする様々なコンペティションでResNetは優勝し、汎用的なアルゴリズムとしての性能も示しました。

We also present analysis on CIFAR-10 with 100 and 1000 layers. The depth of representations is of central importance for many visual recognition tasks. Solely due to our extremely deep representations, we obtain a 28% relative improvement on the COCO object detection dataset.

和訳:『我々はCIFAR-10で100や1,000レイヤーでも実際に試してみた。深さは多くの画像認識のタスクにおいては中核的な重要性を占めている。ResNetという極めて深いネットワーク構造により、物体検出のデータセットであるCOCOにおいても28%の相対的改善を実現することができた。』
前文と同じようにImageNet以外のデータセットでも高い結果を出しており汎用的であるということをこちらの部分では示しています。

Deep residual nets are foundations of our submissions to ILSVRC & COCO 2015 competitions1, where we also won the 1st places on the tasks of ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation.

和訳:『Deep ResNetは2015年のILSVRCやCOCOの提出の礎となり、ImageNetの検出、ImageNetのlocalization、COCOの検出、COCOのセグメンテーションタスクでも同様にNo.1だった。』
こちらも前文と同じようにResNetの汎用性を説明しています。Residual系のアルゴリズムは今でもよく用いられるなど、論文全体を通して実際に良い結果が多く出たのでその辺の内容を数多くまとめているという印象を受けました。

 

1. Introduction

若干長めのIntroductionですが、パラグラフ単位で要約しておきます。
1stパラグラフではDeepLearningの発展にあたっての2014年頃までのトレンドについてまとまっています。

Recent evidence [41, 44] reveals that network depth is of crucial importance

上記のようにVGGモデルなどを例に出し(41がVGGの論文)、深さがとても重要だということが言及されています。

 

Is learning better networks as easy as stacking more layers?

2ndパラグラフでは、上記の質問への答えとして、

An obstacle to answering this question was the notorious problem of vanishing/exploding gradients

と回答しており、勾配消失(vanishing gradients)/勾配爆発(exploding gradients)について言及しています。

 

3rdパラグラフでは2ndパラグラフと同様のことについて言及しています。

f:id:lib-arts:20181230151506p:plain

ResNet Figure1

上記のFugure1のように20層で組んだものよりも56層で組んだものの方がパフォーマンスが良くなってしまっています。4thパラグラフは補足情報のようです。

 

In this paper, we address the degradation problem by introducing a deep residual learning framework.

上記は5thパラグラフの冒頭ですが、ここで初めてResNetについて出てきます。ここから6thパラグラフあたりまで理論的な説明が続きます。

f:id:lib-arts:20181230151602p:plain

ResNet Figure2



ResNetのBlockの実装にあたっての原理的なイメージは上記です。

 

7~9thパラグラフは様々なタスクやデータセットに応用して精度を検証した結果についてまとまっています。

 

2. Related Work
関連研究についてまとまっています。

 

3. Deep Residual Learning
3.1では残差学習の理論的な仕組み、3.2〜3.3では具体的なネットワーク構築にあたっての諸々、3.4は実際の実装についてまとまっています。

 

4. Experiments
諸々の実験結果についてまとまっています。大体の概要を原文で掴むという目的は達したので詳しく言及しませんが、ResNetのネットワーク構造はその後のトレンドにおいて重要な位置を占めているため、後日諸々の実験結果についてはまとめ直せればと思います。

 

◆ まとめ
残差を学習させる方法を用いることで微妙な差を学習することができるというのはなんとなく直感的には理解できる気がしました。また残差を実現するためにショートカットの導入するのは仕組み的になかなか面白い考え方だなと思いました。
実験結果の読み込みがまだ足りていないので、再度読み込む時間が取れれば良いなと思います。