学習Training
例を見ながら調節値を少しずつ直していく過程
- 学習は例を見ながらずれた分だけ調節値を少しずつ直していく過程です。説明を聞いて知るのではなく、やってみながら合わせていくやり方です。
- 一度に大きく直しません。ごく少しずつ、とても多くの回数直すことが肝心です。
- 学習が終わると調節値がある状態で止まり、その止まった状態を保存したものがモデルです。
- 学習は機械学習を動かすエンジンで、機械学習はさらに人工知能を作る方法の一つです。
- 長く続ければずっと良くなるわけではありません。ある地点を越えると見たものをただ覚え始めます。
目次
1たとえで理解する
自転車を習う日を思い浮かべてください。そばでどれだけ詳しく説明しても役に立ちません。ハンドルを右に何度傾けて体を左にどれだけ倒すかを全部覚えても、サドルに座った瞬間そのまま倒れてしまいます。
学びは別の方法で起こります。ペダルを踏み、右に傾き、足を突いて止まります。もう一度乗って、今度は少し傾きを減らしてみます。また倒れ、また少し直します。何十回も繰り返すうちに、ある瞬間から体が自然にバランスを取るようになります。何をどう直したのか、言葉ではまだ説明できません。
ここで大事なのは直す幅です。右に倒れたからといってハンドルを思い切り左へ切れば、今度は反対に倒れます。ずれた分だけ少し戻すこと、そしてその小さな調整をしつこいほど繰り返すこと。学習はまさにこのやり方で起こります。
2くわしく
一巡は四つの動きです
学習は同じ四つの動きを繰り返します。第一に、例を一つ入れて答えを出してみます。第二に、その答えが正解からどれだけずれているかを一つの数で測ります。第三に、その数を減らすにはどの調節つまみをどちら向きに回すべきか計算します。第四に、その向きにほんの少しだけ回します。
そして次の例に移り、同じ四つの動きをまた行います。自転車で言えば、乗ってみて、どれだけ傾いたか感じて、どちら向きに戻すべきか知り、少し戻す流れです。
この一巡が数百万回、数十億回と回ります。一巡で変わる量は目に見えないほど小さいのに、この小さな変化が積み重なって、はじめはでたらめだったものが次第にそれらしい答えを出すようになります。
少しずつ直す理由
一度に大きく直してはいけない理由があります。今見ている例一つが全体を代表しているわけではないからです。たまたま変な例を一つ見て大きく方向を変えると、それまで積み上げてきたものが一気に崩れます。右に傾いたからとハンドルを思い切り切って反対側に倒れるのと同じです。
だから一歩の大きさをごく小さく取ります。この一歩の大きさを学習率と呼びます。大きすぎると答えの周りを行き来して落ち着かず、小さすぎるといつまでも辿り着けません。ちょうどよい大きさを見つけることが、学習させる人の大事な仕事の一つです。
例を一つずつ見るのではなく、数十個まとめて見る方法もよく使われます。ひとまとまりの平均で方向を決めれば、変な例一つに振り回されずに歩みが安定します。
ずれの大きさを一つの数で測ります
学習が回るためには、今どれだけ間違っているかを数で知る必要があります。この数を測る物差しを損失と呼びます。正解と完全に同じなら0に近く、離れるほど大きくなります。
学習の目標はこの数を減らすことただ一つです。絵を上手に描けとか話を上手にしろという指示はどこにもありません。人がすることは何を物差しにするかを決めるところまでで、あとはその数を減らす方向へ自然に流れていきます。
だから物差しの選び方を誤ると、見当違いのほうへ進みます。自転車で言えば、倒れないことだけを測れば、その場に立ち止まる方法を覚えてしまいます。実際に学習で起きる事故には、こういう種類のものが多くあります。
長く続ければずっと良くなるわけではありません
学習を続けると損失はどんどん減っていきます。ですがある地点を越えると、奇妙なことが起こります。学習に使った例についてはますます上手に当てるのに、初めて見る例についてはかえって悪くなるのです。規則を見つける代わりに、見たものを覚え始めたということです。この状態を過学習と呼びます。
そこで学習に使っていない例を別に取り分けておき、途中で何度も点検します。その点数がこれ以上よくならず、逆に下がり始めた瞬間に学習を止めます。自転車も、倒れなくなったあと同じ路地ばかり回っても意味がなく、別の道に出てこそ実力になるのと似ています。
学習が終わるとモデルが残ります
学習を止めると、その瞬間の調節値がそのまま固まります。この固まった一そろいの値を保存したものがモデルです。学習は過程を指す言葉で、モデルはその過程が残した結果物です。
一度固まったモデルは自分から成長しません。サービスが答えを出している間、学習は起きていません。自転車を習ったあと乗り回している間、新しく学ぶことがほとんどないのと同じです。実力を変えるにはもう一度学習を回す必要があり、すでに完成したモデルに新しい資料を少しだけ与えて性格だけを変える方法も別にあります。
3もう少し正確に
学習は損失関数の値が小さくなる方向へパラメータを繰り返し更新する最適化の過程です。方向は損失が各パラメータに対してどれだけ敏感かを計算して得られ、この敏感さを勾配と呼び、勾配の反対方向へ少しずつ動かす方法を勾配降下法と呼びます。深いニューラルネットワークでは、最後の層で測った誤差の責任を前のほうの層まで逆にたどりながら分配して計算しますが、この手続きが誤差逆伝播です。用意した例全体を一巡することをエポックと数えます。
自転車のたとえがずれる点もあります。人は数十回倒れれば身につきますが、モデルはたいてい数百万回から数十億回の更新が必要です。人は倒れるたびに次どうするか自分で判断しますが、モデルはずれの大きさを測る物差しが外から与えられてはじめて方向を知ることができます。また人は一度身につけたバランス感覚を別の乗り物にもある程度応用できますが、モデルは学習した範囲を少し外れただけで大きく崩れることが多いです。
4やってみる
5よくある誤解
学習は知識を保存する作業だと思われがちですが、実際には例を保存するのではなく、答えがずれた分だけ調節値を少しずつ動かす作業です。
長く学習させるほど良くなると見なされがちですが、実際にはある地点を越えると見たものだけを覚えてしまい、初めての問題ではかえって悪くなります。
サービスを使っている間も学習し続けていると思われがちですが、実際には答えを出している間は調節値が変わらず、学習は別に用意した場でだけ行われます。
7ひとこと要約
つまり学習は例を見ながらずれた分だけ調節値をごく少しずつ数え切れないほど直していく過程で、その過程が止まった場所に残るのがモデルです。
誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02