このシリーズではE資格対策として、シラバスの内容を項目別にまとめています。
GoogLeNet
GoogLeNet
GoogLeNetは、2014年のImageNet Large-Scale Visual Recognition Challenge(ILSVRC)で優勝したモデルであり、深層学習で画像認識を行うための代表的なアーキテクチャの一つです。このモデルは、深さと幅の両方を効率的に拡大するための新しい構造であるInception moduleを導入しました。
GoogLeNetの特徴的な要素であるInception moduleは、複数の異なる種類の畳み込みを同時に実行し、それらの結果を結合します。具体的には、1×1、3×3、5×5の畳み込みと3×3の最大プーリングを行い、それぞれの結果をチャンネル方向に結合します。この設計は、ネットワークが畳み込みの規模と種類をデータから学習することを可能にします。
また、GoogLeNetでは1×1畳み込みを導入しています。これはパラメータ数と計算量を削減し、非線形性を増加させる役割があります。
さらに、GoogLeNetは22層からなる非常に深いネットワークですが、完全接続層をなくすことでパラメータ数を大幅に削減しました。これにより、GoogLeNetはILSVRCの優勝モデルでありながら、パラメータ数はそれ以前のモデル(AlexNetやVGGNetなど)と比較して大幅に少ないです。
以下にGoogLeNetのInception moduleを表すLaTeX形式の数式を示します。これは、Inception module内で行われる畳み込みの処理を表しています。
上記の数式では、”concat”はチャンネル方向に結果を結合する操作を、”Convolution”は畳み込みを行う操作を表します。また、Xは入力、Wは畳み込みのフィルター(重み)、bはバイアスを表します。
GoogLeNetでは主に次のような処理が行われます:
- 畳み込み(Convolution): 画像の特徴を抽出するための主要な操作です。畳み込みは、特定のフィルタ(またはカーネル)を画像全体に移動させることで行われ、このフィルタが画像の小さなパッチとどの程度一致しているかを評価します。
- 活性化関数(Activation Function): 畳み込みの結果を非線形化するために使用されます。GoogLeNetでは主にReLU(Rectified Linear Unit)が使用されています。
- プーリング(Pooling): 画像のダウンサンプリングを行い、計算量を減らすとともに特徴のロバスト性を向上させます。GoogLeNetでは主に最大プーリングが使用されています。
- Inceptionモジュール: GoogLeNetの核となる部分であり、1×1、3×3、5×5の畳み込みと3×3の最大プーリングを一度に行い、その結果を結合します。これにより、畳み込みの規模と種類をネットワークがデータから学習することが可能になります。
- 1×1畳み込み: これは、パラメータ数と計算量を削減し、非線形性を増加させるための畳み込みです。1×1の畳み込みは、チャンネル間の相関関係を捉え、特徴マップの次元(チャンネル数)を削減します。
- 平均プーリング(Average Pooling)とソフトマックス関数(Softmax): GoogLeNetの出力部分では、全結合層の代わりに平均プーリングを行い、その結果をソフトマックス関数に通して確率的な出力を得ます。
これらの操作を組み合わせて、GoogLeNetは画像から特徴を抽出し、それらを利用して画像のクラスを予測します。
まとめ
最後までご覧いただきありがとうございました。