Batch Normalization也是深度学习中的一个高频词汇,这篇文章将会对其做一个简单介绍。

目录

  • 1. BN的原理
  • 2. BN的作用
  • 3. BN层的可学习参数
  • 4. infer时BN的处理
  • 5. BN的具体计算步骤以及公式
  • 6. BN和L2参数权重正则化的区别

1. BN的原理

  • BN就是在激活函数接收输入之前对数据分布进行规范化,具体计算就是去均值归一化,将数据的分布都规范到标准正态分布中,使得激活函数的输入值落在函数较为敏感的区域,也即梯度较大的区域,从而避免梯度消失、减少训练时间。因此,BN也通常需要放在激活函数之前。

2. BN的作用

  1. 对数据进行规范化,降低样本之间的差异。
  2. 使激活函数的输入落在梯度较大的区域,一个很小的输入差异也会带来较大的梯度差异,可以有效的避免梯度消失,加快网络的收敛。
  3. 降低了层与层之间的依赖关系,不加BN的时候当前层会直接接收上一层的输出,而加了BN之后当前层接收的是一些规范化的数据,因此使得模型参数更容易训练,同时降低了层与层之间的依赖关系。

3. BN层的可学习参数

  • scale(γ),即缩放尺度,用于乘以输入进行缩放。
  • offset(β),即偏移量,用于和输入相加进行偏移。
  • BN的对象是特征图,因此会以每个特征图为单元取一堆γ和β。

4. infer时BN的处理

  • 在infer(预测)的时候,γ和β作为一个可学习参数有自己的数值,而计算BN所需要的均值和方差则是训练时统计的平均值。

5. BN的具体计算步骤以及公式

  1. 求均值。
  2. 求方差。
  3. 对数据进行标准化(将数据规范到标准正态分布)。
  4. 训练参数γ和β。
  5. 通过线性变换输出。
    (图片来源于网络)

6. BN和L2参数权重正则化的区别

  • BN是拉平不同特征图(也可以说是特征)之间的差异,进行去均值归一化。而L2参数权重正则化则没有改变同一层参数的相对大小,而是对当前参数自身进行正则化。
  • 本身每个参数的模长是不同的,而L2参数权重正则化会拉平参数之间的差异,让他们都往0靠近。而BN则不对此产生影响。
  • 对于一个特征图,它们量级、方差可能都不同,而BN就让方差为1,均值为0,从而导致特征图之间的差异减小了。L2参数权重正则化不以此层面为目标产生影响。
  • L2参数权重正则化是对各个参数权重本身的,而BN是对特征图全局的。
  • L2参数权重正则化让网络的权重不会过大,而BN的主要目的是加快训练同时防止梯度消失。

博主会持续更新一些深度学习相关的基础知识以及工作中遇到的问题和感悟,喜欢请关注、点赞、收藏。

【深度学习基础知识 - 07】BN的原理和作用相关推荐

  1. 基于人脸的常见表情识别(1)——深度学习基础知识

    基于人脸的常见表情识别(1)--深度学习基础知识 神经网络 1. 感知机 2. 多层感知机与反向传播 卷积神经网络 1. 全连接神经网络的2大缺陷 2. 卷积神经网络的崛起 卷积神经网络的基本网络层 ...

  2. 深度学习基础知识(八):神经网络基础之导数

    这个专栏主要是想和大家分享一下深度学习的基础知识,主要是以吴恩达老师深度学习课程内容作为基础,并补充了很多其他内容希望让整体内容更加容易理解和系统化.如果想要了解具体专栏里面有什么内容的话,可以看一看 ...

  3. 深度学习基础知识每日更 upupup

    深度学习基础知识点总结 提示:菜鸟入门日记,若总结有错误,各路大佬多多指教! 文章目录 深度学习基础知识点总结 Looking for my friends 一.零散知识点 1.网络拼接和相加的区别 ...

  4. 深度学习基础知识整理

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/kwame211/article/details/81165381 本文是在七月的BAT机器学习面试1 ...

  5. [ 深度学习 ] 基础知识:深度学习的57个术语

    转自:https://www.cnblogs.com/hmy-blog/p/6555939.html 激活函数(Activation Function) 为了让神经网络能够学习复杂的决策边界(deci ...

  6. 2023双非计算机硕士应战秋招算法岗之深度学习基础知识

    word版资料自取链接: 链接:https://pan.baidu.com/s/1H5ZMcUq-V7fxFxb5ObiktQ 提取码:kadm 卷积层 全连接神经网络需要非常多的计算资源才能支撑它来 ...

  7. 深度学习基础知识介绍

    背景知识 深度学习又是如何运作的呢? 神经网络 训练神经网络 如何减小损失函数呢? 小结 这是一篇Medium上获得近2万赞的深度学习入门指南,用图文为你详解深度学习中的各个基础概念. 在我们的日常生 ...

  8. 【深度学习基础知识 - 28】三维重建中的点云、体素、mesh

    点云.体素和mesh都是三维重建中常用的三维物体的表示方法. 1. 点云 1.1 点云的概念 点云是不规则的数据结构,就是用一堆点来表示物体,这种方法的限制是点与点之间没有联系,缺乏物体的表面信息. ...

  9. 【深度学习基础知识 - 25】提升模型泛化能力的方法

    提升模型泛化能力的方法 从数据角度上来说.可以通过数据增强.扩充训练集等方法提高泛化能力. 在训练策略上,可以增加每个batch size的大小,进而让模型每次迭代时见到更多数据,防止过拟合. 调整数 ...

最新文章

  1. matplotlib命令与格式:图像(figure)与子区域(axes)布局与规划
  2. OA学习笔记-001-项目介绍
  3. 计算机视觉--优秀开源方案集锦
  4. 12个git实战建议和技巧
  5. mysql ddl分类_MySQL语言分类——DDL
  6. Python高级特性:Python迭代、生成器、列表生成式
  7. 【软件工程】对于Why Software Development Methodologies Suck(为什么软件开发方法论让你觉得糟糕)问题的探讨
  8. 【组成原理-处理器】数据通路
  9. 多点温度检测上位机显示_基于51单片机的多点温度检测系统设计
  10. etl全量增量抽取方式
  11. linux卸载软件wine,Ubuntu 卸载wine
  12. 东非大裂谷 - 树dp
  13. 一个大二渣渣准程序员的感动
  14. 分子动力学理论篇(1)——牛顿力学、哈密顿动力学和相空间
  15. 献给1986,1987年出生的人
  16. 深入理解设计模式-抽象工厂模式
  17. Java JNI初体验
  18. NodeJs 学习资料
  19. 计算机专业转口腔好吗,口腔医学专业VS计算机专业,同样高考志愿大热门,我该选择哪个...
  20. vue中使用vue-qrcode-reader自动检测并解码来自摄像机流的QR码

热门文章

  1. 认识工业相机的卷帘曝光与全局曝光
  2. Linux如何用find命令查找文件
  3. 用awrsqrpt生成SQL执行计划
  4. 100%国产C2000,P2P替代TMS320F280049C,独立32位双核CPU,主频高达400MHz
  5. idea uml图怎么画_Idea中UML类图
  6. Python日历查询程序(万年历)
  7. 前缀式与后缀式的差别
  8. 【vscode】ssh出现 open failed:administratively prohibited:open failed
  9. MAC苹果Jupyter代码自动补全方法 亲测可
  10. android手机进入fastboot,fastboot是什么意思?安卓手机怎么进入fastboot模式