手推 梯度消失和梯度爆炸问题

172 篇文章 4 订阅
36 篇文章 1 订阅

采用 s i g m o i d sigmoid sigmoid 为激活函数,当反向传播使用 链式法则 的时候会有连乘,就会出现梯度消失。

由于梯度消失现象,会导致靠近输入层的隐藏层权值更新缓慢或者更新停滞。这就导致在训练时,只等价于后面几层的浅层网络的学习。(因为推反向传播的时候才会用到 链式法则,详细见后面推导)

解决办法

梯度消失和梯度爆炸本质上是一样的,都是因为网络层数太深而引发的梯度反向传播中的连乘效应。

解决梯度消失、爆炸主要有以下几种方案:

1. 换用Relu、LeakyRelu、Elu等激活函数
  1. ReLu:让激活函数的导数为1

  2. LeakyReLu:包含了ReLu的几乎所有有点,同时解决了 ReLu 中 0 区间带来的影响

  3. ELU:和LeakyReLu一样,都是为了解决0区间问题,相对于来,elu计算更耗时一些(为什么)

具体可以看关于各种激活函数的解析与讨论

2. BatchNormalization (面试常考)

可参考 Batch Normalization(算法面试几乎必考)

3. ResNet残差结构、DenseNet

主要是 shortcut 这种操作,解决了梯度消失问题

4. LSTM结构

LSTM不太容易发生梯度消失,主要原因在于LSTM内部复杂的“门(gates)”,具体看LSTM基本原理解析

LSTM 超详细公式手推

5. 预训练加finetunning

此方法来自Hinton在06年发表的论文上,其基本思想是每次训练一层隐藏层节点,将上一层隐藏层的输出作为输入,而本层的输出作为下一层的输入,这就是逐层预训练。

训练完成后,再对整个网络进行“微调(fine-tunning)”。

此方法相当于是找局部最优,然后整合起来寻找全局最优,但是现在基本都是直接拿imagenet的预训练模型直接进行finetunning。

6. 梯度剪切( Clip 操作)、正则

这个方案主要是针对梯度爆炸提出的,其思想是设值一个剪切阈值,如果更新梯度时,梯度超过了这个阈值,那么就将其强制限制在这个范围之内。这样可以防止梯度爆炸。

另一种防止梯度爆炸的手段是采用权重正则化,正则化主要是通过对网络权重做正则来限制过拟合,但是根据正则项在损失函数中的形式:

可以看出,如果发生梯度爆炸,那么权值的范数就会变的非常大,反过来,通过限制正则化项的大小,也可以在一定程度上限制梯度爆炸的发生。

7. 权重初始化时候的一些技巧

梯度消失推导:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逻辑回归是一种常用的分类算法,可以用于解决二分类问题。在手推逻辑回归中,我们需要先定义一个代价函数,然后使用梯度下降算法最小化这个代价函数。 首先,我们可以使用sigmoid函数将线性模型的输出转化为一个概率值。sigmoid函数定义如下: h(x) = 1 / (1 + e^(-z)) 其中,h(x) 表示预测的概率,z 表示线性模型的输出。 然后,我们需要定义代价函数。在逻辑回归中,常用的代价函数是交叉熵损失函数。对于单个样本而言,交叉熵损失函数定义如下: cost(h(x), y) = -y * log(h(x)) - (1 - y) * log(1 - h(x)) 其中,y 表示样本的真实标签,h(x) 表示预测的概率。 接下来,我们需要最小化代价函数。梯度下降是一种常用的优化算法,在每一次迭代中,我们根据当前模型参数的梯度方向更新参数,使得代价函数不断减小。 对于逻辑回归来说,我们可以使用偏导数来计算代价函数对参数的梯度。对于参数θ_j(j表示第j个特征),梯度的计算公式如下: ∂cost(h(x), y) / ∂θ_j = (h(x) - y) * x_j 然后,我们可以更新参数: θ_j := θ_j - α * ∂cost(h(x), y) / ∂θ_j 其中,α 表示学习率,控制参数更新的步长。 通过不断迭代更新参数,直到达到一定的迭代次数或者满足停止条件,我们就可以得到逻辑回归模型的最优参数。 这就是手推逻辑回归中使用梯度下降算法的基本步骤。当然,在实际应用中,还涉及到特征工程、正则化等技巧,以及对学习率的选择和参数初始化等问题,这些都是需要根据具体情况进行调整和优化的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值