たたみ込みニューラルネットワークにはどのくらいのデータが必要ですか?


14

約1,000,000個のパラメーターを持つたたみ込みニューラルネットワーク(CNN)がある場合、いくつのトレーニングデータが必要ですか(確率的勾配降下を行っていると仮定します)?経験則はありますか?

追記事項:確率的勾配降下(たとえば、1回の反復で64個のパッチ)を実行した場合、〜10000回の反復の後、分類器の精度は大まかな定常値に達することがあります)。これは、多くのデータが必要ないという意味ですか?100k-1000kデータのように。

回答:


11

さらにデータが役立つかどうかを判断するために、トレーニングデータ(つまり、ニューラルネットワークのトレーニングに使用されるデータ)でのアルゴリズムのパフォーマンスを、テストデータ(つまり、ニューラルネットワークで行われたデータ)のパフォーマンスと比較する必要がありますトレーニングでは「見えない」)。

チェックするのが良いのは、反復数の関数としての各セットのエラー(または精度)です。この結果には2つの可能性があります。

1)トレーニングエラーは、テストエラーよりも大幅に低い値に収束します。この場合、アルゴリズムのパフォーマンスは、ほぼ確実に、より多くのデータで改善されます。

2)トレーニングエラーとテストエラーはほぼ同じ値に収束します(トレーニングエラーはおそらくテストエラーよりもわずかに低いままです)。この場合、追加のデータだけではアルゴリズムに役立ちません。この時点で得られるよりも優れたパフォーマンスが必要な場合は、隠れ層にニューロンを追加するか、隠れ層を追加してみてください。十分な数の非表示ユニットを追加すると、テストエラーがトレーニングエラーよりも著しく高くなり、その時点でより多くのデータが役立つことがわかります。

これらの決定を行う方法のより徹底的で役立つ紹介のために、Andrew NgのCourseraコース、特に「学習アルゴリズムの評価」と「バイアスと分散」のレッスンを強くお勧めします。


3

素朴な答えは、常により多くのデータが必要だということです。同じデータセットを反復してエポックを増やすと、結果を「洗練」するのに役立ちますが、データが増えるほど結果を改善することはできません。

例として、文モデリングを行い、より多くのデータが必要かどうかをテストするためにconvnetをトレーニングしています。トレーニングデータセットを小さなサブセットに分割してテストしようとしました。

データセット全体を使用して、10回の反復のトレーニングを行ったところ、ベンチマークで93%の精度が得られ、改善を続けています。代わりに、データセットの10%を100回繰り返したときに、85%を取得しました。

したがって、常により多くのデータを取得しようとしますが、できない場合、より多くのエポックを実行することは良いトレードオフになる可能性がありますが、最終的には常に新しいデータをネットワークに供給した場合、モデルはより良く収束します。


1
ご回答有難うございます!はい、私はあなたが持っているデータが多ければ多いほど良くなることを知っていますが、必要なデータの数は正確にはわかりません。常により多くのデータを持つことができるからです。たとえば、注釈とラベリングを行うために誰かを雇う必要があります。
いつ

それは、小さなデータセットがある場合、モデルが収束しないことを意味しますか?
samsamara

3

最も重要なことは、データ内のサンプルが十分に広がっていることだと思います。なぜなら、どれだけ多くのデータを保持していても、より多くのデータが常に良いからです。結局のところ、猫と犬の写真を区別する方法を学習しようとすると、猫の画像だけを与えた場合、モデルがうまく機能するとは期待できません。

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ビットになるためです。しかしながら、


ご提案ありがとうございます。最近の人々は、特定のタスクのデータ数を減らすためのさまざまな戦略を考え出していると思います。
RockTheStar 16

0

ネットワークが十分な機能を学習したかどうかを判断するために一般的に使用される別の方法は、初期フィルターを視覚化することです。ネットワークが十分に訓練されていれば、滑らかなフィルターが表示されるはずです。ノイズの多いフィルターは、通常、ネットワークが十分にトレーニングされていないか、過剰に適合していることを示します。詳細については、このページをお読みください

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