フィードファードニューラルネットワークトレーニング用の効率的なデータセットサイズ

StackOverflow https://stackoverflow.com/questions/4100785

質問


PythonでFeed-Foward Neural Networkを使用しています pybrain 実装。トレーニングのために、バックプロパゲーションアルゴリズムを使用します。 Neural-Networksでは、ネットワークを下/過剰に訓練しないように、適切な量のデータが必要であることを知っています。データセットのトレーニングデータの約1200の異なるテンプレートを取得できます。
だからここに質問があります:
トレーニングに最適なデータを計算するにはどうすればよいですか?

データセットに500個のアイテムを試してみて、収束するのに何時間もかかったので、サイズがあまりにも多く試してみる必要はありません。結果は、この最後のサイズで非常に優れていますが、最適な量を見つけたいと思います。ニューラルネットワークには、約7つの入力、3つの非表示ノード、1つの出力があります。

役に立ちましたか?

解決

トレーニングに最適なデータを計算するにはどうすればよいですか?

それは完全にソリューション依存です。科学には少し芸術もあります。あなたが過剰適合しているかどうかを知る唯一の方法は、一連の検証データに対してネットワークを定期的にテストすることです(つまり、あなたが行うデータです いいえ 一緒にトレーニング)。その一連のデータのパフォーマンスが低下し始めると、おそらくあまりにも訓練しすぎています。最後のイテレーションに戻ります。

この最後のサイズでは結果は非常に良かったですが、最適な量を見つけたいと思います。

「最適」は必ずしも不可能です。また、定義に依存します。あなたが一般的に探しているのは、特定の一連のウェイトが目に見えないデータで「よく」実行されるという高度な自信です。それが検証セットの背後にあるアイデアです。

他のヒント

データセットの多様性は、ネットワークに供給しているサンプルの量よりもはるかに重要です。

データセットをカスタマイズして、ネットワークに学習したいデータを含めて強化する必要があります。

このカスタムデータセットを作成した後、問題に完全に依存しているため、サンプルの量で再生を開始する必要があります。

たとえば、特定の信号のピークを検出するためにニューラルネットワークを構築している場合、ピークがないシグナルの無数のサンプルでネットワークをトレーニングすることはまったく役に立たないでしょう。サンプルの数に関係なく、トレーニングデータセットをカスタマイズすることの重要性があります。

技術的に言えば、一般的なケースでは、すべての例が正しいと仮定すると、より多くの例が常に優れています。問題は、実際には、限界改善(答えの品質の最初の派生物)は何ですか?

これを10の例でトレーニングし、品質(95%など)をチェックし、20などをチェックして、次のようなテストをテストできます。

10 95%
20 96%
30 96.5%
40 96.55%
50 96.56%

その後、わずかな利益を明確に確認し、それに応じて決定を下すことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top