1:relu+bn
从Internal Covariate Shift(内协变量移位,即随着网络层数的加深,高层的参数更新要不断的去适应底层的参数,前面层参数的更新会导致下一层的的输入发生变化(当网络的底层发生微弱变化时,这些变化会随着层数的增加被放大,意味着对于高层网络要不断进行参数更新以适应底层参数的变化),即每一层的输入数据分布一直在发生变化)角度来说,对网络层经过激活函数以后进行norm,使得每一层的输入数据分布一致(即均值为0,方差为1),零均值的输入,可以避免梯度同号,从而出现“之”字优化的情况。

注(1):为什么零均值的输入,可以避免梯度同号,从而出现“之”字优化的情况?
神经元的运算过程可如图1所示,假设后一层返回的梯度为P,那么通过链式求导法则可知当前神经元的梯度可如图2所示。当x全为正数或者负数时,每次返回的梯度都只会沿着一个方向发生变化,那么梯度的变换如图3红色箭头所示,沿着一个方向走很多,出现“之”字型更新的现象,导致模型收敛速度变慢,如果数据x正负数“差不多”时,梯度就会接近如图3蓝色箭头更新,从而加速模型收敛。

图1 神经元计算过程

图2 神经元梯度计算过程

图3 梯度更新方向
2:bn+relu
从激活函数的角度而言,对输入进行激活,似乎也很合理,而且relu可以对norm后的特征进行选择,抑制不活跃的神经元。
3:relu+bn or bn+relu?
在实际实验过程中,两者效果差不多。

关于神经网络中relu和bn顺序的问题相关推荐

  1. 神经网络中BN层的原理与作用

    BN层介绍 BN,全称Batch Normalization,是2015年提出的一种方法,在进行深度网络训练时,大都会采取这种算法. 原文链接:Batch Normalization: Acceler ...

  2. 神经网络中的常用算法-BN算法

    目录 一.引言 二.Convariate shift 三.算法 1.算法公式 2.训练中的BN算法 3.测试和推理中的BN算法 四.BN算法在网络中的作用 1.优点 2.缺点 五.论文 一.引言 传统 ...

  3. 神经网络中的批量归一化Batch Normalization(BN)原理总结

    0.概述 深层神经网络存在的问题(从当前层的输入的分布来分析):在深层神经网络中,中间层的输入是上一层神经网络的输出.因此,之前的层的神经网络参数的变化会导致当前层输入的分布发生较大的差异.在使用随机 ...

  4. 【Deep Learning 三】神经网络中的非线性激活函数之间的优缺点:sigmoid、tanh、ReLu、Leaky ReLu...

    1 什么是激活函数? 激活函数,并不是去激活什么,而是指如何把"激活的神经元的特征"通过函数把特征保留并映射出来(保留特征,去除一些数据中是的冗余),这是神经网络能解决非线性问题关 ...

  5. 神经网络中的BN(batch-normalization)

    在逻辑回归的训练中,我们对样本的特征进行归一化处理,每个样本特征减去均值,然后除以方差,使得最后使用的数据均值为0,方差为1.这样处理后可以加快训练速度.其可以加快训练速度的原因是:消除了特征取值范围 ...

  6. 【深度学习】——神经网络中常用的激活函数:sigmoid、Relu、Tanh函数

    激活函数   实际中的很多事情并不能简单的用线性关系的组合来描述.在神经网络中,如果没有激活函数,那么就相当于很多线性分类器的组合,当我们要求解的关系中存在非线性关系时,无论多么复杂的网络都会产生欠拟 ...

  7. 深度神经网络中的Batch Normalization介绍及实现

    之前在经典网络DenseNet介绍_fengbingchun的博客-CSDN博客_densenet中介绍DenseNet时,网络中会有BN层,即Batch Normalization,在每个Dense ...

  8. 神经网络中的常用激活函数总结

    ©PaperWeekly 原创 · 作者|张文翔 单位|京东集团算法工程师 研究方向|推荐算法 激活函数之性质 1. 非线性:即导数不是常数.保证多层网络不退化成单层线性网络.这也是激活函数的意义所在 ...

  9. 神经网络中BP(back propagation)到底在干些什么

    前言 想要理解神经网络的工作原理,反向传播(BP)是必须搞懂的东西.BP其实并不难理解,说白了就是用链式法则(chain rule)算算算.本文试图以某个神经网络为例,尽可能直观,详细,明了地说明反向 ...

最新文章

  1. javascript 请求action传递中文参数乱码问题
  2. 使用JCOOKIES创建http cookie
  3. 单(liu_runda学长的神题)
  4. mysql中先随机提取再排序d_mysql性能优化
  5. 中部四省会打造人才信息云平台
  6. ROS集成开发环境搭建
  7. java线性表合并_单链表的合并(Java实现)
  8. Java最佳实践– Vector vs ArrayList vs HashSet
  9. Shell 计算两个数的加减乘除取余(+、-、*、\、/)
  10. 动态路由之OSPF综合实验
  11. iis支持java吗_如何让iis支持jsp,servlet
  12. dsp28335时钟 总结
  13. linux vps 挂qq 教程,【教程】如何在linux vps下进行steam挂卡
  14. 如何使用谷歌验证码 kaptcha,详细使用步骤
  15. SQLSERVER中CONNECTIONPROPERTY函数
  16. axure 折线图部件_Axure教程:折线图
  17. 海龟绘图小案例(内含源码)
  18. 系列教程--Linux基础--12--用户和组
  19. 新人必看的机器人制作过程
  20. 为什么对渣土车的监控和管理如此重要

热门文章

  1. 如何使用旅程可视化工具:简化网站和应用程序上的客户旅程图
  2. python读docx文件_Python读写docx文件的方法
  3. C语言百日刷题第八天
  4. AIX之topas命令详解
  5. Python math.sin() 方法
  6. 【演示文稿制作软件】Focusky教程 | 巧用半透明色块来提升演示文稿颜值
  7. 2022微信大数据挑战赛复盘,rank60+菜鸟
  8. 计算机网络实验五:Wireshark软件使用与ARP协议分析
  9. Robot Arm from solidworks to ros
  10. MyBatis执行一次数据库操作的原理以及顺序