VGGは、大きなフィルタの代わりに3×3の畳み込み層を重ねる構成をとる。各層の入力と出力のチャネル数がいずれも64で、ストライド1、層の間にプーリングを挟まない3×3の畳み込み層3層と、7×7の畳み込み層1層を比べる。出力の1画素が参照する入力の範囲(受容野)と重みの数の組合せとして、最も適切なものを1つ選べ。なお、バイアスは考えないものとする。
正解と解説を見る
解説
正解 A
この問題の論点:VGGの3×3畳み込みの積み重ね
ポイント
3×3を3層重ねると、7×7と同じ受容野を約55%の重みで実現できます。層の間に活性化関数が入るため、非線形な表現力も増します。
選択肢ごとの解説
- A
適切 正解
ストライド1の3×3の層を1つ重ねるごとに受容野は2画素ずつ広がり、3→5→7で7×7になります。重みは3×3×64×64=36,864個の3層分で110,592個、7×7は7×7×64×64=200,704個です。
- B
不適切
36,864個は、3×3×64×64で求めた1層分の重みです。3層を重ねるので3倍の110,592個になります。それでも7×7の1層の200,704個より少なく、約55%に収まります。
- C
不適切
受容野を3+3+3=9と足し合わせるのは誤りです。2層目の1画素は1層目の3×3画素を見ており、その各画素が入力の3×3を見るため、範囲は1層ごとに2画素ずつ広がって7×7になります。
- D
不適切
受容野も重みも誤りです。受容野は3→5→7と広がり、7×7の1層と同じ7×7になります。重みは1層分の36,864個ではなく、その3層分の110,592個です。
補足
入出力のチャネル数をCとすると、3×3を3層重ねた重みは3×(3×3×C×C)=27C²、7×7の1層は7×7×C×C=49C²です。比は27÷49≒0.55で、Cの値によらず一定です。VGGの論文は、各層の後にReLU関数を入れることで、1層の場合より非線形な変換を多く重ねられる点も利点に挙げています。
試験での狙われ方
VGGの工夫として、小さなフィルタを重ねる利点(同じ受容野で重みが少なく、非線形性が増える)を問う形が考えられます。