网站更改域名没有变更备案,服装网站源码php,安徽网站建站系统平台,网络营销的特点包含目录 神经网络的梯度数值稳定性的常见两个问题例子#xff1a;MLP 梯度爆炸梯度爆炸的问题 梯度消失梯度消失的问题 总结模型初始化和激活函数让训练更加稳定让每层的方差是一个常数 权重初始化正向均值和方差正向均值正向方差 反向均值和方差Xavier初始正向和反向的均值和方差… 目录 神经网络的梯度数值稳定性的常见两个问题例子MLP 梯度爆炸梯度爆炸的问题 梯度消失梯度消失的问题 总结模型初始化和激活函数让训练更加稳定让每层的方差是一个常数 权重初始化正向均值和方差正向均值正向方差 反向均值和方差Xavier初始正向和反向的均值和方差书上正向均值和方差反向均值和方差 从线性的激活函数的角度提升数值稳定性正向反向 检查常用激活函数总结问题 神经网络的梯度
考虑如下有d层的神经网络输入x和输出y的深层网络。每一层t由线性变换 f 1 f_1 f1定义该变换的参数为权重 w ( t ) w^{(t)} w(t),其隐藏变量是 h ( t ) h^{(t)} h(t)(令 h ( 0 ) h^{(0)} h(0)x)。我们的网络可以表示为 层记作t l损失函数即预测的要进行优化的目标函数 yy不是预测还包括损失函数
计算损失l关于参数 w ( t ) w^{(t)} w(t)的梯度。 数值稳定性的常见两个问题 例子MLP
加入如下MLP为了简单省略了偏移即MLP多层感知机的模型 首先对激活函数进行求导它是一个按元素的一个函数所以对它的求导就变成一个diag(对角)矩阵 梯度爆炸
使用ReLU作为激活函数 通过元素为0和1的对角矩阵与相乘那么意味着把某一列留住了要么把它全变为0。 是指那些没有变成0的那一列的乘法 如果d-t很大值将会很大。意思是网络比较深的话那么它的值会比较大因为里面全是w的元素假设每个w的元素都是大于1的话而且层数比较大的情况下那么就会有非常大的值。 梯度爆炸的问题
值超出值域(infinity) 对于16位浮点数尤为严重数值区间为(6e-56e-4) 对学习率敏感 如果学习率太大→大参数值→更大的梯度 如果学习率太大那么就会带来比较大的参数值因为每一步走的比较远那么权重会变的比较大权重变大对应的梯度更大这里的梯度即权重的乘法 如果学习率太小→训练无进展 我们可能需要在训练过程不断调整学习率。 梯度消失
使用sigmoid作为激活函数 当激活函数的输入稍微大一点时它的导数就变为接近0连续n个接近0的数相乘最后的梯度就接近0梯度就消失了。
梯度消失的问题
梯度值变成0 对16位浮点数尤为严重
训练没有进展 不管如何选择学习率 梯度为0不管学习率如何变都不会有进展权重学习率*梯度
对于比较深的网络的时候对于底层尤为严重 仅仅顶部层训练的较好 无法让神经网络更深 总结
当数值过大或者过小时会导致数值问题。 常发生在深度模型中因为其会对n个数累乘。 模型初始化和激活函数
让训练更加稳定 目标让梯度值在合理的范围内 例如[1e-6,1e3] 将乘法变加法 ResNetLSTM 归一化 梯度归一化梯度裁剪 合理的权重初始和激活函数 让每层的方差是一个常数
将每层的输出和梯度都看做随机变量 让它们的均值和方差都保持一致 权重初始化
在合理值区间里随机初始参数 训练开始的时候更容易有数值不稳定 远离最优解的地方损失函数表面可能很复杂比较陡说明梯度越大 最优解附近表面会比较平 使用N(0,0.01)来初始可能对小网络没问题但不能保证深度神经网络。
正向均值和方差
例子MLP 假设 即权重是一个独立同分布(Independent identical distribution)代表的意思是权重的第t层第i行第j列那么均值等于0方差等于 γ t γ_t γt,t为其层数。 t-1层的输入独立于当前的权重。
正向均值 正向方差
方差平方的期望-期望的平方 方差平方项的均值-均值的平方。 其中为0.
全独立每个的均值为0
和的均值为0这两项就等价于其方差。 题设 其中对j进行求和j的取值就是[0,t-1] n t − 1 n_{t-1} nt−1是第t-1层的维度数 反向均值和方差 Xavier初始 正向和反向的均值和方差书上
正向均值和方差
假设 与相互独立 在这种情况下我们可以按如下方式计算 o_i 的平均值和方差 保持方差不变的一种方法是设置
反向均值和方差
假设
可以看到除非 否则梯度的方差可能会增大其中 是该层的输出的数量。这使得我们进退两难我们不可能同时满足这两个条件。 相反我们只需满足
或等价于
通常Xavier初始化从均值为零方差的高斯分布中采样权重。 我们也可以将其改为选择从均匀分布中抽取权重时的方差。 注意均匀分布的方差为。 将代入到 的条件中将得到初始化值域 从线性的激活函数的角度提升数值稳定性
正向 反向 由以上推理可知从激活函数的角度保持每层的输入和输出的均值和方差不变必须使得激活函数 检查常用激活函数 总结
合理的权重初始值和激活函数的选取可以提升数值稳定性。 问题
①nannot a number和inf是怎么产生的以及怎么解决吗 inf是太大了权重初始没更新 nan是除0产生的。 解决合理初始化权重、学习率、激活函数
②在训练的过程中如果网络层的输出层特征元素的值突然变成nan了是发生了梯度爆炸了吗还是有什么其它可能的原因 对一般来说nan就是梯度太大造成的所以一般是梯度的问题
③梯度消失可以说是因为使用了sigmoid激活函数引起的对吗所以我们可以用ReLU替换sigmoid解决梯度消失的问题吗 不对梯度消失有很多可能因素不一定是sigmoid引起的。ReLU替换sigmoid可以让梯度消失的概率减少。
④为什么乘法变加法可以让训练更稳定 100个1.5乘在一起梯度会炸但100个1.5相加没问题。
⑤使用resnet为什么还会出现数值稳定性问题 只能缓解问题不能解决问题。