Chapter 03
線形層(重みとバイアス)
入力に重み行列を掛け、バイアスを足す層。
チャプター別 ディープラーニング図
チャプターを進めるたびに、下の図が少しずつ埋まります。ここまでの構造です。
この区間が線形層です。Y=W·X+bで入力が次の層に一度に計算されます。
ディープラーニングで見る線形層
線形層は入力に重み (W) を掛け、バイアス (b) を足して出力を作ります。式は Y = W·X + b です。W·X の部分が行列の積、bが基準値の調整です。
成績の計算式に例えると「数学×0.3 + 理科×0.5 + 英語×0.2 + 10点」のようなものです。0.3, 0.5, 0.2 が重み (W)、10 がバイアス (b)、各教科の点数が入力 (X) に当たります。
一つの線形層は「各入力をどれだけ拡大・縮小し、どれだけ足すか」を決めます。出力が複数あれば、それぞれ異なる重みとバイアスで同時に複数のスコアを計算します。
ほぼすべてのディープラーニングモデルが線形層を基本部品に使っています。ChatGPTも翻訳も画像分類も「W·X + b」を数百〜数千回繰り返します。線形層はディープラーニングのレンガです。
モデルの大きさ(パラメータ数)は各線形層の「入力数→出力数」で決まります。大きさがモデルの学習能力(容量)と過学習(訓練データの丸暗記)のリスクを左右します。
しかし線形層だけを重ねても一つの線形変換(直線)と同じになります。だから線形層の後には必ず活性化関数(曲げる関数)を入れて、曲線や複雑なパターンを表現できるようにします。
ChatGPT・翻訳: 文を数値ベクトルに変換した後、数十〜数百の線形層を通して W·X + b と活性化を繰り返し、文脈を理解して回答を生成します。
画像認識: 写真から抽出した特徴ベクトルを線形層に入れて「犬スコア」「猫スコア」「鳥スコア」を同時に計算します。最後の線形層の出力がクラスごとのスコアになります。
レコメンドシステム: ユーザー情報と商品情報をベクトルに結合し、線形層を通して「このユーザーがこの商品を好む度合い」を算出します。層を増やすほど細やかなおすすめが可能になります。
式の意味: 入力 X に重み行列 W を掛け、バイアス b を足すと出力 Yになります。Y = W·X + bです。下の紫の枠のように X, W, b が与えられ Y を求めるのが線形層の問題です。
数値例: X = [2, 1]、W = [[1,0],[1,1]]、b = [1, -1] のとき、W·X = (2, 3)。ここにバイアス b を足すと Y = (2+1, 3-1) = [3, 2] です。バイアスは各出力の基準を上げたり下げたりするはたらきをします。Yの一要素は Wのその行と X の内積に bのその要素を足した値です。
空白の戦略: 空白が Y にあればその行の W·X+b を計算。空白が Wやb にあれば、Y と X は分かっているので式を変形して空白を求めます。最後に Y = W·X + b に代入して検算しましょう。
入力Xに重み行列Wをかけ、バイアスbを足すと出力Yになります。
W 1行·X + b[0] → Y[0]|W 2行·X + b[1] → Y[1]
問題
線形層 の空欄(?)に入る値を求めなさい。