batch normalization学习记录

深度学习存在两个问题

1,由于更新权重导致输入取值范围的变化导致收敛慢。
2,由于输入数量的增多,一般都是累加x*w。而若假设他们都是正太0,1分布,那么加的越多会导致方差越大,因此使用sigmoid会导致饱和,而使用relu 等线性的会导致数有可能很大,几百上千的值。

解决方案

将每个核的输出给一个归一化,让其都保持期望是0,方差为1。
归一化的话无非就是求均值方差,而根据求得方法分为很多种,因此出现各种normalization 方法。
batch 方法就是在batch范围内对每个单个得输出求均值。
layer 方法是在每个layer求均值。

而最新的Cross Iteration Batch Normalization,由于batch normalization是batch 求均值,因此batch小了的话反而造成不好的效果,因此尝试累计这个均值和方差。
但是不同次batch 训练时参数都变了,因此直接利用前几次batch 的均值和方差有偏差,因此需要做一个简单的线性拟合。
具体计算见原论文,或https://zhuanlan.zhihu.com/p/159762029

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值