私はニューラルネットワークをトレーニングしていますが、トレーニング損失は減少しますが、参照損失または非常に類似したアーキテクチャとデータを使用した実験に基づいて、検証損失は減少しません。どうすれば修正できますか?
質問は
この質問に触発された質問は、ニューラルネットワークの一般化誤差を達成可能であることが証明されているレベルまで下げる方法に関する他の質問をこの質問の複製として閉じることができるように、意図的に一般的に残されています。
Metaの専用スレッドも参照してください。
私はニューラルネットワークをトレーニングしていますが、トレーニング損失は減少しますが、参照損失または非常に類似したアーキテクチャとデータを使用した実験に基づいて、検証損失は減少しません。どうすれば修正できますか?
質問は
この質問に触発された質問は、ニューラルネットワークの一般化誤差を達成可能であることが証明されているレベルまで下げる方法に関する他の質問をこの質問の複製として閉じることができるように、意図的に一般的に残されています。
Metaの専用スレッドも参照してください。
回答:
まず、「私のニューラルネットワークがうまく一般化しない」とはどういう意味か、「私のニューラルネットワークはうまく機能しない」と言うことの違いは何ですか。
ニューラルネットワークをトレーニングするとき、トレーニングセットと呼ばれるラベル付きデータのセットで絶えず評価しています。お使いのモデルが正常に動作していないとトレーニングセットから学ぶことが表示されない場合、あなたはしていない、まだ一般化の問題を持って、代わりに参照してください、このポスト。お使いのモデルがトレーニングセットに十分な性能を達成しているが、以前は目に見えないデータにうまく実行できません(例えば、検証/テスト・セット)しかし、もし、あなたはない一般化の問題を抱えています。
最も重要なことは、ネットワークがうまく一般化されない理由を理解することです。大容量の機械学習モデルには、トレーニングセットを記憶する機能があり、過適合につながる可能性があります。
オーバーフィッティングとは、推定者がトレーニングセットの学習を開始し、トレーニングサンプルのノイズのモデル化を開始した状態です(すべての有用な関係に加えて)。
たとえば、下の画像では、青い線が明らかにオーバーフィットしていることがわかります。
以前に見えなかった新しいデータ(検証/テストセット)でモデルを評価しようとすると、モデルのパフォーマンスは予想よりもはるかに悪くなります。
投稿の冒頭で、モデルの複雑さが実際にオーバーフィッティングを引き起こしていることを示唆しました。これは、モデルが固有のノイズをマッピングするトレーニングセットから不要な関係を抽出できるようにするためです。過剰適合を減らす最も簡単な方法は、モデルの容量を本質的に制限することです。これらの手法は、正則化手法と呼ばれます。
パラメータノルムペナルティ。これらは、各モデルの重み更新関数に追加の項を追加します。これは、パラメーターのノルムに依存します。この用語の目的は、実際の更新に対抗することです(つまり、各重量を更新できる量を制限します)。これにより、モデルは外れ値やノイズに対してより堅牢になります。このような正則化の例はL1およびL2正則化で、Lasso、Ridge、Elastic Netのリグレッサーで見つけることができます。
ニューラルネットワークの各(完全に接続された)レイヤーは単純な線形回帰のように機能するため、これらはニューラルネットワークで使用されます。最も一般的な用途は、各レイヤーを個別に正規化することです。
ケラスの実装。
早期停止。この手法は、ノイズのモデル化を開始する前に、データからすべての意味のある関係を抽出することを学習した時点で、推定器のトレーニングフェーズを時期尚早に停止しようとします。これは、検証の損失(または選択した検証メトリック)を監視し、このメトリックの改善が停止したときにトレーニングフェーズを終了することによって行われます。このようにして、推定器に有用な情報を学習するのに十分な時間を与えますが、ノイズから学習するには十分ではありません。ケラスの実装。
モデルの容量を制限する以外に、過剰適合を防ぐ別の方法は、データの品質を改善することです。最も明白な選択は外れ値/ノイズ除去ですが、実際にはその有用性は限られています。より一般的な方法(特に画像関連のタスク)は、データ拡張です。ここでは、トレーニングサンプルをランダムに変換して、モデルからは異なるように見えても、同じセマンティック情報(画像の左右反転など)を伝えるようにします。
データ拡張の概要
以下の経験的証拠がたくさんあります 十分な深さのニューラルネットワークが巨大なデータセットのランダムラベルを記憶できるます(Chiyuan Zhang、Samy Bengio、Moritz Hardt、Benjamin Recht、Oriol Vinyals、「ディープラーニングを理解するには一般化の再考が必要です」)。したがって、原則として、十分に大きいNNを取得することにより、トレーニングエラーを常に非常に小さな値に減らすことができます。
物事はかなり異なります 一般化エラーます。学習問題ごとに、必要なだけ一般化エラーを生成できる学習可能なNNモデルが存在することを確認できません。このため、最初のステップは
データセットまたは参照を見つけることができる最も類似したものに、探している一般化エラーに到達する可能性のあるアーキテクチャが存在することを示す信頼できる参照を見つけます。たとえば、こちらをご覧ください
さまざまなタスクでのCNNの現在の(回答時の)SOTA(State Of The Art)パフォーマンスを見つける。すべてのインフラストラクチャが適切に配置されていることをテストするために、独自のデータセットでトレーニングする前に、これらの参照データセットでそのような結果を再現することをお勧めします。
質問への回答に記載されているすべてのチェック
ニューラルネットワークが学習しない場合はどうすればよいですか?
トレーニング手順に問題がないことを確認することは、一般化エラーを減らすための前提条件です(NNが学習していない場合、一般化することは学習できません)。これらのチェックには、とりわけ以下が含まれます。
「スーパーコンバージェンス:大きな学習率を使用したニューラルネットワークの非常に高速なトレーニング」、レスリーN.スミスとニコライトピンによる、場合によってはラージラーニングレートとレスリーN.スミスの周期的ラーニングレートメソッドの組み合わせが正則化として機能することを示しています、収束を1桁加速し、広範な正則化の必要性を減らします。したがって、これは前に試すのが良いことです
正則化は、多くの場合、トレーニング時間を増やし(悪い)、トレーニングエラーを増やし、一般化エラーを減らします(良い)が、あまりにも多くの正則化は実際に両方のエラーを増やす(アンダーフィッティング)ことがあります。このため、またトレーニング時間が増加するため、トレーニングセットのオーバーフィットに成功した後、さまざまな正則化手法を一度に1つずつ導入する方がよい場合がよくあります。正則化自体は、必ずしも一般化エラーが小さくなることを意味するわけではないことに注意してください。良好な一般化プロパティを実現するには、モデルに十分な容量が必要です。これは、多くの場合、正規化の利点を理解する前に、十分に深いネットワークが必要であることを意味します。
最も古い正則化方法は、おそらく早期停止と重量減衰です。他のいくつか:
他に何も役に立たない場合、複数の異なるハイパーパラメーター設定をテストする必要があります(ここで、ベイジアン最適化が役立つ場合があります)または複数の異なるアーキテクチャーの変更(たとえば、GANアーキテクチャーや作業中のデータセットに対して、バッチノルムは、ジェネレーターですが、ディスクリミネーターにも追加すると事態が悪化します)。これらの長くて退屈な実験の結果は、よく整理されたログブックに記録してください。
GANのPSでは、一般化エラーについて話すのはあまり意味がありません:上記の例は、ディープラーニングにはまだ多くの錬金術が存在することを示すものであり、うまく機能すると期待されることもあれば、またはその逆の場合、何回も正常に機能するものは、突然新しいデータセットを探し出します。
私が文献で見た一般的に使用される正則化技術のリストは次のとおりです。
Djib2011のように、自動化された方法について素晴らしい点を挙げていますが、過剰適合を減らすために採用された方法がうまくいったかどうかをどのように知るかという根本的な問題に本当に取り組んでいません。したがって、DeltaIVの回答に対する重要な脚注として、過去2年間の最近の研究に基づいてこれを含めたいと思いました。ニューラルネットワークのオーバーフィッティングは、モデルを過剰に記憶することだけでなく、モデルが新しいことを学んだり、異常に対処することができないことも含みます。
ブラックボックスモデルでの過剰適合の検出:モデルの解釈可能性は、モデルが一般化する能力をどれだけうまく伝えることができるかに直接関係しています。したがって、多くの解釈可能なプロットは、過剰適合を検出する方法であり、上記で提案された方法のどれがうまく機能しているかを伝えることができます。特に検証プロットとテスト結果プロットを比較する場合、解釈可能性プロットはそれを直接検出します。この未公開の本の第5章と第6章では、過適合の現場検出における最近の進歩について説明しています。解釈可能なモデリング
この本に基づいて、過剰適合を検出および除去する他の3つの方法について言及したいと思います。だから、私は心が1つではない場合、それらを強調したいと思います:
特徴選択の検出:パラメーターの数が少なく、モデルの特徴が少ないほど優れています。そのため、1億の重要なものだけを含めると(代わりに7,500万を持っている可能性があります)、より一般化可能なモデルになります。問題は、多くのニューラルネットワークが、特に#2が存在する場合、特徴選択において完全ではないことです。ブートストラップまたはブースティングは基本的に両方を修正することはできません(wild bootstrapと呼ばれるバージョンのみが修正できます)。簡単に言えば、ニューラルネットワークのジャンクデータを提供すると、ジャンクアウトが発生します。(上記のL2正規化はこれを支援するのに非常に優れています)
異常の検出と対処:「異常値」が少ないほど、モデルをより一般化できます。「外れ値」とは、データの単なる外れ値を意味するものではありません。データの外れ値(ボックスプロットで表示されるようなもの)は、ニューラルネットワークの定義が狭すぎます。モデルの誤差の外れ値も考慮する必要があります。これは影響と呼ばれ、他の異常とも呼ばれます。したがって、ネットワークを実行する前に異常を検出することが重要です。ニューラルネットは、1つのタイプの異常に対して堅牢ですが、他のすべてのタイプに対して堅牢ではありません。Counter Exampleメソッド、Critisticismメソッド、Adversarialサンプルメソッド、および影響プロットは、外れ値を発見し、それらをどのように因数分解するかを把握するのに役立ちます。
統計的または倫理的な考慮事項に基づいた層別サンプリング、オーバーサンプリング、およびアンダーサンプリング (人種、性別、性別)などの重要な要素をクラスタリングし、クラスターによる層別サンプリングを行うことは、ビッグデータを考慮したときに過剰適合しないようにするために不可欠です。画像検出を行う場合、人種差別を避けるために、一部の分野ではクラスタリングと組み合わせた層別サンプリングが法的に必要です。上記のリンクされた本では、これを行う方法について簡単に説明しています。
PSもっとリンクを含めるべきですか?