Chapter 08
隠れ層(見えない層)
入出力層の間にある層。
チャプター別 ディープラーニング図
チャプターを進めるたびに、下の図が少しずつ埋まります。ここまでの構造です。
見えるのは入力(X)と出力(Y)だけ。その間の層はネットワーク内だけで使う表現なので隠れ層です。
見える: 入力→見えない: 隠れ(H)→見える: 出力
値は入力→隠れ層→出力と流れます。隠れ層は見えない内部表現です。
ディープラーニングで見る隠れ層
隠れ層は入力と出力の間にある中間ステージです。ユーザーには入力(例: 写真)と出力(例:「犬」)しか見えませんが、その間で隠れ層が「隠れた特徴」を作り出します。
流れは X → Linear(W₁·X+b₁) → ReLU → H(隠れ表現)→ Linear(W₂·H+b₂) → ReLU → Y(出力) です。Hが隠れ層の結果で、入力の「重要な特徴」が圧縮されています。
例え: 写真を見て「犬」と言うとき、脳の中では「色→輪郭→目・鼻・耳→犬!」という中間的な思考ステップを経ています。この中間ステップが隠れ層です。隠れ層のニューロン数(幅)が多いほど、より多くの異なる特徴を捉えられます。
隠れ層は入力データを段階的に要約・変換します。浅い層は明るさや輪郭など単純な特徴を、深い層は目・車輪・文字など複雑な特徴を捉えます。
隠れ層がなければ、入力から直接出力への非常に単純な(線形の)関係しか表現できません。隠れ層があるからこそ、曲線や複数条件の組み合わせなど複雑な関係を学習できます。
ニューロン数(幅)と層数(深さ)がモデルの表現力を決めます。小さすぎると情報のボトルネックで性能が出ず、大きすぎると過学習(学習データの丸暗記)のリスクがあります。
画像認識: 「ピクセル→輪郭→テクスチャ→物体の部品(目・車輪)→物体全体(犬・車)」というステージがすべて隠れ層です。深い層ほど抽象的な特徴を抽出します。
チャットボット・翻訳: テキストを数値に変換した後、複数の隠れ層で「単語の意味→文脈→回答の方向」を段階的に精製します。ChatGPTは数十層の隠れ層(Transformerブロック)を通して回答を生成します。
音声認識: 「音波→周波数特徴→音素→単語→文」という変換の各ステージに隠れ層があります。
順番に計算: X → (W₁·X+b₁) → ReLU → H → (W₂·H+b₂) → ReLU → Y の各ステップを順番に計算します。空白がHにあれば1段目の線形+ReLUまで、空白がYにあればHを先に求めてから2段目を計算します。
ReLUに注意: 線形の結果(W·入力+b)が負ならReLUで0になります。次の層ではその値は0なのでまったく影響しません──計算で無視できます。隠れ層の問題で頻出のポイントです。
Wやbの空白: 隠れ層の問題は2段階(線形+活性化が2回)あります。まず空白がどの段階にあるか特定しましょう。その段階の入力と出力が分かっていれば、その段階の式だけで空白を求められます。
隠れ層は、入力を線形変換()とReLUで中間表現Hにし、さらに線形とReLUで最終出力Yにします。
1層: H = ReLU(W₁·X + b₁)
2層: Y = ReLU(W₂·H + b₂)
問題
隠れ層付き順伝播 X → (W₁·X+b₁) → ReLU → H → (W₂·H+b₂) → ReLU → Y で空欄(?)を埋めなさい。