学習率Learning Rate

一歩で値をどれだけ動かすか決める値

ポイント
  • 学習率は一歩で値をどれだけ大きく動かすかを決める数値です。どちらへ行くかは勾配降下法が別に決めます。
  • 大きく取りすぎると、低い場所を通り過ぎて反対側へ跳ね上がり、誤差が減るどころか振れてしまいます。
  • 小さく取りすぎると、ずれはしませんがとてつもなく遅くなり、浅い場所にそのまま居座ることもあります。
  • 人が直接決めてやる値なので、学習前に選んでおくつまみの中でも影響が一番大きいものです。
  • 最初は大きく、後になるほど細かく減らす段階ごとの調整がよく使われる方式です。
目次

1たとえで理解する

掃除機をかけるとき、一回にどれだけ遠くまで押すかで掃除の出来が変わります。腕を伸ばして大きくサッサッと押せばリビングをすぐに横切れますが、ほこりの残った場所をそのまま通り過ぎてしまい、結局戻ってもう一度押すことになります。押しては引きを繰り返すばかりで、床は変わらないまま時間だけが過ぎます。

反対に手首だけを小刻みに動かしてほんの少しずつ押すと、見落とす場所はありません。ただしリビング一部屋に半日かかり、ソファの下のような場所では前へ進むこともできずその場でぐるぐる回るだけになります。

学習率はこの押す幅です。方向はすでに決まっていて、一回押すときにその方向へどれだけ進むかだけを決める数値です。幅一つのせいで掃除が速く終わることもあれば、いつまでも終わらないこともあります。

2くわしく

方向と幅は別の担当が決める

学習は二つのことが決まって一歩が完成します。どちらへ行くかと、どれだけ行くかです。前者は今いる場所の勾配を計算して出てきて、後者は人があらかじめ書いておいた数値から出てきます。この数値が学習率です。

そのため学習率は、データをいくら多く入れても自動では良くなりませんモデルが学習で自ら変える値ではなく、学習を始める前に人が選んで入れる値だからです。こうした値をハイパーパラメータと呼びますが、その中でも結果が一番大きく揺れるのが学習率です。

勾配には方向だけでなく急な度合いも一緒に含まれています。そのため同じ学習率でも、急な場所では大きく、なだらかな場所では小さく動きます。学習率は、その上にもう一度掛かる倍率に近いものです。つまり実際の一歩の大きさは、学習率と足元の急さの掛け合わせで決まります。

大きすぎると底を通り過ぎる

幅が大きすぎると、低い場所を踏めずに飛び越えてしまいます。左の斜面で大きく一歩踏み出したら右の斜面の中腹に立っていた、という具合です。そこからまた下り方向へ大きく動くと、今度は左の斜面へ渡ってしまいます。

この往復が一歩ごとに少しずつ大きくなると、誤差はむしろ上がっていきます。学習画面で誤差の数字が下がっていたのに急に跳ね上がったり、そもそも数値にならない値へ飛んでしまったりするのは、学習率が大きいことが一番よくある原因です。

学習が始まってすぐ崩れたなら、他の設定をいじる前にまず学習率を半分に下げてみるのが順番です。幅を減らすだけで持ち直すことが多いからです。

小さすぎると一日が足りない

幅が小さすぎると、一歩ごとに誤差がほんの少しずつしか減りません。方向は常に合っているので安全に見えますが、使える場所までたどり着くのにかかる時間が何倍にも延びます。学習にかかる時間と費用がその分大きくなります。

もっと困るのは、途中で出会う浅い場所を越えられないことです。少し強く押せば越えられそうな段差でも、幅が小さいためその場で上下するだけで学習が終わってしまいます。誤差がある値でぴたりと止まりそれ以上下がらないなら、幅を広げてみる時です。時間をかければいつか届くはずだと決めておいた周回数まで待ち続けても、幅が小さすぎればその段差はいつまでも越えられません。

最初は大きく、後は細かく

そのため学習率を一つに固定せず、学習の進行に合わせて変えていく方法がよく使われます。最初は大きめに押して広い範囲を素早くさらい、低い場所に近づいたら幅を狭めて慎重に仕上げます。

始めるときはごく小さい幅で慣らし、徐々に上げてまた下げていく方式もよく使われます。大きなモデルでは、最初の数歩が大きく跳ねるとその後がまるごと崩れてしまうためです。動き方のコツをまるごと整えるオプティマイザと一緒に使うと、方向ごとに幅が自動で調整されることもあります。どの方式を選ぶにせよ、幅の変え方そのものも学習を始める前に決めておく必要があります。

3もう少し正確に

学習率は、勾配に掛けて値をどれだけ更新するかを決める倍率です。ふつう1よりずいぶん小さい数を使い、モデルとデータが変わればちょうどよい値も変わります。正解として決まった値はないため、いくつか実際に動かしてみて誤差が一番よく下がる値を選ぶのが普通です。まとまりをどれだけ大きく取るかによっても、ちょうどよい学習率は一緒に動きます。

たとえがずれる点もあります。掃除機は前後にしか押しませんが、学習は数百万の方向へ同時に動きます。そして掃除機は押す幅がそのまま移動距離ですが、学習で実際に動く量は学習率にその場所の急な度合いを掛けた値です。そのため同じ学習率でも、学習の序盤と終盤で一歩の大きさが自然に変わります。オプティマイザを使うと方向ごとに倍率がさらに調整されるため、書いておく学習率は基準線に近いものになります。

4やってみる

5よくある誤解

  • 学習率が大きいほど学習が早く終わると思われがちですが、実際には一定の線を超えると誤差が振れてしまい、まったく学習が進まなくなります。

  • 学習率は学習しながらモデルが自動で合わせてくれると考えられがちですが、実際には人があらかじめ決める値で、誤って設定すると他の設定がどれだけ良くても無駄になります。

  • 一度うまく合わせた学習率は他のモデルにもそのまま使えると思われがちですが、実際にはモデルの大きさやデータが変わればちょうどよい値も一緒に変わります。

7ひとこと要約

つまり学習率は一歩で値をどれだけ動かすかを決める幅で、この幅一つが学習をきちんと終わらせるか振れさせるかを分けます。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02