バッチ更新と個別更新のMLPの正則化に違いはありますか?


9

私は過適合を制御するアプローチとしての正則化について学習しました。このアイデアを、バックプロパゲーションとマルチレイヤーパーセプトロン(MLP)の単純な実装に組み込んで、組み合わせます。

現在、過剰適合を回避するために、私は交差検証を行い、これまでのところ、検証セットで最高のスコアのネットワークを維持しています。これは問題なく機能しますが、正則化を追加すると、正則化アルゴリズムとパラメーターを正しく選択することで、ネットワークがより体系的に非適合モデルに収束するというメリットがあります。

(Coursera MLコースからの)更新期間について私が持っている式は、たとえば各ウェイトのバッチ更新として記述され、エラー伝播からトレーニングセット全体に適用されるすべてのデルタを合計した後lambda * current_weight、結合の前に調整が追加されますバッチの最後でデルタが差し引かれlambdaます。ここで、は正則化パラメーターです。

私のバックプロパゲーションの実装では、アイテムごとの重みの更新を使用しています。直感的には問題ないように見えますが、バッチアプローチをそのままコピーすることはできません。アイテムあたりのより小さな正則化用語も同様に機能しますか?

たとえばlambda * current_weight / N、Nがトレーニングセットのサイズである場合-一見すると、これは妥当に見えます。でも、この件については何も見つかりませんでした。正規化がアイテムごとの更新ではうまく機能しないためか、別の名前や変更された式の下にさえあるためでしょうか。

回答:


2

正則化は、アイテムごとの学習にも関連しています。バッチ学習でもアイテムごとの学習でも、ラムダを見つけるための基本的な検証アプローチから始めることをお勧めします。これが最も簡単で安全な方法です。いくつかの異なる値を使用して手動で試してください。例:0.001。0.003、0.01、0.03、0.1など。検証セットの動作を確認してください。後で、線形またはローカルの検索方法を導入して、このプロセスを自動化できます。

補足として、ラムダの値は、トレーニングセットのサイズではなく、パラメーターベクトルの更新との関連で考慮する必要があると思います。バッチトレーニングの場合、データセットパスごとに 1つのパラメーター更新があり、オンラインの場合は、トレーニングセットのサイズに関係なく、サンプルごとに1つの更新があります。

私は最近、このクロスバリデーションされた質問に遭遇しました。新しいSGDアルゴリズムに関する論文へのリンクがあり、いくつかの関連コンテンツが含まれています。見てみると便利かもしれません(特に1742-1743ページ)。


はい私はまだクロス検証してオーバーフィッティングをチェックするつもりです、私の質問はそれよりも基本的です-MLPでアイテムごとの重量調整で正則化を使用することへの参照をまったく見つけることができません。その理由-たとえば、その学習モードでは機能しない、または調整が必要です。クロスバリデーションされた質問非常に似ていますが、私に自信を与えてくれます、ありがとう。SGDアルゴリズムのページには、正規化を導入するための別の確率論的な方法があるようですが、これは私には少し進んだかもしれませんが、まさに私が探しているものです。
Neil Slater 2014年

正則化は、アイテムごとの学習にも関連しています。私はまだラムダを見つけるための基本的な検証アプローチから始めることをお勧めします。これが最も簡単で安全な方法です。いくつかの異なる値を使用して手動で試してください。例:0.001。0.003、0.01、0.03、0.1など。検証セットの動作を確認してください。後で、線形またはローカルの検索方法を導入して、このプロセスを自動化できます。
insys 14年

上記のコメントが編集され、回答の最初の文/質問が置き換えられた場合、私はそれを受け入れることができると思います。
Neil Slater 2014年

ご指摘いただきありがとうございます。それを編集しました。もっと明確になってほしいと思います。
insys 2014年

2

insysが言ったことを補足するために:

正規化は、MLPのすべての重みの逆伝播を計算するときに使用されます。したがって、トレーニングセット(batch)のすべての入力に関して勾配を計算する代わりに、一部または1つのアイテム()のみを使用しますstochastic or semi-stochastic。更新の結果をすべてではなく1つの項目に関して制限することになりますが、これも正しいことです。

また、私が正しく覚えている場合は、Andrew NGが使用しましたL2-regularization/N中には、lambda * current_weight / Nそれだけで入力を再スケーリング助け、必須ではありません。ただし、使用しない場合は、(ほとんどの場合)に別の値を選択する必要がありますlambda

グリッド検索アルゴリズムを使用して、最適な値を選択することもできますlambdaハイパーパラメーター=>選択する必要がある値)。

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