五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

[DeepLearning]Batch normalization筆記

2023-08-21 00:25 作者:我的愛如開水  | 我要投稿

Batch normalizaion是normalization的一種。BN并不是在數(shù)據(jù)的預(yù)處理階段,而是運用在模型的層與層之間。BN是以batch的粒度進行的,它的作用是用來加快模型的計算速度,能夠在訓(xùn)練以及推理階段用一個相對較高的學(xué)習(xí)率來進行收斂。


在實際的運用中,我們通常將batch normalization層加在激活函數(shù)之前。

整個順序為

  1. Linear transformation; z = g(w, x) + b

  2. Batch normalization; z_n = gamma * (z - mean) / std + beta

  3. Activation function; a = f(z_n)

其中mean為輸入的平均值(以batch作為粒度);std為輸入的標(biāo)準(zhǔn)差;gamma和beta為可學(xué)習(xí)參數(shù),它們的作用時在訓(xùn)練階段修改輸入的分布。

由于在測試/推理階段,輸入的數(shù)據(jù)只有一條,我們不能像在訓(xùn)練階段一樣通過mini-batch獲得對應(yīng)的mean和std。因此在測試/推理階段,我們使用exponentially weighted average來預(yù)估測試/推理階段的mean和std。即使用訓(xùn)練階段各個batch的mean和std來作為測試/推理階段的mean和std。

Exponentially weighted average, 也叫exponential moving average(EMA),是用來將最近的數(shù)據(jù)和以前的數(shù)據(jù)通過加權(quán)的方式來求取新的平均值。在BN的中,每訓(xùn)練一個batch,我們將當(dāng)前batch的mean和std和之前計算的mean和std做加權(quán)平均,通過這樣的方式我們來更新mean和std。因此我們在每訓(xùn)練一個新的batch,我們都會更新mean和std(也叫running mean和running std)。EMA的公式為:

EMA(t) = alpha * data(t) + (1 - alpha) * EMA(t-1)

其中t為時間;alpha是一個取值在0-1之間的一個數(shù),通過修改alpha可以改變新增的數(shù)據(jù)在平均值中的權(quán)重。在BN中alpha通常取0.9。

因此使用在測試/推理階段running_mean和running_std的計算為:

self.running_mean = 0.9 * self.running_mean + 0.1 * current_mean

self.running_std = 0.9 * self.running_std + 0.1 * current_std

在訓(xùn)練階段我們就能得到running mean和running std,然后我們使用這個running mean和running std作為測試/推理階段的mean和std。


[DeepLearning]Batch normalization筆記的評論 (共 條)

分享到微博請遵守國家法律
中山市| 新乐市| 桃园市| 大庆市| 新乐市| 应城市| 沙洋县| 新丰县| 简阳市| 当雄县| 江陵县| 苍梧县| 井冈山市| 德格县| 黄浦区| 嘉义市| 万山特区| 织金县| 随州市| 淳安县| 曲阜市| 醴陵市| 多伦县| 来宾市| 灵台县| 浏阳市| 兴和县| 雅安市| 德清县| 五大连池市| 龙口市| 珲春市| 吉林省| 昆明市| 永德县| 扬中市| 文成县| 遂昌县| 丰原市| 莒南县| 砀山县|