重みWeight
入力ごとに掛けられる、学習で決まる重要度
- 重みは入ってきた値ごとに掛けられる倍率です。同じ値でも、どんな重みに出会うかによって結果に及ぼす力が変わります。
- 重みが大きいとその入力は結果を大きく揺さぶり、0に近ければその入力は事実上無視されます。
- マイナスの重みもあります。その値が大きくなるほど結果を反対方向へ押しやります。
- 重みは接続一つひとつに一つずつ付きます。最近のモデルが言うパラメータ数はほとんどがこの重みの個数です。
- 人が決めてやる値ではありません。学習とはこの値を少しずつ直していく作業そのものです。
目次
1たとえで理解する
同じテストを受けても、成績表に残る重さは違います。学校で一科目の点数を出すとき、中間テストは30パーセント、期末テストは40パーセント、平常点は30パーセントのように反映する割合をあらかじめ決めておくものです。期末で10点上げるほうが平常点で10点上げるより、最終点数を大きく引き上げます。
反映する割合がとても小さい項目もあります。出席点のように割合が1パーセントなら、そこで満点を取っても最終点数はほとんど変わりません。逆に遅刻や未提出のように点数を引く項目は、良くすればするほど上がるのではなく、積み重なるほど下がります。
この反映割合が重みです。入ってきた値がテストの点数なら、重みはその点数を最終結果にどれだけ反映するかを決める割合です。一つ違う点があります。学校の反映割合は先生が学期の初めに決めますが、モデルの割合は数え切れないほど採点を繰り返しながら自分で合わせていきます。
2くわしく
接続ごとに自分の分の数字が付く
重みはニューロンではなく接続に付きます。前の層のニューロン100個が後ろの層のニューロン一つにつながると、そのニューロン一つだけに重みが100個必要です。後ろの層のニューロンが100個なら、二つの層の間だけで1万個生まれます。
だからモデルの大きさを言うときに出てくるパラメータ数はすぐに億単位に膨れ上がります。この数字の大部分が重みで、残りの一部がバイアス値です。モデルファイルの容量が大きい理由も、この数字たちをすべて収めているからです。
符号が向きを決める
重みが正なら、その入力が大きくなるほど結果も大きくなる方向に押されます。負なら反対に押されます。押し上げる力だけでは判断が生まれません。何かを違うと判定するには、引き下げる力も必要です。
メールが広告かどうかを見分けるモデルを思い浮かべると分かりやすいです。特定の単語が出ると広告寄りに強く押し、知っている人のアドレスから来たという印があれば反対側に引きます。二つの力が重なった後に残った向きが、そのニューロンの判断になります。
大きさが大きいほど敏感になる
重みの絶対値が大きいと、入力が少し揺れただけで出力が大きく揺れます。学習データにはよく合うのに初めて見るデータでは崩れる過学習は、こういう形で起こります。
そのため学習のときは、わざと重みが大きくなりすぎないよう抑える仕組みも一緒に使います。大きな値に罰点を付ける方法が代表的です。逆に値がすべて0に近く押しつぶされると、どんな信号も通れなくなります。学習はこの二つの極端の間で、ちょうどいい大きさを探していく過程です。
学習とはこの数字を直す作業です
作ったばかりのモデルの重みは、何の意味もないランダムな値です。この状態で答えを出せば当然めちゃくちゃです。正解とどれだけずれているかを測り、そのずれを減らすには各重みをどちらへどれだけ動かすべきかを計算して少しずつ移します。この作業を数百万回繰り返すと、数字たちが自分の場所を見つけていきます。
一度に大きく動かさないことが要です。一度にたくさん動かすと今回のデータだけに合わせてあちこち揺れ、あまりに少しずつ動かすと終わりなく時間がかかります。どれだけ動かすかを決める値が学習率です。
学び終えたら固定される
学習が終わると、重みはその場で固まります。私たちがチャットボットに話しかけても、モデルの中の数字が変わることはありません。同じ質問でも答えが毎回少しずつ違うのは、重みが変わったからではなく、次の語を選ぶときにわずかなランダム性を混ぜているからです。
モデルを作り直すには、もう一度学習を回さなければなりません。全体をもう一度学習させる代わりに一部だけを軽く直す方法がファインチューニングで、元の数字はそのままにしておいて横に小さな補正用の数字のかたまりだけを載せる方法も広く使われています。
3もう少し正確に
重みは層と層の間をつなぐ数字の表です。一つの層の計算は、入力値のまとまりとこの表を掛け合わせる行列の掛け算として一度に処理されます。グラフィックカードが得意とする仕事はまさにこの大量の掛け算と足し算で、だからモデルの学習にグラフィックカードを使うのです。
成績の割合の比喩がずれる点もあります。学校の反映割合はすべて足すと100パーセントになりますが、重みは合計が決まっていません。負にもなりますし、1より大きくなることもあります。また反映割合は人が意味を分かって決めますが、重み一つひとつには人が読み取れる意味がありません。あるニューロンに付いたある値が何を意味するかは、たいてい説明が難しいです。
値をどう保存するかも性能に影響します。精度を下げてより少ない桁数で保存すると、モデルの容量とメモリの使用量が大きく減りますが、この技法が量子化です。正確さを少し差し出す代わりに、ノートパソコンやスマートフォンでもモデルを動かせるようになります。
4やってみる
5よくある誤解
重みを人が一つずつ決めてやると思われがちですが、実際にはランダムな値から始めて学習が自分で合わせていきます。
重みが大きいほど良いモデルだと思われがちですが、実際には値が大きくなりすぎると学習データにだけ合った敏感なモデルになります。
重み一つひとつに意味があると思われがちですが、実際にはほとんどが人には読み取れない数字で、意味は多くの値に散らばっています。
7ひとこと要約
つまり重みは入力ごとに掛けられる重要度で、学習とはこの数字を正解のほうへ少しずつ押して自分の場所を見つけさせる作業です。
誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02