三、激活函数
激活函数的存在与人工神经网络的模拟态是相关的。在人工神经网络中,一个神经元的运算过程称之为感知器。感知器是模仿生物神经元而设计的一种简单数学模型,它主要由两部分组成,前半部分是一个线性模型,而后半部分是一个激活函数。在感知器中,设计激活函数的初衷是为了模仿生物神经元(生物神经元存在激活和非激活两种状态,当神经元处于激活状态时会发出电脉冲)。从数学角度去考虑的话,在感知器的后半部分加上一个激活函数,可以增加感知器模型的“拟合能力”,使得模型有更强的表达作用。
在基本的感知器模型中,激活函数是一个阶跃函数,这个函数的特性是,在输入为零的时候会发生跳转,形状像一个台阶。在图 2-7-8 所示的感知器模型中,当阶跃函数的输入小于等于零时,输出为零,而在其他情况输出为 1。
图 2-7-8 人工神经网络激活函数中的数学模型
人工神经网络的激活函数有很多种,下面简要介绍最常用的三种。
(一)Sigmoid 函数
虽然在基础的感知器模型中选择阶跃函数作为激活函数,但是在实际中却很少采用阶跃函数,这是因为阶跃函数比较极端,要么输出为 0,要么输出为 1。人们最初的考虑是能不能让激活函数的输出平滑一些,因此有了 Sigmoid 函数,其函数形式为 ,导函数是 ,如图 2-7-9 所示。
图 2-7-9 Sigmoid 函数示意
在逻辑回归算法中,Sigmoid 函数起到了主要作用,就是因为该函数的值域在 0 和 1 之间,同时具有非常好的对称性。
![]() | ![]() |
(二)ReLU 函数
ReLU 函数是目前最常用的激活函数。其主要优点是与 Sigmoid 函数相比,很少有梯度消失问题,而且计算过程简单。其函数形式为 ,导函数是 。如图 2-7-10 所示。
图 2-7-10 ReLU 函数示意
![]() | ![]() |
(三)Tanh 函数
Tanh 为双曲正切曲线,相比 Sigmoid 函数,实际应用中一般更倾向于用 Tanh 函数。其优点为函数的输出以(0,0)为中点,双边对称。同时,收敛速度相对于 Sigmoid 函数更快。其函数形式为 ,其导函数为 ,如图 2-7-11 所示。
图 2-7-11 Tanh 函数示意
![]() | ![]() |
以上三种激活函数,都是人工神经网络中的基本组件。需要说明的是,在应用中激活函数时还有很多种变种,但是一般来说这些变种的效果并不是特别明显,所以在进行实际训练时主要采用以上三种激活函数。为形象说明三种激活函数的形态,查看并操作下图。