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

畳み込み層の軽量化

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

ある設備保守会社が、作業員のスマートフォン上で配管のさびの画像を分類するCNNを動かしたい。端末の計算資源が限られるため、精度を大きく落とさずに、畳み込み層のパラメータ数と計算量を減らしたい。この目的に合う工夫として、最も適切なものを1つ選べ。

正解と解説を見る

解説

正解 A

この問題の論点:畳み込み層の軽量化

ポイント

畳み込みをチャネルごとの空間方向の計算と1×1の畳み込みに分けると、少ないパラメータと計算量で済みます。

選択肢ごとの解説

  1. A

    適切 正解

    通常の畳み込みは空間方向とチャネル方向を一度に計算します。これをチャネルごとの空間方向の畳み込みと、チャネルを混ぜる1×1の畳み込みに分けると、3×3のフィルタでは計算量がおよそ8〜9分の1になります。MobileNetで採用された工夫です。

  2. B

    不適切

    Dilated Convolutionは間隔を空けて広い範囲を見る手法です。3×3のフィルタなら、間隔を広げても入出力チャネルの組ごとの重みは9個のままで、1層あたりのパラメータ数は減りません。主な目的は受容野を広げることです。

  3. C

    不適切

    全結合層は入力と出力のすべての組み合わせに重みを持つため、画像ではパラメータ数が大きく増えます。小さなフィルタを使い回す畳み込み層より重くなるため、層の数を減らしても軽量化の目的に反します。

  4. D

    不適切

    フィルタの枚数(出力チャネル数)を増やすと、その層のパラメータ数と計算量は枚数に比例して増えます。次の層の入力チャネル数も増えるため、全体はさらに重くなります。

補足

入力チャネル数M、出力チャネル数N、フィルタサイズK×Kのとき、通常の畳み込みの重みはK×K×M×N個です。Depthwise Separable Convolutionでは、チャネルごとのK×Kの畳み込み(K×K×M個)と1×1の畳み込み(M×N個)の合計で済みます。たとえばK=3、M=N=64なら、36,864個が576+4,096=4,672個になり、約8分の1です。

試験での狙われ方

モバイル端末向けの軽量化という場面を示し、Depthwise Separable ConvolutionやMobileNetを選ばせる形が典型です。

表示設定

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