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