なぜ数値最適化に3次導関数を使用しないのですか?


29

ヘッシアンが最適化に非常に優れている場合(たとえば、ニュートンの方法を参照)、そこで停止するのはなぜですか?三次、四次、五次、六次導関数を使用してみましょう。何故なの?


11
最適なものを見つけたら、さらに詳しく見てみましょう。確かに、あなたは本当に何を求めているのですか?統計的な質問は何ですか?
whuber

2
多くの場合、最適な推定方程式を解くか、目的関数を最小化する推定値の制限分布は、ともに正常であるため、それらの1次モーメントと2次モーメントによって完全に特徴付けることができます。
AdamO

3
あなたが何かをすることができるなら、あなたがそれをするべきだという意味ではありません。高次の導関数は、ノイズの影響を受けやすくなります。
Vladislavs Dovgalecs

6
この質問は統計に関するものではないので、このトピックをオフトピックとして終了することに投票しています。これは、数値最適化についてです
Aksakal

11
科学的なブレークスルーはありません。ハレーはあなたを約3 1/4世紀倒しました。ハレー、E.、1694年、「一般的にあらゆる方程式の根を見つける新しい、正確で、簡単な方法であり、以前の減少なしでそれ」フィロス。トランス ロイ。Soc。ロンドン、18、136–145。最適化のための3階微分法は長年にわたって存在し、研究されてきましたが、あまり人気がありませんでした。適切に実装されている場合、それらの最大の利点は、堅牢性の向上と、適切に実装されたニュートン法です。これは、最も厄介な問題にとって有利です。
マークL.ストーン

回答:


31

私は質問を「なぜニュートンの方法は一次および二次導関数のみを使用し、三次以上の導関数を使用しないのか」と解釈しています。

実際、多くの場合、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 hknth(k+n1k1)


3
高等デリバティブをどのように利用している説明していただけますか?
whuber

5
@whuber OPが参照していることは、非常に不明確ですが、ニュートンの最適化の方法です。問題は、「なぜニュートンの方法は1次および2次導関数のみを使用し、3次以上の導関数を使用しないのですか?」です。それはトピックから外れているだけでなく、彼/彼女が何を求めているのか不明であるが、何らかの理由で閉会するために投票するのではなく、ただ答えるだけだと思った。
jbowman

4
+1これは良い答えだと思いますが、テイラーの拡張に基づいてあなたが今していることを示すことで改善することができます。
マシュードゥルーリー

8
私の教授の一人-非常に成功したコンサルタントでもある-一度私たちに言った。市場に出す前に」Newtonを使用する全体のポイントは、計算を節約することです。それ以外の場合は、徹底的な検索を行います。3次元の問題に3次導関数を追加すると、関数が3次でない限り、反復が大幅に削減され、各ステップで計算が2倍になることはほとんどありません。
jbowman

9
いいえ、そうではありません-最初に表示されるよりも少し深いコメントです。ポイントは2つあります-最初は良いように見えるほとんどのアイデアは、まったく明白ではないかもしれない理由のためではなく、ブレークスルーの本当の鍵はアイデア自体ではなく、アイデア。この推論は、事実上、それを指摘し、アイデアの弱点を探すように指示します。それはあきらめることではなく、物事を熟考することであり、それを批判的に見ることです。
jbowman

22

この質問の統計的側面が実際にはわからないので、最適化の部分に答えます。

収束には2つの部分があります。反復コストと反復カウント

ここでのほとんどすべての答えは、反復コストのみに焦点を当て、反復カウントを無視しています。しかし、両方とも重要です。1ナノ秒で反復するが、収束するのに回の反復が必要な方法は、何の役にも立ちません。また、反復コストがいくら安くても、爆破する方法は役に立ちません。1020

何が起こっているのかを把握しましょう。

それでは、なぜ2次以上の導関数を使用しないのですか?

その理由の1つは(これは2次の場合にも当てはまりますが、少し詳しく説明します):

