前言

Batch Normalization (BN)对于深度学习而言是一项非常重要的技术。尽管BN在网络训练的过程中表现力非常强大,但是大家始终没有一个很好的理论上的清晰理解。今天我们就试图解读这篇从平均场理论出发研究BN的论文:

A Mean Field Theory of Batch Normalization​openreview.net

研究对象

我们考虑全连接网络上加上Batch normalization技术:

其中

,
的取值范围为
,其中B就是mini-batch的数量。

对于参数

以及
,这篇文章设定为一个

常数

平均场处理

和之前我们讨论的全连接网络的平均场理论稍有不同的是,BN的平均场场理论需要处理的pre-activation(

)的个数为B个。这是由于BN技术是和mini-batch绑定的造成的。

因此从数学角度,我们需要考虑更加复杂的情况。而解决这个更加复杂的情况也是这篇文章的主要贡献之一。这里我把详细的数学细节略去,只讲主要结论。

通过理论计算BN网络初始化时候的梯度信息,我们发现梯度在BN网络中会发生梯度爆炸。

实验分析

(1)梯度爆炸问题

关于梯度爆炸的结论,我们需要通过实验验证。如上图所示,纵坐标就是衡量梯度大小的norm,而横坐标对应网络的深度。不同的颜色为不同的B值。

的确,从图中的显示,会发生梯度爆炸。尽管提升B的值会改善,但是由于理论获得的梯度爆炸的速率为

,所以不可以通过提升B而彻底解决这个问题。

(2)网络的可训练深度

尽管,我们发现了初始化情况下会发生梯度爆炸,但是这不一定意味网络不可以训练。于是我们做起了每篇平均场都会做的一个实验:

老规矩,白色虚线为理论预言而红色热图为真实实验。果不其然,平均场理论对于可训练深度的预言一直都很准,初始化时候的梯度爆炸的确会影响实验,可以训练的层数非常有限。

(3)BN到底行不行

我们知道我们在前面将两个重要的参数设定成常数:

然而在实际实验中,这两个参数是参与训练的。也就是说,我们需要研究不同

情况下的可训练性问题:

从上面这张图可以看出来,其实是

通过梯度爆炸限制了网络的可训练深度。通过调节两个参数是可以大大提升网络可训练的深度。因为真实BN在训练过程这连个参数会一直变化,但我们至少可以推测,对于BN网络的训练,梯度爆炸不一定是个问题。

讨论

这篇文章关于梯度爆炸影响BN的结论在其特定的语境是成立的,但是我更认为BN不太受梯度爆炸的影响。文章将调整参数归结于对于BN的改进,这也是一个特定语境成立的结论。这篇文章可能不符合我们对于BN常规的认知,但是我们不能否定这篇文章的理论贡献。

lgg7深度详细参数_深度学习平均场理论第七讲:Batch Normalization会导致梯度爆炸?...相关推荐

  1. lgg7深度详细参数_深度学习显卡参数详细对比

    这里,我们列出了英伟达近年来各种适合深度学习的显卡的详细参数,并作出一些说明,方便大家根据自己的需求挑选适合自己的显卡.直接上图(小编整理了好半天). 怎么看这张图呢,主要看几个关键的性能指标. 1. ...

  2. lgg7深度详细参数_机器学习超详细实践攻略(9):决策树算法使用及小白都能看懂的调参指南...

    决策树算法在工业中本身应用并不多,但是,目前主流的比赛中的王者,包括GBDT.XGBOOST.LGBM都是以决策树为积木搭建出来的,所以理解决策树,是学习这些算法的基石,今天,我们就从模型调用到调参详 ...

  3. lgg7深度详细参数_探讨CAPP与PDM的深度集成

    导读:CAPP从PDM中获取和存储信息,这些信息作为企业信息的基础,并通过PDM框架进行集成,因此CAPP与PDM的集成具有重要的意义.本文探讨了实现CAPP与PDM系统深度集成的一种方法. 作者:白 ...

  4. lgg7深度详细参数_混音笔记(十一)——混响器(2)混响器的参数

    本篇开始总结混响器上的各种调节参数的含义以及该如何使用.一.混响器的使用及参数调节思路 在调节混响器的参数之前,我们需要先建立一个明确的方向,即调节这些参数是为了什么,宏观来看,混响器就是模拟一个具有 ...

  5. lgg7深度详细参数_石材雕刻机加工程序菜单栏目按钮相关功能详细介绍

    石材雕刻机软件的加工程序菜单栏目功能非常多.想要了解每一个按钮的对应功能可能要花上一段时间,看到这篇文章的读者有福啦,因为酬信雕刻机小编已经为大家详细的整理了菜单栏目按钮相关功能详细介绍. 酬信石材雕 ...

  6. 深度学习深度前馈网络_深度学习前馈网络中的讲义第4部分

    深度学习深度前馈网络 FAU深度学习讲义 (FAU Lecture Notes in Deep Learning) These are the lecture notes for FAU's YouT ...

  7. 深度学习中 Internal Covariate Shift 问题以及 Batch Normalization 的作用

    深度学习中 Internal Covariate Shift 问题以及 Batch Normalization 的作用 前言 一.Batch Normalization是什么? 1.1 Interna ...

  8. 花书+吴恩达深度学习(八)优化方法之 Batch normalization

    目录 0. 前言 1. Batch normalization 训练 2. Batch normalization 测试 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书 ...

  9. 平均场理论(Mean-field theory)

    文章目录 1. 起源 2. 有效性 3. 形式方法(Hamiltonian) 4. 应用 4.1 伊辛模型 4.1.1 形式推导 4.1.2 非相互作用自旋近似 4.2 应用于其他系统 4.3 推广到 ...

最新文章

  1. Go中协程间通信的方式Sync.Cond
  2. .NET 3.5(12) - DLINQ(LINQ to SQL)之事务处理和并发处理
  3. 阿里云Redis多线程性能提升思路解析
  4. 安卓手机管理器_@你,请查收这款最强的安卓文件管理器
  5. 在Golang开发中使用Redis
  6. TextSwitcher--文本切换器
  7. oracle授权、表备份、用户管理
  8. springsecurity-sample中hsqldb的使用注意
  9. 为什么我墙裂建议大家使用枚举来实现单例。
  10. modem (1)---手机主叫的信道流程与Modem Log简单分析
  11. 通过MDaemon自带功能,实现同部门用同一账号对外收发邮件
  12. OpenGL基础32:面剔除
  13. frist Django app — 一、 创建工程
  14. 自动寻路之 --AStar算法
  15. 樱花FRP(SAKURA FRP)远程桌面+rdpwrap绕过限制
  16. 从辉煌走向消亡(下)——小型机之王DEC公司
  17. 信安从业者认证一览【建议收藏】
  18. 8051单片机驱动TM1620任意字符循环显示程序(详细注释版)
  19. 逐行解析linux kernel NIC驱动
  20. 1 is not JSON serializable的解决方案

热门文章

  1. Chmod 提升一个文件夹下所有文件(夹)的权限
  2. 基于tensorflow框架的神经网络结构处理mnist数据集
  3. 【2021年】通过vue-cli创建electron项目
  4. lombok时运行编译无法找到get/set方法 看这篇就够了
  5. spark on yarn任务提交及运行完整流程图
  6. k8s minikube部署hbase
  7. Scala分支控制 if-else 注意事项
  8. docker run常用参数说明
  9. Zuul默认路由规则
  10. Scala方法定义及调用