MobileNetでは、通常の畳み込み層をDepthwise Separable Convolutionに置き換えて軽量化している。入力チャネル数64、出力チャネル数128、フィルタサイズ3×3の通常の畳み込み層を、これに置き換えたときのパラメータ数として、最も適切なものを1つ選べ。なお、バイアスは考えないものとする。
正解と解説を見る
解説
正解 C
この問題の論点:MobileNetのパラメータ数計算
ポイント
Depthwise Separable Convolutionのパラメータ数は、Depthwise畳み込みの分とPointwise畳み込みの分の和で求めます。
選択肢ごとの解説
- A
不適切
576個は、3×3のフィルタを入力の64チャネルに1枚ずつ適用するDepthwise畳み込み(3×3×64)の分だけです。チャネルどうしを混ぜる1×1畳み込みの分が抜けています。
- B
不適切
8,192個は、1×1のフィルタで64チャネルを128チャネルに変換するPointwise畳み込み(1×1×64×128)の分だけです。空間方向のDepthwise畳み込みの576個が抜けています。
- C
適切 正解
Depthwise畳み込みの3×3×64=576個と、Pointwise畳み込みの1×1×64×128=8,192個を合計して8,768個です。通常の畳み込みの73,728個と比べて、約8.4分の1に減ります。
- D
不適切
73,728個は、置き換える前の通常の畳み込み(3×3×64×128)のパラメータ数です。通常の畳み込みは、空間方向とチャネル方向の組み合わせを1つのフィルタでまとめて扱うため多くなります。
補足
一般に、フィルタサイズをK×K、入力チャネル数をM、出力チャネル数をNとすると、通常の畳み込みのパラメータ数はK×K×M×Nです。Depthwise Separable ConvolutionではK×K×M+M×Nになります。
両者の比は1/N+1/K²です。Nが大きいほど1/K²に近づくため、3×3のフィルタなら約9分の1が目安になります。この問題では1/128+1/9≒0.119となり、約8.4分の1です。
試験での狙われ方
フィルタサイズとチャネル数を与えて、置き換え前後のパラメータ数や削減の比率を計算させる形が考えられます。