常用 Normalization 方法的总结与思考:BN、LN、IN、GN
数据派THU
共 4224字,需浏览 9分钟
·
2021-07-12 23:14
来源:机器学习算法那些事 本文约2700字,建议阅读6分钟 本文为你介绍常用 Normalization 方法的总结与思考。
每个子图表示一个特征图,其中N为批量,C为通道,(H,W)为特征图的高度和宽度。通过蓝色部分的值来计算均值和方差,从而进行归一化。
1. BN 求均值时,相当于把这些书按页码一一对应地加起来(例如第1本书第36页,第2本书第36页......),再除以每个页码下的字符总数:N×H×W,因此可以把 BN 看成求“平均书”的操作(注意这个“平均书”每页只有一个字),求标准差时也是同理。
一、 Batch Normalization, BN
论文链接:https://arxiv.org/pdf/1502.03167.pdf
沿着通道计算每个batch的均值
沿着通道计算每个batch的方差
做归一化
加入缩放和平移变量和
二、 Layer Normalization, LN
论文链接:https://arxiv.org/pdf/1607.06450v1.pdf
三、 Instance Normalization, IN
四、 Group Normalization, GN
def GroupNorm(x, gamma, beta, G=16):
# x_shape:[N, C, H, W]
results = 0.
eps = 1e-5
x = np.reshape(x, (x.shape[0], G, x.shape[1]/16, x.shape[2], x.shape[3]))
x_mean = np.mean(x, axis=(2, 3, 4), keepdims=True)
x_var = np.var(x, axis=(2, 3, 4), keepdims=True0)
x_normalized = (x - x_mean) / np.sqrt(x_var + eps)
results = gamma * x_normalized + beta
return results
总结
编辑:于腾凯
校对:林亦霖
评论