Layer Normalization


一、Layer Normalization公式

1)計算各層的期望μ和標注差σ

l表示第l個隱藏層,H表示該層的節點數,a表示某一個節點在激活前的值,即a=w*x。

2)標准化

g和b分別表示增益和偏置參數,可以納入訓練隨樣本一群訓練。

3)加入激活函數輸出

 二、Conditional Layer Normalization

這個思路主要來源於蘇劍林的博客基於Conditional Layer Normalization的條件文本生成

比如先確定類別,然后按類別隨機生成文本,也就是Conditional Language Model;又比如傳入一副圖像,圖像就是前提條件,來生成一段相關的文本描述,也就是Image Caption。

具體實現,將條件通過不同的矩陣變換(即線性映射)分別變成和上述公式中g和b一樣的維度,然后將變換結果加到g和b上去:

代碼實現如下

if self.center:
    self.beta_dense = Dense( units=shape[0], use_bias=False, kernel_initializer='zeros' )
if self.scale:
    self.gamma_dense = Dense(units=shape[0], use_bias=False, kernel_initializer='zeros' )

if self.center:
    beta = self.beta_dense(cond) + self.beta
if self.scale:
    gamma = self.gamma_dense(cond) + self.gamma

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM