ニュートンの方法が機械学習で広く使用されていないのはなぜですか?


132

これはしばらくの間私を悩ませてきたものであり、満足のいく答えをオンラインで見つけることができなかったので、ここに行きます:

凸最適化に関する一連の講義をレビューした後、Newtonの方法は、勾配降下よりもはるかに優れたアルゴリズムであり、グローバルに最適なソリューションを見つけることができます。これは、Newtonの方法は、はるかに少ないステップ。ニュートン法などの2次最適化アルゴリズムが、機械学習問題で確率的勾配降下ほど広く使用されないのはなぜですか?


24
ニューラルネットワークについては、deeplearningbook.orgのセクション「8.6近似2次法」で概要を説明しています。要約すると、「点などの目的関数の特定の機能によって作成される課題を超えて、大規模なニューラルネットワークをトレーニングするためのニュートンの方法の適用は、それが課す大きな計算負荷によって制限されます。」計算のハードルを回避しながら、ニュートン法の利点のいくつかを獲得しようとする代替策が存在しますが、独自の問題があります。
フランクダーノンクール16

1
この関連する質問とコメント、stats.stackexchange.com
questions /

1
他のコメントは、単なる「ディープラーニング」以上の機械学習への幅広い適用性を持っていることに注意してください。ただし、すべてのML問題は「ビッグデータ」になる傾向がありますが、すべてのML問題が必ずしも「ビッグ機能」(つまり調整する多くのパラメーター)であるとは限りませんが、常にディープラーニングはそうです。
GeoMatt22 16

1
ディープラーニング以外の機械学習では、L-BFGS(おおまかに言えば、ニュートンの手法に近い)かなり一般的な最適化アルゴリズムであることに注意してください。
ドゥーガル

2
ニュートンの方法は凸性を仮定しており、現代のML問題(ニュートラルネット)は凸性に近い場所ではない可能性がありますが、明らかにオープンな研究の領域です。したがって、ニュートンの方法は、おそらく計算点の近くではあるがどこでも線形と同じくらい悪い推定量です。計算が二次的に増加しても、おそらくほとんど利益が得られないでしょう。そうは言っても、最近のバークレーでの会議では、プレゼンターが2次の方法を使用して進歩を示し続けていたので、決して死んでいません。
デビッドパークス

回答:


95

勾配降下法は、導関数の知識を使用して関数を最大化します。ルート検索アルゴリズムであるニュートンの方法は、2次導関数の知識を使用して関数を最大化します。2次導関数が既知で、計算が簡単な場合、これはより高速になります(ロジスティック回帰ではニュートンラプソンアルゴリズムが使用されます)。ただし、2次導関数の分析式は複雑で扱いにくい場合が多く、多くの計算が必要です。二次導関数を計算するための数値的手法も多くの計算を必要とします- 一次導関数を計算するために値が必要な場合、二次導関数にはが必要です。N 2NN2


5
(それに基づく)Gauss-Newton法がおそらくより一般的であることに注意する価値があります。これは、ニュートンを非線形最小二乗に特化したものです。
GeoMatt22 16

4
Gauss-Newtonは、Newtonの非線形最小二乗への特殊化とは呼びません。私はそれを非線形最小二乗のニュートンのろくでなし近似と呼びます。これは、より不正確なヘッセ近似を使用し、近似方程式の残差が大きくなるため、引数が最適性から遠ざかるほどです。
マークL.ストーン

1
@ MarkL.Stone公正な点、私は技術に入らないようにしようとしていました:) Gauss-Newtonスタイルのメソッドが1次情報のみで2次を「偽造」しようとするのは事実です。個人的には、最適化にNewtonメソッドを使用したことはなく、Gauss-Newton(またはLM、または〜similar UKF)またはDFO-SQPメソッド(BOBYQAなど)のみを使用しました。「最適性」は私が言うのが難しいトリッキーな質問です... ML問題に対して、工学設計最適化問題に対して、「ローカルヘッセ行列」の信頼性/情報性は疑わしい場合があります。おそらく、非ローカルDFO-SQPは〜「確率的ニュートン」ですか?(例えば"オンライン")
GeoMatt22

1
考え直して、DFO-SQPアプローチは、データバッチではなく、パラメータ空間で非ローカルになる傾向がありますUKFは(すなわち、ガウス程度。)それは、限られたメモリ/ワットオンラインであるとして、「確率的ニュートン」に味で最も近いかもしれ...しかし、それは効果的に正定値ヘッセ行列を前提としています。
GeoMatt22 16

