Batch-Normalization

https://www.cnblogs.com/guoyaohua/p/8724433.html



有几点需要注意:

  • \(x^{(k)}\)指的是t层的输入. 也就是t-1层的输出x权重的变换
  • 训练时,在做BN的时候, \(E(x)^{(k)}\)是mini-batch里面, m个样本所获得的均值,也就是说: \(E\)不是这一层, 连向这个神经元的权重的均值, 而是连向这个神经元的激活值的均值, 分母是mini-batch里面的样本数量

测试时候如何使用BN

求各层全局评均的均值方差, 作为测试时候的均值方差

测试时的输入难到不可以求均值方差?

  • 测试的时候, 有可能只要一个sample, 那么这时候, 就没法求方差了

Dropout

参考博客

https://blog.csdn.net/program_developer/article/details/80737724

个人细节理解

假设有100个神经元, dropout概率p取0.5

  • 训练时: 一共50个神经元参与训练
  • 测试时, 所有的神经元都参与, 但是, 这样的话, 和没有dropout差异不大, 所以, 在测试阶段, 所有的神经元权重都将乘以概率p
  • dropout可以理解为一种集成学习的策略, 因为每次训练, drop掉的神经元不一样, 这就相当于每次都训练一个不同的神经网络
  • dropout有点像正则化, 减小权重使得网络对特征的鲁棒性更高

BN和dropout一般不同时使用,如果一定要同时使用,可以将dropout放置于BN后面。

droput之后改变了数据的标准差(令标准差变大,若数据均值非0时,甚至均值也会产生改变)。

如果同时又使用了BN归一化,由于BN在训练时保存了训练集的均值与标准差。dropout影响了所保存的均值与标准差的准确性(不能适应未来预测数据的需要),那么将影响网络的准确性。

Batch Normalization 和 DropOut的更多相关文章

  1. 激活函数,Batch Normalization和Dropout

    神经网络中还有一些激活函数,池化函数,正则化和归一化函数等.需要详细看看,啃一啃吧.. 1. 激活函数 1.1 激活函数作用 在生物的神经传导中,神经元接受多个神经的输入电位,当电位超过一定值时,该神 ...

  2. Batch Normalization 与Dropout 的冲突

    BN或Dropout单独使用能加速训练速度并且避免过拟合 但是倘若一起使用,会产生负面效果. BN在某些情况下会削弱Dropout的效果 对此,BN与Dropout最好不要一起用,若一定要一起用,有2 ...

  3. deeplearning.ai 改善深层神经网络 week3 超参数调试、Batch Normalization和程序框架

    这一周的主体是调参. 1. 超参数:No. 1最重要,No. 2其次,No. 3其次次. No. 1学习率α:最重要的参数.在log取值空间随机采样.例如取值范围是[0.001, 1],r = -4* ...

  4. Batch Normalization&Dropout浅析

    一. Batch Normalization 对于深度神经网络,训练起来有时很难拟合,可以使用更先进的优化算法,例如:SGD+momentum.RMSProp.Adam等算法.另一种策略则是高改变网络 ...

  5. caffe︱深度学习参数调优杂记+caffe训练时的问题+dropout/batch Normalization

    一.深度学习中常用的调节参数 本节为笔者上课笔记(CDA深度学习实战课程第一期) 1.学习率 步长的选择:你走的距离长短,越短当然不会错过,但是耗时间.步长的选择比较麻烦.步长越小,越容易得到局部最优 ...

  6. 【转载】 深度学习总结:用pytorch做dropout和Batch Normalization时需要注意的地方,用tensorflow做dropout和BN时需要注意的地方,

    原文地址: https://blog.csdn.net/weixin_40759186/article/details/87547795 ------------------------------- ...

  7. 深度学习基础系列(九)| Dropout VS Batch Normalization? 是时候放弃Dropout了

    Dropout是过去几年非常流行的正则化技术,可有效防止过拟合的发生.但从深度学习的发展趋势看,Batch Normalizaton(简称BN)正在逐步取代Dropout技术,特别是在卷积层.本文将首 ...

  8. 从Bayesian角度浅析Batch Normalization

    前置阅读:http://blog.csdn.net/happynear/article/details/44238541——Batch Norm阅读笔记与实现 前置阅读:http://www.zhih ...

  9. 深度学习网络层之 Batch Normalization

    Batch Normalization Ioffe 和 Szegedy 在2015年<Batch Normalization: Accelerating Deep Network Trainin ...

  10. 使用TensorFlow中的Batch Normalization

    问题 训练神经网络是一个很复杂的过程,在前面提到了深度学习中常用的激活函数,例如ELU或者Relu的变体能够在开始训练的时候很大程度上减少梯度消失或者爆炸问题.但是却不能保证在训练过程中不出现该问题, ...

随机推荐

  1. 一文带你了解 「图数据库」Nebula 的存储设计和思考

    本文首发于 Nebula Graph Community 公众号 在上次的 nebula-storage on nLive 直播中,来自 Nebula 存储团队的负责人王玉珏(四王)同大家分享了 ne ...

  2. ui转py文件

    ui文件转py文件并且使用 简单做一个笔记,以后忘了回来看看 转换 在QT Designer中创建完ui文件后,回到pycharm中,右键点击ui文件,选择pyuic 完成后获得了和ui文件同名的py ...

  3. 青少年CTF训练平台-web部分随笔

    文章管理系统 首先打开环境(>ω<。人)ZZz♪♪ 既然要做题,就要做全面了,图上说了,既然有假flag我就先找出来: 假flag: 打开vmware,使用sqlmap进行处理: sqlm ...

  4. 微信小程序开发:页面分享卡片、风格选择、通道启用等可配置

    上文说到,我们部署了定时任务,但是有个地方忘记在上文写了,这里补上,就是定时任务的超时时间问题,超时时间有7200秒: 我们改成7100秒: 再把云函数调用的云对象的超时时间也改下: 超时时间多一点, ...

  5. mybaits 笔记2022年8月学习笔记

    mybatis整理 前期准备 安装必要依赖: idea开发mybatis,如果学习测试,可以在一个直接建一个空白项目,如果是用spring boot,则建议用用boot的安装捆绑方式 核 心依赖 or ...

  6. CodeIgniter3.chm 打包编译 需要 hhc.exe - php框架

    电子书地址 https://github.com/CodeIgniter-Chinese/rapid-php-application-development 我打包编译好了chm,https://fi ...

  7. 摆脱鼠标系列 - vscode 新建终端 默认最大化显示

    摆脱鼠标系列 - vscode 新建终端 默认最大化显示 实现 搜索 opens max 改成 always

  8. Vue3.x知识图谱

    Vue3.x知识图谱 https://gitee.com/jishupang/vue3-knowledge-map/tree/master 回头有时间再贴图吧

  9. 软件推荐 Notable / 现改用 Vnote 了

    https://notable.app/#download

  10. 在后台运行 django的基本方法

    在后台运行 django: nohup python manage.py runserver 0.0.0.0:9000 &ps:&可以不写,这样启动测试服务器后,就可以常驻后台运行了. ...