論文要約:ImageNet Classification with Deep Convolutional Neural Networks

ImageNet Classification with Deep Convolutional Neural Networks

https://proceedings.neurips.cc/paper_files/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf

Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton

図表はすべてKrizhevsky et al.,2012から引用

 

Abstract

研究目的

 ImageNet LSVRC-2010コンテストの120万枚の高解像度画像を1000の異なるクラスに分類するための大規模で深い畳み込みニューラルネットワークを訓練する。

方法論

 60万のパラメータと650,000のニューロンを持つニューラルネットワークを使用。このネットワークは、5つの畳み込み層(一部は最大プーリング層に続く)と、最終的に1000通りのソフトマックスを持つ3つの全結合層から構成されている。訓練を高速化するために、非飽和ニューロンと畳み込み演算の非常に効率的なGPU実装を使用。全結合層での過学習を減らすために、"dropout"と呼ばれる最近開発された正則化方法を採用。

 結果

テストデータにおいて、トップ1とトップ5のエラーレートはそれぞれ37.5%と17.0%で、これは以前の最先端技術よりもかなり優れている。また、このモデルのバリエーションをILSVRC-2012コンペティションに出品し、トップ5のテストエラーレートは15.3%で、2位のエントリーの26.2%を上回った。

 結論

大規模で深い畳み込みニューラルネットワークの訓練は、高解像度画像の分類に非常に効果的である。また、"dropout"という正則化方法は過学習を減らすのに非常に効果的であることが示された。


Introduction


- 現在の物体認識のアプローチは、機械学習の手法を重要な要素として使用している。パフォーマンスを向上させるためには、より大きなデータセットを収集し、より強力なモデルを学習し、過学習を防ぐためのより良い手法を使用することができる。
- これまでにラベル付き画像のデータセットは比較的小さかったが、最近では数百万枚の画像を含むラベル付きデータセットを収集することが可能になった。新たな大規模データセットには、数十万枚の完全にセグメント化された画像を含むLabelMeや、22000以上のカテゴリーで1500万枚以上のラベル付き高解像度画像を含むImageNetが含まれる。
- 数百万枚の画像から数千のオブジェクトを学習するためには、大きな学習能力を持つモデルが必要である。畳み込みニューラルネットワーク(CNN)はそのようなモデルの一つであり、その容量は深さと幅を変えることで制御できる。
- この論文の具体的な貢献は、ILSVRC-2010とILSVRC-2012の競技会で使用されたImageNetのサブセットに対して、これまでで最も大きな畳み込みニューラルネットワークの一つを訓練し、これまでに報告された最高の結果を達成したことである。
- 最終的に、ネットワークのサイズは現在のGPUのメモリ容量と訓練時間の許容度によって主に制限されている。我々のネットワークは、2つのGTX 580 3GB GPUで5から6日間訓練する。

The Dataset


- ImageNetは約22,000のカテゴリに属する1500万以上のラベル付き高解像度画像のデータセットです。これらの画像はウェブから収集され、AmazonMechanical Turkというクラウドソーシングツールを使用して人間がラベル付けしました。
- 2010年から、Pascal Visual Object Challengeの一部として、ImageNet Large-Scale Visual Recognition Challenge(ILSVRC)という年間コンペティションが開催されています。ILSVRCでは、ImageNetのサブセットを使用し、各カテゴリに約1000枚の画像が含まれています。
- ILSVRC-2010はテストセットのラベルが利用可能な唯一のILSVRCバージョンであり、我々の実験の大部分はこのバージョンで行われました。また、我々のモデルはILSVRC-2012のコンペティションにも参加しました。
- ImageNetでは、エラーレートをtop-1とtop-5の2つで報告するのが一般的です。top-5エラーレートは、モデルが最も可能性が高いと考える5つのラベルの中に正しいラベルが含まれていないテスト画像の割合です。
- ImageNetは可変解像度の画像で構成されていますが、我々のシステムは一定の入力次元を必要とします。そのため、画像を固定解像度の256×256にダウンサンプリングしました。


The Architecture


