zoukankan      html  css  js  c++  java
  • Batch normalization简析

    Batch normalization简析

    What is batch normalization

    资料来源:https://www.bilibili.com/video/av15997678/?p=34

    Batch normalization通俗来说,就是对每一层都进行normalization处理,而不仅仅是输入数据。

    使得数据分布较为均匀地在激活函数的激活范围内,更有效地向前传递

    但是normalization不一定是有效的,我们可以让机器自己去学习,看加不加normalization哪一个更有效:

    如图,最后我们加一个可以起到反normalization作用的层,两个参数可以通过学习得到。如果机器学习的结果是normalization没有对结果产生正面影响,可以通过调整这两个参数来抵消Normalization的影响

    附一个normalization的效果图:

    知乎这篇回答对batch normalization的作用有了一个比较深入的阐释,我这里引用一点结论性的内容:

    在BN中,是通过将activation规范为均值和方差一致的手段使得原本会减小的activation的scale变大。可以说是一种更有效的local response normalization方法

    Parameters in batch normalization

    来源:https://www.jianshu.com/p/aa856451f916

    BN层引入的参数则和输入层神经元个数相关,假设输入神经元个数为n,则该层引进的参数为2n

    这是为什么呢?就要看我们上面的第二幅图了。从图中可以看到,输入的x经过计算得到x hat,但是γ,β 这两个参数是在正向传播中无法求得的,需要在反向传播中求:

    这里写图片描述

    这就是batch normalization层引入的参数

    Batch normalization在每一次卷积、全连接后都可以进行使用,所以在计算CNN网络参数个数时要注意

  • 相关阅读:
    tyvjP1078
    红黑树笔记
    红黑树插入代码学习
    tyvjP1082找朋友
    牛棚回声USACO OCT09 3RD
    每日参悟
    全排列学习
    学习1.2
    学习笔记1.1
    学习笔记1.3
  • 原文地址:https://www.cnblogs.com/jiading/p/11964697.html
Copyright © 2011-2022 走看看