3

マルチターゲット回帰問題に TensorFlow を使用しています。具体的には、入力が画像であり、ラベルが各ピクセルに float 値を持つ「ヒートマップ」であるピクセル単位のラベル付けを使用する畳み込みネットワーク。より具体的には、各ピクセルのグラウンド トゥルース ラベル付けの下限は 0 であり、技術的に上限はありませんが、通常は 1e-2 を超えることはありません。

バッチ正規化がなければ、ネットワークは合理的なヒートマップ予測を提供できます。バッチ正規化では、ネットワークが妥当な損失値に到達するまでに非常に長い時間がかかりますが、最善の方法はすべてのピクセルを平均値にすることです。これはtf.contrib.layers conv2dbatch_normメソッドを使用し、batch_normが に渡されますconv2d(normalization_fnバッチ正規化がない場合はそうではありません)。別の(単一値)回帰ネットワークでバッチ正規化を簡単に試しましたが、そのときも問題がありました(ただし、それほど広範囲にテストしていませんでした)。一般に、回帰問題でバッチ正規化を使用する際に問題はありますか? 共通の解決策はありますか?

そうでない場合、そのようなアプリケーションでバッチ正規化が失敗する原因は何ですか? さまざまな初期化、学習率などを試みました。最終層 (もちろんバッチ正規化は使用しません) は重みを使用して、最後から 2 番目の層の出力を適切な回帰値にスケーリングできると思います。それができなかったので、そのレイヤーからバッチ ノルムを削除しましたが、改善はありませんでした。バッチ正規化を使用して小さな分類問題を試みましたが、問題は見られませんでした。そのため、回帰問題の性質が原因である可能性があることは合理的と思われますが、それがどのようにしてこのような劇的な違いを引き起こすかはわかりません. バッチ正規化は回帰問題で問題があることが知られていますか?

4

1 に答える 1