ディープ学習:四〇から三(ヘッセ無料でディープ・ネットワークのトレーニング方法)
実際にはヘッセ無料方法は何年も前に使用されてきたが、なぜマルテンスの論文は、彼はこのアプローチに戻りましたか?Hの方法暗黙の計算は様々な構造を有することができる、とアルゴリズムの名前はHF呼び出すことができますので、単純で深い学習におけるマルテンス記事HF方法を考えることができないので、実際に、彼らは、その異なるH行列「自由な」方法が異なりますこの方法は、以前に長い時間のために存在している(このような場合には、ディープラーニング年前にNで火に!)、彼らは同様のアイデアを表示することができます。あなたのアイデアのDLのHFネットワークを適用すると、あなたは、様々な技術を使用する必要があり、数学的最適化自体は技術、類似した、様々な組み合わせです。主に二つの大きなアイデア+5少しスキル使用(約5与えられた紙を、しかしコードは論文で言及されていないスキルの多くもあります)トレーニングDLのネットワークを完了するためには、Matrens。
アイデア1:さHvの計算値は(V任意)は、例えば、正確さHvを計算するために有限差分近似になっている対角行列の近似誤差関数を使用するだけ一般的であり、いくつかの方法を使用して以前より、(以下の式参照)ヘッセ行列は、より多くの情報を保存します。Hが大きすぎるため、第一、Hの直接反転を避けるため、暗黙計算さHvを算出することにより、第二の逆Hであっても存在しなくてもよいです。
アイデア2:以下の式では、θの値に近い二次関数の値を近似します。そして、CG反復法(アルゴリズムが簡単に以前のブログ記事を参照してくださいすることにより最高の検索方向Pは、機械学習&データマイニングは、共役勾配最適化の_12(簡単な理解をノート))が得られます。
ヒント1:直接有限差分法を計算するが、R-オペレータ法Pearlmutterを使用して(理解していなかったが、この方法の多くの利点があります)ではないHV。
技術2:代わりに、ヘッセ行列Hのガウス・ニュートン行列G、最終的な計算は、暗黙のGvです。
即ち(すなわち、第1のパラメータθが線形座標変換を行う、事前条件付きCG)アルゴリズムCGの使用を示す反復終了条件とき探索方向θP、:技術3:
ヒント4:CGとの線形探索アルゴリズムは、すべてのサンプルを使用しませんでしたが、ミニバッチの一部からサンプルとして使用したミニバッチは、すでにいくつかの効果的な表面曲率についての情報を得ることができたときに、研究中に大規模なデータを扱います。
ヒント5:発見的方法によって得られた(Levenburg-Marquardt法)システムλは減衰率、CGアルゴリズムの係数が事前条件をするのに有用であり、前処理行列Mは、以下のように計算されます。
7時マルテンス紙を読み取る必要があり、それに対応するコードと組み合わせた紙を読み取るために、上記(コードは、彼のプロフィールを参照http://www.cs.toronto.edu/~jmartens/research.html)。
のは、HFの簡単なフローチャートを見てみましょう:
目的関数は、システム定義、この第2の式ブログを見て、それから回数の最大値をMAX-エポックの更新重みを定義し、それぞれの第一は、BPアルゴリズムサイクルによる目的関数値の勾配を求める:これは説明するためのフローチャートです。 λの値を取得するために発見的方法に続いて、次いで(Hvを解析関数の形で、このプロセスを使用する必要がある)探索方向Pのパラメータを最適化するためにCG法を予め調整し、最後に次のラウンドに更新されたパラメータ。
コードの一部について、単純に次のよう
プログラム、170回の反復を実行し、約20時間を共有し、次のように、プログラムの出力は次のとおりです。
maxiters = 250。miniters = 1つの 使用CGステップ:250、合計である:28170 CHの大きさ:7.7864は itersを選んだ:152 のRho = 0.50606 削減の数:0、選択されたレート:1つの 新しいラムダ:0.0001043 エポック:169、対数尤度:-54.7121、エラーレート:0.25552 TEST対数尤度:-87.9114、エラー率:3.5457 エラーレートの差(テスト-電車):3.2901
曲線分類コードは、完全なデータベースであるオートエンコーダのネットワークを使用して、ネットワーク階層である:[50 100 784 400 200 2,562,550,100,200,400,784です]。
conjgrad_1():完全な最適化アルゴリズムは、ステップの数及び反復最適化(検索方向)の結果を得るために、CG、CG機能を事前調整しました。
computeGV():Gvを行列演算が完了し、RとGauss-Newton法の複合操作。
computeLL():計算サンプル出力の値とエラーログ尤度(異なるエラー関数式の異なる励起出力ノード)。
nnet_train_2は():この関数は、もちろんコア機能であり、直接最終的conjgrad_1()、computeGV()、computeLL()を呼び出すために、エラー表面機能ガイドの数の決意に関するさらなる詳細は、古典的なBPであるDLネットワークを訓練するために使用しますアルゴリズム。
参考文献:
マルテンス、J.(2010)。ヘッセのない最適化を介したディープ学習。機械学習(ICML-10)の第27回国際会議の議事録。
機械学習&データマイニングは、_12(共役勾配最適化の簡単な理解を)ノート
http://www.cs.toronto.edu/~jmartens/research.html
http://pillowlab.wordpress.com/2013/06/11/lab-meeting-6102013-hessian-free-optimization/