0

私は平均減算がデータのゼロセンタリングのためイメージにとって非常に重要であることを読んだことがあります。 からthis講演。イメージの減算はコンビネーションでどのくらい重要ですか?

ただし、データをゼロにすることは非常に重要です。また、すべてのピクセルの正規化もよく見られます。

しかし、私はそこにすべてのMNISTと猫/犬の分類のチュートリアルでは、実際にこれを見たことがありません。それは本当に重要ですか?データのゼロセンター化を行わなかった場合はどうなりますか?誰も私に、Tensorflowのチュートリアルノートを指し示すことができますが、平均減算が行われていることを示していますか?

答えて

1

入力正規化、特に平均減算は、実際にはSGDを収束させるためにしばしば必要となる重要な前処理ステップです。

チュートリアルではあまり使用されていないと誤解されています。ほとんどの場所に存在します。たとえば、テンソルフローのCIFAR-10チュートリアルでは、画像hereを正規化します。

唯一の共通の例外はMNISTであり、おそらくイメージ正規化がオプションであるという永続的な印象を残している遍在するCNN-101チュートリアルでもあることは残念です。

テンソルフローを使用して、ノーマライゼーションの有無による結果を比較することで小さな実験を行いました。

標準実装が生成する:

step 0, training accuracy 0.1 
step 100, training accuracy 0.94 
step 200, training accuracy 0.88 
step 300, training accuracy 0.9 
step 400, training accuracy 0.92 
step 500, training accuracy 0.92 
step 600, training accuracy 0.92 
step 700, training accuracy 0.98 
step 800, training accuracy 0.98 
step 900, training accuracy 0.9 
step 1000, training accuracy 0.94 
step 1100, training accuracy 0.98 
step 1200, training accuracy 0.96 
step 1300, training accuracy 0.94 
step 1400, training accuracy 0.98 
step 1500, training accuracy 1 
step 1600, training accuracy 0.94 
step 1700, training accuracy 0.96 
step 1800, training accuracy 1 
step 1900, training accuracy 0.96 
test accuracy 0.974 

正規

x_image = tf.map_fn(lambda frame: tf.image.per_image_standardization(frame), x_image) 

を追加し、私は私が2000年以降、全く同じ試験精度を持って最終的に

step 0, training accuracy 0.1 
step 100, training accuracy 0.86 
step 200, training accuracy 0.92 
step 300, training accuracy 0.86 
step 400, training accuracy 0.94 
step 500, training accuracy 0.98 
step 600, training accuracy 0.94 
step 700, training accuracy 0.96 
step 800, training accuracy 1 
step 900, training accuracy 0.92 
step 1000, training accuracy 0.92 
step 1100, training accuracy 0.98 
step 1200, training accuracy 0.98 
step 1300, training accuracy 0.96 
step 1400, training accuracy 0.96 
step 1500, training accuracy 1 
step 1600, training accuracy 0.98 
step 1700, training accuracy 0.96 
step 1800, training accuracy 0.94 
step 1900, training accuracy 1 
test accuracy 0.974 

を得ました(!)どちらの場合もステップ。したがって、画像の正規化はここではパフォーマンスを低下させませんが、あまり追加しません。

実際の質問は、MNISTデータセットを非常に特殊なものにして、画像の正規化の恩恵を受けないことです。これは、ほとんど一定である画像の性質、または非ゼロ平均データに対処できるほど浅いこのデータセット(LeNetおよびバリアント)で通常使用されるネットに起因する可能性があります。

関連する問題