ディープラーニング用のデータ量はどれくらいですか?


9

ディープラーニング(特にCNN)について学習しています。これは、過剰適合を防ぐために通常は非常に多くのデータを必要とする方法です。ただし、モデルの容量やパラメータが多いほど、過剰適合を防ぐために必要なデータが増えることも知らされています。したがって、私の質問は次のとおりです。ディープニューラルネットワークのレイヤーあたりのレイヤー/ノードの数を減らし、より少ないデータ量で機能させることができないのはなぜですか?ニューラルネットワークが「キックイン」するまでに必要な基本的な「最小数のパラメータ」はありますか?特定の数のレイヤーの下では、ニューラルネットワークは、手作業でコーディングした機能ほど機能しないようです。

回答:


10

これはすばらしい質問であり、実際にあなたが言及した容量/深さの問題に取り組むいくつかの研究がありました。

畳み込みニューラルネットワークの深さが、より豊富で多様な機能階層の学習につながったという多くの証拠があります。経験的に、最高のパフォーマンスのネットは「ディープ」になる傾向があることがわかります。OxfordVGG-Netには19のレイヤーがあり、Google Inceptionアーキテクチャは深く、Microsoft Deep Residual Networkには152のレイヤーがあり、これらすべてが非常に印象的なImageNetベンチマークを取得しています結果。

表面的には、何らかのレギュラライザーを使用しない限り、高容量モデルはオーバーフィットする傾向があります。非常に深いネットワークのオーバーフィッティングがパフォーマンスに悪影響を与える可能性がある1つの方法は、少数のトレーニングエポックで非常に低いトレーニングエラーに急速に近づくということです。確率的正則化手法であるDropoutのような手法を使用すると、非常に深いネットを長期間にわたってトレーニングできます。これにより、トレーニングデータのパスが増えるため、より優れた機能を学習し、分類の精度を向上させることができます。

あなたの最初の質問に関して:

ディープニューラルネットワークのレイヤー/レイヤーあたりのノードの数を減らし、より少ないデータ量で機能させることができないのはなぜですか?

トレーニングセットのサイズを小さくすると、汎化パフォーマンスにどのような影響がありますか?より小さいトレーニングセットサイズを使用すると、学習される分散特徴表現が小さくなり、汎化能力が低下する可能性があります。最終的には、うまく一般化できるようにしたいと考えています。トレーニングセットを大きくすることで、より多様な分散機能階層を学ぶことができます。

2番目の質問に関して:

ニューラルネットワークが「キックイン」するまでに必要な基本的な「最小数のパラメータ」はありますか?特定の数のレイヤーの下では、ニューラルネットワークは、手作業でコーディングした機能ほど機能しないようです。

ここで、深さの問題に関する上記の議論にいくつかのニュアンスを追加しましょう。現在の最新技術の現状では、高性能コンバートネットをゼロからトレーニングするために、ある種の深いアーキテクチャが使用されているようです。

しかし、モデル圧縮に焦点を当てた一連の結果がありました。したがって、これはあなたの質問に対する直接的な答えではありませんが、関連しています。モデルの圧縮は、次の質問に関心があります。高パフォーマンスモデル(この場合、深い変換ネットとしましょう)を想定して、モデルを圧縮し、深さまたはパラメーター数を減らし、同じパフォーマンスを維持できますか?

高性能、大容量のコンバージョンネットを教師として見ることができます。教師を使用して、よりコンパクトな生徒モデルをトレーニングできますか?

驚くべきことに、答えは「はい」です。一連の結果がありましたが、conv netの観点からの良い記事は、Rich CaruanaとJimmy Baによる記事 です。。彼らは、パフォーマンスをほとんど失うことなく、より深いモデルを模倣する浅いモデルをトレーニングできます。このトピックについては、さらにいくつかの作業が行われています。たとえば、次のとおりです。

他の作品の中で。私は他の良い記事を見逃していると確信しています。

これらの種類の結果は、これらの浅いモデルが実際にどれほどの容量を持っているかを疑問視しています。カルアナ、バーの記事では、彼らは次の可能性を述べています:

「この結果は、ディープラーニングの強さは、ディープアーキテクチャと現在のトレーニングプロシージャがうまく一致していることから部分的に生じている可能性があり、より正確な浅いフィードフォワードネットをトレーニングするためのより良い学習アルゴリズムを考案することが可能かもしれないことを示唆しています。パラメータの数、深さは学習を容易にするかもしれませんが、必ずしも必須ではないかもしれません。」

明確にすることが重要です。Caruana、Baの記事では、最先端のパフォーマンスを得るために、浅いモデルをゼロからトレーニングしていません。つまり、クラスラベルのみからトレーニングしていません。むしろ、彼らは高性能ディープモデルをトレーニングし、このモデルから各データポイントのログ確率を抽出します。次に、浅いモデルをトレーニングして、これらの対数確率を予測します。したがって、クラスラベルで浅いモデルをトレーニングせず、これらの対数確率を使用します。

それにもかかわらず、それはまだかなり興味深い結果です。これはあなたの質問への直接の回答を提供しませんが、非常に関連するいくつかの興味深いアイデアがあります。

基本的に:モデルの理論的な「容量」とモデルの適切な構成を見つけることには違いがあることを覚えておくことが常に重要です。後者は、最適化方法によって異なります。

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