Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
来源:互联网 发布:2016年新疆网络管制 编辑:程序博客网 时间:2024/06/05 12:48
[ 论文阅读地址 ]
1. 问题描述
起因
神经网络在训练时候,每一层的输入的分布都在发生变化(训练时候,网络的参数会更新),这就要求网络的初始化权重不能随意设置,而且学习率也比较低。因此,我们很难使用饱和非线性部分去做网络训练,作者称这种现象为internal covariate shift 。
对网络中每一层的输入值来说,这层之前的所有层的参数都对其有影响,因此,网络参数发生变化时候,随着网络层次的加深它的影响会越来越大。
解决
作者提出,解决internal covariate shift 的办法就是在训练网络时,对于一个mini-batch的输入,将网络中一层神经元的输入做归一化(normalizing)。
优点
当使用上述方法(Batch Normalization),可以使用更大的学习率,而且也不用对初始化权重有过多的关注。
Batch Normalization 也有正则化的作用,在一些情况下可以取代Dropout。
2. 模型
介绍
训练时,网络中每层的输入的分布在不断的变化,使得当前层的参数需要不断的去拟合新的分布。考虑如下的计算:
其中,
等价于只有
归一化做法
在对输入进行whitening时,协方差矩阵和其-1/2次幂的计算量会很大。文中进行了两个简化:第一个就是whitening输入时,对每个维度单独计算;第二种方法是使用mini-batch来估计估计均值和方差。
采用第一种方法处理输入时,作者说这样做会改变网络的表达能力。例如,将sigmoid激活函数的输入进行归一化后,会将值限制在非线性激活函数的线性区域。为了解决这个问题,作者提出,对网络的转化应该包括恒等转化(即,转化后的网络,可以表达转化前网络的分布)。作者提出对于激活值的每一维度
此时就可以看到,如果
总体的归一化过程如下(对于网络中的某一层):对于一个含有m个样本的mini-batch
需要注意的一点,
网络的训练和预测
训练阶段,随机选取网络中的一部分节点,对其结果使用Batch Normalization。训练结束后,使用模型预测时,讲所有的依赖于mini-batch的Batch Normalization都改成依赖于整个样本,即:
其中,方差采用无偏估计:
- 《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》阅读笔记与实现
- 《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》阅读笔记与实现
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- 《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》阅读笔记与实现
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 论文翻译
- 笔记:batch normalization:accelerating deep network training by reducing internal covariate shift
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- 《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》阅读笔记与实现
- 《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》阅读笔记与实现
- BN(Batch Normalization)总结--Accelerating Deep Network Training by Reducing Internal Covariate Shift
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- 总结整理《Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift》
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- 《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》笔记
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift论文笔记
- 【BN】Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- 论文笔记——《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- 六种使数据中心更高效的方法
- 开发人常用工具
- HTML省市区三级联动例子
- Android静态注册内部类广播BroadcastReceiver
- PLSQL连接本地以及远程的oracle数据库(64位)
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- gcc命令精讲
- 华南师大外国语言文化学院考研历年分数线汇总【2010-2016】
- C#登录界面知识储备
- MySql最左前缀原则
- MySQL调优三步曲(慢查询、explain profile)
- iOS10获取相册/通讯录/相机/麦克风权限崩溃解决办法
- oozie Hive demo
- handler机制的原理