1
実際には、ヘッセ行列の計算を必要としないCGのような2次の方法があるため、誤解を招く理由です。CGのk回の反復にかかるコストはkNのみです。CGは理論的にはk = Nでのみニュートンと一致しますが、実際にはそれほど多くの反復は必要ありません。
user25322

40

より多くの人々機械学習*でニュートンの方法を使用する必要があります。過去数年にわたって機械学習に手を出してきた数値最適化のバックグラウンドを持つ人としてこれを言います。

ニュートンの方法を正しく使用すれば、ここでの回答(および文献でも)の欠点は問題になりません。さらに、問題となる欠点は、勾配降下を同じ量以上遅らせますが、メカニズムはそれほど明白ではありません。

  • Wolfe条件でlinesearchを使用するか、リージョンを使用または信頼すると、サドルポイントへの収束が防止されます。適切な勾配降下の実装もこれを行う必要があります。論文の中で参照Cam.Davidson.Pilonの答えは鞍点の存在下での「ニュートン法」の問題点を指摘し、彼らが提唱修正は、ニュートン法です。

  • ニュートンの方法を使用する場合、(密な)ヘシアン全体を作成する必要はありません。行列ベクトル積のみを使用する反復法(たとえば、共役勾配のようなクリロフ法)を使用して、ヘッセ行列の逆行列をベクトルに適用できます。たとえば、CG-Steihaug信頼領域法を参照してください。

  • 勾配の計算に既に使用されている随伴方程式と同じ形式の2つの高次随伴方程式を解くことにより、ヘッセ行列ベクトル積を効率的に計算できます(たとえば、ニューラルネットワークトレーニングの2つの逆伝播ステップの作業)。

  • 病気の条件付けは、反復線形ソルバーの収束を遅くしますが、勾配降下を等しくまたはさらに遅くします。勾配降下法の代わりにニュートン法を使用すると、難易度が非線形最適化段階(状況を改善するために多くのことができない場合)から線形代数段階(数値線形代数事前調整技術の兵器庫全体で攻撃できる)にシフトします。

  • また、計算は「多くの安価なステップ」から「いくつかの費用のかかるステップ」に移行し、サブステップ(線形代数)レベルでの並列処理の機会が増えます。

これらの概念に関する背景情報については、NocedalとWrightの著書「Numerical Optimization」をお勧めします。

*もちろん、Newtonの方法はペナルティ関数を促進するL1または他の同様の圧縮されたセンシング/スパース性には役立ちません。なぜなら、それらは必要な滑らかさを欠いているからです。


2
私たちは、他の皆とではなく、お互いに暴力的な合意をしていると思います。
マークL.ストーン

1
これは、各国の最高の学校から出てきた数学の大学院生の最高階層を比較するのではなく、26歳の麻薬中毒の高校中退者の数学能力を比較することで、英国または米国がより良い研究数学者を生み出すかどうかを比較するようなものです。紙は署名され、封印され、配達されますが、誰も変更しません。侵略可能。
マークL.ストーン

3
@ MarkL.Stoneここで会話が行われたようで、私が留守中に削除されたようです。とにかく、私たちはお互いに同意し、他の誰も同意しないことは正しいと思います。これは、ここにいる他の人たちと比較して、私たちのバックグラウンドに基づいて予想されることだと思います。ご想像のとおり、リンクされた論文はあまり考えていません。一方で、ニュートン探索方向に測地線軌道を撮影するリーマン多様体ニュートン法は、非常に難しい問題に対して多くの可能性を秘めた手法だと思います。
ニック・アルジェ

2
大規模なトレーニングセットにどのように対処しますか?たとえば、100万のトレーニングサンプルがある場合、現在の最適化目標を評価するには、100万のサンプルをテストする必要があります。そして、行検索中にそれを複数回行う必要があります。したがって、1ニュートンステップを完了するまでに、確率的勾配降下法は数百万の更新を行います。
ニキー

2
Nickと@ MarkL.Stone:本質的にこのアプローチについて話しているのですか?これは、特にリカレントネットでディープラーニングで簡単に人気があったものですが、適応勾配法よりも経験的にそれほどうまく機能しなかったため、好意的にはならなくなったと思います。彼らは何か間違ったことをやっていた、そしてあなたはそれが何であれ修正し、それは一般的に現在の標準SGDバリアントアダムを凌駕表示される場合は、大きな影響を与える可能性がある:アダム紙は、2年間で1345の引用を持っていた....
ドゥーガル

