ヘッシアンが最適化に非常に優れている場合(たとえば、ニュートンの方法を参照)、そこで停止するのはなぜですか?三次、四次、五次、六次導関数を使用してみましょう。何故なの?
ヘッシアンが最適化に非常に優れている場合(たとえば、ニュートンの方法を参照)、そこで停止するのはなぜですか?三次、四次、五次、六次導関数を使用してみましょう。何故なの?
回答:
私は質問を「なぜニュートンの方法は一次および二次導関数のみを使用し、三次以上の導関数を使用しないのか」と解釈しています。
実際、多くの場合、3次導関数を使用すると役立ちます。私は以前にカスタムのものでそれをやったことがあります。ただし、一般に、より高い導関数を使用すると計算の複雑さが増します。これらすべての導関数を見つけて計算する必要があり、多変量問題の場合、1次導関数よりも3次導関数の方がはるかに多くなります。-それは、もしあればステップカウントの節約をはるかに上回ります。たとえば、3次元の問題がある場合、1次導関数が3、2次導関数が6、3次導関数が10あるため、3回目のバージョンにすると、実行する必要のある評価の数の2倍(9から19)、これらの評価を行った後のステップ方向/サイズの計算の複雑さは言うまでもありませんが、ほぼ確実に、私が取らなければならないステップの数を半分に減らすことはありません。
今、と一般的なケースでは変数の集合偏導関数であろう数、そう5つの変数、第三の総数を通報するための、4番目、および5番目の偏微分は231に等しく、1階および2階の偏微分の数よりも10倍以上増加します(20)。余分な計算負荷を補うために、反復カウントの十分な減少を見るには、変数の5次多項式に非常に近い問題がなければなりません。n t h
この質問の統計的側面が実際にはわからないので、最適化の部分に答えます。
ここでのほとんどすべての答えは、反復コストのみに焦点を当て、反復カウントを無視しています。しかし、両方とも重要です。1ナノ秒で反復するが、収束するのに回の反復が必要な方法は、何の役にも立ちません。また、反復コストがいくら安くても、爆破する方法は役に立ちません。
何が起こっているのかを把握しましょう。
その理由の1つは(これは2次の場合にも当てはまりますが、少し詳しく説明します):
一方で、最適から遠く離れていると、爆発しやすくなります!
(もちろん、これは常に真であるとは限りません。たとえば、二次方程式は、ニュートン法で1ステップで収束します。しかし、実世界の任意の関数で優れたプロパティがない場合、これは一般に真です。)
あなたは遠く離れて最適のあるときに、この手段があること、あなたは一般的にしたい方法:下位(一次読みを)。近くにいる場合にのみ、メソッドの順序を上げます。
理由を確認するには、まず「2次収束」の意味を理解する必要があります。
数学的には、二次収束とは、反復でがエラーの場合、次の定数について最終的に成り立つことを意味し。 k c
簡単な英語で言えば、これは、最適(重要!)に近づくと、余分なステップごとに精度の桁数が2倍になることを意味します。
どうして?以下のために:それは例を見るのは簡単だと、あなたが持っている、である、などが途方もなく速いです。(それは超指数関数です!)| ϵ 1 | = 0.1 | ϵ 2 | ≤ 0.01 | ϵ 3 | ≤ 0.0001
実際には、二次微分が高価になりすぎたときにこれを行うことがよくあります。しかし、線形収束は非常に遅くなる可能性があります。たとえば、を取得した場合、を取得するには線形収束で10,000,000回の反復が必要ですが、2次収束では23回の反復しか必要ありません。そのため、線形収束と2次収束の間に大きな違いがある理由がわかります。これは、たとえば、2次および3次の収束には当てはまりません(次の段落を参照)。| ϵ | < 0.5
この時点で、コンピューターサイエンスを知っていれば、2次収束で問題は既に解決されていることがわかります。理由がわからない場合、その理由は次のとおりです。繰り返しごとに桁数を2倍にする代わりに3倍にすることで得られる実用的なものは何もありません。結局のところ、コンピューターでは、-精度の数値でさえ52ビットの精度、つまり10進数で約16桁です。
たぶん、必要なステップ数を16から3に減らします... これは、各反復で3次導関数を計算する必要があり、それが次元の呪いであることに気付くまで、すばらしいですねdouble
あなたを強く打つ。以下のために次元の問題、あなただけの要因支払っ倍得るためにダムです。そして現実の世界では、問題は少なくとも次元ではなく、少なくとも数百次元(あるいは数千あるいは数百万)の次元を持っています!したがって、たとえば20,000のファクターを支払うことで、おそらく20のファクターを得ることができます。賢明なトレードオフはほとんどありません。6 ≈ 5 6
残りの半分は、最適とはほど遠い場合に一般的に悪い動作をすることです。これは、通常、実行する必要がある反復回数に悪影響を及ぼします。
一般的な設定では、2よりも高次のメソッドは悪い考えです。もちろん、テーブルに追加の有用な仮定を持ち込める場合(たとえば、データが高次多項式に似ている場合や、最適な位置を制限する方法がある場合など)、それらが次のようになっていることがわかります。良いアイデアですが、それは問題ごとの決定であり、一般的な経験則ではありません。
ヘッセ行列の計算でさえ、かなりの作業です:
3階微分がどのように見えるか見てみましょう: これは3次元の行列です。要素は次のようになります。 (∂H/∂X)IjはK=∂3F
6次導関数は6次元行列になります:
通常、トレードオフは、ヘッセ行列よりも高い値を求めるのには好ましくありません。高次の近似を使用することによる速度の潜在的なゲインとノイズ増幅のトレードオフを意味します。統計アプリケーションについて説明しているため、入力には常にノイズがあります。このノイズは導関数によって増幅されます。
ゴルフをする場合、最適化のアナロジーは、最初にスイングしてグリーンに到達しようとすることです。ホールについてはあまり心配しません。一度、グリーン上で、ホールを狙ってパットします。
通常、このようなアルゴリズムの有効性を分析すると、2次アルゴリズムの2つのステップとほぼ同じ有効性を持つ4次アルゴリズムの1つのステップなどの結果が見つかります。
したがって、使用するアルゴリズムの選択は比較的簡単です。4次アルゴリズムの1ステップが2倍の作業を行う場合、または2次アルゴリズムの1ステップ以上を使用する場合は、代わりに後者を使用する必要があります。
それは、これらの種類の方法の典型的な状況です。古典的なアルゴリズムは、一般的な問題に対して最適な仕事と有効性の比を持っています。高次のアプローチが非常に簡単に計算でき、従来のバリアントよりも優れている場合があるという問題が時々ありますが、それらは比較的一般的ではありません。
導関数の次数は、関数の多項式近似の次数と考えることができます。ほとんどの最適化ルーチンは凸性に依存しています。二次多項式はどこでも凸/凹になりますが、3次以上の多項式はどこでも凸になりません。この理由から、ほとんどの最適化ルーチンは、2次関数を使用した凸関数の逐次近似に依存しています。凸である2次近似では、2次が凸になるために正定値条件を課す必要があります。
ここでSGD収束の3次法を防御する唯一のものとしますが、係数が必要な空間全体ではなく、たとえば単一の方向のみで、単一の追加係数のみが必要な場合この方向にはすでに2次モデルがあります。
単方向3次モデルが有益な理由 たとえば、この方向の2次導関数がゼロに近いということは、基本的に2つの代替シナリオを意味するためです。プラトーまたは変曲点-前者のみがより大きなステップサイズを必要とし、3次導関数はそれらを区別できます。
私は信じて、我々はハイブリッドマルチための方法に向かって移動します。最近の勾配のPCAからの低次元の部分空間などで2次法、まだこの部分空間に勾配直交の一部に向かって自由な第一順位の同時勾配降下することができますどのような...そしてさらにたとえば、最も関連性の高い単一の方向に3次モデルを追加します。