ニューラルネットワークをトレーニングする場合、ネットワークを正規化するには少なくとも4つの方法があります。
加えて、もちろん、ウェイトシェアリングや接続数の削減など、厳密な意味での正則化ではないかもしれません。
しかし、どの正規化方法を使用するかをどのように選択するのでしょうか。「すべてを試し、何が機能するかを確認する」よりも、より原則的な方法はありますか?
ニューラルネットワークをトレーニングする場合、ネットワークを正規化するには少なくとも4つの方法があります。
加えて、もちろん、ウェイトシェアリングや接続数の削減など、厳密な意味での正則化ではないかもしれません。
しかし、どの正規化方法を使用するかをどのように選択するのでしょうか。「すべてを試し、何が機能するかを確認する」よりも、より原則的な方法はありますか?
回答:
ニューラルネットワークでの正則化のタイプを決定するのに役立つ強力で十分に文書化された原則はありません。正則化手法を組み合わせることもできます。1つだけを選択する必要はありません。
実行可能なアプローチは、経験に基づいて行うことができ、文学や他の人々の結果をたどって、さまざまな問題領域で何が良い結果をもたらしたかを確認します。これを念頭に置いて、ドロップアウトは広範囲の問題に対して非常に成功していることが証明されており、ほとんど何をしようとしているかに関係なく、おそらくこれが適切な最初の選択肢であると考えることができます。
また、慣れ親しんだオプションを選択するだけでも役立つ場合があります-理解していて経験のあるテクニックを使用すると、パラメータを試す順序がわからないさまざまなオプションのバッグ全体を試すよりも良い結果が得られる場合があります。重要な問題は、テクニックが他のネットワークパラメーターと相互に作用する可能性があることです。たとえば、ドロップアウトの割合に応じて、ドロップアウトのあるレイヤーのサイズを大きくすることができます。
最後に、それはない問題で非常かもしれたあなたがあなたの問題とそれがオーバーフィッティングされたときに見つけることが十分にモデルを理解し、より正則で行うことができますだけであること、使用している正則技術。またはその逆で、それが不十分であり、正則化を縮小する必要がある場合を見つけます。
正則化の方法
以下の4つの手法について、L1正則化とL2正則化は正則化の方法でなければならないことは言うまでもありません。彼らは体重を減らします。L1は、ウェイトの重要性が高い場合、ウェイトの縮小に集中します。
ドロップアウトは、ニューロンを一時的にドロップアウトすることにより、過剰適合を防ぎます。最終的には、すべての重みを平均として計算するため、特定のニューロンに対して重みが大きくなりすぎないため、正則化の方法になります。
バッチの正規化は、正規化の方法であってはなりません。主な目的は、バッチを選択し、重みを強制的に0近くに、大きすぎず、小さすぎないように強制することで、トレーニングを高速化することです。
それを選ぶ
私にとって、ミニバッチはプロセスをスピードアップし、毎回ネットワークのパフォーマンスを向上させることができるので、必須です。
L1とL2はどちらも類似しており、小規模なネットワークではL1を使用します。
理想的には、大きなばらつきの問題やオーバーフィッティングがある場合、ドロップアウトを適用する必要があります。
最後になりましたが、私はニールスレーターが状況に依存し、最適なソリューションが存在することは決してないことに同意します。
詳細については、こちらをお読みになることをお勧めします。これはとても良い素材です。http://neuralnetworksanddeeplearning.com/chap3.html