Batchnorm
来源:互联网 发布:激战2矩阵立方钥匙 编辑:程序博客网 时间:2024/06/05 08:50
1.原理
BN就是对于给定的输入做一个减均值除方差的归一化。
训练过程中对每个Batch做均值和方差归一化处理,预测过程中通过训练数据进行估算。
BN的目的是使得下一层的神经网络(通常是非线性的激活函数,如ReLU,sigmoid)的输入在合理的范围内(接近与均值为0方差为1的正态分布),和数据预处理&合理初始化权重矩阵的目的相同。根据反向传播公式,链式求导的公式,方差过小,则数据接近于0,W难以更新;方差过大,则数据均饱和,导数为0,梯度难以传播;如果均值过大或过小,都会使得数据位于饱和区,导数为0,梯度难以传播。
3.改进
上文的归一化版本的BN有一个假设是非线性函数(如tanh)期待有一个标准正态分布的输入。这一假设是否成立有待商榷,所以有了改进版本的BN。即引入两个参数(不是超参数):均值和方差,使得BN可以输出任意均值方差的数据(这个均值和方差都是通过学习得到的)。特别的,如果学得的输出所应该具有的均值和方差都等同于输入,那么BN实际上输入输出相同,数据流的数据没有发生变化(从理论上说明加入BN不会使得结果变差)。详情请参考CS231n作业笔记2.4:Batchnorm的实现与使用。
最后一步是做平移和缩放
4.优点
优化了梯度流动
允许高learningrate
减少了对于权重初始化&数据预处理的强依赖
某种程度的正则化:BN把整个Batch的数据联系起来(而不是平行的互不相关的数据),使得学得的模型趋于稳定,不至于大幅晃动。
阅读全文
0 0
- Batchnorm
- batchnorm
- google batchnorm 资料总结
- google batchnorm 资料总结
- BatchNorm layer设定
- Operators in MXNet-BatchNorm
- BatchNorm层分析
- caffe中的batchNorm层
- caffe中的batchNorm层
- Batchnorm层推导
- 论文心得:BatchNorm及其变体
- 论文心得:BatchNorm及其变体
- caffe 中 BatchNorm layer设定
- caffe常用层:batchNorm使用
- CNN和RNN中如何引入BatchNorm
- caffe层解读系列——BatchNorm
- caffe学习笔记20-BatchNorm层分析
- BatchNorm层训练和测试的注意事项
- 什么是智慧建筑(in preparation)
- oracle 之 安装10.2.0.1 且 升级到 10.2.0.4
- JQuery Ajax使用Token验证身份
- Android 6.0 运行时权限处理完全解析
- NodeJS 学习文章收集
- Batchnorm
- 第四周周四总结
- usaco Dual Palindromes
- A
- STM32之sprintf函数
- jquery中ajax封装原理/封装jquery的ajax工具函数
- MongoDB与mySQL比较
- 浅谈面向对象的编程思想:如何优雅地把大象装进冰箱?
- bugku 细心的大象