激活函数(也有书籍称为传递函数)的作用是决定如何激活输入信号,而输入信号则是加权输入信号和偏置的总和,激活函数在选择上对于后面的运算占据十分重要的地位,例如如果选择了不恰当的激活函数,将会导致后面计算梯度时无法计算出偏差而导致训练失败,模型准确率不高等一系列问题,如此,在这里网列几种常见的激活函数,以用参考。
———————————————下面是正文————————————————
一.Sigmoid函数
公式为:
其中:e 代表了纳皮尔常数 2.7182.......。
比较常用的激活函数,看函数其实不难理解,输入信号经由sigmoid函数转换后,将输出新的数值。通过python和matplotlib库我们就可以看出函数的曲线图:
x = np.arange(-5.0,5.0,0.1)
y = sigmoid(x)
plt.plot(x,y)
plt.ylim(-0.1,1.1)
plt.show()
曲线图:
二.阶跃函数
阶跃函数更多地用在感知机上,而且并没有具体地表达形式,主要表示为:当输入信号超过0时,将输出1,否则将输出0。可用以下表达式表示:
通过python和matplotlib库我们就可以看出函数的曲线图:
def Step(x):
return np.array(x>0,dtype=np.int)
x = np.arange(-5.0,5.0,0.1)
y = Step(x)
plt.plot(x,y)
plt.show()
曲线图:
三.ReLu函数
ReLu函数在近期使用的频率越来越多,函数主要是在输入信号大于0时,可直接输出该值,而当输入信号小于或者等于0时,则输出0。
表达式可表示如下:
相同,通过python和matplotlib库我们就可以看出函数的曲线图:
def ReLu(x):
return np.maximum(0,x)
x = np.arange(-5.0,5.0,0.1)
y = ReLu(x)
plt.plot(x,y)
plt.show()
曲线图:
参考文献:
《深度学习入门-基于python的理论与实现》(日)斋藤康毅. 人民邮电出版社