#03 人工知能入門 DNN基礎

重みとバイアス——ネットワークが学ぶ「設定値」

ニューラルネットワークの「ツマミ」

ニューラルネットワークには数千〜数十億個の「ツマミ」があります。このツマミこそが重み(weight)バイアス(bias) です。学習とは、このツマミをぐるぐる回して「正解に近い予測が出る位置」を探す作業です。


重みとは何か

重みは「その入力がどれだけ重要か」を表す数値です。

身近な例で考えましょう。「今日の昼ごはんを何にするか」という判断を数式で表すとします。

満足度 = (空腹度) × w1 + (予算) × w2 + (時間) × w3
  • w1(空腹度の重み)が大きい → お腹が空いているかどうかを重視する
  • w2(予算の重み)が大きい → 値段を重視する
  • w3(時間の重み)が大きい → 早く食べられるかを重視する

人によってこの重みは違います。AIも同様に、学習データを通じて「どの入力をどれだけ重視すべきか」を重みとして学んでいきます。


バイアスとは何か

バイアス(b)は「重みに関係なく、どれだけ出力を押し上げるか(または押し下げるか)」を調整する値です。

数式で書くと:

y = w × x + b

これは中学校で習った一次関数(y = ax + b)と同じ形です。

  • w(重み) は直線の傾き——xが1増えたときyがどれだけ増えるか
  • b(バイアス) は切片——xが0でもyがどこから始まるか
yの値

│          /(w=2, b=1)
│        /
│  ─────  (w=0, b=2)
│      /(w=2, b=-1)
└──────────→ xの値

要するに、バイアスは「ニューロンの発火のしやすさ」を調整する値です。バイアスが大きいと、入力が小さくてもニューロンが反応しやすくなります。


具体的な数値で見てみる

「気温からアイスの売上を予測する」シンプルな例で確認しましょう。

売上予測 = 気温 × w + b

パターンA: w=10, b=-100

  • 気温15℃のとき: 15×10 + (-100) = 50(個)
  • 気温30℃のとき: 30×10 + (-100) = 200(個)

パターンB: w=5, b=0

  • 気温15℃のとき: 15×5 + 0 = 75(個)
  • 気温30℃のとき: 30×5 + 0 = 150(個)

どちらが実際の売上データに近いかは、データを見るまでわかりません。学習とは、データに最もよく当てはまるw(重み)とb(バイアス)の値を見つけることです。


ニューラルネットワーク全体の重み

1層のネットワークが単純なのに対し、多層ネットワークでは各ニューロン間の接続すべてに重みがあります。

入力層(2つ) → 隠れ層(3つ) → 出力層(1つ)

接続数:
  入力→隠れ: 2×3 = 6本 → 重み6個
  隠れ→出力: 3×1 = 3本 → 重み3個
  バイアス: 隠れ3個 + 出力1個 = 4個

合計: 6+3+4 = 13個のパラメータ

実際のモデル(例えばGPT-4)は数千億個のパラメータ(重みとバイアスの総称)を持ちます。「学習済みモデル」とは「良いパラメータが詰まったファイル」と言い換えられます。


良い重みをどうやって見つけるのか

最初、重みはランダムな値に設定されます。当然、予測はでたらめです。

初期状態: ランダムな重み → でたらめな予測

学習データで予測 → 答えと比較 → 「どれだけ外れたか」を計算

「外れた方向と逆向き」に重みを少しだけ修正

これを何千・何万回繰り返す

良い予測ができる重みに収束

「外れた量を計算する」のが損失関数(第6回)、「重みをどう修正するか」が誤差逆伝播(第7回)のテーマです。今は「学習 = 良い重みを探す旅」とだけ覚えておけば十分です。


まとめ

  • 重み(w)は「各入力をどれだけ重視するか」を表す数値
  • バイアス(b)は「入力に関係なくどれだけ出力を調整するか」を表す値
  • y = w×x + b という一次関数が基本形
  • ニューラルネットワークの「学習」とは、良い重みとバイアスの値を探し出すこと
  • モデルのサイズ(パラメータ数)が大きいほど、より複雑なパターンを学べる

次回は、ニューラルネットワークに欠かせない活性化関数について学びます。