激活函数是神经网络的相当重要的一部分,在神经网络的发展史上,各种激活函数也是一个研究的方向。我们在学习中,往往没有思考过——为什么用这个函数以及它们是从何而来?
image生物神经网络曾给予了人工神经网络相当多的启发。如上图,来自树突信号不断累积,如若信号强度超过一个特定阈值,则向轴突继续传递信号。如若未超过,则该信号被神经元“杀死”,无法继续传播。
在人工神经网络之中,激活函数有着异曲同工之妙。试想,当我们学习了一些新的东西之后,一些神经元会产生不同的输出信号,这使得神经元得以连接。
sigmoid函数也许是大家初学神经网络时第一个接触到的激活函数,我们知道它有很多良好的特性,诸如能将连续的实值变换为0到1的输出、求导简单,那么这个函数是怎么得到的呢?本文从最大熵原理提供一个角度。
1 sigmoid函数与softmax函数
1.1 最大熵原理与模型
最大熵原理是概率模型学习的一个准则<u>1</u>。最大熵原理认为,学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。
假设离散随机变量
image的概率分布是
image,则其熵是
image熵满足下列不等式:
image式中,
image是
image的取值个数,当且仅当
image的分布是均匀分布时右边的等号成立。这就是说,当
image服从均匀分布时,熵最大。
直观而言,此原理认为要选择的概率模型首先必须满足已有的条件,在无更多信息的条件下没其他不确定的部分都是等可能的。
假设分类模型是一个条件概率分布
image,给定一个训练集
image,可以确定
image的经验分布和边缘分布
image的经验分布,分别以
image和
image表示。
用特征函数(feature function)
image描述输入
image和
image之间的某一个事实,定义为:
image由上述信息,可以假设
image关于经验分布
image的期望值和关于模型
image与经验分布
image的期望值相等,即:
image结合条件,该问题等价于约束最优化问题:
image由拉格朗日乘子法,问题转换为求如下式子的最小值
image此时,我们对
image求
image的导数:
image令其导数值为0,在
image的情况下,解得:
image由于
image,得:
image由上面两式可得:
image细心的同学不难发现,这和softmax函数十分相近,定义
image,即可得到softmax函数:
image那么sigmoid函数呢?其实该函数就是softmax函数的二分类特例:
image说完了推导,就来谈谈这两函数的特点。sigmoid函数的优点前文已提到,但sigmoid在反向传播时容易出现“梯度消失”的现象。
image可以看出,当输入值很大或很小时,其导数接近于0,它会导致梯度过小无法训练。
2 ReLU函数族的崛起
image如图所示,ReLU函数很好避免的梯度消失的问题,与Sigmoid/tanh函数相比,ReLU激活函数的优点是:
· 使用梯度下降(GD)法时,收敛速度更快 。
· 相比ReLU只需要一个门限值,即可以得到激活值,计算速度更快 。
缺点是: ReLU的输入值为负的时候,输出始终为0,其一阶导数也始终为0,这样会导致神经元不能更新参数,也就是神经元不学习了,这种现象叫做“Dead Neuron”。
为了解决ReLU函数这个缺点,又出现了不少基于ReLU函数的发展,比如Leaky ReLU(带泄漏单元的ReLU)、 RReLU(随机ReLU)等等,也许你有一天也能发现效果更好的ReLU函数呢!
引用
[1] [李航. 统计学习方法[M]. 清华大学出版社, 2012.]
网友评论