ある企業が、ResNetを参考に画像分類のCNNを実装している。あるブロックでは、入力が56×56×64(縦×横×チャネル)、ブロック内の畳み込み層を通った出力が28×28×128で、形が異なる。そこで、ショートカット側にストライド2の1×1畳み込み(バイアスなし)を入れ、入力を28×28×128に変換してから足し合わせる。このショートカットが持つ重みの数として、最も適切なものを1つ選べ。
正解と解説を見る
解説
正解 B
この問題の論点:射影ショートカットの重みの数
ポイント
形が同じなら恒等写像のショートカットに重みはなく、形が違えば1×1畳み込みで射影し、重みは入力と出力のチャネル数の積になります。
選択肢ごとの解説
- A
不適切
64×64=4,096は、出力のチャネル数を入力と同じ64とした場合の値です。足し合わせる相手は128チャネルなので、1×1畳み込みで64チャネルを128チャネルに変換する必要があります。
- B
適切 正解
1×1畳み込みのフィルタ1枚は1×1×64=64個の重みを持ち、出力チャネル数と同じ128枚が必要です。64×128=8,192個です。縦横はストライド2で56から28にそろいます。
- C
不適切
3×3×64×128=73,728は、フィルタの大きさを3×3とした場合の値です。ResNetの射影ショートカットは1×1畳み込みで、各フィルタは縦横方向に1つの位置しか見ません。
- D
不適切
8,192×28×28=6,422,528は、出力の位置ごとに別の重みを持つとみなした値です。畳み込みは同じフィルタを全位置で使い回すため、重みの数は特徴マップの縦横の大きさに左右されません。
補足
ResNetの論文では、チャネル数が増える箇所のショートカットについて、足りないチャネルを0で埋める方法(重みは増えない)と、1×1畳み込みで射影する方法を比べています。射影のほうがわずかに良い結果でしたが差は小さく、計算量とモデルの大きさを抑えるため、形が同じ箇所では恒等写像のショートカットを使っています。
試験での狙われ方
ResNetのショートカットが基本的に重みを持たないことや、形が変わる箇所での対処を、畳み込み層のパラメータ数の計算と組み合わせて問う形が考えられます。