在逻辑回归的训练中,我们对样本的特征进行归一化处理,每个样本特征减去均值,然后除以方差,使得最后使用的数据均值为0,方差为1。这样处理后可以加快训练速度。其可以加快训练速度的原因是:消除了特征取值范围不统一的问题,比如有个特征的取值是1-10,但是另一个取值是-1000到1000,如果不进行处理,训练会非常缓慢,归一化后将取值范围都归一化到了0到1之间,从而加速训练过程。

有一个问题,在深层神经网络中除了对输入样本进行归一化处理,是否也可以对Z,激活函数处理后的A,偏差B等参数进行归一化处理,以加快对W,B等参数的训练?

在历史上有一种争论,是对激活函数处理之后的A进行归一化处理,还是对激活函数处理之前的Z进行归一化处理,通常大家使用对激活函数处理之前的数据Z进行归一化处理更常见。

Batch-Normal归一化的作用是:它不止将归一化过程应用到输入层,而且将归一化过程应用到深层神经网络隐藏层的值中。加快神经网络的训练过程。

从更深的层次来说,BN的作用是,尤其是从处于神经网络后面的层来说,BN可以使它前面的层对后面的层的影响不会那么大,因为它们的值被限制从而拥有同样的方差和均值。

BN的另一个作用是它有轻微的正则化效果,和dropout类似,通过给隐藏层增加一些噪音(噪音来自于mini batch 的均值和方差, 与全体样本的均值和方差的差别),这些噪音迫使后面的隐藏层的神经元不过分依赖前面的任何一个隐藏层神经元。

batch-normalization:批归一化的作用:

可以让你的超参数搜索变得简单,可以让你的神经网络对于超参数选择不再那么敏感,让网络的鲁棒性更好,可以让你训练更深的网络。但是将归一化过程应用到输入层和应用到隐藏层的值中的一个区别是,对于隐藏层中的值,我们通常不希望是均值为0,方差为1,以便使得数据有多样性,保持不一样的方差。所以我们引入了r, b 这两个参数。

BN(batch-normalization)的执行过程:

对隐藏层中的每个一个神经元,每一个特征,在线性计算Z结束之后,在计算非线性激活函数的值A的之前,先对线性计算的结果Z进行归一化的处理。对Z进行归一化之后,Z会变成均值为0,方差为1的数据,但是我们通常不希望隐藏层单元的数据总是均值为0,方差为1,因为隐藏层单元有不同的分布的话,对训练来说更有意义。所以我们真正要计算的是Z_final =  r* Z_normal + b.

详细过程参考:https://zhuanlan.zhihu.com/p/34879333

另外有一点需要注意,因为测试时没有mini-batch,测试时是针对每个样本进行的。所以在测试时,我们需要重新估算均值和方差,使用指数加权平均(across mini-batch)来估算均值和方差。

神经网络中的BN(batch-normalization)相关推荐

  1. 透彻理解BN(Batch Normalization)层

    什么是BN Batch Normalization是2015年论文<Batch Normalization: Accelerating Deep Network Training by Redu ...

  2. 残差结构Residual、BN(Batch Normalization)

    残差结构Residual   初次接触残差结构是在ResNets的网络中,可以随着网络深度的增加,训练误差会越来越多(被称为网络退化)的问题,引入残差结构即使网络再深吗,训练的表现仍表现很好.它有助于 ...

  3. 理解BN(Batch Normalization)

    https://www.cnblogs.com/king-lp 转自:参数优化方法 1. 深度学习流程简介 1)一次性设置(One time setup)           - 激活函数(Activ ...

  4. BN(Batch Normalization)

    批量归一化(BN: Batch Normalization) batch size=8样本,每个样本4维度,左边是数字是第l层输出,即每个神经元输出8个响应值,再经过计算均值,方差后: 值都在0附近, ...

  5. 什么是BN(Batch Normalization)

    什么是BN(Batch Normalization)? 在之前看的深度学习的期刊里,讲到了BN,故对BN做一个详细的了解.在网上查阅了许多资料,终于有一丝明白. 什么是BN? 2015年的论文< ...

  6. 卷积神经网络CNN(2)—— BN(Batch Normalization) 原理与使用过程详解

    前言 Batch Normalization是由google提出的一种训练优化方法.参考论文:Batch Normalization Accelerating Deep Network Trainin ...

  7. 神经网络训练细节之batch normalization

    在对神经网络进行训练的时候,经常涉及到的一个概念就是batch normalization,那么究竟什么是batch normalization,以及为什么在训练的时候要加入batch normali ...

  8. 神经网络中的BN理解

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接: https://blog.csdn.net/malefactor/article/ ...

  9. 神经网络中的BN操作(常见正则化处理)

    文章目录 1. BN简介 1.1. 目前主流的归一化层介绍 1.2. Batch Normalization 1.3. 为什么BN层要加上scale和shift? 1.4 为什么BN可以是网络参数梯度 ...

最新文章

  1. 使用metablog迁移博客园的文章
  2. CyberArticle(网文快捕)上传文件提示‘许可不足’
  3. Android 10.0 PackageManagerService(一)工作原理及启动流程-[Android取经之路]
  4. C# T 泛型类,泛型方法的约束条件用法
  5. 有效括号 python_python 有效的括号的实现代码示例
  6. Qt生成的exe中为什么会带有不该有的盾牌?
  7. 网络编程C/S模型怎样才能实现真正的聊天功能
  8. 整古专家之恶意批处理命令
  9. 勒索病毒WannaCry(永恒之蓝)
  10. jackson json转bean忽略没有的字段 not marked as ignorable
  11. 重构Webpack系列之一 ---- 概念篇
  12. 如何利用445端口进行入侵渗透 445端口入侵原因详细解析。大家在进行入侵渗透个人电脑的时候,经常会碰到各种各样的端口,比如135,1433,445,3306等端口,现在小编就给大家讲解下445端口如
  13. 超分辨网络SRCNN的Pytorch实现
  14. 用python给表格加边框_python如何设置表格边框
  15. java 提示语法错误_java常见语法错误
  16. 国内外优秀计算机视觉团队汇总(2020)
  17. 聚类有效性指标(CVI)
  18. pcf8591c语言编程,学51单片机-基于PCF8591的AD采样和DA输出
  19. 系统架构设计师备考经验分享:边听课边画思维导图,高效学习
  20. 高一必修一 第一单元

热门文章

  1. 重新认识java(十) ---- Enum(枚举类)
  2. SAP中AUTHORITY-CHECK 的使用
  3. 汉字转化成拼音的源代码
  4. 新媒体常用网站推荐3
  5. 微软扩大知识产权保护范围 划清与 Linux 界线
  6. Python装逼代码
  7. 哪种牌子的台灯对学生视力好?高品质的五款护眼台灯
  8. 如何让word中的表格不分页
  9. matlab如何设置金属光泽,带金属光泽的模型shader的实现
  10. Origin将图的格式保存为模板