ニューラルネットワークで勾配降下を使用する理由


22
  1. 逆伝播アルゴリズムを使用してニューラルネットワークをトレーニングする場合、勾配降下法を使用して重みの更新を決定します。私の質問をされています。むしろ、ゆっくりと一定の重量に対して、最小点を見つけるために勾配降下法を使用するよりも、なぜ私たちは派生しないでください、そして、誤差を最小にする重みの値を見つけますか?d(Error)dw=0w

  2. また、逆伝播におけるエラー関数が最小になると確信しているのはなぜですか?代わりに、エラー関数が最大値であることがわかりませんか?任意の重みと入力ベクトルを持つ任意の数の隠れノードを持つネットワークが常に最小値を持つエラー関数を与えることを保証する、スカッシュ関数の特定のプロパティはありますか?


2
ここではすべてのキャップのタイトルは標準ではなく(あなたの周りを見てください)、ここや他の場所では歓迎されないSHOUTINGとして広く推奨されていません。
ニックコックス

@ニックコックスおmyび
ミナージュ

機械学習モデルで隠れ変数または潜在変数が使用されるたびに、最適化(常に?)が常に非線形、非凸で、最適化が難しくなるのは興味深いことです。
ヴラディスラフドヴガレス

回答:


30
  1. S(w)wdS(w)dw=0

  2. 定義上、勾配降下は下降します。下降後に静止点に到達する場合、(ローカル)最小値またはサドルポイントである必要がありますが、ローカル最大値ではありません。


関数が凹型の場合、勾配の降下は永遠に下降します。これは、下降する唯一の方法だからです。エラー曲面が凹面でないことが保証されていると言っていますか?また、エラー関数の導関数が閉じた形式の解を持たない理由は明らかではありません。形式のエラーではないK11+eΣwx

8
一般的に使用されるすべてのエラー関数には厳密な理論上の最小値0があるため、これは起こり得ません。エラーが負になることはありません。
マーククレセン

2
1.のもう1つの可能な解釈は、「それがまさに私たちが行うことです。方程式は勾配降下法を使用して解かれます。」
マシュードゥルーリー

1
明らかに勾配の閉じた形があります(これが勾配降下を効率的に行う方法です)。問題は、勾配= 0の閉形式の根がない
-seanv507

@ seanv507それは私が言うつもりでした、混乱のために申し訳ありません。投稿を編集しました。
マーククレセン

10

Marc Claesenの答えに関して、勾配の降下、極大値に初期化した場合、または運が悪いかレートパラメーターが誤って調整されたために偶然そこにたどり着いた場合に極大値で停止する可能性があると考えています。極大値の勾配はゼロであり、アルゴリズムは収束したと見なします。これが、私がしばしば異なる開始点から複数の反復を実行し、途中で値を追跡する理由です。


1
あなたはすでにいくつかの賛成票を集めているようですので、私はあなたの前文コメントを編集しました!サイトへようこそ!
マシュードゥルーリー

ありがとう!それがコメントなのか答えなのかわからず、それだけに基づいて私の最初の答えが忘却に落とされることを望まなかった。
ジャレッドベックスフォート

6

d(error)dw=0

  • 二次導関数(ヘッセ行列、特にヘッセ行列ベクトル積)を扱う必要があります。
  • 「解決ステップ」は非常に計算コストが高くなります。解決に要する時間内に、多くの勾配降下反復を行うことができました。

ヘッセ行列の解法にクリロフ法を使用し、ヘッセ行列の適切な前提条件を使用しない場合、コストはおおよそバランスが取れます-ニュートンの反復ははるかに長くかかりますが、合計時間はおおよそ勾配降下法と同じか遅い。一方、優れたヘッシアン前提条件子があれば、ニュートンの方法が大成功を収めます。

とはいえ、信頼領域のニュートン-クリロフ法は、現代の大規模最適化のゴールドスタンダードであり、人々がますます大きな問題を解決したいので、今後数年間でその使用がニューラルネットで増加することを期待しています。(そして、数値最適化のより多くの人々が機械学習に興味を持つようになるにつれて)


あなたは間違っていると思います。90年代から人々はnnetを使用しており、二次方法をよく知っています。問題はまさに、大量のデータがある場合にnnetが成功することです。これにより、多くのパラメータがサポートされ、その場合、2次メソッドの時間とメモリの制約は無効になります。例:leon.bottou.org/publications/pdf/compstat-2010.pdf
seanv507

@ seanv507そうでもない。その論文の二次法の議論には多くの欠点があり、二次法を使用するためには密なヘッセ行列全体を構築し反転しなければならないと仮定している。これは、単に現代の大規模な数値最適化で行われる方法ではありません。現代の二次法では、随伴問題を解くことによりベクトルに対するヘッセ行列の作用を計算し、それらを反復(クリロフ)ソルバー内で使用します。通常、最初の内部反復は勾配方向を返し、後続の反復は勾配方向を改善します。
ニック・アルジェ

私はその論文の特定のファンではありませんが、それは本当だとは思いません。彼は以前にヘッセ行列の対角線およびランクの近似を議論/実装しました。また、1994年のpearlmutterのヘッセ行列による高速で正確な乗算についてはどうでしょうか。
seanv507

右。高速なヘッセ行列アプリケーション(Pearlmutterを使用するかどうか)を取得すると、共役勾配などのKrylovメソッドを使用して不正確なヘッセ行列を解くことができます。これを行うことにより、問題を処理するために利用可能な多くの機械と事前調整技術を備えた線形代数反復ソルバーに、悪条件の難しさを非線形反復オプティマイザーから効果的に移します。良いリファレンスは、NocedalとWrightによる古典的な「数値最適化」の信頼領域CG-Steihaugに関するセクションです。
ニック・アルジェ

私のポイントは、ヘッセ勾配と共役勾配によるこの乗算が1994年以来nnetsコミュニティで知られていたことです。だから私は間違いなくSGDが二次法ではなく使用される理由があると信じています)
seanv507
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.