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日にAlexNetをImageNet Large Scale Visual Recognition Challengeに提出した。このネットワークは15.3%のtop-5エラー率を達成してコンテストを勝ち取り、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やシグモイドよりも優れたトレーニング性能を示した。この選択は、より高速なトレーニングとより良い性能を可能にする重要な要因であった。
トレーニング
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年の期間、ニューラルネットワークはカーネル回帰、サポートベクターマシン、その他の古典的な手法などの他の機械学習手法よりも優れていなかった。ILSVRC-2012でのAlexNetの決定的な勝利は、深層CNNがこれらの手法を大幅に上回ることができることを示し、コンピュータビジョンにおけるパラダイムシフトをもたらした。このアーキテクチャの成功は、この分野での深層学習の急速な採用を促進し、ResNetなどのその後のアーキテクチャに影響を与えた。
遺産
AlexNetの影響はコンピュータビジョンを超えて広がり、より広範な人工知能ブームを触発した。これは大規模での深層学習の有効性を示し、GPUベースのコンピューティングへの投資とCUDAなどのフレームワークの開発を促進した。階層的特徴学習を含む深層CNNの原理は、後にトランスフォーマーや大規模言語モデルを用いた自然言語処理など、他の領域にも適応された。この論文はこの分野で最も引用されるものの1つであり続けており、その著者であるKrizhevsky、Sutskever、Hintonは影響力のあるキャリアを歩み、SutskeverはOpenAIの共同設立者となり、HintonはAI研究の著名な人物となった。