一、激活函数的作用
如果不用激活函数,那么我们通过推导就可以发现,其实一直在对
Xi
进行线
性计算。就拿最简单的例子,我们在做一个二分类的问题时,绝不是想着仅可以用一条直线就可以进行很好地划分。
与此同时,由于神经网络的特性,我们的激活函数,应该是可以处处可微的,这里有一个非常典型的例子是
Relu
,其在
X=0
时是不可导的,但它也可以做激活函数。
二、一些常见的激活函数
2.1 Sigmoid
公式:
a=11+e−z a = \\frac{1}{1+e ^{-z}}\\\\ a=1+e−z1
函数图像:
除非在二分类的最后输出层,否则基本上不用,因为经过大量实验证明,总有一个比它好用的激活函数,叫
tanh
。
2.2 Tanh
公式:
a=ex−e−xex+e−x a = \\frac{e^x-e^{-x}}{e^x+e ^{-x}}\\\\ a=ex+e−xex−e−x
函数图像:
2.3 最常使用的Relu
公式:
a=max(0,x) a = \\max(0,x)\\\\ a=max(0,x)
函数图像:
还有一种带偏移的
Relu
函数,这里就不再列举出来了。
2.4 Softmax
这个函数的学名叫归一化指数函数,其实就是一个多分类问题中,将每一类别的概率输出,最终取最大概率的那一类,其具体数学分析,我就不再总结了。
需要强调的是,在实际应用过程中,也许谁也不能确定哪种激活函数的效果更好,那么可以在开发集上都跑一跑,看看效果。