web-dev-qa-db-ja.com

インスタンスの正規化とバッチの正規化

バッチ正規化は、活性化を単位ガウス分布に向けることにより、勾配の消失問題に取り組むことで、より高速なトレーニングに役立つことを理解しています。バッチ基準法は、トレーニング(各バッチの平均/変数を使用)とテスト時間(トレーニング段階の最終的な実行平均/変数を使用)で別々に適用されます。

一方、インスタンスの正規化は、このペーパーで説明したコントラストの正規化として機能します https://arxiv.org/abs/1607.08022 。著者は、様式化された出力画像は入力コンテンツ画像のコントラストに依存してはならないため、インスタンスの正規化が役立つと述べています。

ただし、クラスラベルが入力画像のコントラストに依存してはならない場合、画像の分類にインスタンスの正規化も使用しないでください。分類にバッチ正規化の代わりにインスタンス正規化を使用した論文を見たことはありません。その理由は何ですか?また、バッチとインスタンスの正規化を併用できます。どの正規化を使用するかについて、直感的で理論的な理解を得たいと思っています。

35
Ruppesh Nalwaya

定義

両方の厳密な定義から始めましょう。

バッチ正規化batch-norm-formula

インスタンスの正規化instance-norm-formula

お気づきのとおり、一緒に正規化される入力テンソルの数を除いて、同じことを行っています。バッチバージョンは、すべての画像を正規化しますバッチと空間の場所全体(CNNの場合、通常の場合 異なる );インスタンスのバージョンは、各バッチを個別に、つまりspatial locationsのみで正規化します。

言い換えると、バッチノルムが1つの平均とstd devを計算する(したがって、層全体の分布をガウス分布にする)場合、インスタンスノルムはそれらのTを計算し、個々の画像分布はガウスに見えますが、共同ではありません。

簡単な例え:データの前処理ステップで、イメージごとにデータを正規化するか、データセット全体を正規化することができます。

クレジット:数式は here からのものです。

どの正規化が優れていますか?

答えは、ネットワークアーキテクチャ、特に何が行われるかによって異なりますafter正規化レイヤー。通常、画像分類ネットワークはフィーチャマップをスタックし、それらをFCレイヤーに配線します。バッチ全体でウェイトを共有します(最新の方法はCONVを使用することですFCの代わりにレイヤーが、引数がまだ適用されます)。

これは、分布のニュアンスが重要になり始める場所です。同じニューロンがすべての画像から入力を受け取ります。バッチ全体の分散が大きい場合、小さなアクティベーションからの勾配は、高いアクティベーションによって完全に抑制されます。これは、バッチノルムが解決しようとする問題です。そのため、インスタンスごとの正規化ではネットワークコンバージェンスがまったく改善されない可能性があります。

一方、バッチ正規化は、特定のインスタンスの結果が隣接インスタンスに依存するため、トレーニングに余分なノイズを追加します。結局のところ、この種のノイズはネットワークにとって良いことも悪いこともあります。これは、Tim Salimansによる論文 "Weight Normalization" でよく説明されており、リカレントニューラルネットワークと強化学習DQNをノイズに敏感なアプリケーションと名付けています。完全には定かではありませんが、同じノイズ感度が様式化タスクの主な問題であり、そのインスタンスの規範が戦おうとしたと思います。この特定のタスクに対して、重量基準がより良く機能するかどうかを確認することは興味深いでしょう。

バッチとインスタンスの正規化を組み合わせることができますか?

有効なニューラルネットワークを作成しますが、実用的ではありません。バッチ正規化ノイズは、学習プロセスを支援する(この場合は望ましい)か、それを傷つける(この場合は省略した方がよい)かのいずれかです。どちらの場合も、ネットワークに1種類の正規化を残すと、パフォーマンスが向上する可能性があります。

54
Maxim

素晴らしい質問であり、すでにうまく答えています。付け加えると、私はこの視覚化がKaiming He's Group Normの論文から役に立つとわかりました。

出典: 標準と対照的な中程度の記事へのリンク

28
Stephen Morrell

この分野には最近の作品がいくつかあるため、この質問にさらに情報を追加したかったのです。あなたの直観

クラスラベルが入力画像のコントラストに依存しない画像分類にインスタンス正規化を使用する

部分的に正しいです。夜明けや夜明けに撮影されたとき、昼間の広い豚はまだ豚だと思います。ただし、これは、ネットワーク全体でインスタンスの正規化を使用すると、より良い結果が得られることを意味するものではありません。いくつかの理由があります。

  1. 色の分布は依然として役割を果たします。赤が多い場合は、オレンジよりもAppleになる可能性が高くなります。
  2. 後のレイヤーでは、インスタンスの正規化がコントラストの正規化として機能することを想像できなくなりました。クラス固有の詳細はより深い層に現れ、インスタンスごとにそれらを正規化すると、モデルのパフォーマンスが大幅に低下します。

IBN-Net は、モデルでバッチ正規化とインスタンス正規化の両方を使用します。それらは、インスタンスの正規化を初期のレイヤーにのみ配置し、精度と一般化能力の両方の改善を達成しました。彼らはオープンソースのコードを持っています here

enter image description here

10
hkchengrex

INは視覚と外観の不変性を提供し、BNはトレーニングを加速し、識別機能を保持します。 INはシャローレイヤー(CNNの開始レイヤー)で優先されるため、外観の変動を除去し、BNはディープレイヤー(最後のCNNレイヤー)で優先されるため、差別を維持する必要があります。

0
praveen