六种常用的激活函数
Sigmoid函数
fx = 1/(1+e^-x)
- 输入非常大或非常小时没有梯度、
- 输出均值非0
- Exp计算复杂
- 梯度消失
- df(x)/dx = f(x)(1-f(x))
Tanh
fx =tan(x)
- 依旧没有梯度
- 输出均值是0
- 计算复杂
###ReLU
fx = max(0 , x)
- 不饱和(梯度不会过小)
- 计算量小
- 收敛速度快
- 输出均值非0
- Dead ReLU
- 一个非常大的梯度流过神经元,不会再对数据有激活现象了。
Leaky-ReLU
fx = max(0.01x , x)
- 解决了Dead ReLU问题
ELU
fx = α(exp(x)-1)x<=0 // x> 0
- 均值更接近0
- 小于0时计算量大
Maxout
fx = max(w1x + b1, w2x + b2)
- ReLU的泛化版本
- 没有dead relu
- 参数 double
使用技巧
- ReLU-小心设置learning rate
- 不要使用sigmoid
- 使用Leaky ReLU 、maxout、ELU
- 可以试试Tanh , 但是计算很复杂不要抱太大期望