激活函数是神经网络的相当重要的一部分,在神经网络的发展史上,各种激活函数也是一个研究的方向。我们在学习中,往往没有思考过——为什么用这个函数以及它们是从何而来?

生物神经网络曾给予了人工神经网络相当多的启发。如上图,来自树突信号不断累积,如若信号强度超过一个特定阈值,则向轴突继续传递信号。如若未超过,则该信号被神经元“杀死”,无法继续传播。
在人工神经网络之中,激活函数有着异曲同工之妙。试想,当我们学习了一些新的东西之后,一些神经元会产生不同的输出信号,这使得神经元得以连接。
sigmoid函数也许是大家初学神经网络时第一个接触到的激活函数,我们知道它有很多良好的特性,诸如能将连续的实值变换为0到1的输出、求导简单,那么这个函数是怎么得到的呢?本文从最大熵原理提供一个角度。
1 sigmoid函数与softmax函数
1.1 最大熵原理与模型
最大熵原理是概率模型学习的一个准则<u>1</u>。最大熵原理认为,学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。
假设离散随机变量

的概率分布是

,则其熵是

熵满足下列不等式:

式中,

是

的取值个数,当且仅当

的分布是均匀分布时右边的等号成立。这就是说,当

服从均匀分布时,熵最大。
直观而言,此原理认为要选择的概率模型首先必须满足已有的条件,在无更多信息的条件下没其他不确定的部分都是等可能的。
假设分类模型是一个条件概率分布

,给定一个训练集

,可以确定

的经验分布和边缘分布

的经验分布,分别以

和

表示。
用特征函数(feature function)

描述输入

和

之间的某一个事实,定义为:

由上述信息,可以假设

关于经验分布

的期望值和关于模型

与经验分布

的期望值相等,即:

结合条件,该问题等价于约束最优化问题:

由拉格朗日乘子法,问题转换为求如下式子的最小值

此时,我们对

求

的导数:

令其导数值为0,在

的情况下,解得:

由于

,得:

由上面两式可得:

细心的同学不难发现,这和softmax函数十分相近,定义

,即可得到softmax函数:

那么sigmoid函数呢?其实该函数就是softmax函数的二分类特例:

说完了推导,就来谈谈这两函数的特点。sigmoid函数的优点前文已提到,但sigmoid在反向传播时容易出现“梯度消失”的现象。

可以看出,当输入值很大或很小时,其导数接近于0,它会导致梯度过小无法训练。
2 ReLU函数族的崛起

如图所示,ReLU函数很好避免的梯度消失的问题,与Sigmoid/tanh函数相比,ReLU激活函数的优点是:
· 使用梯度下降(GD)法时,收敛速度更快 。
· 相比ReLU只需要一个门限值,即可以得到激活值,计算速度更快 。
缺点是: ReLU的输入值为负的时候,输出始终为0,其一阶导数也始终为0,这样会导致神经元不能更新参数,也就是神经元不学习了,这种现象叫做“Dead Neuron”。
为了解决ReLU函数这个缺点,又出现了不少基于ReLU函数的发展,比如Leaky ReLU(带泄漏单元的ReLU)、 RReLU(随机ReLU)等等,也许你有一天也能发现效果更好的ReLU函数呢!
引用
[1] [李航. 统计学习方法[M]. 清华大学出版社, 2012.]
网友评论