1.非线性激活的重要性
如果神经元的输出是输入的线性函数,而线性函数之间的嵌套任然会得到线性函数。如果不加如飞西安新处理,那么最终得到的仍然是线性函数。
2.常用的非线性激活函数
ReLu的优点
- 运算非常简单快速
- 由于当输入大于0时,导数永远是1,可以避免梯度消失
- 当输入大于零时才有非零输出,而输入小于0时,输出0.更类似与生物神经元的工作原理,需要刺激才会被激活。
- 往往能带来比使用sigmoid和tanh更佳网络性能
3.ReLu的改进
Leaky ReLu,PReLu,RReLu,ELU,SELU.
他们让ReLu在输入小于0时有少量输出,可略微改进性能,代价是速度会慢一些。
4.Swish激活函数
$f(x)=x\cdot\sigma(\beta x)$,其中$\beta$可固定为1。
在MXnet的使用。
tmp=mx.sym.sigmoid(in)
out=mx.sym.broadcast_mul(in,tmp)#将它点对点乘以输入,得到输出