关于BN层的一点理解
一直以来对BN层两个学习参数belta和gamma不太理解,今天又在知乎问题上看到了“请问batch_normalization做了normalization后为什么要变回来?”这个问题,题主好像跟我之前想的一样(笑)。于是认真查阅了相关资料,得到以下一点见解:
Internal Covariate Shift(ICS)[1]:对 DNN 某一层,随着 GD 训练的过程中参数的改变,该层的输出数据的分布可能会改变;此时,对于下一层,相当于输入数据的分布改变了,这就类似于 Covariate Shift。这种输入数据分布的改变,可能会使 DNN 的难以学习到好的参数,从而影响 DNN 的效果。
比如在训练阶段的t1时刻,第i层输出范围(分布)在0~1之间,随着训练的推移,t2时刻第i层的输出范围变化到4~10,这个现象对与第i+1层的学习是不利的,造成了其学习困难,缓慢甚至无法收敛到最优(具体缺点[1]中说的比较详细)。其实0~1的范围已经“够用”了,毕竟0~1之间存在了无穷多个有理数,因此我们希望第i层能保持这个输出分布,故有了bn层,先将其输出归一化到0均值1方差,再通过可学习参数将其分布调整至某一合适的位置。
这样不仅预防了梯度消失/爆炸等问题,还不用关心非线性层的权重初始化,学习率也可以设置大一点。
同时,因为“batch”,而不是所有数据的Normalization,Batch的分布会带一些误差,起到了Regulation的作用,因此可以少用dropout等正则化手段了。
[1]https://zhuanlan.zhihu.com/p/26682707
关于BN层的一点理解相关推荐
- Dropout和BN(层归一化)详解
无论是机器学习,还是深度学习,模型过拟合是很常见的问题,解决手段无非是两个层面,一个是算法层面,一个是数据层面.数据层面一般是使用数据增强手段,算法层面不外乎是:正则化.模型集成.earlystopp ...
- Interview:算法岗位面试—上海某科技公司算法岗位(偏AI算法,国企)技术面试之BN层的认知、BP的推导、GD优化的几种改进等
Interview:算法岗位面试-上海某科技公司算法岗位(偏AI算法,国企)技术面试之BN层的认知.BP的推导.GD优化的几种改进等 导读:关于神经网络,问的比较深,因为博主做过总结,所以用自己的语言 ...
- caffe中的batchNorm层(caffe 中为什么bn层要和scale层一起使用)
caffe中的batchNorm层 链接: http://blog.csdn.net/wfei101/article/details/78449680 caffe 中为什么bn层要和scale层一起使 ...
- Pytorch中BN层入门思想及实现
批归一化层-BN层(Batch Normalization) 作用及影响: 直接作用:对输入BN层的张量进行数值归一化,使其成为均值为零,方差为一的张量. 带来影响: 1.使得网络更加稳定,结果不容易 ...
- 【pytorch】BN层计算
官方文档 有一个针对BN层的详细的理解: Pytorch的BatchNorm层使用中容易出现的问题 class torch.nn.BatchNorm2d(num_features, eps=1e-05 ...
- pytorch 批量归一化BatchNorm1d和BatchNorm2d的用法、BN层参数 running_mean running_var变量计算 验证
前提知识 BN层包括mean var gamma beta四个参数,.对于图像来说(4,3,2,2),一组特征图,一个通道的特征图对应一组参数,即四个参数均为维度为通道数的一维向量,图中gamma.b ...
- 狠补基础-数学+算法角度讲解卷积层,激活函数,池化层,Dropout层,BN层,全链接层
狠补基础-数学+算法角度讲解卷积层,激活函数,池化层,Dropout层,BN层,全链接层 在这篇文章中您将会从数学和算法两个角度去重新温习一下卷积层,激活函数,池化层,Dropout层,BN层,全链接 ...
- Batch Normalization (BN层)-----批归一化
目录 1.数据分布 2.BN层的作用 3.BN核心公式和流程: 4. BN用于CNN中 5. BN测试时 1.数据分布 在讲BN层之前,我们得先了解何为数据分布,数据分布跟网络训练又有什么关系. (1 ...
- 目标检测 YOLOv5 - 卷积层和BN层的融合
目标检测 YOLOv5 - 卷积层和BN层的融合 即Conv2d和 BatchNorm2d融合 flyfish 为了减少模型推理时间,YOLOv5源码中attempt_load已经包括两层的合并,主要 ...
最新文章
- block作用域与流程控制(块block、if-else、while、do-while、for-foreach、switch-case、break、continue、label)
- 关于html frame导航
- 查询sql执行计划_使用SQL执行计划进行查询性能调整
- File类之常用方法
- TBB concurrent_set 没有erase
- CSS3+HTML5特效5 - 震动的文字
- Spring quartz插件的使用
- 2.11 数值分析: 事后误差估计和迭代改善
- word从第三页插入页码
- ITOP4412----Uboot2020移植记录
- CentOS 6.3安装chrome
- 沉船会有什么_泰坦尼克号沉船之谜
- 触屏手机关闭开机触屏校准
- 百度云搜索引擎森林战士_002 找到你要的资料——百度网盘使用指南
- 史上最全电脑硬盘修复方法
- 读史有感(写于07年冬)
- SDNU 1309.啤酒和饮料
- Scala之类型参数化:Type Parameterization
- IT行业的各岗位职责
- 云计算机上能联机玩游戏不,云电脑是什么原理?为什么能让低配电脑玩大型游戏...