学习笔记:人工智能中的数学知识 - JfDw/My_Learning_Trips GitHub Wiki
人工智能中常见的数学知识
S函数
- sigmoid函数(logistic function, 逻辑函数)
- 定义:
- 通分:
- 伪对称:
- 导数:
标准sigmoid函数:
【总结】sigmoid函数优点:
- 实现简单,导数易计算;
- 值域在0和1之间,可以用作输出层,表示概率,具备部分可解释性。
但是,缺点在于:
- 梯度饱和现象:在sigmoid函数曲线的两端,梯度接近于0,从而在层级神经网络结构中,导致训练缓慢,以及梯度消失现象。
- Zigzag现象(Z字形):sigmoid函数只有正数输出,不是zero-centered的:如果输入x是正数,则sigmoid的输出在0.5和1之间,其梯度在0和0.5之间;反之,如果输入x是负数,则梯度为负的(why?), 这就可能导致Zigzag现象。
- 在分类任务中,sigmoid函数正逐渐被tanh函数取代作为标准的激活函数
- tanh函数(双曲正切函数)
- 定义:
- 反对称:
- 导数:
- 优点:
- 完全可微分
- 反对称
- 对称中心在原点
- 缺点:
- 也存在饱和现象,但是zero-centered,收敛速度比sigmoid快
- 大多数情况下,用tanh代替sigmoid,除非是二分类问题
- ReLU(修正线性单元)
- 定义:
- 优点
- 克服梯度不稳定的问题:在深层网络中,后面层的梯度是前面层的累积,如果梯度稍微大于1或者小于1,网络都会变得非常不稳定,每层网络都以非常不同的速率学习。 所以出现了ReLU,激活函数的梯度刚好等于1
- ReLU解决了梯度消失的问题:至少在正区间内,神经元不再饱和
- 缺点
- ReLU在原点处,不可导(左右导数不相等),在实际训练中,出现完全为0的样本概率很低,不会影响训练
- 神经元死亡的现象:随着训练的推进,部分输入回落入硬饱和区,导致权重无法更新
- ReLU仅限于作为隐藏层的激活函数,不会放在输出层上(但是如果样本不存在负数的情况下,也可以考虑使用ReLU)
- softmax函数 (归一化指数函数)
- 定义: ,其中j=1, ..., K
- 值域:(0,1)
- softmax loss:
- cross entropy:
softmax函数是逻辑函数的一种推广,多用于多分类神经网络的输出层激活函数
- Leaky ReLU (带泄露的修正线性单元)
- 定义:
- 优点:
- 由于负数区间,梯度不为零,这就减少“死亡神经元”的出现
其他S函数:
激活函数的选择
(1)用于分类器时,Sigmoid函数及其组合通常效果更好。当然了解LSTM模型的朋友也知道Sigmoid函数会用于“遗忘门”。但是其他情况下,由于梯度消失问题,要尽量避免使用sigmoid函数(和tanh函数)。
(2)ReLU函数是一个通用的激活函数,目前在大多数情况下使用。
一点经验(来自吴恩达和其他大牛):你可以从ReLU函数开始,如果ReLU函数没有提供最优结果,再尝试tanh激活函数,万不得已,不要去试sigmoid函数。
熵
熵是随机变量不确定性的度量:不确定性越大,熵值越大;若随机变量退化成定值,熵值为0;均匀分布是“最不确定”的分布。
熵的定义
假设离散随机变量X的概率分布为P(X),则其熵为:
最大熵原理
最大熵原理是统计学的一般原理。最大熵原理认为:学习概率模型时,在满足限制条件的所有可能概率模型中,熵最大的模型是最好的模型。
最大熵模型
最大熵模型根据最大熵原理,满足限制条件的前提下,选择最优的概率分布。最大熵模型学习算法的数学推到略去,推到结论为:最大熵模型的学习可转化为以最大熵模型似然函数为目标函数的优化问题,并且目标函数是凸函数,有很多工具可以保证全局最优解,如迭代尺度法、梯度下降法、牛顿迭代法等。
关于最大熵的推导过程可参考:https://zhuanlan.zhihu.com/p/29978153