回答思路
这些都是常见的激活函数,关键作用都是给模型引入非线性。
Sigmoid
优点
Sigmoid函数的输出范围是0到1,所有可以理解为它对每个神经元的输出进行了归一化,也即有了概率的意义。(很适合分类模型)
缺点
在输出值过大或者过小的情况下,容易梯度消失;
不是以0为中心,导致收敛速度下降;
Sigmoid函数执行指数运算,计算机运行得较慢。
ReLU
优点
当输入为正时,不存在梯度饱和问题。
ReLU函数中只存在线性关系,因此它的计算速度比sigmoid和tanh更快。
缺点
如果输入负数,则梯度将完全为零,导致无法反向传播、更新节点,导致该神经元失效。
Tanh
优点
tanh是一个双曲正切函数,可以由sigmoid函数变换而来,优点如下:
值域从[0, 1]转换成[-1, 1], 以0为中心,加快了收敛速度。
关于零中心收敛更快,可以参阅谈谈激活函数以零为中心的问题
可视化做个对比: