激活函数

在第三章《神经元的工作原理》中,我们曾经提到过激活函数。当时使用的是最简单的阶跃函数作为激活函数。

Sigmoid函数的现实例子 sigmoid函数原理_人工智能

阶跃函数具有不连续、不光滑等不太好的性质,因此实际常用Sigmoid函数作为激活函数。Sigmoid函数的定义和图形如下:

Sigmoid函数的现实例子 sigmoid函数原理_神经网络_02

Sigmoid函数把可能在较大范围内变换的输入值挤压到(0,1)输出范围内,因此也称为“挤压函数”(Squashing function)。

其中 

 , 

称为纳皮尔常数。

Sigmoid函数被选为激活函数还有一个很重要的原因是它的导数很容易计算:


求导过程如下:

先将 

 稍微变形,有

记 

,则 

其中 

根据复合函数求导法则:

若 

,则


为什么要计算激活函数的导数?这个我们在后面《误差反向传播法》一章里解释。

 

非线性激活函数(

可以很明显地看出,Sigmoid函数是一个非线性函数。关于线性函数和非线性函数的定义如下:

输出值是输入值的常倍数的函数称为线性函数,用数学式表示为 

,  

为常数。因此线性函数是一条直线

非线性函数,就是指不像线性函数那样呈现出一条直线的函数,比如Sigmoid函数

所有的激活函数都是非线性函数

让我们回顾一下神经网络训练时的具体操作:我们将输入

和它对应的权重

相乘,并将激活函数

应用于该乘积来获取该层的输出,并将激活函数的运算结果作为输入馈送到下一个层。

问题是,为什么我们一定要加上一个非线性的激活函数来处理输入信号呢?

如果我们不运用非线性激活函数的话,则输出信号将仅仅是一个简单的线性函数。而且无论如何加深层数,一直在做的只是计算线性激活函数,线性函数的复合函数仍然是线性函数。


例如:把 

 作为激活函数,把 

 的运算对应3层神经网络,那么

。 可以由

  ( 其中 

 ),这一次乘法运算来表示。


因此在这种情况下,无论神经网络有多少层,都只是把输入线性组合再输出,结果仍然是线性的。

那么为什么我们需要非线性函数?

我们在第二章《AI / ML / DL的基本概念》中介绍过,神经网络被认为是通用函数近似器(Universal Function Approximators)。这意味着它们可以计算和学习任何函数。几乎我们可以想到的任何过程都可以表示为神经网络中的函数计算。所以我们需要一个可以学习和表示几乎任何东西的神经网络模型,以及可以将输入映射到输出的任意复杂函数。而非线性激活函数正是具有这样优点的函数。非线性激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数。这样我们的神经网络就可以学习和模拟其他复杂类型的数据,例如图像、视频、音频、语音等。也可以理解一些复杂的事情,即一些相互之间具有很多隐藏层的非线性问题。

 

其他激活函数

除了Sigmoid函数,还有其他的非线性激活函数。它们优缺点的比较在网上有很多,这里不一一赘述。

Sigmoid函数的现实例子 sigmoid函数原理_Sigmoid函数的现实例子_03

 

Softmax函数

Softmax函数通常用于输出层,特别是在多元分类问题中。Softmax函数又称归一化指数函数。它是二分类函数Sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。

Softmax函数以一种特殊的方式将一个向量 

 归一化成和为1。在基于神经网络的分类任务中,经常用Softmax函数将神经网络的多维输出 

 归一化成一个概率向量 

,如下式:

 

 

我们知道概率有两个性质:1)预测的概率为非负数;2)各种预测结果概率之和等于1。Softmax就是将在负无穷到正无穷上的预测结果按照这两步转换为概率的。

1) 将预测结果转化为非负数

我们知道指数函数的值域取值范围是零到正无穷。下图为 

 的图像:

Sigmoid函数的现实例子 sigmoid函数原理_机器学习_04

softmax第一步就是将模型的预测结果转化到指数函数上,这样保证了概率的非负性。

2) 各种预测结果概率之和等于1

为了确保各个预测结果的概率之和等于1。我们只需要将转换后的结果进行归一化处理。方法就是将转化后的结果除以所有的值转化后结果之和,可以理解为转化后结果占总数的百分比。这样就得到近似的概率。


下图展示了softmax的计算方法:

Sigmoid函数的现实例子 sigmoid函数原理_人工智能_05

如上图所示,假如模型对一个三分类问题的预测结果为3、1、-3。我们用Softmax将模型结果转为概率。步骤如下:

1)将预测结果转化为非负数

2)各种预测结果概率之和等于1

其中,

含义是,模型对该样本的预测结果显示,该样本属于第一种类型的概率是88%,属于第二种类型的概率是12%,属于第三种类型的概率是0。

 

下一章,我们将介绍计算权重