高次のメソッドは、一般的に最適に近い場合にのみより速く収束します。

一方で、最適から遠く離れていると、爆発しやすくなります!

(もちろん、これは常に真であるとは限りませ。たとえば、二次方程式は、ニュートン法で1ステップで収束します。しかし、実世界の任意の関数で優れたプロパティがない場合、これは一般に真です。)

あなたは遠く離れて最適のあるときに、この手段があること、あなたは一般的にしたい方法:下位(一次読みを)。近くにいる場合にのみ、メソッドの順序を上げます。

それでは、ルートの近くにいるときに2次で停止するのはなぜですか?

「2次」収束動作は本当に「十分」だからです!

理由を確認するには、まず「2次収束」の意味を理解する必要があります。

数学的には、二次収束とは、反復でがエラーの場合、次の定数について最終的に成り立つことを意味し。 k cϵkkc

|ϵk+1|c |ϵk|2

簡単な英語で言えば、これは、最適(重要!)に近づくと、余分なステップごとに精度の桁数が2倍になることを意味します

どうして?以下のために:それは例を見るのは簡単だと、あなたが持っている、である、などが途方もなく速いです。(それは超指数関数です!)| ϵ 1 | = 0.1 | ϵ 2 | 0.01 | ϵ 3 | 0.0001c=1|ϵ1|=0.1|ϵ2|0.01|ϵ3|0.0001

2次ではなく1次で停止しないのはなぜですか?

実際には、二次微分が高価になりすぎたときにこれを行うことがよくあります。しかし、線形収束は非常に遅くなる可能性があります。たとえば、を取得した場合、を取得するには線形収束で10,000,000回の反復が必要ですが、2次収束では23回の反復しか必要ありません。そのため、線形収束と2次収束の間に大きな違いがある理由がわかります。これは、たとえば、2次および3次の収束に当てはまりません(次の段落を参照)。| ϵ | < 0.5ϵk=0.9999999|ϵ|<0.5

この時点で、コンピューターサイエンスを知っていれば、2次収束で問題は既に解決されていることがわかります。理由がわからない場合、その理由は次のとおりです。繰り返しごとに桁数を2倍にする代わりに3倍にすることで得られる実用的なものは何もありません。結局のところ、コンピューターでは、-精度の数値でさえ52ビットの精度、つまり10進数で約16桁です。 たぶん、必要なステップ数を16から3に減らします... これは、反復で3次導関数を計算する必要があり、それが次元の呪いであることに気付くまで、すばらしいですねdoubleあなたを強く打つ。以下のために次元の問題、あなただけの要因支払っ倍得るためにダムです。そして現実の世界では、問題は少なくとも次元ではなく、少なくとも数百次元(あるいは数千あるいは数百万)の次元を持っています!したがって、たとえば20,000のファクターを支払うことで、おそらく20のファクターを得ることができます。賢明なトレードオフはほとんどありません。6 5 66656

しかし、繰り返しますが、次元の呪いは物語の半分であることを忘れないでください。

残りの半分は、最適とはほど遠い場合に一般的に悪い動作をすることです。これは、通常、実行する必要がある反復回数に悪影響を及ぼします。

結論

一般的な設定では、2よりも高次のメソッドは悪い考えです。もちろん、テーブルに追加の有用な仮定を持ち込める場合(たとえば、データ高次多項式に似ている場合や、最適な位置を制限する方法がある場合など)、それらが次のようになっていることがわかります。良いアイデアですが、それは問題ごとの決定であり、一般的な経験則ではありません。


素晴らしい答えですが、アベル・ルフィニの定理は赤いニシンだと思います。まず第一に、多変量問題について話しているので、単変量多項式のゼロを計算することはせいぜい限られた関心の簡単な部分問題です。そして、さらに重要なことは、解に閉式があるかどうかは関係ありません。実際、私が知る限り、人々は次数4の多項式に対しても閉式を使用しません。長すぎて複雑で不安定です。多項式のゼロは、実際には(コンパニオンマトリックスでQRを使用して)数値的に計算されます。
フェデリコポロニ

