2017-07-07 12 views
0

ResNet50 ImageNetの事前モデルを微調整したいですが、finetuneの画像前処理について少し質問があります。ResNetのfintuneの画像前処理

  1. ImageNetの前処理では、ピクセルの平均([103.939,116.779,123.68])を差し引く必要があります。データセットを微調整するために使用するときは、ImageNetの平均値を減算するか、データの平均値を減算する必要があります。

  2. 私は多くの人が[0,1]にデータを再スケーリングするのを見ていますが、事前にモデル化されたモデル(ImageNet)は[0,255]に画像のスケールを使用しています。なぜ人々はそれをしますか?それは妥当ですか?

+0

imagenetの平均を使用すると、最高の精度を得ることができると思います。しかし、私はそれが大きな違いをもたらすとは思わない。あなたが実験をして私たちに知らせてくれれば本当に涼しいでしょう! 通常、0と1の間のスケーリングは、さまざまなスケールの異なる数の機能がある場合に使用されます。イメージ分類のために、これは必要ではありません。すべてのイメージが同じスケーリングを持ち、モデルが同じスケーリングを持つイメージでトレーニングされていることを確認してください。 –

答えて

0

私の正直な意見として、人々は画像の前処理の影響を過大評価しています。唯一真に重要なことは、テストデータが訓練データと同じ価値観であることです。バッチ正規化を使用して、事前に正規化されたデータセットを持つという理論的な利点がいくつかありますが、実際にはそれほど大きな違いはありませんでした(2〜4%の精度)。

モデルが稼働していて、パラメータの量を増やすことなくこれらの数%の精度を向上させようとしているのであれば、これをユースケースに調整することをお勧めします。

私の意見では、すべてのユースケースで機能する単一の方法はありませんが、ImageNetと同じ前処理を使用するのがよい点は、機能がimagenet分類のために作成されたものと似ているためです。

0
  1. 私は両方を試みます。一般的には平均0を得ようとするので、あなたの平均を減算するのは理にかなっています。ネットワークをフィーチャ抽出ツールとして欲しいので、イメージネット平均を減算すると意味があります。もしあなたが特徴抽出器の早い段階で何かを変えれば、それは全く機能しないかもしれません。
  2. 平均0のものと同じように、固定範囲内または固定標準偏差内にフィーチャを持つことが望ましい特性として一般に見られます。繰り返しますが、実際には何が良いかは分かりませんが、簡単に試すことができます。私の推測はあまりにも大きな違いはないということです。

重要:トレーニング/テスト/評価データに同じ前処理手順を適用してください。