見出し画像

AlexNetの論文を読む

よく来たな。今日はAlexNetの論文を読む。要点だけまとめたいつもの奴だから読まなくていい。メモみたいなもんだ。一応章ごとにわけて書いているが期待はしないでくれ。ではさっそく始めよう。

ImageNet Classification with Deep Convolutional Neural Networks
https://proceedings.neurips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

Abstract

ニューラルネットワーク

  • 6,000 万個のパラメータと 65 万個のニューロンを持ち、5 つの畳み込み層と、それに続くマックス・プーリング層、そして 3 つの完全連結層と最後の 1000 ウェイ・ソフトマックスで構成。


  • 学習を高速化

    • 非飽和ニューロンを使用

    • 畳み込み演算の GPU 実装

    • 完全連結層でのオーバーフィッティングを減らすために、「ドロップアウト」と呼ばれる正則化手法を採用。

introduction

より強力なモデルを作るにはより大規模なデータセットで学習する必要がある。
学習に使うデータセットは存在する。それがImageNetというもので、22,000 以上のカテゴリにラベル付けされた 1,500 万枚以上の高解像度画像からなる。
ここで問題になるのがオーバーフィッティング。普通に学習させてもうまくいかない。
重要なのが畳み込みニューラルネットワーク。他にもこれを防ぐための工夫をした。
実際に畳み込みニューラルネットワークで使われているパラメーターは全部合わせても全体の1%に満たないが、これを取り除いたネットワークを作って検証すると、パフォーマンスが落ちることがわかった。

結局、ネットワークのサイズは、主に現在の GPU で利用可能なメモリ量と、許容できるトレーニング時間によって制限される。このネットワークは、2 台の GTX 580 3GB GPU で 5 ~ 6 日かけて学習した。
すべての実験結果は、より高速な GPU とより大きなデータセットが利用可能になるのを待つだけで、我々の結果が改善されることを示唆している。

Dataset

ImageNet データセットは、約 22,000 のカテゴリに属する、ラベル付けされた 1,500 万枚以上の高解像度画像で構成されている。画像はウェブから収集され、Amazon のクラウドソーシングツール「Mechanical Turk」を使って人間のラベラーによってラベル付けされた。

ImageNet Large-Scale Visual Recognition Challenge (ILSVRC)
毎年開催されており、ImageNet のサブセットを使用し、1000 のカテゴリにそれぞれ約 1000 の画像を割り当てている。全部で約 120 万枚の学習画像、5 万枚の検証画像、15 万枚のテスト画像がある。

ImageNet では、トップ 1 とトップ 5 の 2 つのエラー率を報告するのが通例
• Top-1エラー率: これは、モデルが最も可能性が高いと予測したラベル(カテゴリ)が正解ではないテスト画像の割合です。つまり、モデルが一番自信を持って予測した答えが間違っている場合をカウントします。
• Top-5エラー率: これは、正解のラベルがモデルが最も可能性が高いと考える上位5つのラベルの中に含まれていないテスト画像の割合を指します。つまり、モデルが提供した上位5つの予測のいずれも正解でない場合をカウントします。

これらの指標は、モデルの予測の精度を測るために使われます。Top-1エラー率が厳格な指標であり、Top-5エラー率はモデルが正解を含む広い範囲の予測をする能力を評価します。

The Architecture


我々のネットワークのアーキテクチャは図 2 に要約されている。このネットワークには 8 つの学習層があり、5 つの畳み込み層と 3 つの完全連結層がある。
以下では、我々のネットワーク・アーキテクチャの斬新な特徴や珍しい特徴について説明する。セクション 3.1-3.4 は、最も重要なものから順に、その重要性の評価に従ってソートされている。


ReLU Nonlinearity


入力 x の関数としてニューロンの出力 f をモデル化する標準的な方法は、f(x) = tanh(x)または f(x) = (1 + e^-x )^-1 である。勾配降下法での学習時間の観点から、これらの飽和非線形性は、非飽和非線形性 f(x) = max(0, x)よりもはるかに遅い。
ReLU を持つ深層畳み込みニューラルネットワークは、tanh ユニットを持つ同等品よりも数倍速く学習する。