@FedericoPoloni:ええ、入れようと決めたときに同じ考えが頭に浮かびました。元々持っていなかったのですが...予期しない問題。しかし、コメントのおかげで、それが役に立たない場合、私は再びそれを取り出すと思います。
Mehrdad

@FedericoPoloni:PS数値計算のトピックについては、Sturm関数がおもしろいかもしれません(まだ聞いたことがない場合)。
Mehrdad

7

ヘッセ行列の計算でさえ、かなりの作業です:

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

3階微分がどのように見えるか見てみましょう: これは3次元の行列です。要素は次のようになります。 H/XIjはK=3F

H/x=[Hx1Hx2Hxn]
(H/x)ijk=3fxixjxk

6次導関数は6次元行列になります:

6fxixjxkxlxmxn

通常、トレードオフは、ヘッセ行列よりも高い値を求めるのには好ましくありません。高次の近似を使用することによる速度の潜在的なゲインとノイズ増幅のトレードオフを意味します。統計アプリケーションについて説明しているため、入力には常にノイズがあります。このノイズは導関数によって増幅されます。

ゴルフをする場合、最適化のアナロジーは、最初にスイングしてグリーンに到達しようとすることです。ホールについてはあまり心配しません。一度、グリーン上で、ホールを狙ってパットします。


4

通常、このようなアルゴリズムの有効性を分析すると、2次アルゴリズムの2つのステップとほぼ同じ有効性を持つ4次アルゴリズムの1つのステップなどの結果が見つかります。

したがって、使用するアルゴリズムの選択は比較的簡単です。4次アルゴリズムの1ステップが2倍の作業を行う場合、または2次アルゴリズムの1ステップ以上を使用する場合は、代わりに後者を使用する必要があります。

それは、これらの種類の方法の典型的な状況です。古典的なアルゴリズムは、一般的な問題に対して最適な仕事と有効性の比を持っています。高次のアプローチが非常に簡単に計算でき、従来のバリアントよりも優れている場合があるという問題が時々ありますが、それらは比較的一般的ではありません。


2

導関数の次数は、関数の多項式近似の次数と考えることができます。ほとんどの最適化ルーチンは凸性に依存しています。二次多項式はどこでも凸/凹になりますが、3次以上の多項式はどこでも凸になりません。この理由から、ほとんどの最適化ルーチンは、2次関数を使用した凸関数の逐次近似に依存しています。凸である2次近似では、2次が凸になるために正定値条件を課す必要があります。


3
いいえ、二次曲線は必ずしも凸面または凹面ではありません(考えてください)。x2y2
ダーク

@Dirkは何と等しいですか?x2y2
Oviは

1
二次関数ですが、凸でも凹でもありません。
ダーク

@Dirkはい、あなたは正しいです、私は肯定的な半明確な警告を追加すべきでした。それを答えに追加します。
ルーカスロバーツ

1

ここでSGD収束の3次法を防御する唯一のものとしますが、係数が必要な空間全体ではなく、たとえば単一の方向のみで、単一の追加係数のみが必要な場合この方向にはすでに2次モデルがあります。dim3/6

単方向3次モデルが有益な理由 たとえば、この方向の2次導関数がゼロに近いということは、基本的に2つの代替シナリオを意味するためです。プラトーまたは変曲点-前者のみがより大きなステップサイズを必要とし、3次導関数はそれらを区別できます。

私は信じて、我々はハイブリッドマルチための方法に向かって移動します。最近の勾配のPCAからの低次元の部分空間などで2次法、まだこの部分空間に勾配直交の一部に向かって自由な第一順位の同時勾配降下することができますどのような...そしてさらにたとえば、最も関連性の高い単一の方向に3次モデルを追加します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.