浅谈激活函数

一、什么是激活函数

 

首先祭出神经元示意图

所谓的激活函数(激励函数)就是上图的f。在神经元中,输入的 inputs (即xi)通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。

 

二、为什么要使用激活函数

 

       为啥要用激活函数,肯定这玩意有用哇,但是具体有啥用呢?

       如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机。

       如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。(From 百度百科)

       那么具体什么意思呢?举一个回归的例子。

                                       w为权重,x为输入,b为参数

       假如我们利用上面的式子求概率,我们希望概率在0-1范围内,但是很明显,很多情况下是不行的,因为这是一个线性的函数。这也就是上面所说无论神经网络有多少层,输入输出都是线性组合。

       但是我们生活中很多东西都是非线性的,比如房价预测…这怎么办呢?

       这个时候我们的激活函数就出现了,其将原来的线性变成了非线性,这样就可以适用于更多的问题之中。如下面这个公式

       

       利用Sigmoid函数就转化为0-1的非线性关系。至于Sigmoid是啥,往下看,往下看。

 

三、常用的激活函数

 

1.Sigmoid函数

Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间。公式如下

图像如下

优点:

可以用来做二分类,在特征相差比较复杂或是相差不是特别大时效果比较好。

缺点:

(1)激活函数计算量大,反向传播求误差梯度时,求导涉及除法

(2)反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练

(3)Sigmoids函数饱和且kill掉梯度。

(4)4Sigmoids函数收敛缓慢。

 

2.Tanh函数

Tanh是双曲函数中的一个,Tanh()为双曲正切。在数学中,双曲正切“Tanh”是由基本双曲函数双曲正弦和双曲余弦推导而来。也称为双切正切函数,取值范围为[-1,1]。公式如下

图像如下


优点:tanh在特征相差明显时的效果会很好,在循环过程中会不断扩大特征效果。与 sigmoid 的区别是,tanh 是 0 均值的,因此实际应用中 tanh 会比 sigmoid 更好。

缺点:tanh函数的缺点同sigmoid函数的第二个缺点一样,当 z 很大或很小时,会导致梯度很小,权重更新非常缓慢,即梯度消失问题。

 

3. ReLU函数

Relu激活函数(The Rectified Linear Unit),用于隐层神经元输出。公式如下

图像如下

 

ReLU函数的缺点:当输入为负时,梯度为0,会产生梯度消失问题。

ReLU函数的优点
(1)在输入为正数的时候(对于大多数输入 空间来说),不存在梯度消失问题。
(2)计算速度要快很多。ReLU函数只有线性关系,不管是前向传播还是反向传播,都比sigmod和tanh要快很多。(sigmod和tanh要计算指数,计算速度会比较慢)
 

 

就到这里啦,其实还有很多不同的激活函数,在这里真的只是稍微写一下自己的理解,感觉这个东西理解会用就OK。

如果有错误欢迎大家指正。共同学习,一起进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值