前言
激活函数在神经网络经常用到激活函数,激活函数的作用是对神经元的输出做一个非线性的变换,进而求得对应的梯度,进行梯度下降优化
Sigmoid
sigmoid函数表示式为
sigmoid(x) = 1 / (1 + e^(-x))
它相较阶跃函数有更好的可导性
如果设sigmoid函数为f(x)
则其导数为f(x)*(1-f(x))
所以它求导也很简单
但是当输入发生偏移,比如偏移到3或4,其梯度是很小的,也就是参数更新会很慢
其次当偏移过大,会直接导致梯度为0
后续人们推出批量归一化层,假设数据服从正态分布,将数据重新分布到一个正态分布,从而缓解了梯度问题
Tanh
tanh激活函数与sigmoid很相似,只不过值域从sigmoid的(0, 1)变成了(-1, 1)
它解决的问题是sigmoid求导导数过小,在0附近tanh的导数值较大,从而加快梯度下降过程
但是仍可能存在梯度消失的问题