33

私は最近これを自分で学びました-問題は、ニュートン法が収束したい高次元空間でのproliferation点の増殖です。この記事を参照してください:高次元の非凸最適化における点問題の特定と攻撃

実際、local点の数と局所的最小値の比は、次元Nとともに指数関数的に増加します。

勾配降下ダイナミクスは、負の曲率の方向に従うことでerror点から反発して誤差を小さくしますが、...ニュートン法は点を適切に処理しません。以下で議論するように、サドルポイントは代わりにニュートンのダイナミクスの下で魅力的になります。


3
これがなぜそうなのか、説明を追加していただけますか?理論的には、ニュートンの方法は、各固有ベクトルの「最適な」重みで重み付き勾配降下を実行します。
nbubis 16

4
その記事がsays点に収束しようとするニュートンメソッドについて述べていることは、ニュートンメソッドのガベージ実装にのみ当てはまります。
マークL.ストーン

この論文は、固有値と固有ベクトルの観点から問題を再パラメーター化し、それを使用して勾配降下が点から離れることを示しています。正のeベクトルであるため、最終的に点を離れます。一方、ニュートンにはそのような保証はありません。
エリザベスサントレラ

この論文で彼らが提唱する新しいアルゴリズムは、ニュートンの方法(の変形)です。基本的には、正の曲率の方向に対するニュートン法と負の曲率の方向に対する負のニュートン法です。
ニック・アルジェ

26

2つの理由の組み合わせ:

  • ニュートン法は点に引き付けられます。
  • addle点は、機械学習、または実際には多変数最適化で一般的です。

関数見てください

f=x2y2
ここに画像の説明を入力してください

xn+1=xn[Hf(xn)]1f(xn)

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

H=[2002]

[Hf]1=[1/2001/2]

f=[2x2y]

[xy]n+1=[xy]n[1/2001/2][2xn2yn]=[xy]n[xy]n=[00]

x=0,y=0

対照的に、勾配降下法は点につながりません。勾配はサドルポイントではゼロですが、上記の勾配からわかるように、わずかなステップアウトで最適化が引き離されます。y変数の勾配は負です。


1
あなたのおかげで、この方法がAからZまでどのように機能するかを実際に理解したので、この明確な例に感謝します!
greenoldman

ここで好きなポイントは何ですか?
ベン

14

あなたは2つの質問をしました。ニュートンの方法を使用する人が増えないのはなぜですか、そしてなぜ多くの人が確率的勾配降下法を使用するのですか?これらの質問にはさまざまな答えがあります。これは、Newtonの方法の計算負荷を軽減するアルゴリズムが多く、多くの場合SGDよりも優れているためです。

HO(N2)NgO(N)H1gO(N3)計算します。したがって、ヘッセ行列の計算は高価ですが、それを逆にしたり、最小二乗を解くことは、しばしばさらに悪化します。(まばらな機能がある場合、漸近性はより良く見えますが、他の方法もより良く動作するため、スパース性はニュートンを比較的魅力的にしません。)

第二に、単なる勾配降下法ではなく、多くの方法がニュートンよりも頻繁に使用されます。それらは多くの場合、ニュートンの手法の模造品です。つまり、ステップあたりの計算コストは​​低くなりますが、収束するにはより多くの反復を必要とするという意味でニュートンのステップに近似します。いくつかの例:

  • H1

  • O(N2)

  • 2次導関数の近似をまったく扱いたくない場合、勾配降下法は1次情報のみを使用するため魅力的です。勾配降下は、学習率に単位行列を掛けたものとして、逆ヘッシアンを暗黙的に近似しています。私は個人的に、勾配降下法を使用することはめったにありません。L-BFGSは、目的関数と勾配を指定するだけでよいため、実装が簡単です。勾配降下法よりも優れた逆ヘッセ近似があります。勾配降下には学習率の調整が必要だからです。

  • 非常に多数の観測値(データポイント)がある場合もありますが、少数の観測値からほぼ同様に学習できます。その場合、観測のサブセットを使用して循環する確率的勾配降下法のような「バッチ法」を使用できます。


(+1)L-BFGSは、パラメーターの数に関して勾配降下と同じ程度の複雑さであることに注意してください。これはBFGSには当てはまりません。そのため、L-BFGSの魅力的な部分はメモリの制限だけではありません。
クリフAB