メモ
なぜReLu関数がこんなに凄いのかについては論文では触れられていなかった。非飽和だから、で終わっている気がする。以下のページにわかりやすい解説があった。

活性化関数に ReLU が使われる理由
https://koko206.hatenablog.com/entry/2022/01/23/024125



Training on Multiple GPUs


2 つの GPU にネットを分散させた。
採用した並列化スキームは、基本的にカーネル(ニューロン)の半分を各 GPU に配置する。



Local Response Normalization


Local Response Normalization(LRN)は、生物学的な神経系における「横断抑制」という現象に触発されている。
この現象では、活性化されたニューロンがその近傍のニューロンを抑制する。同様に、LRNはあるニューロンの応答が、その近傍のニューロンによって正規化され、強く活性化されたニューロンが周囲のニューロンの応答を抑制する効果を模倣している。

ここはchatGPTの解説がめちゃんこわかりやすかった。


Overlapping Pooling


プーリングは今まではオーバーラップしなかったが、オーバーラップするようにした。オーバーフィットが減った。

Overall Architecture


CNN の全体的なアーキテクチャの説明

Reducing Overfitting


このニューラルネットワーク・アーキテクチャには 6000 万個のパラメータがある。ILSVRC の 1000 クラスでは、各トレーニング例が画像からラベルへのマッピングに 10 ビットの制約を課しているが、これはかなりのオーバーフィッティングなしにこれほど多くのパラメータを学習するには不十分である。以下が、そんな過学習についての対策である。

Data Augmentation


平行移動、回転、水平反射(鏡像)などのラベル保存変換を用いてデータセットを人為的に拡大する
また、さらにRGB チャンネルの強度を変更。
数式は主成分分析(PCA)を使ってデータ拡張を行っている。
これにより、画像に照明の変化、影の変動、または色の変化など、自然な状況下で発生する可能性のある変動を模倣することができる。

Dropout


最近導入されたこのテクニックは「ドロップアウト」と呼ばれ、各隠れニューロンの出力を 0.5 の確率でゼロに設定する。
こうしてニューロンをランダムに無効化することで、モデルが訓練データに過剰に適合することを防ぐ。これは、ネットワークが特定の訓練例に依存しすぎることを避け、より汎用的な特徴を学習するのに役立つ。

ドロップアウトは、多数の異なるネットワーク構成の「アンサンブル」を同時に訓練するような効果を持つ。訓練の各ステップで異なるニューロンが無効化されるため、これはまるで多くの異なるネットワークが一緒に学習しているかのような効果を生み出す。

Details of learning


バッチサイズ128例、モメンタム0.9、重み減衰0.0005の確率的勾配降下法を用いてモデルを学習した。我々は、この少量の重み減衰がモデルの学習に重要であることを発見した。言い換えれば、ここでの重み減衰は単なる正則化ではなく、モデルの学習誤差を減少させる。

重み減衰とは?

重み減衰(weight decay)は、ニューラルネットワークの訓練中にネットワークの重み(weights)に直接適用されます。これはパーセプトロンの出力ではなく、ネットワークの各層におけるニューロン間の接続強度、つまり「重み」に対して行われる処理です。重み減衰の具体的な適用方法は以下の通りです:

目的: 重み減衰の主な目的は、ネットワークの重みの大きさを制限することです。これにより、モデルが過学習(特定の訓練データに過剰に適合すること)を防ぎ、より一般化された予測を行うことが可能になります。

適用方法: 重み減衰は、ネットワークの損失関数に重みの二乗和を加えることで適用されます。通常、損失関数にはデータに対する予測誤差が含まれますが、重み減衰を適用すると、重みの二乗和も損失に加算されるため、重みが大きくなりすぎることがペナルティとなります。

