楼主最近在研究激活函数,索性将常用的激活函数进行了简单的整理,方便以后翻看,也希望能帮到你。
1、sigmoid函数
函数表达式:f(x) = 1/(1+e^-x)
函数特点:
优点:1.输出[0,1]之间;2.连续函数,方便求导。
缺点:1.容易产生梯度消失;2.输出不是以零为中心;3.大量运算时相当耗时(由于是幂函数)。
函数定义:
def sigmoid(x):
y = 1/(1+np.exp(-x))
return y
2、tanh函数
函数表达式:f(x) = (e^x-e^-x)/(e^x+e-x)
函数特点:
优点:1.输出[-1,1]之间;2.连续函数,方便求导;3.输出以零为中心。
缺点:1.容易产生梯度消失; 2.大量数据运算时相当耗时(由于是幂函数)。
函数定义:
def tanh(x):
y = (np.exp(x) - np.exp(-x))/(np.exp(x) + np.exp(-x))
return y
3、ReLu函数
函数表达式: f(x)= 当x<0 f(x)=0; 当x>=0 f(x)=x
函数特点:
优点:1.解决了正区间梯度消失问题;2.易于计算; 3.收敛速度快
缺点:1.输出不是以零为中心;2.某些神经元不能被激活,导致参数永远不能更新。
函数定义:
def ReLU(x):
y = []
for i in x:
if i >= 0:
y.append(i)
else:
y.append(0)
return y
4、elu函数
<