AIモデルは、どうやってまちがいから学ぶの?
モデルは、まちがいを測って設定を少しずつ動かすことで学びます。予想のたびに、損失という数字がどれくらいはずれたかを示します。誤差逆伝播法が、損失を下げるには何十億もの重みをそれぞれどちらに回せばよいかを計算し、勾配降下法がすべての重みをその方向へ少しずつ動かします。これを何度もくり返します。
▶ やってみようなぜ大切なのか
「学習」と聞くとふしぎに思えますが、中身は1つのループです。まちがいに点数をつけ、下り坂の方向を見つけ、ダイヤルを全部少しだけ回す。その一歩の大きさで、学習がうまくいくかどうかが決まります。
6分後にできるようになること
- 損失は、予想がどれくらいはずれたかを表す1つの数字です。学習はそれを下げようとします。
- 誤差逆伝播法がダイヤルごとに下り坂の方向を見つけ、勾配降下法がそれを全部動かします。
- 学習率が小さすぎると進まず、大きすぎると行きすぎたり爆発したりするので、エンジニアはていねいに調整します。
練習する内容
エンジニアが使う4つの言葉
カードをタップしましょう。この4つで、学習のループがまるごとわかります。
- 📉 損失(ロス)
- モデルがどれくらいまちがえたかを表す1つの数字です。本当の次の言葉が「青い」なのに、モデルがその確率を低くしていたら、損失は高くなります。
- 🎛️ 重み
- モデルのダイヤルで、何十億個もあります。いっしょになって、すべての予測を決めます。学習で変わるのは、この数字だけです。
- 🧭 勾配
- ダイヤルごとに、損失を下げるにはどちらに回すか、どれくらい影響するか。誤差逆伝播法が、全部のダイヤルについて一度に計算します。
- 👣 学習率
- 一歩の大きさです。小さすぎると学習がなかなか進まず、大きすぎると行きすぎたり、こわれたりします。
損失の谷を転がろう
ボールはVireoのダイヤルの1つです。歩幅を選んで「調整」を押し、損失を緑の線より下げましょう。
歩幅(学習率): ごく小 · 小 · 中 · 大 · 特大
ボールの高さが損失です。調整を押すたびに、下り坂の方向を確かめて、選んだ歩幅だけダイヤルを回します。損失を緑の線より下げましょう。
- この谷では中の歩幅がいちばん速いです。ごく小はのろのろ、大ははね返り、特大は飛び出してしまいます。
- ずっと急な谷です。同じ歩幅でうまくいくでしょうか? 急な谷では小の歩幅が勝ちます。さっきはちょうどよかった歩幅が、今度は行きすぎます。だからエンジニアは学習率を調整するのです。
- 今度は長くてゆるやかな坂です。どの歩幅が合う? ゆるやかな坂では、大の歩幅でも安全で、時間を節約できます。本物の学習では、たいてい進むにつれて歩幅を小さくしていきます。
学習のダッシュボードを読もう
Vireoの損失の線が激しく上下し、グラフの外へ飛び出しました。いちばんよさそうな直し方は?
- 学習率を下げる (答え)
- 学習率を上げる
- ダイヤルを半分消す
ダイヤル1つひとつをどちらに回すべきかを計算するのは、どの部分?
- 勾配を計算する誤差逆伝播法 (答え)
- ダイヤルを1つずつ手で確かめるエンジニア
損失が下がったら、Vireoはもういつも正しい?
- いいえ。学習用の文章に、予想がよく合うようになったということ (答え)
- はい。損失が低ければ、もうまちがえない
覚えておこう
学習は1つのループです。損失を測り、下り坂の方向を見つけ、ダイヤルを全部少しずつ回す。うまくいくかは歩幅しだいです。
損失はまちがいを測り、勾配は下り坂を指し、学習率は一歩の大きさを決めます。
押さえておきたい事実
- ネットワークの重みを1つずつどう調整するかを計算する誤差逆伝播法は、1986年にNature誌の論文で広まりました。 · 出典: Rumelhart, Hinton & Williams, Learning representations by back-propagating errors, 1986
- GPT-3には1750億個のパラメータがあり、その1つひとつが学習で調整されるダイヤルです。 · 出典: Brown et al., Language Models are Few-Shot Learners, OpenAI, 2020
- 大規模言語モデルのほとんどは、Adamかそれに近い方法で学習します。ダイヤルごとに歩幅を変える、勾配降下法の改良版です。 · 出典: Kingma & Ba, Adam: A Method for Stochastic Optimization, 2015
- 大規模な学習では、たいてい最初に学習率を少しずつ上げ、学習が進むにつれてだんだん下げていきます。
更新日:
よくある質問
勾配降下法とは、かんたんに言うと何ですか?
坂を少しずつ下りて、よい設定を見つける方法です。どの方向に進めばまちがいが減るかを確かめ、そちらへ小さく一歩進み、まちがいが小さくなるまでくり返します。
損失関数とは何ですか?
モデルのまちがいを1つの数字に変える式です。言語モデルの場合は、本当の次のトークンにモデルがどれくらいおどろいたかを測ります。そのトークンを起こりにくいと思っていたほど、損失は高くなります。
学習率とは何ですか?
学習中の、1回の更新の大きさです。高すぎると学習が不安定になり、低すぎると時間がかかりすぎるので、いちばんていねいに調整される設定の1つです。
誤差逆伝播法(バックプロパゲーション)とは何ですか?
ネットワークの重みごとに、少し変えると損失がどう変わるかを計算する方法です。出力から各層を逆向きにたどっていくので、この名前がついています。
関連用語
