隐变量模型
在隐变量模型这堂课中,主要内容为以下几个方面
- KL散度
- 混合高斯模型
- EM算法
- 离散型和连续型隐变量
- 案例:Word2Vec
1. KL散度(Kullback-Leibler divergence, KL divergence)
通常需要计算对象之间的距离和差异性。概率论的研究对象是分布,分布之间差异性的常见量化方式之一是KL散度
-
定义:在同一个随机变量上的两个分布和,它们的散度定义成:
这里是积分形式的定义,实际应用时主要是计算离散形式的。此时需要注意的问题是:- 出现等于0的情况
- 出现等于0的情况
解决的方法是使用平滑法,这篇文章有说明
另外,为什么叫散度,不叫距离,课中Dmitry Vetrov老师的解释是不满足三角不等式(两边之和大于第三边)和对称性,即(课程中举了单峰分布与双峰分布的KL散度来直观地理解不对称性)但其实日常一般也可以叫做距离
与信息论的联系:等于和的交叉熵减去的信息熵,计算如下:
-
非负性,证明如下:
根据Jensen不等式,对于随机变量和凸函数,有。凸函数的判断方式是函数二阶导数为0。正好距离可以表现为期望形式,而的二阶导数大于0,因此利用不等式,得
即证。另外根据距离的定义可知,当时,距离为0注1(可略):课程中给出的证明中,如下
跟Jensen不等式不同,貌似是如果是凹函数,不等式号就变成小于号了吗?其实这个也是根据Jensen不等式来的。但这个还有另外一个名字,叫Gibbs不等式。注2(可略):课程还提到了
any concave function f such that f(1)=0 define its own divergence
。这是因为注1
最右边中需满足才能保证散度的非负性
2. 混合高斯分布
单一情形:所有样本来自于同一个高斯分布时,需要估计高斯总体的均值和方差。用矩估计、极大似然估计等方法都能估计出参数来。
-
复杂情形:样本来自多个多个高斯分布,即混合高斯分布。每个高斯分布的参数都不同。此时如果我们知道每个样本来自于哪个分布地话,仍然可以很容易解出来。把属于每个分布的样本放一起,一个个分别作估计就行。
- 但如果不知道呢?可以将其中视为一个高斯分布,从而求解。但更好的方法是隐变量模型
加隐变量。为每个对象新建一个隐变量,代表该对象属于第几个高斯分布
-
构建似然模型。当只考虑一个高斯分布的话,似然函数就是。现在加了隐变量后的似然函数就是
注(个人理解):之前纠结为什么是,而不是。原因在于似然函数的思想就是认为大概率事件更有可能发生,所以是找到参数使得目前样本产生的联合概率最大。不考虑隐变量时,就只有。有了隐变量,比如100中有99个都是来自于一个高斯分布,只有1个来自于另一个高斯分布。根据似然函数的思想,当然是样本来自于第一个高斯分布的概率更大。所以,隐变量模型,要把和放一起。
-
似然函数如下:
如果知道和的话,直接似然函数对数化,偏导为0求解就可以了。但并不知道因此退而求其次,去最大化不完全似然函数
-
不完全似然函数
将称为变分下界(variational lower bound)放弃最大化,改为最大化,得到最优的和
问题:为什么最大化变分下界可以达到最优化不完全似然函数的目的。先看看变分下界的定义和性质
-
变分下界
是的变分下界,当且仅当
- ,满足
- 使得
看上面的,满足
- ,都有
- 使得,此时就是等于0的情况,
因此它是一个变分下界
-
EM算法
E步:计算,,这其实是变分下界的第二条,对应当前的参数找到一个使得不完全似然函数等于变分下界。正好当散度为0时,可以找到
M步:更新参数,在E步更新后,此时,此时最大化不完全似然函数就等于最大化变分下界。
可以看到,而第一项是与参数无关,所以可
以直接去除。这样就得到
同时可以看到求期望的项就是完全似然函数,对隐变量求期望。这样就可以理解期望最
大算法的字面含义了。
依次循环执行,直至收敛。可以证明的值在迭代过程中是单调递增的。因为在第k-1次迭代中,
E步:
M步:
三、两种形式的隐变量
-
离散型隐变量
- 的边缘分布,
- E步:
- M步:
- 注意,这里都写成了单个对象的形式,因为将进行对数化之后就变成了的和
-
连续型隐变量
所有步骤同上,只需要将对的求和改成积分就行
课中提到连续型隐变量可以用于表征学习(representation learning),这个还不是太理解
- 难点
- 存在高维离散型隐变量
- 既有离散型,又有连续型隐变量
- 连续型隐变量的先验分布不是共轭分布,会导致E步难以求解
- 解决办法:变分贝叶斯
四、Word2vec模型
简单理解Skip-Gram模型,参考知乎上的一个回答
-
常规方法
根据极大似然估计,就是要求
如果词典里的词为,那对每个词而言的时间复杂度就是
-
Hierarchical Soft-max
- 构建一个叶子节点数为的哈夫曼树
- 定义为从根节点到叶子结点上的路径上的节点序列,不包括叶子结点
- 每个非叶子结点都对应了有个向量,维度为词向量相同
目的仍然是计算的出现概率,现在的计算方式是,从哈夫曼树的根节点开始随机选择左边还是右边进入子树,将词向量与节点上向量进行內积并通过soft-max函数计算概率,来确定往左还是往右。如果总是假设向左的概率为,为到路径上的一个非叶子节点。那往右的概率就等于
这样就像课程中所设置的,定义为从到的方向,而且
这样,常规方法计算的概率时,其分母需要计算个项,但在Hierarchical Soft-max下只需要计算至多
-
Word Ambiguity(词语歧义)与隐变量模型
- 定义隐变量代表词的某个含义
- 词向量由变成了
- 的概率就为
- 完全似然函数,的先验分布,对于无信息先验的情况,可以假设先验分布为均匀分布,即
- 因为是未知的,因此可以使用EM算法来求解
- E步:。这样就可以知道目标词的各个含义的概率
- M步:,参数
- 但是每一次迭代,都要把所有的的后验概率计算一遍
-
Large Scale EM
-
在M步,不再求最大值,只做一步的随机梯度下降
公式
这里用到了随机梯度下降,在EM算法的每次迭代中,只需要一个样本,极大增加计算效率。随机梯度下降会在下次的《随机优化》中有讲
-