web-dev-qa-db-ja.com

アルゴリズムが収束するとはどういう意味ですか?

この文の例のように、強化学習について読むとき、私はこの用語に出くわし続けます。

問題が注意深くモデル化されている場合、一部の強化学習アルゴリズムは全体最適に収束する可能性があります

http://reinforcementlearning.ai-depot.com/

またはここ:

固定ポリシーPiの場合、上記のTDアルゴリズムはVPiに収束することが証明されています

http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node62.html

Wordの収束についての私の理解は、それは同じポイントに一緒に来るいくつかのことを意味するということですが、単一のこと(アルゴリズム)はどのようにそれを行うことができますか?

12
starfish

反復アルゴリズム は、反復が進むにつれて出力が特定の値にますます近づいたときに収束すると言われています。より正確には、選択したエラー範囲がどれほど小さくても、十分に長く続けると、最終的に関数は最終的な値の周りのそのエラー範囲内に留まります。

状況によっては、アルゴリズムは収束せず、常に一定の量で変化する出力を持ちます。それは発散する可能性もあり、その出力はますます大きな値の変動を受け、有用な結果に近づくことはありません。より正確に言えば、どれだけ長く続けても、関数値は「最終」値の範囲内で落ち着くことは決してありません。

最初の文の「converge to a globaloptim」句は、収束する可能性があるアルゴリズムへの参照ですが、「最適な」値ではありません(たとえば、関数と初期条件に応じて、ローカル最大値、グローバル最大値に決して到達しない)。

14
Daniel Griscom

一般的に収束とは

convergence の概念は、明確に定義された数学用語です。それは本質的に、「最終的に」要素のシーケンスが単一の値にますます近づくことを意味します。この単一の値を「制限」と呼びます。

正式な定義は次のようになります:

実数の(無限)シーケンス_X0, X1, X2, ... Xn ..._が与えられた場合、_Xn converges to a given number L_と言いますevery肯定的なエラーの場合、Xmがあり、Xnの後に来るすべての要素Xmが異なるLから、そのエラー未満です。

例:

そのようなシーケンスを想像してみてください:

  • X0 = 1
  • X1 = 0.1
  • X2 = 0.01
  • X3 = 0.001
  • X4 = 0.0001
  • ...
  • Xn = 1 /(10 ^ n)

Xnはゼロに収束しますか?はい!どうして?

エラーE(たとえば、_E = 0.0025_)を考えてみてください。シーケンス内に、すべての要素が_0.025_の下にある要素はありますか?はい!その要素は_X3 = 0.001_です。 X2以降、すべてのXNは_0.0025_を下回っています。これはevery E> 0に実行できますか?はい。選択したすべての正のエラーについて、最初の小数点の前にゼロがいくつあるかを確認できます。シーケンスは、同じ数のゼロを持つ要素から始まるシーケンスよりも低くなります。

つまり、Xn = 1/(10^5) converges to 0です。 「できる限りゼロに近づくことができる」のように。


アルゴリズムが収束するとはどういう意味ですか?

「技術的に」収束するのはアルゴリズムではなく、アルゴリズムが操作または反復する値です。たとえば、PIのすべての桁を出力するアルゴリズムを作成しているとします。

アルゴリズムは次のような数値の出力を開始します。

  • X0 = 3.14
  • X1 = 3.141
  • X2 = 3.1415
  • X3 = 3.14159
  • ...

アルゴリズムは、PIにますます近い数値を出力しますか?つまり、アルゴリズムが出力するシーケンス_X0, X1, ... XN ..._はPIに収束しますか?

もしそうなら、我々のアルゴリズムはPIに収束すると言います。


通常、アルゴリズムの正確性を証明することに関心があります。

通常、アルゴリズムを作成するときは、アルゴリズムが提供するソリューションが、アルゴリズムが解決する問題に対して正しいものであるかどうかを知りたいと思っています。これは、収束の形をとることがあります。

一般的に、アルゴリズムにはmetricsと呼ばれるものがあります。メトリックは、アルゴリズムが生成する特定の結果に与える数値です。たとえば、A.I /機械学習の反復アルゴリズムでは、アルゴリズムが入力に基づいて生成している「エラー」を追跡することは非常に一般的です。このエラーはメトリックです。

これらの反復アルゴリズムでは、ステップごとに異なるエラーが生成されます。そして、アルゴリズムがやろうとしていることは、そのエラーを最小化して、ますます小さくなるようにすることです。エラーのシーケンスが収束すると、アルゴリズムは収束すると言います。

これらの場合、_global optimum_は通常、可能な限りエラーが最も少ない設定として定義されます。その場合、「アルゴリズムは大域的な最適値に収束します」とは、「アルゴリズムは可能な限り最小のエラーに収束するシーケンスでエラーを生成する」ことを意味します。

「大域的最適」が「正しい解」である場合、アルゴリズムが収束することを示すことは、アルゴリズムが正しいことを示すことと同じです。

また、アルゴリズムが収束することを示すには証明が必要であることを覚えておいてください(0.001、0.0001などの例で行ったように)。


例として、分類子

この例は、分類子の場合です。機械学習アルゴリズムを使用して、数値が奇数であるか偶数であるかを分類し、次のデータセットがあるとします。

  • (1、奇数)
  • (2、偶数)
  • (3、奇数)
  • (77、奇数)
  • (4、偶数)

数値のすべてのセットのアルゴリズムは、それらが偶数または奇数の場合、それらのそれぞれに対して吐き出します。そのため、メトリックエラーは、エラーが発生した回数を、指定された要素の総数で割ったものとして定義できます。

したがって、アルゴリズムが次のような場合:

  • (1でも)//間違っている
  • (2、偶数)
  • (3、even)//間違っている
  • (77でも)//間違っている
  • (4、偶数)

エラー指標は_3/5 = 0.6_になります。ここで、もう一度アルゴリズムを実行すると、次のようになります。

  • (1でも)//間違っている
  • (2、偶数)
  • (3、奇数)
  • (77、奇数)
  • (4、偶数)

エラー指標は_1/5 = 0.2_になります。

それがますます実行され、エラーのシーケンスが次のようになっているとしましょう:

_0.6, 0.2, 0.1, 0.01, 0.000456, 0.00000543, 0.000000000444 ...._

だから大きな問題は、私たちのアルゴリズムはゼロになるでしょうか?それはゼロに収束しますか?私たちのアルゴリズムはすべて収束しますか?最終的にそれが正しくなる(または可能な限り正しく近づく)ことを証明できますか?

うまくいけばそう:)

3
Albuquerque