神经网络激活函数总结

激活函数的作用

在线性不可分的情况下,激活函数可以给模型引入非线性因素。什么意思呢?比如下面异或问题。

xyz
101
011
110
000

这个问题是线性不可分的,假设有一个单隐藏层的神经网络,如图:
这里写图片描述
上图线上数字表示权重,下面两个节点是异或问题的输入,中间隐藏层的1.5表示大于1.5才激活输出1,否则输出0,后面输出层0.5同理。
如果熟悉神经网络的前向传播,容易看出, 这个网络的输出就是我们的异或真值表,而网络中1.5,0.5这样的阈值阶跃函数 就是我们的激活函数。

常见的激活函数

sigmoid函数 σ(z)=11+ez σ ( z ) = 1 1 + e − z

  1. 从图像可以看出来sigmoid函数越远离原点,图像越平滑,梯度越小,我们知道在神经网络BP的时候需要求权重的梯度,当经过sigmoid激活时梯度信息会变小,如果层数变深,会产生梯度弥散现象。

tanh函数 tanh(x)=exexex+ex tanh ⁡ ( x ) = e x − e − x e x + e − x

  1. tanh是双曲正切函数,tanh函数和sigmod函数的曲线是比较相近的,咱们来比较一下看看。首先相同的是,这两个函数在输入很大或是很小的时候,输出都几乎平滑,梯度很小,不利于权重更新;不同的是输出区间,tanh的输出区间是在(-1,1)之间,而且整个函数是以0为中心的,这个特点比sigmod的好。但梯度消失现象依然存在。

Relu函数 f(x)=max(0,x) f ( x ) = m a x ( 0 , x )

  1. relu是目前神经网络最常用的激活函数,相对于前两个,在输入为正数的时候,不存在梯度饱和问题。
  2. 计算速度要快很多。
  3. 但是输入为负数的时候,是完全不激活的,在BP过程中,也会导致梯度消失,只能说relu能一定程度解决梯度弥散问题。

参考 https://www.zhihu.com/question/22334626 lee philip回答

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值