深度学习 – 激活函数

感知器中的激活函数模拟生物神经元中阈值的作用,当信号强度达到阈值时,就输出信号,否则就没有输出。数学中的许多函数可以作为激活函数使用,本章将详细介绍几种常用的激活函数。

激活函数的本质作用

从数学上来说,激活函数是用来加入非线性因素的,解决线性模型所不能解决的问题。
神经网络从数学上来看,是对函数的拟合,理论上已经证明,两层以上的神经网络可以逼近任意函数。

Sigmoid 函数

Sigmoid函数,即S形函数,是一个具有S形曲线的数学函数。Sigmoid函数是常用的激活函数。函数的数学定义如下:

f(z) = \frac{1}{1+e^{-z}}

这里的z就是加权求和的值。

函数曲线:

Sigmoid函数曲线

可以看到Sigmoid 函数的值,总是在0到1之间。Sigmoid 函数的缺点是,在神经网络训练时,计算时间较长,速度比较慢。

ReLU/Rectifier函数 与 Softplus 函数

ReLU函数和Softplus函数也是常见的激活函数。这两个的函数曲线如下:

ReLU函数和Softplus函数

ReLU函数是目前深度神经网络中最常用的激活函数。

从函数曲线可以看出,ReLU函数的作用是,当输入信号小于0,没有输出;当输入信号大于0,按原样输出输入信号,也就是说ReLU函数祛除了负值的信号。

softplus函数与ReLU函数作用类似,softplus的曲线更平滑,softplus函数也被称为光滑的ReLU函数。

Softplus 函数的数学定义:

f(z) = log(1+e^z)

softplus函数的导数是Sigmoid函数:f^{‘}(x) = \frac{e^x}{1+e^x} = \frac{1}{1+e^{-x}}

ReLu函数的优点是计算简单处理快。

其他

其他还有 Softmax, Hyperbolic, sign等等激活函数,如需进一步了解可参考相关资料。

下图列举了常用的各种激活函数

激活函数



浙ICP备17015664号-1 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载