「線形変換」「重み行列を掛ける」「別の空間へ写す」が、抽象的すぎて像が結べない。
y=Wx。入力ベクトルに重み行列を掛けて別の空間へ写す。各出力は、各入力に係数を掛けた合計。
部門共通費の配賦そのもの。家賃・光熱費といった共通費(入力ベクトル)を、配賦基準(行列)で各部門へ配分する(出力ベクトル)。
行列の各行が「その部門が各共通費をどれだけ引き受けるか」の配賦率。行ごとに入力との積和を取ると、その部門への配賦額が出る。これがまさに行列×ベクトル。
試算表科目を F/S 科目へ組み替える「組替マトリクス」も同じ形。入力科目に組替係数を掛けて出力科目を作る。
| 家賃 | 光熱費 | |
|---|---|---|
| 製造部門 | 0.5 | 0.4 |
| 営業部門 | 0.3 | 0.3 |
| 管理部門 | 0.2 | 0.3 |
各部門の配賦額 =「配賦率の行 × 共通費」の積和。これが線形変換 y = W·x の正体。 共通費(入力)を、配賦基準(行列)で別の見え方(部門別=出力)へ写しています。合計 180 万円は保存される。
⚠️ NN の重みは負値や任意の値を取り、配賦率のように合計1とは限らない。ここは形の対応の例示。
この簿記アナロジーが、Karpathy のオリジナル200行のどの行に当たるか。
def linear(x, w):
return [sum(wi * xi for wi, xi in zip(wo, x)) for wo in w]各出力行 wo について「重み×入力」の積和を取る=行列×ベクトル=共通費×配賦率の配賦計算。
出典: karpathy / microgpt.py (本体は原文ママ、コメントのみ日本語に補足)