激活函数选取不当为什会造成梯度消失

下图为四层神经网络,它包括输入层,输出层,两个隐层

假设输入层到第一个隐层的权值为,偏置值为。两个隐层之间的权值为,偏置值为。第二个隐层到输出层的权值为,偏置值为。现在假设输入的值为,输出为,标签值为。前一层的输出为后一层的输入则输出层输出为:

(f为激活函数)

代价函数我们使用常用的方差函数:

我们知道利用梯度下降法更新权值的公式为:

现在我们想更新的权值,根据权值更新公式则和链式法则有:


假设我们的激活函数为sigmoid函数,他的表达式和导函数为:

   , 

函数图像,和导函数图像为:



可知他的导函数最大值为0.25<1,我们的例子是四层神经网络,如果是很多层呢,那么多小于1的数连乘,很可能导致梯度消失。







  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
神经网络的激活函数是一种非线性函数,它将输入信号经过非线性变换后输出。激活函数在神经网络中起着非常重要的作用,它可以引入非线性特性,增加模型的表达能力,并且帮助模型学习复杂的非线性关系。 常见的激活函数包括: 1. Sigmoid函数:Sigmoid函数可以将输入映射到[0, 1]的范围内,具有平滑的S形曲线。但是,Sigmoid函数在输入值较大或较小时容易饱和,导致梯度消失的问题。 2. Tanh函数:Tanh函数可以将输入映射到[-1, 1]的范围内,同样具有平滑的S形曲线。与Sigmoid函数类似,Tanh函数也存在梯度消失的问题。 3. ReLU函数:ReLU函数将输入小于0的值设为0,大于等于0的值保持不变。ReLU函数简单有效,并且在实际应用中表现良好。但是,ReLU函数存在神经元死亡的问题,即某些神经元可能永远不会被激活。 4. Leaky ReLU函数:Leaky ReLU函数在输入小于0时引入一个小的斜率,可以一定程度上解决ReLU函数的神经元死亡问题。 5. Softmax函数:Softmax函数常用于多分类问题,可以将多个输入映射到[0, 1]之间,并且归一化使得所有输出的和为1。 选择激活函数需要根据具体的问题和网络结构来决定,没有一种激活函数适用于所有情况。一般来说,ReLU是一个常用的默认选择,但在某些情况下,其他激活函数可能更加适合。此外,也可以尝试使用不同的激活函数组合或自定义激活函数来提高模型的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值