美文网首页
BatchNormalization 和 LayerNorm

BatchNormalization 和 LayerNorm

作者: 酥脆海苔饼干 | 来源:发表于2019-09-26 22:06 被阅读0次

    1. BatchNormalization

    先借鉴一下别人的图(https://www.jianshu.com/p/94f7985a957d)

    image.png
    可以看到,由标准化的x得到第二层的输入h1的时候,经历了如下的步骤:

    1、第一层的权重项w 和 输入x想成,得到s1
    2、对s1进行0-1均值方差标准化,得到s2
    3、设置两个参数γ 和 β ,计算γ * s2 + β 得到s3。注意,这里的γ 和 β是网络要学习的变量。
    4、将s3经过激活函数激活之后得到h1

    从图中可以看出,batch_normalization是对每个神经元的输出进行标准化处理,降低了batch内不同样本的差异性。也就是说同一个batch下的样本,对其同一维度下的回归值进行标准化处理。然后又允许batch内各个samples有各自的统计分布

    这么做的原因:

    实际上第4步可以看作是在原模型上加入的“新操作”,这个新操作很大可能会改变某层原来的输入。当然也可能不改变(γ =标准差, β=均值),不改变的时候就是“还原原来输入”。如此一来,既可以改变同时也可以保持原输入,那么模型的容纳能力(capacity)就提升了。

    效果:

    (1) 加速收敛速度
    (2) 在一定程度上防止梯度爆炸
    缺点:
    (1) 依赖于batch size
    (2) 只对批输入的数据有效。eg:训练集
    (3) 对于处理序列化数据无效,因为序列数据间存在一定关系,另外要计算一个维度上的标准化不合理。
    参考链接:
    http://mini.eastday.com/mobile/190820125120647.html#
    https://baijiahao.baidu.com/s?id=1612936475591914473&wfr=spider&for=pc
    https://blog.csdn.net/leviopku/article/details/83109422

    2. LayerNormalization

    PDF:https://arxiv.org/pdf/1607.06450.pdf
    是对任意一个样本的所有维度进行标准化处理。即一个样本, 不同维度

    相关文章

      网友评论

          本文标题:BatchNormalization 和 LayerNorm

          本文链接:https://www.haomeiwen.com/subject/ckieuctx.html