2017-03-03 5 views
1

トレーニングデータの価値が500k個あると仮定して、一度に1つのアイテム、または一度に「n」アイテムを一度にトレーニングするかどうかは重要ですか?エフォochのテンソルフローのトレーニングデータのサイズはありますか?

任意の汎用tensorflowトレーニングステップであることを[[]]train_stepするinputTrainingDataoutputTrainingDataを考えます。一度

オプション1つのトレインつの項目 -

for i in range(len(inputTrainingData)): 
    train_step.run(feed_dict={x: [inputTrainingData[i]], y: [outputTrainingData[i]], keep_prob: .60}, session= sess) 

一度にすべてのオプション2トレイン -

train_step.run(feed_dict={x: inputTrainingData, y: outputTrainingData, keep_prob: .60}, session= sess) 

は、上記のようなオプション1と2の間に違いはあります訓練の質に関しては?

+0

それは通常、頻繁な重みの更新に使用されています。品質はそれほど重要ではありませんが、非常に小さなバッチでは予測精度が低下する可能性があります。 – umutto

+0

サイズ100のバッチでトレーニングすることができます。 – CrisH

+0

@umuttoありがとう。 「非常に小さなバッチの精度が低い」 - したがって、バッチサイズが1の場合、トレーニングに大幅な変更を加えることができますか? – Achilles

答えて

1

はい、違いがあります。オプション1はメモリ消費量がはるかに少ないですが、精度はあまり高くありません。オプション2はすべてのRAMを使い果たす可能性がありますが、より正確であることが証明されます。ただし、一度にすべてのトレーニングセットを使用する場合は、オーバーフィッティングを避けるためにステップ数を制限してください。 バッチでデータを使用するのが理想的です(通常は16〜256)。 ほとんどの最適化手法は「確率的」であり、すなわちモデル更新を推定するための統計的サンプル例に依存しています。 要約する: を - より多くのデータ=>より精度(より多くのメモリ)=>

+0

詳細な回答ありがとうございます。私はバッチサイズ1のアプローチでより良い結果を得ていますが、おそらく悪いデータか何かのために推測しています。 – Achilles

1

このオプションには異なるものがあります。通常、バッチサイズを使用してデータの128回の反復を訓練する必要があります。 最初の例のように、1のバッチサイズを使用することもできます。 この方法の利点は、ニューラルネットワークの効率的なトレーニングを出力できることです。

すべてのデータを1つで学習している場合は、少し速くなりますが、効率的であれば最後にしかわかりません。

最良の方法は、バッチサイズを作成してスタックで学習することです。したがって、スタックごとに効率的に出力し、効率的に制御することができます。

0

は、数学的にこれらの2つの方法が異なっている(したがって、トレーニングステップの量を制限する)上にフィットの高いリスクを。一方は確率的勾配降下と呼ばれ、他方はバッチ勾配降下と呼ばれる。あなたは、最も一般的に使用される1つのミニバッチ勾配降下を欠いています。このトピックについては多くの研究が行われていますが、基本的に異なるバッチサイズは異なるコンバージェンス特性を持っています。一般的に、バッチサイズは1つ以上で、完全なデータセットではありません。これは通常、大部分のデータセットが一度にメモリに収まりきらないので必要です。また、モデルでバッチ正規化を使用する場合、バッチサイズが1に収束しません。このpaperは、(特に)バッチサイズがパフォーマンスに与える影響について説明しています。テイクアウェイは、より大きなバッチサイズも一般化しないということです。 (実際には、バッチサイズ自体ではなく、バッチサイズが大きくなると更新回数が少なくなると主張しています)。バッチサイズがパフォーマンスにどのように影響するかを調べるために、バッチサイズを32に設定して試してみることをお勧めします。

ここで私はリンクされた紙からトレーニングや検証、性能上のバッチサイズの効果のグラフである。それは同様に速くすることができ、より少ないメモリとトレーニングを使用しているので

enter image description here

関連する問題