G検定 練習問題 #0375・畳み込み層

1×1畳み込みの役割

ディープラーニングの要素技術 › 畳み込み層 単一選択 難易度 応用

ある医療機器メーカーが、内視鏡画像を解析するCNNを軽くしたい。ある層では、縦56×横56×256チャネルの特徴マップに3×3の畳み込みを行っており、計算量が大きい。そこで、縦横の解像度は保ったまま、各位置でチャネルどうしの情報を混ぜてチャネル数を64に減らしてから、3×3の畳み込みを行いたい。この目的に合う処理として、最も適切なものを1つ選べ。

正解と解説を見る

解説

正解 A

この問題の論点:1×1畳み込みの役割

ポイント

1×1の畳み込みは、縦横の解像度を保ったままチャネル数を変え、チャネル間の情報を混ぜる処理です。

選択肢ごとの解説

  1. A

    適切 正解

    1×1の畳み込みは、各位置で256チャネルの値に重みを掛けて足し合わせる処理で、位置ごとに全結合層を適用するのと同じです。縦横は変えずに、チャネル数をフィルタの枚数の64にできます。GoogLeNetでも計算量の削減に使われました。

  2. B

    不適切

    Depthwise畳み込みは各チャネルを別々に処理するため、チャネルどうしの情報は混ざらず、出力も256チャネルのままです。これに1×1の畳み込みを組み合わせたものがDepthwise Separable Convolutionです。

  3. C

    不適切

    出力は64チャネルになりますが、ストライド2では特徴マップの縦横がおよそ半分になり、解像度を保つという条件に反します。また、256チャネルのまま3×3の畳み込みを行うため、チャネル数を先に減らすという狙いとも異なります。

  4. D

    不適切

    GAPは各チャネルの特徴マップ全体を平均して1つの値にするため、縦横の位置の情報が失われます。全結合層でチャネルどうしの情報は混ざりますが、出力は位置を持たない64個の値で、続けて3×3の畳み込みを行えません。

補足

この層の3×3の畳み込みの出力を64チャネルとし、バイアスを除いて重みの数を比べます。256チャネルのまま行うと3×3×256×64=147,456個です。先に1×1の畳み込みで64チャネルに減らすと、1×1×256×64=16,384個と3×3×64×64=36,864個の合計53,248個で、約2.8分の1になります。

試験での狙われ方

1×1の畳み込みの働きは、ストライドやGAP、Depthwise畳み込みとの違いや、GoogLeNetなどのモデルの工夫として問われやすい論点です。

参考

表示設定

テーマ
文字の大きさ
問題演習