Chapter 10
幅(1層のニューロン数)
一層あたりのニューロン数が多いこと。
チャプター別 ディープラーニング図
チャプターを進めるたびに、下の図が少しずつ埋まります。ここまでの構造です。
一つの層のニューロン数が幅です。幅が広いほどその段階でより多くの特徴を同時に扱えます。
ディープラーニングで見る幅
幅とは一つの層にあるニューロンの数のことです。ニューロンが多い(広い)ほど、その層でより多くの特徴を同時に表現できます。例えばニューロン1個 = 特徴1個、256個 = 256の特徴を一度に扱えます。
試験に例えると: 問題が1つだけなら一つの能力しか測れませんが、100問あれば様々な能力を一度に評価できます。広い層も同じで、一つのステップでより多様な情報を処理します。
層ごとに幅は異なります。例えば「1→2→4→8」と広がる構造や「256→128→64」と狭まる構造など、目的に応じて設計されます。
深さ(層数)と幅(層あたりのニューロン数)の組み合わせでモデルの全体サイズ(パラメータ数)が決まります。同じパラメータ数で「深く狭い」か「浅く広い」かを選べ、この選択が性能に大きく影響します。
幅が大きいほど一層で同時に処理できる特徴が増えますが、計算量とメモリも増えます。広すぎると過学習(訓練データの丸暗記)のリスクもあります。
実際のモデルではボトルネック設計が人気です。入出力は狭く、中間を広くすることで広い層で重要な特徴を抽出し、それ以外は圧縮します。ResNetもTransformerもこの手法を使っています。
画像認識(CNN): 各層のチャネル数(特徴マップの枚数)が幅に相当します。RGB 3チャネルから始まり、深い層では 64→128→256→512 チャネルと増え、より多様な特徴を抽出します。
チャットボット・翻訳(Transformer): 隠れ次元(例: 768, 1024, 4096)が各層で一度に処理する数値の数、つまり幅です。GPT-4のような大規模モデルは隠れ次元が数千と非常に広いです。
レコメンドシステム: 「ユーザーベクトル256次元」は幅256を意味し、年齢・好み・視聴履歴などが256の特徴に変換されて、より細やかなおすすめが可能になります。
層が広がっても各層の計算式は同じ: Linear (W·入力+b) → ReLU。空白がある層とニューロン位置を特定し、その層の入力とWの該当行・bの該当要素で計算します。
Wの次元に注意: 層の間で幅が変わるとWのサイズも変わります。Wは(現在の幅 × 前の層の幅)なので、空白のニューロンに対応する行を見つけ、前の層の出力と内積を取ってbを足します。
層ごとに順番に: 深さの問題と同様、前の層の出力を先に計算してから次の層に進みます。各層でReLU(負→0)を忘れずに適用しましょう。
幅は一つの層にあるニューロン数が多いことを指します。層が広いほど多くの特徴を同時に表現し、各層は Linear & ReLU で計算します。
1層(幅2): H = ReLU(W₁·X + b₁)
2層(幅4): Y = ReLU(W₂·H + b₂)
問題
層が広くなる順伝播(各層 Linear & ReLU)で空欄(?)を埋めなさい。