バッチ正規化では、移動平均を使用して、トレーニング中のモデルの精度を追跡する方法と理由を教えてください。


21

私はバッチ正規化(BN)論文(1)を読んでいて、モデルの精度を追跡するために移動平均を使用する必要があることを理解していませんでした。彼らがまさにやっていること。

私の理解(これは間違っている)に、論文では、モデルがトレーニングを終了した後、ミニバッチ統計ではなく人口統計を使用していることに言及しています。偏りのない推定についての議論の後(それは私には接線のようであり、なぜそれについて話すのか理解できない)、彼らは行って言う:

代わりに移動平均を使用して、トレーニング中のモデルの精度を追跡します。

それは私を混乱させている部分です。なぜ移動平均を行ってモデルの精度とどのデータセットを推定するのですか?

通常、人々はモデルの一般化を推定するために行うことで、モデルの検証エラーを追跡します(そして、勾配降下を早期に停止して正則化する可能性があります)。ただし、バッチの正規化はまったく異なることを行っているようです。誰かが何を、なぜ違うことをしているのかを明確にできますか?


1:Ioffe S.およびSzegedy C.(2015)、
「バッチ正規化:内部共変量シフトの削減によるディープネットワークトレーニングの加速」、
第32回機械学習に関する国際会議の議事録、リール、フランス、2015年。
機械学習研究ジャーナル: W&CPボリューム37


賛成の答えに満足していますか?あなたが私に尋ねると、それは「答え」ではありません。関連性があれば、より良い答えを提供できます。
OverLordGoldDragon

回答:


8

batch_normalizationを使用する場合、最初に理解する必要があるのは、TrainingとTestingの 2つの異なる方法で動作することです。

  1. トレーニングでは、バッチを正規化するためにミニバッチ平均を計算する必要があります

  2. 推論では、事前に計算されたミニバッチ統計を適用します

2番目のことで、このミニバッチの統計を計算する方法

ここに移動平均があります

running_mean = momentum * running_mean + (1 - momentum) * sample_mean
running_var = momentum * running_var + (1 - momentum) * sample_var

これは質問にはまったく答えません。「理由」と「方法」が尋ねられ、表面的な「何」が与えられました。支持されるべきではありません。
OverLordGoldDragon

1

彼らは、訓練手順について説明したが、推論については説明していないバッチ正規化について話している。

これは、サンプル手段などを使用して非表示のユニットを正規化するプロセスです。

このセクションでは、単に予測を行うとき(つまり、トレーニングが完了した後)に、推論段階で何をすべきかを説明します。

ただし、停止した検証では、検証セットの予測をトレーニングとインターリーブして、検証エラーを推定します。

そのため、このプロセスでは母集団の平均が得られないため(トレーニング中も平均は変化します)、実行平均を使用してバッチ標準パラメーターを計算し、検証セットのパフォーマンスを計算します。

そういう意味で

代わりに移動平均を使用して、トレーニング中のモデルの精度を追跡します。

実行中の手段を文字通りニューラルネットワークのパフォーマンスのメトリックとして使用することとは無関係です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.