批标准化(Batch Norm)
BN作用:
- 加速收敛
- 控制过拟合,可以少用或不用Dropout和正则
- 降低网络对初始化权重不敏感
- 允许使用较大的学习率
一、如何加速收敛?
- 通过归一化输入值/隐藏单元值,以获得类似的范围值,可加速学习。
- 限制了在前层的参数更新会影响数值分布的程度,使层的输出更加稳定,神经网络的之后的层就会有更坚实的基础(减弱了后层的参数因前层参数发生变化而受到的影响) 减弱了前层参数的作用与后层参数的作用之间的联系,使得网络每层都可以自己学习,稍稍独立于其他层,有助于加速整个网络的学习。
二、为什么说BN也会起到一定的正则化作用?
对于Dropout来讲,给每个隐藏单元一定概率置零的可能,这样就相当于给网络引入了噪声。迫使Dropout后部单元不过分依赖于前面任何一个隐藏单元。
而BN,因为是在Mini-batch上计算mean、variance,而不是整个数据集上。均值和方差有一些小噪音,在进行缩放过程,γ、β也会引入噪声,这样和dropout类似,它往每个隐藏层的激活值上增加了噪音,所以起到了一定的正则化作用。
当mini-batch变大时,由于均值方差更加接近真实值,所以噪声会减小,就会减少正则化的效果。
三、使用BN为何可以不使用参数b?
\[
Z=WX+b
\]
无论b为何值,去均值之后结果都是一样的,所以说,使用Batch Norm时可以不使用偏置b。
这个偏置的效果在标准化中缩放过程中能体现。
\[
\tilde{Z} = \gamma Z+\beta
\]
批标准化(Batch Norm)的更多相关文章
- 批标准化 Batch Normalization
2018-12-05 20:28:15 在机器学习领域有一个很重要的假设,即独立同分布假设,也就是说训练集和测试集是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障.而 ...
- CNN学习笔记:批标准化
CNN学习笔记:批标准化 Batch Normalization Batch Normalization, 批标准化, 是将分散的数据统一的一种做法, 也是优化神经网络的一种方法. 在神经网络的训练过 ...
- [转] 深入理解Batch Normalization批标准化
转自:https://www.cnblogs.com/guoyaohua/p/8724433.html 郭耀华's Blog 欲穷千里目,更上一层楼项目主页:https://github.com/gu ...
- 莫烦课程Batch Normalization 批标准化
for i in range(N_HIDDEN): # build hidden layers and BN layers input_size = 1 if i == 0 else 10 fc = ...
- 转载-【深度学习】深入理解Batch Normalization批标准化
全文转载于郭耀华-[深度学习]深入理解Batch Normalization批标准化: 文章链接Batch Normalization: Accelerating Deep Network T ...
- 学习笔记TF048:TensorFlow 系统架构、设计理念、编程模型、API、作用域、批标准化、神经元函数优化
系统架构.自底向上,设备层.网络层.数据操作层.图计算层.API层.应用层.核心层,设备层.网络层.数据操作层.图计算层.最下层是网络通信层和设备管理层.网络通信层包括gRPC(google Remo ...
- TensorFlow之DNN(二):全连接神经网络的加速技巧(Xavier初始化、Adam、Batch Norm、学习率衰减与梯度截断)
在上一篇博客<TensorFlow之DNN(一):构建“裸机版”全连接神经网络>中,我整理了一个用TensorFlow实现的简单全连接神经网络模型,没有运用加速技巧(小批量梯度下降不算哦) ...
- ubuntu之路——day9.2 Covariate shift问题和Batch Norm的解决方案
Batch Norm的意义:Covariate shift的问题 在传统的机器学习中,我们通常会认为source domain和target domain的分布是一致的,也就是说,训练数据和测试数据是 ...
- Batch Norm 与 Layer Norm 比较
一.结论 Batch Norm一般用于CV领域,而Layer Norm一般用于NLP领域 Batch Norm需要计算全局平均,而Layer Norm不需要计算全局平均 二.Batch Norm Ba ...
随机推荐
- mysql-关联查询
MySQL关联查询的三种写法: SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id);SELECT * F ...
- apache日志管理【转】
web服务器日志轮循比较好的方式有三种:第一种方法是利用Linux系统自身的日志文件轮循机制:logrotate:第二种方法是利用apache自带的日志轮循程序rotatelogs:第三种是使用在ap ...
- Django_form验证
需求: 当用户向Django后端以post提交数据的时候,无论前端是否进行数据合法验证,后端都需要对客户端提交过来的数据进行数据合法性验证,是否可以利用models中表类字段的约束来实现验证,并且可以 ...
- java IO(二):字节流
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- js中的监听事件总结
javascript事件与功能说明大全:http://tools.jb51.net/table/javascript_event 1.滚动条监听事件 例1:监听滚动条距离页面顶端距离 <scri ...
- scala 小结(一)
Scala 是什么?(What is scala?) 引用百度百科对于scala的定义: Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编 ...
- The mkdir Command
The mkdir command is is used to create new directories. A directory, referred to as a folder in some ...
- bzoj 4562 [Haoi2016]食物链
4562: [Haoi2016]食物链 Time Limit: 10 Sec Memory Limit: 128 MB Description 如图所示为某生态系统的食物网示意图,据图回答第1小题 ...
- spring实例化bean三种方式
我看了这篇博文<https://www.cnblogs.com/zhanglei93/p/6221546.html>,以及自己实践总结了关于spring实例化bean对象的3种方式. 一. ...
- CSS选择器的组合选择器之后代选择器和子元素选择器
实例代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...