【动手学深度学习v2】深度学习,数值稳定性,梯度爆炸等问题探讨,为什么激活函数求导会出现对角矩阵?深度学习相关方差公式如何推导?——李沐老师的课程笔记

关于这一章,找寻大量他人笔记发现都是在截图复述,避重就轻,望此解释可以解答疑惑,与君共勉。

深度学习,从零实现多层感知机——李沐老师的课程笔记

对于深度学习,非常推荐李沐老师的课程,受益匪浅

课程视频模型初始化和激活函数_哔哩哔哩_bilibili

这里对老师的讲解做一些注释,希望大家可以更好理解这里面的意思

没有基础不知道软件如何安装的可以看Python深度学习:安装Anaconda、PyTorch(GPU版)库与PyCharm_哔哩哔哩_bilibili

若有差错,请与我联系探讨

目录

## 1.梯度爆炸等问题

## 2.数值稳定性

##总结


## 1.梯度爆炸等问题

首先是向量与向量求导,得到的是矩阵,不清楚可以看

「向量求导」 - 知乎 (zhihu.com)

然后是梯度爆炸的举例:

diag(a)是对角方阵,对角上面的元素由括号内的a决定

为什么是对角矩阵?
是因为F(X)对X求导是对角矩阵,o(WtHt-1) 对Ht-1求导可以化为 o(WtHt-1)对WtHt-1求导乘上 WtHt-1对Ht-1求导 而 o(WtHt-1)对WtHt-1求导就是F(x)对x求导。 为什么F(X)对X求导是对角矩阵呢 因为X是向量,且激活函数这个F是对X里每个元素的操作,例如【f(x1), f(x2), f(x3)】对【x1,x2x3】求导运用向量求导公式就是对角矩阵

举个例子:(省略转置符号了,按分母布局)
∂F(x)/∂x =
【【∂f(x1)/∂x1, ∂f(x2)/∂x1, ∂f(x3)/∂x1】
   【∂f(x1)/∂x2, ∂f(x2)/∂x2, ∂f(x3)/∂x2】
   【∂f(x1)/∂x3, ∂f(x2)/∂x3, ∂f(x3)/∂x3】】
这样就非常明显的看出偏导矩阵是对角矩阵


输出时候是顶部
因为输入层的w对loss进行求导的时候需要从顶层一步一步下来,但是顶层下面一层对loss求导只需要求导一次,所以积累小,影响小
结果就是神经网络深不了,一深就有问题,会使底层无法正常更新梯度


## 2.数值稳定性


数值稳定就是让梯度不要太大也不要太小,防止梯度爆炸等问题
3种解决方法,这里介绍最下面的
权重初始和激活函数:

E是均值,Var是方差

独立同分布(Independent and Identically Distributed,缩写为IID)是概率论和统计学中的一个重要概念。它指的是一组随机变量中,每个变量的概率分布都相同,并且这些随机变量彼此独立

举个例子,假设我们有一枚公平的硬币,每次抛掷可能出现正面(记为1)或反面(记为0)。如果我们进行多次抛掷,每次抛掷的结果都是相互独立的,并且每次抛掷的概率分布相同(正面和反面的概率均为0.5),那么这些抛掷结果就是独立同分布的

如果 ( w ) 是独立同分布(iid)的随机变量,且 ( h ) 独立于 ( w ),并且它们的均值均为0,那么他们的积的均值期望就是0,例子:
 

省了一小步,就是倒数第二行,可以把它看作是w-0,0就是一个均值的平方,所以下面转换为了方差。
第二行就是和的平方。
最后一行推导的nt-1γt我认为是一个数组乘γt,值等于w方差的求和,因为h方差全都是一样的,所以可以提出来

方差公式推导:

关于这个求和标志,我之前想当然的当成是前面j层求和,然后想了一下算的方差和前面几层也没关系,之和结果ht-1有关系,这里求和是同一层的的在一起算方差,所以当会乘一个nt-1,也就是t-1层输出的个数

然后是整体推导:

第一行很简单,链式法则,就是把第一个式子l对ht-1的导数看作是l对ht的导数乘ht对ht-1的导数,再化简以下
反向和正向基本没区别,第一行式子看懂就行了
这里说的是损失函数对上一层结果的导数与损失函数对这一层结果导数数值相同

##总结

第一行,第一项保证了每一行输出的方差都是一致的,第二项是保证梯度一样
γt就是第t层权重的方差
因为你不能确定每一层的输出都是一样的
所以第一行很难满足,因此有了第二行的折中办法,凑合

要合理初始值的前提下使用激活函数必须得满足激活函数为y=x
tanh和relu在原点附近差不多满足,sigmoid需要乘4减2才近似满足

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值