- Krizhevskyらのネットワークのアーキテクチャは図2にまとめられています。これには、5つの畳み込み層と3つの全結合層を含む8つの学習層が含まれています。
- 以下では、提案されたネットワークアーキテクチャの新規または異常な特徴について説明します。
- セクション3.1-3.4は、最も重要なものから順に並べられています。
ReLU Nonlinearity
- 図1:ReLU(実線)を用いた4層の畳み込みニューラルネットワークは、tanhニューロン(破線)を用いた同等のネットワークよりも6倍早くCIFAR-10の訓練誤差率25%に到達する。各ネットワークの学習率は、訓練を可能な限り早くするために独立して選ばれた。正則化は一切行われなかった。


- ニューロンの出力fを入力xの関数としてモデル化する標準的な方法は、f(x) = tanh(x)またはf(x) = (1 + e -x ) -1である。しかし、これらの飽和非線形性は、飽和しない非線形性f(x) = max(0, x)よりも勾配降下法による訓練時間がはるかに遅い。
- NairとHinton [20]に従い、この非線形性を持つニューロンをReLU(Rectified Linear Units)と呼ぶ。ReLUを用いた深層畳み込みニューラルネットワークは、tanhユニットを用いた同等のネットワークよりも何倍も早く訓練する。
- 例えば、Jarrettら[11]は、f(x) = |tanh(x)|の非線形性が、Caltech-101データセットにおける彼らのタイプのコントラスト正規化とローカル平均プーリングと非常によく機能すると主張している。しかし、このデータセットでは過学習を防ぐことが主な懸念事項であり、我々がReLUを使用した際に報告する訓練セットへの適合能力の高速化とは異なる効果を観察している。

 


Training on Multiple GPUs


- GTX 580 GPUはメモリが3GBしかなく、これが訓練できるネットワークの最大サイズを制限している。1.2百万の訓練例があれば、1つのGPUに収まらないほど大きなネットワークを訓練できることがわかった。
- そのため、ネットを2つのGPUに分散させた。現在のGPUは、ホストマシンのメモリを経由せずに互いのメモリから直接読み書きできるため、クロスGPU並列化に特に適している。
- Krizhevskyらが採用した並列化スキームは、基本的にカーネル(またはニューロン)の半分を各GPUに配置し、一部のレイヤーでのみGPU間で通信を行うというものである。
- これにより、例えば、レイヤー3のカーネルはレイヤー2のすべてのカーネルマップから入力を受け取るが、レイヤー4のカーネルは同じGPU上に存在するレイヤー3のカーネルマップからのみ入力を受け取る。
- このスキームは、Cireşanらが使用した「カラム型」CNNと似ているが、我々のカラムは独立していない(図2参照)。このスキームにより、トップ1とトップ5のエラーレートがそれぞれ1.7%、1.2%減少し、1つのGPUで訓練したネットよりも2つのGPUで訓練したネットの方がわずかに時間が短縮された。


Local Response Normalization


- ReLUは飽和を防ぐために入力の正規化を必要としないという特性を持つ。少なくとも一部の訓練例がReLUに対して正の入力を生成すると、そのニューロンで学習が行われる。
- しかし、以下の局所正規化スキームが一般化に役立つことがわかった。これは、実際のニューロンで見られるタイプの横方向抑制を実装する形式の応答正規化である。
- このスキームはJarrettらの局所コントラスト正規化スキームに似ているが、我々のものは平均活動を引かないため「明るさ正規化」と呼ぶべきである。
- 応答正規化は我々のトップ1とトップ5のエラー率をそれぞれ1.4%と1.2%減少させた。また、このスキームの効果はCIFAR-10データセットでも確認された:正規化なしの4層CNNは13%のテストエラー率を達成し、正規化ありでは11%だった。


Overlapping Pooling


- CNNのプーリング層は、同じカーネルマップの近隣のニューロン群の出力をまとめる。
- 伝統的には、隣接するプーリングユニットがまとめる領域は重複しない(例:[17,11,4])。
- プーリング層は、sピクセル間隔で配置されたプーリングユニットのグリッドで構成され、各ユニットはその位置を中心にz×zの領域をまとめると考えることができる。
- s=zと設定すると、CNNで一般的に使用される伝統的なローカルプーリングが得られる。
- s<zと設定すると、重複するプーリングが得られる。これは私たちのネットワーク全体で使用しており、s=2、z=3と設定している。
- この方式は、同じ次元の出力を生成する非重複方式(s=2、z=2)と比較して、トップ1とトップ5のエラーレートをそれぞれ0.4%、0.3%減少させる。
- 一般的に、重複プーリングを持つモデルは過学習になりにくいことが訓練中に観察される。


