神经网络中激活函数的意义和需要满足的条件

激活函数在神经网络中至关重要,主要原因是它们引入了非线性,防止多层网络退化为单层线性模型。理想的激活函数需要满足几乎处处可微、计算简单、非饱和性、单调性等条件,例如ReLU、Leaky ReLU。此外,输出范围有限、接近恒等变换、参数少、归一化和zero-centered也是考虑因素。SELU激活函数实现了自动归一化,有助于训练稳定性。
摘要由CSDN通过智能技术生成

(1)非线性:即导数不是常数。这个条件是多层神经网络的基础,保证多层网络不退化成单层线性网络。这也是激活函数的意义所在。下面看一下激活函数使用线性函数时会发生什么

由上可见,任意多个线性函数的组合还是线性函数,因此只要隐藏层的输出是线性的,无论多少层,都是和一个隐藏层是一回事,只有在线性回归问题中的输出层才会用到线性激励函数,但是实际上对于回归任务,你完全可以不使用激活函数。

(2)几乎处处可微:可微性保证了在优化中梯度的可计算性。传统的激活函数如sigmoid等满足处处可微。对于分段线性函数比如ReLU,只满足几乎处处可微(即仅在有限个点处不可微)。对于SGD算法来说,由于几乎不可能收敛到梯度接近零的位置,有限的不可微点对于优化结果不会有很大影响。

(3)计算简单:激活函数在神经网络前向的计算次数与神经元的个数成正比,因此简单的非线性函数自然更适合用作激活函数。

(4)非饱和性(saturation):饱和指的是在某些区间梯度接近于零(即梯度消失),使得参数无法继续更新的问题。最经典的例子是Sigmoid,它的导数在x为比较大的正值和比较小的负值时都会接近于0。更极端的例子是阶跃函数,由于它在几乎所有位置的梯度都为0,因此处处饱和,无法作为激活函数。ReLU在x>0时导数恒为1,因此对于再大的正值也不会饱和。但同时对于x<0,其梯度恒为0

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值