収束Convergence

これ以上良くならず値が一箇所にとどまる状態

ポイント
  • 収束は、学習をこれ以上続けても値がほとんど変わらず一箇所にとどまる状態です。
  • 良くなる幅は最初は大きく、後になるほど小さくなります。だからグラフが急に下りてから平らになります
  • 「もう終わり」という判定は目分量ではなく、直近数回の変化の幅をあらかじめ決めた基準と比べて下します。
  • 値が落ち着かずに揺れ続けたり、むしろ大きくなったりするなら収束していません。一歩が大きすぎるときによく起こります。
  • 収束したという言葉は止まったという意味であって、一番良い場所にたどり着いたという意味ではありません
目次

1たとえで理解する

濁った水を浄水場の沈殿池に入れてじっと置くと、重い泥から先に底へ沈みます。水を入れた直後は、濁度を測る計器の針がぐんぐん下がります。一時間ほどたつと下がる幅が目に見えて減り、半日たつと朝に測った値と夕方に測った値がほとんど同じになります。もう一日待っても、針はその場所にとどまります。沈むべきものがすでに沈み切ったからです。

このとき担当者は「これ以上待っても無駄だ」と判断し、次の工程へ水を送ります。**針が止まった場所が、この沈殿池が出せる結果です。**学習が収束したという言葉は、この場面と同じです。これ以上回しても数字が変わらないので、そろそろ止め時だという意味です。

2くわしく

最初は大きく、後は少しずつ

学習は、間違いの度合いを測ってその分だけ値を動かすことを繰り返します。最初は値がでたらめな場所にあるので間違いの度合いが大きく、動かすべき距離も遠くなります。だから最初の数周で損失がぐっと下がります。

ある程度落ち着いてくると、事情が変わります。残った誤差は小さく、誤差が小さければ動かせという信号もそれに合わせて小さくなります。一歩の大きさが自然と小さくなるようなもので、後になるほど良くなる幅が薄くなります。沈殿池で重い泥が先に沈み、残った細かい粒子がなかなか沈んでこないのと同じです。

もう終わりだとどう分かるか

収束の判定はグラフを目で見て下すわけではありません。基準をあらかじめ決めておきます。直近数周のあいだに損失が減った幅が決めておいた値より小さければ収束したと見る、という具合です。一回だけ見て判断せず連続で何回か確かめる理由は、一周だけたまたま落ち着いていることもあるからです。

実務では訓練損失だけでなく、初めて見るデータで測った点数も一緒に見ます。訓練損失は少しずつ下がり続けているのに初めて見るデータの点数がこれ以上良くならないなら、残りの下がりは丸暗記に近いものです。だから両方の値がともに落ち着く地点を、止める場所として選びます。基準の幅を厳しく取りすぎると、まだ改善の余地があるうちに早く止めてしまうので、この幅も実際に何度か試して決めます。

沈まずに揺れ続けるとき

値がどうしても落ち着かない場合もあります。損失が下がっては跳ね上がることを繰り返したり、そのままどんどん大きくなって計算が壊れたりします。沈殿池の水をそのままにせず強くかき混ぜてしまうと、沈みかけた泥まで再び浮かび上がるのと同じことです。

一番よくある原因は、一歩が大きすぎることです。目標の場所へ向かってはいるのに毎回通り過ぎてしまい、反対側へ渡ってしまいます。一歩の大きさを小さくするか、後になるほど一歩をだんだん小さくする方式で抑えます。値の大きさをあらかじめそろえておいたり、大きくなりすぎた信号を切り落としたりする方法も一緒に使われます。損失の数字が桁違いに跳ねたり、そもそも数値として表示できなくなったりしたら、まずこの揺れを疑うとよいでしょう。

止まったことと十分良くなったことは違う

収束は「これ以上変わらない」という事実だけを教えてくれます。その場所が良い場所かどうかは教えてくれません。沈殿池の水がこれ以上澄まないからといって、飲めるほど澄んでいるとは限らないのと同じです。残った濁りが基準より高ければ、薬品を変えるか工程を増やす必要があります。

学習も同じです。収束したあとも点数がまだ低いなら、もっと長く回すことではなく、何か別のことを変えるべきだという合図です。データを増やしたり、モデルを大きくしたり、開始条件を変えてもう一度回します。悪い場所で止まってしまう状況は別に局所最小値と呼び、学習が終わったという判断はいつもこの二つを両方確かめたうえで下します。数字だけを追いかけて「動かなくなったから成功」と決めつけないことが、ここでの一番の心がけです。

3もう少し正確に

収束(Convergence)は、反復を重ねるほど損失やパラメータの変化量があらかじめ決めた閾値より小さくなり、事実上一点にとどまる状態を指します。ミニバッチで学習する場合はバッチごとにデータが違って信号に雑音が混じるため、値は完全には止まらず狭い範囲の中で細かく揺れ続けます。そのため実際の判定は「正確に同じになった」ではなく「変化の幅が基準より小さくなった」で下されます。

たとえがずれる点もあります。沈殿池は同じ水を何度受け入れても結局似たような濁度に落ち着きますが、学習は開始値とデータを見せた順番によって毎回違う場所で止まります。同じ設定で二回回しても最終点数が少しずつ違う理由です。また沈殿は時間がたてば自然に進みますが、学習は一歩の大きさを誤って設定すると、どれだけ長く待っても永遠に落ち着かないことがあります。

4やってみる

5よくある誤解

  • 収束すれば正解にたどり着いたことになると思われがちですが、実際にはただこれ以上変わらない場所に止まっただけで、その場所の点数が低いこともあります。

  • 長く回すほどより収束すると考えられがちですが、実際には落ち着いたあとは時間と費用だけが増え、初めて見るデータの点数はかえって落ちることもあります。

  • 損失が0に近くないと収束ではないと信じられがちですが、実際にはデータに混じった雑音のせいで、損失はある値の上で止まるのが普通です。

7ひとこと要約

つまり収束は学習をこれ以上回しても値が変わらず一箇所にとどまる状態で、止め時を教えてくれるだけでその場所が最善かは別に確かめる必要があります。

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