G検定 › Web参考書 › 第5章

全結合層(重みと線形関数、パラメータ数の計算、CNNでの役割)

第5章 ディープラーニングの要素技術 / 節 1

シラバスのキーワード: 重み線形関数全結合層

本文を読んだあと、覚えているか確認してください。

全結合層の計算

前の層のすべてのノードと次の層のすべてのノードが重みで結ばれた層です。計算は「重み行列 × 入力ベクトル + バイアス」という線形関数で、その結果に活性化関数を適用して次の層へ渡します。

パラメータ数

入力がn次元、出力がm次元の全結合層のパラメータ数は、重み n×m + バイアス m です。入力100、出力50なら 100×50+50 = 5,050 個です。入力の次元がそのまま重みの数に効くため、画像のような高次元の入力では膨大になります。

画像を全結合層だけで扱う問題

224×224×3の画像を直接入力すると約15万個の入力それぞれに重みが必要になり、パラメータが膨大になります。また各ピクセルを独立した入力として扱うため、物体の位置が少しずれるだけで別の入力と見なされ、汎化しにくくなります。畳み込み層は局所的な受容野とパラメータ共有でこれを解決しました。

CNNでの役割

畳み込み層とプーリング層で抽出した特徴マップを1次元に平坦化し、全結合層でクラスの分類(最終的な判断)を行うのが典型的な構成です。近年はグローバルアベレージプーリングで全結合層を置き換え、パラメータを減らすモデルも多くあります。

試験で問われる観点

この節の練習問題(5問)

答えを見る前に選んでから開いてください。同じ問題は章別演習でランダム出題されます。

  1. 問1
    入力が100次元、出力が50次元の全結合層のパラメータ数(重みとバイアスの合計)として正しいものを選びなさい。
    1. 15,050
    2. 2150
    3. 35,000
    4. 4100
    答えと解説

    正解: 1

    全結合層は前の層のすべてのノードと次の層のすべてのノードが結合しており、重みの数は入力次元×出力次元 = 100×50 = 5,000、これに出力ノードごとのバイアス50を加えて5,050です。全結合層は入力の線形変換(線形関数)に活性化関数を適用する層で、パラメータ数が多くなりやすいため、画像では畳み込み層やグローバルアベレージプーリングで置き換えられることがあります。

  2. 問2
    畳み込みニューラルネットワークの最終段で、全結合層が果たす典型的な役割として最も適切なものを選びなさい。
    1. 1入力画像の画素値を平均0・分散1に正規化し、後続の層の学習を安定させて高速化する
    2. 2畳み込み層とプーリング層で抽出した特徴を統合し、クラス分類などの最終的な出力に変換する
    3. 3入力画像の上でフィルタをずらしながら積和を計算し、局所的な模様や輪郭を抽出する
    4. 4特徴マップの小領域から最大値や平均値を取り出し、サイズを縮小して位置ずれへの不変性を得る
    答えと解説

    正解: 2

    CNNでは、畳み込み層とプーリング層が画像から階層的に特徴を抽出し、最後に特徴マップを1次元に並べて全結合層に入力し、すべての特徴を組み合わせてクラスごとのスコアを出力します。局所的な特徴の抽出は畳み込み層、位置ずれへの不変性の獲得とサイズの縮小はプーリング層の役割です。

  3. 問3
    全結合層で行われる計算の説明として、最も適切なものを選びなさい。
    1. 1入力の小領域ごとに最大値や平均値だけを取り出してデータのサイズを縮め、位置ずれに対する不変性を得て次の層へ渡す
    2. 2前の時刻の隠れ状態を現在の入力とともに受け取り、系列の文脈の情報を保持しながら次の時刻へ隠れ状態を渡す
    3. 3入力ベクトルに重み行列を掛けてバイアスを加える線形関数を計算し、その結果に活性化関数を適用して次の層へ渡す
    4. 4入力画像の上で小さなフィルタをずらしながら積和を計算し、局所的な特徴を表す特徴マップを作って次の層へ渡す
    答えと解説

    正解: 3

    全結合層は、前の層のすべてのノードと次の層のすべてのノードが重みで結ばれており、計算としては「重み行列 × 入力 + バイアス」という線形関数に活性化関数を適用したものです。フィルタをずらす計算は畳み込み層、最大値の取り出しはプーリング層、前の時刻の出力を受け取るのは回帰結合層(RNN)です。

  4. 問4
    画像認識で、入力画像を全結合層だけで処理する場合の問題点として最も適切なものを選びなさい。
    1. 1全結合層は入力画像を1次元に並べ替えられないため、画像をそのまま与えると次元の不一致で学習が始まらず、畳み込み層を前段に置かなければならない
    2. 2全結合層は出力ノードを1つしか持てないため、犬・猫・鳥のような多クラス分類ができず、また勾配が層の間で伝わらず誤差逆伝播が使えない
    3. 3画像の各ピクセルをまとめて1つの入力として扱うため、パラメータ数が極端に少なくなり、物体の形や色の違いを表現しきれず学習が進まない
    4. 4画像の各ピクセルを別々の入力として扱うため、パラメータ数が膨大になり、また物体の位置が少しずれるだけで別の入力と見なされて汎化しにくい
    答えと解説

    正解: 4

    全結合層は入力の空間的な構造を考慮せず、224×224×3の画像なら約15万個の入力それぞれに重みを持つため、パラメータ数が膨大になります。また画像内の位置のずれに弱いという問題があります。畳み込み層は局所的な受容野とパラメータ共有によってこれらを解決しました。画像は1次元に並べ替えれば全結合層に入力でき、出力ノードは複数持てるので多クラス分類も可能で、誤差逆伝播も使えます。パラメータ数が極端に少なくなるという説明は事実と逆です。

  5. 問5
    CNNで、畳み込み層とプーリング層が出力した特徴マップを全結合層に入力する前に、1次元のベクトルに並べ直す処理を何というか。最も適切なものを選びなさい。
    1. 1パディング
    2. 2ストライド
    3. 3正規化
    4. 4平坦化
    答えと解説

    正解: 4

    全結合層はベクトルを入力とするため、特徴マップを1次元に並べ直す平坦化を行ってから分類を行います。パディングは入力の周囲を0などで埋める処理、ストライドはフィルタをずらす幅です。正規化は層の入力を平均0・分散1に整える処理で、形を変える操作ではありません。