神经网络中激活函数的对比

一、sigmoid函数

1、输出范围为(0,1),输出范围有限,优化稳定,可以作用于输出层。
2、连续函数,求导方便。
f ( x ) = 1 1 + e − x f ′ ( x ) = f ( x ) [ 1 − f ( x ) ] f(x)= \frac{1}{1+e^{-x}}\\ f'(x) = f(x)[1-f(x)] f(x)=1+ex1f(x)=f(x)[1f(x)]
3、当输入变量是绝对值比较大的正负数时会出现饱和现象,函数对输入的微小改变变得不敏感。在反向传播时当梯度接近于零时,权重基本不会更新,很容易出现梯度消失的情况,从而网络无法更新。
4、函数的输出不是0均值,导致后层的神经网络输出是非零均值,影响权重的更新。

二、双曲正切函数tanh

1、输出范围为[-1,1]
2、导数
f ( x ) = 1 − e − x 1 + e − x f ′ = 1 − f 2 ( x ) f(x)= \frac{1-e^{-x}}{1+e^{-x}}\\ f'=1-f^2(x) f(x)=1+ex1exf=1f2(x)

三、Relu函数

1、使用relu的SGD算法比sigmoid和tanh快。
2、在x>0的区域上,不会出现梯度消失和梯度饱和的现象。
3、计算复杂度低,不需要进行指数运算,只要一个阈值就可以得到激活函数。
4、输出不是0均值。
5、Dead rely problem(神经元坏死现象),relu在负数区域被kill的现象叫做dead relu. 在x<0时,梯度为零,神经元及之后的神经元梯度均为0,导致相应参数永远不会被更新。
产生该原因的因素有两个:参数初始化不合理;learning rate太高,导致训练过程参数更新太大。
解决方法:采用xavier初始化参数,避免将learning rate设置过大或使用adagrad自动调节learning rate.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BP神经网络是一种常用的人工神经网络,能够通过训练来拟合各种函数。对于拟合二元函数,BP神经网络也能够发挥良好的效果。 首先要明确的是,所谓二元函数是指输入和输出都是两个变量的函数。我们可以通过构建一个包含输入层、隐藏层和输出层的BP神经网络来实现对二元函数的拟合。 在BP神经网络,输入层的节点数为2,隐藏层的节点数可以根据实际情况进行设置,输出层的节点数也为2,分别表示二元函数的两个输出值。 然后,我们需要准备一些已知的输入和对应的输出样本数据。通过多次迭代的训练过程,BP神经网络可以根据训练样本数据来不断调整网络的权重和偏置,从而使得输出结果能够逼近真实的输出值。训练的过程可以使用反向传播算法来实现。 在训练过程,为了提高拟合的精度和泛化能力,我们还需要对数据进行归一化和交叉验证等处理。同时,合适的学习率、激活函数等参数选择也会对BP神经网络的拟合结果产生影响。 最后,在训练完成后,我们可以利用拟合好的BP神经网络来对未知的输入进行预测,并得到相应的输出结果。通过与真实的输出值进行对比,可以评估拟合效果的好坏。 总之,BP神经网络可以很好地拟合二元函数,通过合适的网络设计、训练样本和参数选择,能够达到较好的拟合精度,具有较强的泛化能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值