全結合層の計算
前の層のすべてのノードと次の層のすべてのノードが重みで結ばれた層です。計算は「重み行列 × 入力ベクトル + バイアス」という線形関数で、その結果に活性化関数を適用して次の層へ渡します。
パラメータ数
入力がn次元、出力がm次元の全結合層のパラメータ数は、重み n×m + バイアス m です。入力100、出力50なら 100×50+50 = 5,050 個です。入力の次元がそのまま重みの数に効くため、画像のような高次元の入力では膨大になります。
画像を全結合層だけで扱う問題
224×224×3の画像を直接入力すると約15万個の入力それぞれに重みが必要になり、パラメータが膨大になります。また各ピクセルを独立した入力として扱うため、物体の位置が少しずれるだけで別の入力と見なされ、汎化しにくくなります。畳み込み層は局所的な受容野とパラメータ共有でこれを解決しました。
CNNでの役割
畳み込み層とプーリング層で抽出した特徴マップを1次元に平坦化し、全結合層でクラスの分類(最終的な判断)を行うのが典型的な構成です。近年はグローバルアベレージプーリングで全結合層を置き換え、パラメータを減らすモデルも多くあります。
試験で問われる観点
- 全結合層の計算は線形関数+活性化関数
- パラメータ数 = 入力×出力+出力(バイアス)
- 画像に全結合層だけを使う問題点