Overall Architecture


- KrizhevskyらのCNNの全体的な構造を説明します。図2に示すように、ネットワークは重みを持つ8つの層から成り立っており、最初の5つは畳み込み層、残りの3つは全結合層です。
- 最後の全結合層の出力は、1000クラスのラベルに対する分布を生成する1000-way softmaxに供給されます。我々のネットワークは、多項ロジスティック回帰の目的を最大化します。
- 2番目、4番目、5番目の畳み込み層のカーネルは、前の層の同じGPU上に存在するカーネルマップにのみ接続されています。3番目の畳み込み層のカーネルは、2番目の層のすべてのカーネルマップに接続されています。
- 全結合層のニューロンは、前の層のすべてのニューロンに接続されています。応答正規化層は、最初と2番目の畳み込み層の後に続きます。
- 最大プーリング層は、応答正規化層と5番目の畳み込み層の後に続きます。ReLU非線形性は、すべての畳み込み層と全結合層の出力に適用されます。
- 最初の畳み込み層は、224×224×3の入力画像を、4ピクセルストライドで11×11×3のサイズの96のカーネルでフィルタリングします。


Reducing Overfitting


- Krizhevskyらのニューラルネットワークアーキテクチャは6000万のパラメータを持っています。
- ILSVRCの1000クラスは、画像からラベルへのマッピングに10ビットの制約を課すものの、これでは多数のパラメータを学習する際に過学習を避けるのに十分ではありません。
- 以下では、過学習を防ぐための主な2つの方法について説明します。


Data Augmentation


- 画像データの過学習を減らす最も簡単で一般的な方法は、ラベルを保持した変換(例:[25,4,5])を用いてデータセットを人工的に拡大することである。我々は二つの異なるデータ増強法を採用し、どちらも元の画像から非常に少ない計算で変換画像を生成することが可能で、変換画像をディスクに保存する必要はない。
- 実装では、変換画像はGPUが前のバッチの画像を訓練している間にCPU上のPythonコードで生成される。したがって、これらのデータ増強スキームは、事実上、計算的に無料である。
- データ増強の第一の形態は、画像の移動と水平反射の生成である。256×256の画像からランダムに224×224のパッチ(及びその水平反射)を抽出し、これらの抽出パッチでネットワークを訓練する。
- このスキームは、自然画像の重要な特性、すなわち、物体の識別が照明の強度や色の変化に対して不変であることを近似的に捉えている。このスキームにより、トップ1のエラー率が1%以上減少する。


Dropout


- 複数のモデルの予測を組み合わせることは、テストエラーを減らす非常に成功した方法であるが、数日間の訓練を必要とする大規模なニューラルネットワークにとっては費用がかかりすぎるように見える。
- しかし、訓練中に約2倍のコストしかかからない、非常に効率的なモデル組み合わせのバージョンが存在する。
- 最近導入された「ドロップアウト」と呼ばれる技術は、各隠れニューロンの出力を0.5の確率でゼロに設定することである。
- この方法で「ドロップアウト」されたニューロンは、順方向のパスに寄与せず、逆伝播にも参加しない。
- したがって、入力が提示されるたびに、ニューラルネットワークは異なるアーキテクチャをサンプリングするが、これらのアーキテクチャはすべて重みを共有する。
- テスト時には、すべてのニューロンを使用し、その出力を0.5倍する。これは、指数関数的に多くのドロップアウトネットワークが生成する予測分布の幾何平均を取る近似として妥当である。
- ドロップアウトを使用しないと、ネットワークは過学習を示す。ドロップアウトは、収束に必要な反復回数をおおよそ2倍にする。


Details of learning


