ディープ学習:四〇から三(ヘッセ無料でディープ・ネットワークのトレーニング方法)

 

ディープ学習:四〇から三(ヘッセ無料でディープ・ネットワークのトレーニング方法)

現時点では、ネットワーク(ディープネット)(BPアルゴリズムと組み合わせて)右または勾配降下の深さの訓練値の主流の方法は、もちろん、前パラメータウェイトトレーニング事前に(例えばRBM、オートエンコーダなど)教師なしの方法を使用することができ反復的な変化値が小さい重みされるネットワークに適用深度勾配降下方法の欠点は、局所最適へ収束することが容易である。別の欠点は、勾配降下法は、病弱な曲率(例えばローゼンを処理しないことです機能)誤差関数。本明細書に記載され(以下、HFと称する)ヘッセ無料方法は、訓練ネットワーク重量事前ことができず、効果はかなり良好であり、その広い応用(RNNピアネットワークは、学習のために使用することができる)、上記勾配を克服しながらその2つの欠点降下。主なアイデアは、HFニュートン反復法と同様であるが、ポイント機能誤差表面を計算するヘッセ行列Hを示していないが、製品が計算され、Hvは任意ベクトルV H(直接いくつかの技術によって行列-ベクトル乗算私たちは、その名の「無料ヘッセ」、)最適化プロセスの裏でフォームを使用する必要があります。この記事は、マルテンス論文読まれる ヘッセのない最適化を介して、深い学習を 書き留めたいくつかのメモが(詳しくは、紙のセクションを参照してください)。

  実際にはヘッセ無料方法は何年も前に使用されてきたが、なぜマルテンスの論文は、彼はこのアプローチに戻りましたか?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/

おすすめ

転載: www.cnblogs.com/think90/p/11619616.html