什么是 Batch normalization
目录
Batch_normalization
BN来源:
BN原因:
BN做法:
BN优缺点:
LRN
为什么要有LRN 局部响应归一化?
LRN公式 :
Ref:
归一化(normalization)
将一批不太标准的数据统一到指定的格式.
我们在数据处理时常用的是将一组范围差距较大或者单位不同的数据依据一定规则变化到指定的范围之内。
Batch_normalization
BN来源:
有之前的工作说明对图像的像素值分布变换为以0为均值,单位方差的正态分布数值时(这种操作被称为whiten),可以加速网络收敛。现在换作深度神经网络每一隐藏层的输入也可以做whiten吧?这样BN出现了。
BN原因:
随着网络的深度增加,每层特征值分布会逐渐的向激活函数的输出区间的上下两端(激活函数饱和区间)靠近,这样继续下去就会导致梯度消失。BN就是通过方法将该层特征值分布重新拉回标准正态分布,特征值将落在激活函数对于输入较为敏感的区间,输入的小变化可导致损失函数较大的变化,使得梯度变大,避免梯度消失,同时也可加快收敛。
具体形象理解可以查看:https://www.cnblogs.com/guoyaohua/p/8724433.html
BN做法:
上图来自https://www.cnblogs.com/guoyaohua/p/8724433.html
位于Y = weight*X+Bias之后,激活函数(非线性函数)变换之前,即作用在Y上,作为激活函数输入。
过程:input={x1,x2,x3…xn}
1 计算 x1-xn的均值u
2 计算x1-xn的方差v
3 每个x_i = (x_i – u) / (sqrt(v^2)+ e) e是一个小小偏置,防止分母趋向于0.
4 在对结果进行scale于shift操作 x_i = scale*x_i + shift
第四步存在的原因是batch_normal后,数据趋向标准正态,会导致网络表达能力变差,这里加入后标准正态分布有些偏移,变得不那么标准了。这两个参数时学习而来。
BN优缺点:
减少梯度消失,加快了收敛过程。
起到类似dropout一样的正则化能力,一定程度上防止过拟合。
放宽了一定的调参要求。
可以替代LRN。
但是需要计算均值与方差,不适合动态网络或者RNN。计算均值方差依赖每批次,因此数据最好足够打乱。
LRN
为什么要有LRN 局部响应归一化?
https://blog.csdn.net/hduxiejun/article/details/70570086
在神经生物学有一概念叫 “侧抑制”,指的是被激活的神经元会抑制相邻的神经元。
局部响应归一化借鉴了“侧抑制”的思想来实现局部抑制,对局部神经元的活动创建竞争机制,使得相应比较大的值相对大,小的更小。
优点:
可提高模型泛化能力,当使用Relu时这种“侧抑制”的方法很管用。
LRN公式 :
a 是第i个核(特征通道)在特征图(x,y)处的输出,在这里作为公式输入。
b 是第i个核(特征通道)在特征图(x,y)处经过LRN后的输出,在这里作为公式输出。
N是通道数(特征图最后一维)。
n是你想要局部抑制的特征通道维数。
K,α,β是超参数。
举个例子:
I =6, (x,y) =(2,2) ,N=10, n=4,a = [w,h,N], k = 2, α=1*e-4, β=0.75
则 n/2 = 2 i+n/2 =8, i-n/2=4
那么公式就完成在a[2,2,6]处的值除以(“上述公式括号里的值”),而括号里的是
关于【在i通道处,同样位于(x,y)处的第 4,5,6,7,8通道值的平方和】的变换式子,
这里称为式子,因为其中的超参数即是变换式子的变换方法。
使用:Tensorflow 提供了函数 tf.nn.lrn()来完成这个操作。
Ref:
DeepLearning-500-questions 深度学习基础3.6节
https://github.com/scutan90/DeepLearning-500-questions/blob/master/ch03_%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80/%E7%AC%AC%E4%B8%89%E7%AB%A0_%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80.md
【深度学习】深入理解Batch Normalization批标准化
https://www.cnblogs.com/guoyaohua/p/8724433.html
深度学习的局部响应归一化LRN(Local Response Normalization)理解
https://blog.csdn.net/yangdashi888/article/details/77918311
tensorflow下的局部响应归一化函数tf.nn.lrn
https://blog.csdn.net/sinat_21585785/article/details/75087768
什么是 Batch normalization相关推荐
- batch normalization
20210702 深度学习中的五种归一化(BN.LN.IN.GN和SN)方法简介 https://blog.csdn.net/u013289254/article/details/99690730 h ...
- 批标准归一化(Batch Normalization)解析
1,背景 网络一旦train起来,那么参数就要发生更新,除了输入层的数据外(因为输入层数据,我们已经人为的为每个样本归一化),后面网络每一层的输入数据分布是一直在发生变化的,因为在训练的时候,前面层训 ...
- 【深度学习理论】(4) 权重初始化,Batch Normalization
各位同学好,最近学习了CS231N斯坦福计算机视觉公开课,讲的太精彩了,和大家分享一下. 1. 权重初始化 1.1 相同的初始化权重 神经网络中的所有权重都能通过梯度下降和反向传播来优化和更新.现在问 ...
- 深度神经网络中的Batch Normalization介绍及实现
之前在经典网络DenseNet介绍_fengbingchun的博客-CSDN博客_densenet中介绍DenseNet时,网络中会有BN层,即Batch Normalization,在每个Dense ...
- 详解Batch Normalization及其反向传播
↑ 点击蓝字 关注视学算法 作者丨风行天上@知乎 来源丨https://zhuanlan.zhihu.com/p/45614576 极市导读 本文介绍了Batch Normalization的过程及其 ...
- Batch Normalization的诅咒
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:Sahil Uppal 编译:ronghuaiyang 导读 ...
- Batch Normalization应该放在ReLU非线性激活层的前面还是后面?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 编辑:CVDaily 转载自:计算机视觉Daily https: ...
- 原理解释|直觉与实现:Batch Normalization
https://www.toutiao.com/a6707566287964340747/ 作者:Harrison Jansma编译:ronghuaiyang 在本文中,我会回顾一下batch nor ...
- 秋招必考——Batch Normalization精简解析
https://www.toutiao.com/a6706087127173562888/ 2019-06-24 21:23:02 什么是Batch Normalization? 批量标准化(BN)指 ...
- Batch Normalization——加速深度神经网络收敛利器
https://www.toutiao.com/a6703399604613808648/ Batch Normalization Batch Normalization 提出自<Batch N ...
最新文章
- 办公电脑安装虚拟机基本就绪
- Linux中的echo简介(自我总结)(44)
- 分享Kali Linux 2016.2第48周虚拟机
- Java配置dbeaver_ubuntu我的工具安装 eclipse、dbeaver、jdk、kdesvn、
- Win server 2012 R2 文件服务器--(三)配额限制
- 泛 归并排序 及 逆序对
- Microsoft Artificial Intelligence Conference(2018.05.21)
- C#抓取网页HTML内容
- EChart中使用地图方式总结(转载)
- Python学习之路_day_25(面向对象之封装/多态/组合)
- mysql 登录的权限设置_MySQL 登录权限设置SQL语句
- python图书馆预约系统_python实现图书馆研习室自动预约功能
- MySQL基础3-SQL语言
- 叶俊|知行合一创纪录|杭州创纪录企业管理咨询有限公司董事长简介
- 二、vue组件化开发(轻松入门vue)
- C++三种创建对象的方法区别
- 先进的半导体晶圆清洗技术
- STEP2——《数据分析:企业的贤内助》重点摘要笔记(三)——数据录入
- cold start
- Python正则表达式清洗微博文本特殊符号(网址, @, 表情符等)