「机器学习」指数族分布
听到指数族分布这个名字可能会觉得有点抽象,甚至你可能之前都没听过(反正我以前是没听过的),但是如果说高斯分布、伯努利分布、二项分布、泊松分布、beta分布、Dirichlet分布、gamma分布这些分布,那我想你应该大部分都听过而且可能对其中部分还很熟悉了。其实呢,指数族分布就是这些分布的统称啦,也就是说这些分布的概率密度函数都能写成一个统一的形式,而这个统一的形式就是:
其中,$\eta$ 为参数向量;你看 $exp(A(\eta))$ 看着是不是就像归一化的作用,再取个对数就是 $A(\eta)$ 因此 $A(\eta)$ 也就是所谓的对数配分函数;$\phi(x)$ 则称为充分统计量,这是关于样本的函数,充分的意思呢就是有了它就相当于可以丢掉样本了,比如正态分布里的均值和方差。$h(x)$ 就不怎么重要了通常取 1。
指数族分布可以总结为 3 个特性和 3 个地位。
3 个特性:
充分统计量:online learning时不必要保存所有样本信息
共轭:指数族分布具有共轭先验,在贝叶斯理论中,若先验为似然函数的共轭先验,则后验与先验具有相同的形式,避免了求积分常数的困难
最大熵:指数族分布满足最大熵原理,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型
3 个地位:
- 广义线性模型:通过三个假设将指数分布族转换成对应的机器学习模型,如线性回归、logistic 回归、Softmax模型等
广义线性模型的三个假设:
$y$ 的条件概率属于指数族分布
$y$ 的估计值 $h(x,\theta)=E(y|x,\theta)$
线性预测算子 $\eta=\theta^Tx$
概率图模型:无向图RBM(这个目前我也还不了解,后续学习到了再补充吧)
变分推断:后续补充
高斯分布的指数族形式
上面光说了那么多分布都属于指数族分布,那么我们现在来推一个看看,将大家最熟悉的高斯分布转化为指数族分布的形式,假设单变量高斯分布的均值为 $\mu$,方差为 $\sigma^2$,其概率密度可以表示为:
令
眼尖的你是不是发现高斯分布的概率密度函数表示成了指数族分布的形式了。其他分布也可以这样表示,这里就不详细推导了。
对数配分函数与充分统计量的关系
对数配分函数在指数族分布里的表现形式为 $exp(A(\eta))$,进一步可以表示为积分的形式:
$$ exp(A(\eta)) = \int h(x) \cdot \exp \left(\eta^T\phi(x)\right) d x $$
两边同时对 $\eta$ 求导
牛顿莱布尼兹 $$ \frac{\partial}{\partial \eta} \int=\int \frac{\partial}{\partial \eta} $$
可得
$$ exp(A(\eta))A’(\eta)=\int h(x) \cdot exp(\eta^T\phi(x)) \cdot \phi(x) dx $$
将 $exp(A(\eta)$ 移到右边
$$ A’(\eta) = \frac{\int h(x) \cdot exp(\eta^T\phi(x)) \cdot \phi(x) dx}{exp(A(\eta))}=\int h(x) \cdot exp(\eta^T\phi(x) - A(\eta)) \cdot \phi(x) dx $$
即
$$ A’(\eta) = \int p(x|\eta) \cdot \phi(x) dx = E_{p(x|\eta)}[\phi(x)] $$
还可以推导出
$$ A^{\prime \prime}(\eta) = Var[\phi(x)] $$
进一步也说明了 $A(\eta)$ 是个凸函数。这里告诉了我们对数配分函数是个凸函数,且它的一阶导数和二阶导数分别对应着充分统计量的期望和方差。
极大似然估计与充分统计量的关系
既然 $\eta$ 是参数,我们在learning的时候当然是需要将其估计出来的,很自然的想法就是用极大似然估计来估计 $\eta$,假设有数据 $x_1,…,x_N$,则
目标函数对 $\eta$ 求导并令导函数为0
可得到 $A’(\eta_{MLE})$ 可以表示为
又因为 $A(\eta)$ 是 $\eta$ 的函数,$A’(\eta)$ 也是 $\eta$ 的函数,那么就可以通过 $A’(\eta)$ 的反函数求解出 $\eta$ 的估计值 $\eta_{MLE}$,同时这也表现了充分统计量的性质,不需要保存所有样本信息,只需要通过充分统计量就能得到参数的估计值。
最大熵原理与指数族分布
一言不合甩结论:在给定的约束条件下,指数族分布是信息熵(微分熵)最大的分布。
很多人可能对熵的概念都还不清楚,那我们从信息量说起,信息量就是你对一个事件的不确定程度的认识,我们直观地来理解一下,一个事件发生的概率越大,那就是越确定这个事件会发生,那他的不确定性就越小,包含的信息可能就越少,那他的信息量就比较小,也就是说信息量和事件发生的概率成反比,信息量的定义为:
$$ I(X)=-\log p(X) $$
一个事件发生的可能有好几种可能情况,那么我们就会希望知道平均意义下这个事件的信息量有多少,这就得到了信息熵的概念,其实是信息量的期望:
$$ H(X)=E(I(X)) $$
当 $X$ 为离散时,期望就是求和
$$ H(X)=-\sum_{x} p(x) \log p(x) $$
其中,$p(x)=p(X=x)$,那如果 $X$ 是连续的,那信息熵就是个积分的形式了。
介绍了半天熵,那么最大熵有什么好处呢?答案是:在学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。
在没有任何已知的情况下
最大熵可以用优化命题表示为:
利用拉格朗日乘子法可得:$\hat{p}(x_i)=\frac{1}{K}$
也就是说在没有任何已知的情况下均匀分布的熵最大。(离散型)
满足已知事实(约束)的情况下
最大熵可以用优化命题表示为:
其中,$\hat{p}(x)$ 为经验分布,$f(x)$ 为任意关于 $x$ 的函数向量(可以理解为将已知事实或者先验信息写成约束的形式)。
同样利用拉格朗日乘子法可以得到 $p(x)$ 的表达式符合指数族分布的一般形式。
也就是说在满足已知事实(约束)的情况下指数族分布的熵最大。(离散型)