12

勾配降下方向の計算はより安価であり、その方向でライン検索を実行することは、より信頼性が高く、最適な方向への着実な進歩の源です。要するに、勾配降下法は比較的信頼性が高い。

ニュートンの方法は、最初の反復でヘッセ行列を計算する必要があるという点で比較的高価です。その後、後続の各反復で、ヘッシアンを完全に再計算するか(ニュートンの方法のように)、または以前の反復のヘッシアンを(準ニュートンの方法で)単に「更新」することができます。

非常に適切に機能する関数、特に完全に2次関数の極端な場合、ニュートンの方法が明確な勝者です。完全に2次の場合、Newtonの方法は1回の反復で収束します。

動作が非常に不十分な関数の反対の極端な場合、勾配降下は勝つ傾向があります。検索方向を選択し、その方向を検索し、最終的には小さいが生産的なステップを実行します。対照的に、これらの場合、特に準ニュートン近似を使用しようとすると、ニュートンの方法は失敗する傾向があります。

勾配降下法とニュートン法の間には、Levenberg–Marquardtアルゴリズム(LMA)のような方法がありますが、名前が少し混乱しているのを見ました。要点は、物事が混oticとして混乱している場合は勾配降下型の情報に基づいた検索を使用し、物事がより線形で信頼できるものになった場合にはニュートン法に基づいた検索に切り替えることです。


3
少年、ニュートンと準ニュートンのひどい実装を使用する必要があります。どちらかを非正定ヘッシアンで使用する場合、信頼領域を使用するか、負の曲率の方向に沿ってライン検索を実行します。その場合、最急降下(つまり、ライン検索または信頼領域を使用した勾配降下)よりも信頼性が高くなります。つまり、勾配降下法は、適切に実装された準ニュートン法よりも信頼性がはるかに低く、適切に実装されたニュートン法よりも信頼性が低くなります。ただし、反復ごとの計算時間とメモリ要件は異なります。
マークL.ストーン

4
あなたは完全に二次関数を意味すると思います。つまり、Newtonの方法は、線形勾配を持つ2次の目的関数を使用して1回の反復で収束します。
エリザベスサントレラ16

1
@ElizabethSantorella:うん、あなたは正しい!答えを更新しました。
ナット

2
1/2xTx

1
私は私の主張をしました。最も急な降下、勾配降下はすばらしいと考えたい場合、特に振る舞いの悪い関数では、それがあなたのビジネスです。ノックアウト。
マークL.ストーン

7

Hd=g

ニュートンの方法は、解に近い場合、またはヘシアンがゆっくりと変化する場合にうまく機能しますが、収束の欠如と明確性の欠如に対処するためにいくつかのトリックが必要です。

多くの場合、正確な解決策ではなく改善が求められます。その場合、NewtonまたはNewtonのようなメソッドの追加コストは正当化されません。

可変メトリックまたは信頼領域メソッドなど、上記を改善するさまざまな方法があります。

サイドノートとして、多くの問題で重要な問題はスケーリングであり、ヘッセ行列は優れたスケーリング情報を提供しますが、コストはかかります。ヘッセ行列を近似できる場合、多くの場合、パフォーマンスが大幅に向上します。ニュートンの方法はある程度、アフィン不変であるという点で「最良の」スケーリングを提供します。


0

SGDでのニュートンの方法の使用に関しては、特に次のような多くの困難があります。

  • ヘッセ行列が必要です-ノイズの多い勾配から十分な精度で妥当なコストで推定する方法は?

  • 完全なヘッセ行列はコストがかかりすぎます-例えば、部分空間(どの部分空間?)

  • H1λ=0

  • ニュートンの方法は、勾配がゼロの近接点に直接引き付けます...これは通常、ここではサドルです。代わりにそれらを撃退する方法は?例えば、サドルフリーニュートンは負の曲率方向を反転しますが、固有値の符号を制御する必要があり、

  • オンラインで行うのは良いことです-単一のポイントで多くの計算を行う代わりに、より多くのローカル情報を活用する多くの小さなステップに分割してみてください。

1次から2次に小さなステップで進むことができます。たとえば、運動量法に平均3回の更新を追加するだけで、ステップサイズをよりスマートに選択できるように、その方向に放物線を同時にフィットできます。同時に勾配降下のために残りの座標を使用できます。

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