AlexNetは、画像分類タスクのために開発された畳み込みニューラルネットワークのアーキテクチャであり、特にImageNet Large Scale Visual Recognition Challenge(ILSVRC)での性能を通じて注目を集めた。画像を1,000の異なるオブジェクトカテゴリに分類し、大規模な視覚認識における深層畳み込みネットワークの最初の広く認識された応用と見なされている。
2012年にAlex Krizhevskyが、Ilya Sutskeverおよび彼の博士課程指導教官であるGeoffrey Hintonと共同でトロント大学で開発したこのモデルは、6,000万のパラメータと65万のニューロンを含む。元の論文の主な結果は、モデルの深さがその高性能に不可欠であり、計算コストが高かったが、トレーニング中のグラフィックス処理ユニット(GPU)の利用により実現可能になったことである。
3人はチームSuperVisionを結成し、2012年9月30日にImageNet Large Scale Visual Recognition ChallengeにAlexNetを提出した。このネットワークはトップ5エラー率15.3%を達成してコンテストに勝利し、2位より10.8%以上優れていた。このアーキテクチャは、その後の深層学習における多くの研究、特にニューラルネットワークをコンピュータビジョンに応用する研究に大きな影響を与えた。
アーキテクチャ
AlexNetは8つの層を含む:最初の5つは畳み込み層であり、一部は最大プーリング層が続き、最後の3つは全結合層である。ネットワークは、最後の層を除いて、2つのコピーに分割され、それぞれが1つのGPUで実行される。これは、ネットワークが単一のNvidia GTX 580 3GB GPUのVRAMに収まらなかったためである。全体の構造は、(CONV → RN → MP)2 → (CONV3 → MP) → (FC → DO)2 → Linear → softmaxと書くことができ、ここでCONV = 畳み込み層(ReLU活性化付き)、RN = 局所応答正規化、MP = 最大プーリング、FC = 全結合層(ReLU活性化付き)、Linear = 全結合層(活性化なし)、DO = ドロップアウトを表す。
特に、畳み込み層3、4、5は、プーリングや正規化なしで互いに接続されていた。非飽和のReLU活性化関数を使用し、これはtanhやsigmoidよりも良好にトレーニングできた。この活性化関数の選択は、以前の慣行からの重要な逸脱であり、トレーニングの収束を速めることに貢献した。
トレーニング
ImageNetトレーニングセットには120万枚の画像が含まれていた。モデルは、2つのNvidia GTX 580 GPU(各3GB)を使用して、5〜6日間で90エポックトレーニングされた。これらのGPUは、float32で理論上の性能1.581 TFLOPSを持ち、発売時には500米ドルで販売されていた。AlexNetの各フォワードパスには約1.43 GFLOPsが必要であった。これらの値に基づくと、2つのGPUは理想的な条件下で毎秒2,200回以上のフォワードパスを理論的に実行できた。
データセットの画像はJPEG形式で保存されていた。これらは27GBのディスクを占有した。ニューラルネットワークは、各GPUで2GBのRAMと、トレーニング中に約5GBのシステムRAMを使用した。GPUはトレーニングを担当し、CPUはディスクからの画像の読み込みと画像のデータ拡張を担当した。
AlexNetは、バッチサイズ128例、モメンタム0.9、重み減衰0.0005のモメンタム勾配降下法でトレーニングされた。学習率は10−2で開始し、検証エラーが減少しなくなったように見えるたびに手動で10分の1に減少された。トレーニング中に3回減少され、10−5で終了した。
2つの形式のデータ拡張を使用し、両方ともCPU上でオンザフライで計算されたため、「計算上無料」であった:
- ImageNetの各画像は最初にスケーリングされ、短辺が256の長さになるようにされた。次に、中央の256×256パッチが切り出され、正規化された(ピクセル値を0から1の間に収まるように分割し、[0.485、0.456、0.406]を減算し、[0.229、0.224、0.225]で除算する。これらはImageNetの平均と標準偏差であり、入力データを白化する)。
- 256×256クロップからランダムな224×224パッチ(およびその水平反転)を抽出する。これにより、トレーニングセットのサイズが2048倍に増加する。
- 各画像のRGB値を、そのピクセルのRGB値の3つの主方向に沿ってランダムにシフトする。
解像度224×224が選ばれたのは、256 - 16 - 16 = 224であり、256×256の画像が与えられた場合、4辺に幅16のフレームを設定すると224×224の画像になるためである。
局所応答正規化と、ドロップ確率0.5のドロップアウト正則化を使用した。すべての重みは、平均0、標準偏差0.01のガウス分布で初期化された。畳み込み層2、4、5およびすべての全結合層のバイアスは、dying ReLU問題を回避するために定数1に初期化された。
テスト時には、トレーニング済みのAlexNetを使用して画像のクラスを予測するために、その画像が最初にスケーリングされ、短辺が256の長さになるようにされる。次に、中央の256×256パッチが切り出される。その後、5つの224×224パッチ(4つのコーナーパッチと中央パッチ)およびその水平反転が計算され、合計10パッチが得られる。ネットワークの予測確率が10パッチすべてで平均され、それが最終的な予測確率となる。
ImageNetコンペティション
2012年のImageNetコンペティションに参加するために使用されたバージョンは、7つのAlexNetのアンサンブルであった。具体的には、前述のアーキテクチャ(5つのCONV層を持つ)の5つのAlexNetをILSVRC-2012トレーニングセット(120万枚の画像)でトレーニングした。また、最後のプーリング層の上に1つの追加のCONV層を追加して得られた2つのバリアントAlexNetもトレーニングした。これらは、最初にImageNet Fall 2011リリース全体(22Kカテゴリの1,500万枚の画像)でトレーニングし、その後ILSVRC-2012トレーニングセットで微調整することによってトレーニングされた。最終的な7つのAlexNetのシステムは、予測確率を平均することによって使用された。
歴史
以前の研究
1980年、福島邦彦はneocognitronという初期のCNNを提案した。これは教師なし学習アルゴリズムでトレーニングされた。LeNet-5(Yann LeCunら、1989年)は、バックプロパゲーションアルゴリズムによる教師あり学習でトレーニングされ、アーキテクチャは本質的にAlexNetと同じものを小規模にしたものであった。
最大プーリングは1990年に音声処理(本質的に1次元CNN)で使用され、画像処理では1992年のCresceptronで初めて使用された。2000年代には、GPUハードウェアが改善されるにつれて、一部の研究者はこれらをニューラルネットワークのトレーニングを含む汎用計算に適応させた。(K. Chellapillaら、2006年)は、同等のCPU実装よりも4倍高速なGPU上でCNNをトレーニングした。(Rainaら、2009年)は、Nvidia GeForce GTX 280上で1億のパラメータを持つ深層信念ネットワークを、CPUと比較して最大70倍の高速化でトレーニングした。IDSIAの(Dan Cireșanら、2011年)による深層CNNは、同等のCPU実装よりも60倍高速であった。2011年5月15日から2012年9月10日の間に、彼らのCNNは4つの画像コンペティションで勝利し、複数の画像データベースで最先端を達成した。AlexNetの論文によると、Cireșanの以前のネットワークは「いくぶん類似している」。両方ともCUDAで記述され、GPU上で実行された。
コンピュータビジョン
1990年から2010年の期間、ニューラルネットワークは多くの視覚認識タスクにおいて、カーネル回帰やサポートベクターマシンなどの他の機械学習手法よりも優れていなかった。2012年のAlexNetの成功は、十分なデータと計算リソースでトレーニングされた深層畳み込みネットワークが、手作りの特徴ベースのアプローチを大幅に上回ることができることを実証した。この結果は、コンピュータビジョンの分野を深層学習アプローチへとシフトさせる触媒となり、オブジェクト検出、画像セグメンテーション、その他の視覚タスクの急速な進歩につながった。
影響は学界を超えて広がった。AlexNetによって普及した技術、GPUベースのトレーニング、ReLU活性化、ドロップアウト正則化は、その後のアーキテクチャの標準的なコンポーネントとなった。ResNetやU-Netなどの多くの後続モデルは、AlexNetが築いた基盤の上に直接構築された。この論文は、現代の人工知能時代の出発点として頻繁に引用され、コンピュータビジョンだけでなく、後に深層学習手法を採用した自然言語処理やその他の領域にも影響を与えた。