簡體   English   中英

為什么 keras Batchnorm 中只有一個動量參數?

[英]Why is there just one momentum parameter in keras Batchnorm?

我是 CNN 的新手,正在使用 keras 在 CNN 中實施 Batchnorm。 Batch norm 層有 4*Feature_map(of prev layer) 參數。 其中如下:

  1. 2 是 gamma 和 beta
  2. 其他 2 個用於小批量的均值和方差的指數移動平均值

現在,均值和方差的指數移動平均值定義為:

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

在 BatchNormalization function 的 keras 中,我看到只有一個稱為動量的超參數。

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)

我的問題是為什么沒有單獨的動量超參數用於運行均值和運行方差?

平均值和 STD 的指數移動平均值是這些框架在后台處理的事情。 此外,這些不是可學習的參數(運行均值和 STD),因此它們是不可訓練的,我猜計算這兩個值(均值和方差的指數移動平均值)所使用的動量是相同的在 batchNorm 層中決定。 正如我所說,運行均值和 STD 是不可學習的,因此毫無疑問可以使用不同的超參數來調整它們的值。

您還可以查看這些線程以獲得更多洞察力- Keras 批處理規范中的移動均值和標准差

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM