G検定

【G検定知識】GooLeNetインセプション・モジュールは効率的に特徴抽出できる理由

Google 社によって開発された歴史的に著名なCNNモデルGoogLeNet は、異なるサイズの畳み込み層を並列に並べたインセプション・モジュール(Inception Module)という横に広がりを持つ構造が特徴です。

この構造により、計算量を抑えながら効率的に多様な特徴を抽出することが可能となっています。その理由をこの記事で噛み砕いて説明します。

ここで解説する「マルチスケール処理」や「ボトルネック構造」はGoogLeNetニ限定されず、画像認識分野にとって汎用的な概念ですので、G検定のためにぜひ理解を深めていただきたいです。

インセプション・モジュールによって多様な特徴を抽出できる理由

インセプション・モジュールでは1つの入力に対して複数サイズの畳み込みを同時に適用します。1×1畳み込み、3×3畳み込み、5×5畳み込み、およびプーリング処理を並列に行い、それらの出力をチャネル方向に結合(concat)します。

このような構造により、局所的な特徴(小さい領域)から大域的な特徴(大きい領域)特徴まで、異なるスケールの情報を同時に捉えることができます。このような性質を画像処理の分野では「マルチスケール処理」と呼びます。

単一サイズの畳み込み(例えば3×3のみ)を持つ層においては、特定のスケールの特徴しか捉えることができません。これに対して、インセプション・モジュールでは異なる視点(受容野)で特徴抽出し、表現力の高いモデルを実現できます。具体的に、1×1 畳み込みはチャネル統合に使います。3×3 畳み込みは局所的な特徴の抽出、5×5 畳み込みはより大域的な特徴の抽出に使用されます。

インセプション・モジュールによって計算効率を改善できる理由

仮に全て5×5畳み込みにすると、計算量が大きくなってしまいます。そこでGoogLeNetでは工夫として、3×3や5×5の畳み込みの前に1×1畳み込みを挿入しています。1×1畳み込みによってチャネル数を削減してから計算を行うことで、この仕組みをbottleneck構造呼ばれます。

■なぜ1×1畳み込みによって次元削減できるのか?

通常の畳み込み(3×3や5×5の畳み込み)は空間方向に計算を行い、近隣の画素同士を組み合わせるようにして処理を行います。

これに対して、1×1畳み込みは1画素のみ扱うため、空間方向(縦横方向)何も組み合わせずに、代わりにチャネル方向を混ぜています。厳密に言うと、チャネル方向の「重み付き和」を計算しています。それによって、チャネル方向に次元削減を行っています。1×1畳み込みによる「チャネル方向の結合」とはこの事を言っています。

例えば、入力画像のある1画素のRGB方向の値が{R,G,B}={0.1,0.6,0.3}だったとします。これに1×1畳み込みを適用すると、次元削減された後の新しい値はa×R + b×G + c×Bとなります(a,b,cは重み)。

yan
データ分析官・データサイエンス講座の講師 「G検定」の分野で講師と著者として活動しております。 著書には以下のものがあります。 ◯ディープラーニングG検定(ジェネラリスト)最強の合格テキスト[第2版] [徹底解説+良質問題+模試(PDF)] /  ◯ディープラーニングG検定(ジェネラリスト)最強の合格問題集[第2版] [究極の332問+模試2回(PDF)]
データ分析・AIの専門家集団 GRI