約1,000,000個のパラメーターを持つたたみ込みニューラルネットワーク(CNN)がある場合、いくつのトレーニングデータが必要ですか(確率的勾配降下を行っていると仮定します)?経験則はありますか?
追記事項:確率的勾配降下(たとえば、1回の反復で64個のパッチ)を実行した場合、〜10000回の反復の後、分類器の精度は大まかな定常値に達することがあります)。これは、多くのデータが必要ないという意味ですか?100k-1000kデータのように。
約1,000,000個のパラメーターを持つたたみ込みニューラルネットワーク(CNN)がある場合、いくつのトレーニングデータが必要ですか(確率的勾配降下を行っていると仮定します)?経験則はありますか?
追記事項:確率的勾配降下(たとえば、1回の反復で64個のパッチ)を実行した場合、〜10000回の反復の後、分類器の精度は大まかな定常値に達することがあります)。これは、多くのデータが必要ないという意味ですか?100k-1000kデータのように。
回答:
さらにデータが役立つかどうかを判断するために、トレーニングデータ(つまり、ニューラルネットワークのトレーニングに使用されるデータ)でのアルゴリズムのパフォーマンスを、テストデータ(つまり、ニューラルネットワークで行われたデータ)のパフォーマンスと比較する必要がありますトレーニングでは「見えない」)。
チェックするのが良いのは、反復数の関数としての各セットのエラー(または精度)です。この結果には2つの可能性があります。
1)トレーニングエラーは、テストエラーよりも大幅に低い値に収束します。この場合、アルゴリズムのパフォーマンスは、ほぼ確実に、より多くのデータで改善されます。
2)トレーニングエラーとテストエラーはほぼ同じ値に収束します(トレーニングエラーはおそらくテストエラーよりもわずかに低いままです)。この場合、追加のデータだけではアルゴリズムに役立ちません。この時点で得られるよりも優れたパフォーマンスが必要な場合は、隠れ層にニューロンを追加するか、隠れ層を追加してみてください。十分な数の非表示ユニットを追加すると、テストエラーがトレーニングエラーよりも著しく高くなり、その時点でより多くのデータが役立つことがわかります。
これらの決定を行う方法のより徹底的で役立つ紹介のために、Andrew NgのCourseraコース、特に「学習アルゴリズムの評価」と「バイアスと分散」のレッスンを強くお勧めします。
素朴な答えは、常により多くのデータが必要だということです。同じデータセットを反復してエポックを増やすと、結果を「洗練」するのに役立ちますが、データが増えるほど結果を改善することはできません。
例として、文モデリングを行い、より多くのデータが必要かどうかをテストするためにconvnetをトレーニングしています。トレーニングデータセットを小さなサブセットに分割してテストしようとしました。
データセット全体を使用して、10回の反復のトレーニングを行ったところ、ベンチマークで93%の精度が得られ、改善を続けています。代わりに、データセットの10%を100回繰り返したときに、85%を取得しました。
したがって、常により多くのデータを取得しようとしますが、できない場合、より多くのエポックを実行することは良いトレードオフになる可能性がありますが、最終的には常に新しいデータをネットワークに供給した場合、モデルはより良く収束します。
最も重要なことは、データ内のサンプルが十分に広がっていることだと思います。なぜなら、どれだけ多くのデータを保持していても、より多くのデータが常に良いからです。結局のところ、猫と犬の写真を区別する方法を学習しようとすると、猫の画像だけを与えた場合、モデルがうまく機能するとは期待できません。
Kevin Lの回答で示唆されているように、トレーニングエラーとテストエラーの違いを考慮することは理にかなっています。テストデータがトレーニングデータから独立している場合、これは、モデルが利用できないデータに対してどれだけうまく一般化されているかを示します。それに加えたいのは、トレーニングとテストのエラーの大きな違いは、モデルが十分に一般化されていないこと、つまり、トレーニングデータが過剰に適合していることだけを示しているという事実です。より多くのデータが役立つ可能性があります。これは、ネットワークが追加のデータポイントをモデル化する必要があるため、これ以上オーバーフィットできないためです。ただし、一般化するようにモデルを変更する方が価値があります。優れた本のこの章 より良い一般化を得るために、どのタイプの正則化が存在し、それらをネットワークにどのように適用できるかを説明します。
あなたがより定量的な尺度を探しているなら、私は最近、クオラに関するこの質問を見つけました。これは自動エンコーダーについてですが、あなたの例にも適用できるはずです。これが正しいかどうかはわかりませんが(私に教えてください)、たとえばMNISTの場合、最大28 * 28 * 8 * 10 000 = 62 720 000の画像を縮小しようとすると主張するかもしれません10 * 10 * 10000 = 1 000 000ビットのエントロピーを使用したワンホットエンコーディングでの10クラスのビットエントロピー。出力では1 000 000ビットのエントロピーにのみ関心があるため、1 000 000パラメーターでは、各パラメーターは1ビット(サンプルあたり1e-4ビット)を表していると言えます。これは、より多くのデータが必要になることを意味します。または、パラメーターが多すぎる、たとえばパラメーターが100の場合、パラメーターごとに10,000ビット、したがってサンプルごとに1ビットになるためです。しかしながら、