私は CNN を初めて使用し、keras を使用して CNN で Batchnorm を実装していました。バッチ ノルム レイヤーには、4*Feature_map (前のレイヤーの) パラメーターがあります。次のとおりです。
- 2つはガンマとベータ
- 他の 2 つは、ミニバッチの平均と分散の指数移動平均です。
ここで、平均と分散の指数移動平均は次のように定義されます。
running_mean = momentum * running_mean + (1 - momentum) * sample_mean
running_var = momentum * running_var + (1 - momentum) * sample_var
Keras の BatchNormalization 関数では、運動量という名前のハイパーパラメータが 1 つだけあることがわかりました。
BatchNormalization(axis=-1, momentum=0.99, epsilon=0.001, center=True, scale=True, beta_initializer='zeros', gamma_initializer='ones', moving_mean_initializer='zeros', moving_variance_initializer='ones', beta_regularizer=None, gamma_regularizer=None, beta_constraint=None, gamma_constraint=None, **kwargs)
私の質問は、ランニング平均とランニング分散の運動量の個別のハイパーパラメーターがないのはなぜですか?