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网络参数个数时要注意

  • 相关阅读:
    SpringBoot整合redis
    maven dependency全局排除
    Spring Boot程序接收命令行参数
    MySQL8.0.20安装详解
    ITRS/GCRS/J2000坐标系的相互转换
    SpringBoot日记——日志框架篇
    SpringBoot集成log4j,解决log4j.properties不生效问题
    Office
    git下载
    WINDOWS上KAFKA运行环境安装
  • 原文地址:https://www.cnblogs.com/jiading/p/11964697.html
Copyright © 2011-2022 走看看