計算式: 重み減衰を含む損失関数は通常、以下のように表されます:

(省略)

訓練中の影響: 訓練中に勾配降下法を用いて重みを更新する際、重み減衰は重みの値を小さくする方向に影響を与えます。これにより、重みが過度に大きくなるのを防ぎ、モデルの複雑さが抑えられます。

要するに、重み減衰はニューラルネットワークの重み自体に直接作用し、モデルの過学習を防ぐために使われる重要な手法です。

chatGPT


数式はモーメンタムと重み減衰を組み込んだ確率的勾配降下法を使用して、ニューラルネットワークの重みを効果的に更新するためのもの。
モーメンタムの効果により、勾配の方向に一貫性を持たせることができ、訓練プロセスの収束を早め、より安定させることができる。

最終的に、120万画像の学習セットで約90サイクル学習させ、2台のNVIDIA GTX 580 3GB GPUで5~6日かかった。



Results


ILSVRC-2010における我々の結果は表1にまとめられている。我々のネットワークは、トップ 1 とトップ 5 のテストセットのエラー率 37.5%と 17.0%を達成した。

Qualitative Evaluation


図3は、このネットワークの2つのデータ連結層が学習した畳み込みカーネルを示している。
2つのGPUが特化していることに注目。
GPU 1のカーネルはほとんど色に関係なく、GPU 2のカーネルはほとんど色に特化している。

これは、ネットワークの設計において、ある層のニューロンが同じGPU上にあるニューロンからのみ入力を受け取るという「制限された接続性」に起因していると説明されている。

図4について

(左)8枚のILSVRC-2010テスト画像と、我々のモデルで最も確率が高いと考えられる5つのラベルを示す。各画像の下に正しいラベルを記し、正しいラベルに割り当てられた確率を赤いバーで示す(上位5つのラベルに含まれる場合)。
(右)5枚のILSVRC-2010テスト画像が最初の列に示されている。残りの列は、テスト画像の特徴ベクトルとのユークリッド距離が最小となる最後の隠れ層の特徴ベクトルを生成する6つの学習画像を示す。

図4の左のパネルでは、8つのテスト画像に対する上位5つの予測値を計算することで、ネットワークが何を学習したかを定性的に評価する。左上のダニのような中心から外れた物体でも、ネットは認識できることに注目されたい。上位5つのラベルのほとんどは妥当であるように見える。例えば、ヒョウのラベルとしてもっともらしいと考えられるのは、他の種類のネコだけである。グリルやサクランボのように、写真の意図された焦点についてあいまいな場合もある。

図4右について。
テストセットの5つの画像と、トレーニングセットの6つの画像のうち、この尺度に従って最も類似している画像を示している。ピクセルレベルでは、検索されたトレーニング画像は一般的に1列目のクエリ画像とL2が近くないことに注意してください。例えば、検索された犬や象は様々なポーズをとっている。


Discussion


我々の結果は、大規模で深い畳み込みニューラルネットワークが、純粋に教師あり学習を用いた非常に困難なデータセットにおいて、記録的な結果を達成できることを示している。注目すべきは、畳み込み層を1つ削除するとネットワークの性能が低下することである。例えば、中間層のどれかを取り除くと、ネットワークのトップ1の性能は約2%低下する。つまり、深さは我々の結果を達成するために本当に重要なのだ。

実験を単純化するために、教師なし事前学習は使用しなかった。特に、ラベル付きデータの量を増やすことなく、ネットワークのサイズを大幅に増やすのに十分な計算能力を得ることができれば、役に立つと期待しているからである。これまでのところ、ネットワークをより大きくし、より長く訓練するにつれて結果は改善されているが、人間の視覚システムの時間内経路と一致させるためには、まだ何桁も先がある。最終的には、時間的構造が、静止画像では欠落していたり、あまり明らかでなかったりする、非常に有用な情報を提供するビデオシーケンスに、非常に大きく深い畳み込みネットを使用したいと考えています。

この記事が気に入ったらサポートをしてみませんか?