- モデルの学習には確率的勾配降下法を用い、バッチサイズは128、モーメンタムは0.9、重み減衰は0.0005とした。この微量の重み減衰がモデルの学習に重要であることがわかった。
- 重みの更新ルールは、v i+1 := 0.9 • v i -0.0005 • • w i -• ∂L ∂w wi Di w i+1 := w i + v i+1で、iは反復回数、vはモーメンタム変数、学習率、∂L ∂w wi Diは目的関数のwに対する微分のi番目のバッチD iの平均である。
- 各層の重みは平均0のガウス分布から初期化し、標準偏差は0.01とした。また、2、4、5番目の畳み込み層と全結合隠れ層のニューロンのバイアスは定数1で初期化した。
- 全ての層で等しい学習率を使用し、学習中に手動で調整した。検証エラー率が現在の学習率で改善しなくなったときに学習率を10分の1にした。学習率は0.01から始め、終了前に3回減少させた。
- ネットワークの学習は約90サイクル行い、1.2百万枚の画像セットを通じて行われ、2つのNVIDIA GTX 580 3GB GPUで5から6日かかった。


Results


- ILSVRC-2010における結果。


- 提案されたネットワークは、トップ1とトップ5のテストセットエラー率がそれぞれ37.5%と17.0%を達成しました。
- ILSVRC-2010のコンペティションで最も良いパフォーマンスを達成したのは、異なる特徴で訓練された6つのスパースコーディングモデルからの予測を平均化するアプローチで、47.1%と28.2%でした[2]。
- その後、最も良い公表結果は、2種類の密集サンプリング特徴から計算されたフィッシャーベクトル(FVs)で訓練された2つの分類器の予測を平均化するアプローチで、45.7%と25.7%でした[24]。
Model
- スパースコーディング:Top-1 47.1%、Top-5 28.2%
- SIFT + FVs:Top-1 45.7%、Top-5 25.7%
- CNN:Top-1 37.5%、Top-5 17.0%
-ILSVRC-2012コンペティションにも自分たちのモデルを参加させ、その結果を報告している。


Qualitative Evaluations


- 図3は、ネットワークの2つのデータ接続層で学習された畳み込みカーネルを示しています。ネットワークは、周波数や方向に選択的なカーネル、さまざまな色のブロブを学習しています。また、2つのGPUが示す専門性に注目してください。これは、セクション3.5で説明された制限された接続性の結果です。GPU1のカーネルは主に色に対して無関心で、GPU2のカーネルは主に色に特化しています。


- 図4の左パネルでは、8つのテスト画像に対するネットワークのトップ5の予測を計算することで、ネットワークが何を学習したかを定性的に評価しています。中心から外れたオブジェクトでも、ネットワークによって認識されることがわかります。

- ネットワークの視覚的知識を探る別の方法は、最後の4096次元の隠れ層で画像によって引き起こされる特徴活性化を考慮することです。2つの画像が小さなユークリッド距離の特徴活性化ベクトルを生成する場合、ニューラルネットワークの高次元レベルではそれらを類似していると考えることができます。

- 4096次元の実数ベクトル間のユークリッド距離を用いて類似性を計算することは非効率的ですが、これらのベクトルを短いバイナリコードに圧縮するオートエンコーダを訓練することで効率的にすることが可能です。これは、画像ラベルを利用せずに生のピクセルにオートエンコーダを適用するよりも、はるかに優れた画像検索方法を提供するはずです。


Discussion

- Krizhevskyらの結果は、大規模で深い畳み込みニューラルネットワークが、純粋に教師あり学習を用いて非常に難易度の高いデータセットに対して記録的な結果を達成できることを示しています。
- 特筆すべきは、単一の畳み込み層を取り除くと、我々のネットワークの性能が低下することです。例えば、中間層のいずれかを取り除くと、ネットワークのトップ1性能が約2%減少します。したがって、深さは我々の結果を達成するために重要です。
- 実験を簡素化するため、教師なし事前学習は使用していませんが、特にネットワークのサイズを大幅に増やすための計算能力を得られ、ラベル付けされたデータ量が対応して増えない場合には、それが役立つと考えています。
- これまでのところ、ネットワークを大きくし、長期間訓練することで結果が改善していますが、人間の視覚システムの下側頭葉経路に匹敵するためには、まだ多くのオーダーが必要。
- 最終的には、時間的構造が静的画像では欠けているか、あるいははるかに明らかでない非常に有用な情報を提供するビデオシーケンスに、非常に大きく深い畳み込みネットを使用したいとKrizhevskyらは考えています。