科学网

 找回密码
  注册

tag 标签: EM算法

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

隐马尔科夫模型简介(四)
luria 2019-8-8 22:19
本文接上一篇,继续探讨隐马尔科夫模型三个基本问题中最后一个问题,也是最复杂的一个问题。在此之前还是欢迎主角 HMM 登场! 3. 隐马尔科夫模型的三个基本问题 Problem 3. 学习问题 ( Learning Problem) 已知观测序列 O=( o 0 , o 1 , o 2 , o 3 , …, o T-1 ) ,需通过调整 HMM 的参数λ = (A, B, π ) 使是概率 P(O| λ ) 最大。用气温与年轮的例子来讲就是,已知感兴趣的这十年年轮大小分别为 S-M-S-L-M-L-M-S-M-M ,求最可能出现这种情况的初始概率、状态转移矩阵和观测矩阵。 对于这个问题枚举法显然是行不通了。因为不可控的元素太多了,不可能像 第一类问题 ( Evaluation Problem ) 或第二类问题 ( Decoding Problem ) 那样得到一个唯一解,不同的初始值和不同的初始矩阵会得到不同的结果,学习类问题通常是这样。同时对于这个问题,通常需要观察链比较长(即需要输入更多信息)。 3.1 算法推导 目前有一种专门的算法来处理这个问题,即 Baum-Welch 算法 ,它是 EM 算法在解决 HMM 学习问题时的一个特例。 PS. Baum-Welch 算法的两位作者分别是 Leonard Baum 和 Lloyd Welsh ,其中 Leonard Baum 是一位传奇人物,他是著名金融公司——文艺复兴科技公司的核心创始人,咱们将要讲到的 Baum-Welch 算法帮助该公司在对冲基金中连续 27 年回报率打败巴菲特。有兴趣的朋友可以搜索这段故事来看看,相信看完对学习 Baum-Welch 算法会充满动力! 另外,有关 EM 算法 (Expectation Maximization Algorithm) 欢迎参考我的另一篇博文 : EM算法简介 大家在看完 EM 算法后,对 EM 算法的套路已经有了一个大致的了解,那么具体到 Baum-Welch 算法,推导如下: 在推导之前,我们回顾一下在第一类问题 ( Evaluation Problem ) 中有介绍到 前向算法 (Forward Algorithm) ,其中 前向概率 同理,还有一个 后向算法 (Backward Algorithm) ,其中 后向概率 (1) E-step 我们先定义两个变量ξ t ( i, j ) 和γ t (i) : (1) ------------------------------------------------------------------------------------------------------- (2) 这两个变量看起来好像很复杂,但是它们想要表达的概念并不复杂。ξ t ( i, j ) 表示在 t 时刻状态为 i ,在 t+1 时刻状态转为状态 j 的概率。再具体一些来讲,例如ξ 2 (H, L) 表示第二年是高温 (H) ,而第三年为低温 (L) 的概率。 而γ t (i) 表示 t 时刻为状态 i 的概率,例如γ 2 (H) 表示第二年是高温 (H) ,而第三年为低温 (L) 或高温 (H) 的概率之和,也即仅考虑第二年为高温 (H) 的概率。 如果还是不太明白,可以看看下图 于是有 (2) M-step 有了上述的两个式子后,我们可以轻松地写出 当前状态转移矩阵中 A 的元素 a ij 和观测矩阵 B 中的元素 b j (k) : 如何理解这个式子? 打个比方,如果用 a HL 表示当前参数条件下整个链中由高温转低温的概率,那么式子中的分子表示所有( t 从第一年至倒数第二年,因为是有转移,这里是写为到倒数第二年)高温 (H) 转到低温 (L) 时刻的概率之和;分母 t 时刻为高温 (H) 的概率 ( 无论 t+1 时刻的状态是什么 ) 。两者相除即由 i 状态转移到 j 状态的概率。 式子中,分子是所有满足观测为 k 的这些时刻,状态为 j 的概率之和,例如所有观测到大年轮 (L) 的那些年份状态为高温 (H) 的期望值;分母为所有 t 时刻 ( 第一年至倒数第二年 ) 状态为 j 的概率之和,例如在所有年份中状态为高温 (H) 的期望值。两者相除即观测为 k 时状态为 j 的概率,即由状态 j 转为观测 k 的概率。 另外,还需指定初始状态分布。如果有经验值,可按照经验;如果没有可随机取值: 这样就获取到当前状态 (t=1) 的转移矩阵 A 1 和当前观测矩阵 B 1 ,以及初始状态π,即当前λ 1 =(A 1 , B 1 , π ) 。 (3) 用λ 1 代替λ 0 ,不断地迭代 M-step 和 E-step ,直到收敛 在计算的过程中通常会用 log 函数来简化计算,因此也即: 或者直接指定迭代多少次后就退出迭代过程,终止计算 3.2 实例分析 提到 HMM 当然要提到晴雨预测例子,假设观测了三天,观测结果为 O={o 1 =soggy, o 2 =dry, o 3 =dryish} 。再次强调,实际应用中,必须要有足够多的信息才能得到较好的结果,也就是说观测链通常会比较长。这里为了简化计算,观测链长度仅为 3 。 先初始化一组参数 λ 1 =(A 1 , B 1 , π ) ,其中的值是随机的 ( 当然如果有经验的人可以找到一些初始化里的细微套路,使得算出的局部最优解为全局最优解的可能性更大 ) ,本例中设置的值如下: = 状态转移矩阵 A 1 = 初始状态分布π = 观测矩阵 B 1 将状态转移矩阵 A 1 和观测矩阵 B 1 的所有元素标记在一张图中,如下: (1) 基于以上数据,利用向前向后算法计算出所有的前向概率和后向概率 再利用前向算法计算 t=2 和 t=3 时的前向概率,如下: 在计算完前向概率后,我们可以算出在当前参数条件下,观测链 O 出现的概率: P(O| λ 1 )= α 3 (1) + α 3 (2)+ α 3 (3)=0.013 同理我们也计算出所有的后向概率。注意:后向概率是从后往前算的 ( 即先计算 t=3 ,再算 t=2 ,最后算 t=1) , t=3 时: 再利用后向算法求出所有的后向概率: (2) 计算中间变量ξ t ( i, j ) 和γ t (i) (3) 计算当前的参数 λ 2 =(A 2 , B 2 , π ) ,并用当前的参数代替 λ 1 ,完成一次迭代 (4) 不断迭代直到收敛 这里将 t=1 和 t=2 时计算结果列出来,有兴趣的读者可以试着计算一下 我们可以看到表中 P(O| Δ ) 变化较大,表明未收敛。 注:这里写的 P(O| Δ ) 就是上文中的 P(O| λ ) ,只是写法不同,内容一致 当迭代至第 9 次后结果收敛,计算终止。如下表 因此,最终结果如下表: 参考材料: Dmitry Shemetov. Bayesian structural inference and the Baum-Welch algorithm. Leonard E. Baum, Ted Petrie, George Soules and Norman Weiss. A Maximization Technique Occurring in the Statistical Analysis of Probabilistic Functions of Markov Chains. Loc Nguyen. Tutorial on Hidden Markov Mode
个人分类: Algorithm|3763 次阅读|0 个评论
EM算法(期望最大化算法)简介
luria 2019-8-1 00:12
和 HMM 简介一样(有关 HMM ,隐马尔科夫模型的简介,请参见我的另一篇博文 http://blog.sciencenet.cn/blog-2970729-1188964.html ),我们还是通过一个例子引入 EM 算法 (Expectation Maximization Algorithm) 1. 一个经典例子 我们有两枚硬币 (coin A coin B) ,这两枚硬币是用特殊材质做的,硬币 A 抛出正面 ( H ead) 和反面 ( T ail) 的概率为 θ A 和 1- θ A ,硬币 B 抛出正面和反面的概率为 θ B 和 1- θ B 。我们不知道 θ A 和 θ B ,因此想通过不断的抛硬币来推测出 θ A 和 θ B ,为了方便,写成向量形式: θ = ( θ A , θ B ) 。 因为有两枚硬币,我们随机地在硬币 A 和硬币 B 中挑一个 ( 概率相等,各为 50%) ,然后再用选中的硬币独立地抛 10 次,为了使整个事件更具说服力,我们选硬币抛硬币的整个过程重复做了 5 次。因此,总的来说选了 5 次硬币,抛了 5 × 10=50 次。 选了 5 次硬币,每次记为 z i ∈ {A, B} , 5 次合到一起记为 z=(z 1 , z 2 , z 3 , z 4 , z 5 ) ;每选 1 次硬币 ( 抛 10 次 ) ,我们记录其中正面出现的次数 x i ∈ {0,1,...,10} , 5 次合到一起记为 x=(x 1 , x 2 , x 3 , x 4 , x 5 ) 。于是,很容易我们就可以评估出 θ A : 这种通过观测来评估模型参数的方法称为 极大似然评估 (Maximum likelihood estimation) 。 上面这个例子比较简单,是一个完备问题 (complete data case) 。如果上面这个例子中,已知 x 向量,但是不知道 z 向量,这时再来评估 θ A 和 θ B 。这类问题属于不完备问题 (incomplete data case) ,我们称未知的 z 向量为 隐变量 (hidden variables) 或者 潜在因素 (latent factors) 。 注:我们可以想象一下,开篇的例子中,我们挑一枚硬币且记录下挑了什么硬币,再抛这枚硬币且记录下硬币的正反面。现在由于意外发生,挑硬币的那部分记录不幸遗失,只有硬币正反向次数的记录,让我们求解两枚硬币抛出正面的概率分别是多少。仔细一想,这个问题其实还是挺难的!聪明的人们想出了一个很直觉的解决办法—— EM 算法。 首先我们随便给定 θ A 和 θ B ,如果有先验知识也可以用先验知识。 基于这两个参数,计算这 5 次硬币 A/B 最可能的出现情况。再固定这 5 次硬币 A/B 抽取情况,估计 θ ,此时记为 再不断重复这一过程直到收敛。 总之, EM 算法轮流执行两个步骤:其一,在当前模型的前提下,猜测最可能的概率分布,例如推测硬币 A/B 的抽取概率和期望,这一步称为 E-step ;其二,在推测的结果基础上重新评估模型的参数,推测 θ A 和 θ B ,这一步称为 M-step 。 之所以称为 E-step ,是因为通常不需要在绝对完整的前提下来生成概率分布,而是在当前完整的情况下,计算 期望的 (Expected) 的充分统计量。与此类似,之所以称为 M-step ,是因为模型的重新评估可以认为是使期望的 log 值 最大化 (Maximization) 。 2. 数学推导 在推导之前我们需要一点数学知识: Jensen’s inequality 对应的图形如下: 问题:已知一组独立的样本 x={x 1 , x 2 , x 3 , ..., x m } ,求模型 p(x, z) 的参数 θ ,使 p(x, z) 最大,其中 z 是隐变量。 开始推导: 因为 log 函数是单调递增的,所以求 p(x, z) 的最大值,即求 log(p(x, z)) 的最大值。完整的写出似然函数如下,即求 L( θ ) 最大时参数 θ 的值: 因为 z 通常观测不到,这使得问题比较复杂,无法直接求 L( θ ) 的最大值。我们采用 EM 算法,构建 L( θ ) 的下界 (E-step) ,再优化下界 (M-step) ,并不断重复这一过程。 (1) 式是上述所求的。上述公式来自 Andrew Ng , Andrew Ng 喜欢用上标表示 index ,可能和我们的习惯写法有点不一致,在此不展开,大家可以简单地将 x (i) 看成 x i (2) 式是分子分母同乘了一个 Q i (z (i) ) 它是一种分布,而且 (3) 由第 2 个式子到第 3 个式子的推导如下: 那么第 2 个式子到第 3 个式子推导如下: 当且仅当以下等式成立时, L( θ ) 取得极大值: 其中 c 表示常数。也即 又因为 Q i (z (i) ) 是概率分布,按照定义 所以有 综上,不断重复以下两个步骤,直到收敛: 其中:=表示当前等于,也即覆盖之前的值 3. 用 C huong 文章中的实例详细计算一下 i=0 时,令 E-Step : (1) 计算第一次选硬币,且投出的结果为 H-T-T-T-H-H-T-H-T-H 时,选的是硬币 A 的概率 根据二项分布定义,如果第一次选的是 A 硬币,投 10 次有 5 次为正面的概率为: 同理,可计算出如果第一次选的是 B 硬币,投 10 次有 5 次为正面的概率: 再由贝叶斯定律可计算出,投币结果为 H-T-T-T-H-H-T-H-T-H ,且这一结果是硬币 A 投出的概率为: 注意:其中 P(A) 和 P(B) 都为 0.5 ,因为抽取 A 硬币和抽取 B 硬币是等可能的。 同理,投币结果为 H-T-T-T-H-H-T-H-T-H ,且这一结果是硬币 B 投出的概率为: (2) 再依次计算第二到第五次选硬币时,抽取到 A/B 硬币的概率。所有结果汇总如下表: 其中, Coin A 列表示投出该行硬币正反面情况下,推测是用 A 硬币来投的概率。 Total 行是计算的 5 次试验的总和,而 Score 行的计算如下: Score = (0.45 × 5) + (0.8 × 9) + (0.73 × 8) + (0.35 × 4) + (0.65 × 7)=21.24 仔细回想,这里的 Score 其实就是 5 次选币( 50 次投币)事件的期望值 (Expectation) !以上整个过程也正是在计算 P(z (i) | x (i) ; θ ) ,即 每次观测 (Observation) 索引 = i 当前 θ 参数条件 = ( θ A , θ B ) 每次观测,如 H-T-T-T-H-H-T-H-T-H = x (i) 挑选的硬币( Coin A, Coin B ) = z (i) 的概率 P(z (i) | x (i) ; θ ) 另外,我们可以在文中看到如下表格,计算的也是一样的,以第二行为例 Coin A 列的 2.2H 表示第一次选硬币,再抛 10 次时硬币为 H 的总和 0.45 × 5 ; Coin B 列的 2.8H 表示 0.55 × 5 同理,我们也可以算出观测到是 HTTTHHTHTH 时 Coin A 抛出反面的概率得分 2.2T M-Step : 再计算当前假设下,硬币 A 投正面的概率,以及硬币 B 投正面的概率,即 从 θ (i) 到 θ (i+1) 的过程为什么叫做极大化 (Maximization) ?其实这里有个认证:每次迭代的过程 ( 从 θ (i) 到 θ (i+1) ) ,都会使 P(z (i) | x (i) ; θ ) 增大,越来越接近或者达到局部极值 再将 θ (i+1) 作为参数,不断重复上述步骤,直到结果收敛。 经过 10 次重复之后,算出如下结果: 最后,需要强调的是 EM 也有自身的缺陷: (1) 最终的结果与初始值的选取有关,不同的初始值可能得到不同的参数估计值 (2) 很可能会陷入局部最优解,而无法达到全局最优解 总结: 本文简约地介绍了 EM 算法,旨在深入浅出,面向的对象是算法小白 ( 如我一般 ) 。留下两个问题,有兴趣的读者可以继续探索,如果有时间后续我也会整理出来: (1) EM 算法的收敛性: E-Step 和 M-Step 不断重复,最后是否会收敛? (2) EM 算法的应用,例如高斯混合模型、 HMM 中的第三个问题 ( 这个问题我会尽快整理到博文中,敬请期待 ) 等。 参考材料: C huong B Do, Serafim Batzoglou. What is the expectation maximization algorithm? Konstantinos G. Derpanis . Jensen’s Inequality Andrew Ng. CS229 Lecture notes https://ynorm.com/blog/expectation-maximization/
个人分类: Algorithm|16162 次阅读|0 个评论
EM算法是炼金术吗?
热度 1 lcguang 2017-12-17 22:40
人工智能很火, 人工智能大神很火。大神们的神器是什么? 有人说找到了,就是EM算法。 请看这篇: EM 算法的九层境界: Hinton 和 Jordan 理解的 EM 算法 http://mp.weixin.qq.com/s/NbM4sY93kaG5qshzgZzZIQ 但是最近网上引人关注的另一传闻是,一位人工智能论文获奖者在获奖感言中说人工智能方法是炼金术, 从而引起大神家族成员反驳。 报道见: http://baijiahao.baidu.com/s?id=1586237001216079684wfr=spiderfor=pc 看到上面两篇, 使我想到: EM 算法是炼金术码? 我近两年碰巧在研究用以改进 EM 算法的新算法: http://survivor99.com/lcg/CM/Recent.html ,对 EM 算法存在的问题比较清楚。我的初步结论是: EM 算法虽然在理论上有问题, 但是确实炼出金子了。 反过来也可以说, 虽然 EM 算法练出金子了,但是收敛很不可靠,流行的解释 EM 算法的收敛理由更是似是而非。有人使之神秘化,使得它是有炼金术之嫌。论据何在?下面我首先以混合模型为例,简单介绍 EM 算法, 并证明流行的 EM 算法收敛证明是错的 ( 没说算法是错的 ) 。 因为公式太多, 详见PDF文件: http://survivor99.com/lcg/CM/cm-ljs.pdf
个人分类: 信息的数学和哲学|15298 次阅读|3 个评论
香农互信息和似然度的匹配函数R(G)—解决最大互信息和最大似然度
lcguang 2017-4-28 04:35
香农互信息和似然度的匹配函数 R(G)— 解决最大互信息和最大似然度的钥匙 1994 年, 通信学报发表了我的《广义熵和广义互信息的编码意义》, http://xuewen.cnki.net/CJFD-TXXB406.005.html 内容大概是: http://survivor99.com/lcg/books/GIT/GY/ch5.htm#ch56 其中介绍了 R(G) 函数, 它是信息率失真函数 R(D) 的推广, G 是语义或以互信息的下限。当时只是说明如何根据视觉分辨率压缩像素数据。那时候, 我还不清楚似然度方法 —— 现在想来是坏事也是好事。 最近我发现, 原来我就是用标准似然度( normalized likelihood )定义语义信息或广义信息的。不同的是, 我的然函数来自真值函数,或模糊集合隶属函数。好事是, 我没有似然度方法约束,用真值函数产生似然函数更加兼容贝叶斯推理, 使得预测模型适合先验概率可变场合。坏事是,新的语义信息公式和 R(G) 函数本来可以解决似然度方法难题的(先验难题,和平均最大难题),现在推迟了 20 多年。 给定香农信道, 求互信息简单, 求最大似然度也简单。 但是, 不限制香农信道,比如在检验和估计中, 以及混合模型中,求所有可能香农信道的最大互信息是困难的。求最大似然度类似,都要寻找最优香农信道。但是, 不固定香农信道就不能求互信息。而固定了又如何优化信道? 很多文章讲最大似然度,但是含义不同, 一种对应 Kullback-Leibler 距离( divergence )的, 最大似然估计就是最小 Kullback-Leibler 距离估计。 另一种对应不限定香农信道 P(Y|X) 时的最大香农互信息, 就是对于可能的不同假设 Y=y1, y2, …, yn 和样本分布 P(X|yj), j=1,2,…,n 之间的最大似然度(同样需要求最优香农信道 P*(Y|X) ),等价于最大平均对数似然度——这个似然度就是我标题讲的似然度,其最大值是很难求解的。这样的最大似然估计就是最小香农互信息估计。 各位注意到没有?似然度大,信息还少, 这是经典信息论的缺陷!如果用语义信息准则,似然度大,标准似然度也大,语义信息就大。 流行的解决最大互信息的方法是最小最大法。解决平均最大似然度的方法除了牛顿迭代法, 还有 EM 算法——通常用于混合模型(机器学习用)(参看中文 http://www.cnblogs.com/mindpuzzle/archive/2013/04/05/2998746.html , 英文 http://cs229.stanford.edu/notes/cs229-notes8.pdf )。这些方法都是实用方法,除了牛顿迭代法, 理论性不强, 收敛证明也不清楚。 现在我发现,可以采用语义信道和香农信道交替相互匹配——迭代, 实现最大互信息和最大似然度。 具体算法和收敛证明都可以通过分析 R(G) 函数得到。 希望有人感兴趣。 作者更多信息论文章见: http://survivor99.com/lcg/books/GIT/
个人分类: 信息的数学和哲学|2710 次阅读|0 个评论
基于混合模型和EM算法的社区发现
chenhao317 2013-1-6 17:10
基于混合模型和EM算法的社区发现
对于二分图这样对称的社区结构以及不对称的社区结构都被一定程度地研究过了,但是如果我们完全不知道网络的结构类型怎么办?比如说对称和非对称的混合型的社区结构,应该如何发现社区?这篇文章为了解决这个问题,使用机器学习中的概率混合模型和EM期望最大化算法来发现社区。 随机模型中含有2个参数。第一个参数$ \theta_{ri} $为$r$分组组中的一个特定节点连接到节点$i$的概率(有向边)。$ \theta_{ri} $代表了$r$分组中的点对于连接到的节点的偏向性(如图1 所示)。 这里社区被定义为:“连接到类似其他节点的节点集合”。第二个参数$\pi_{r}$(未知)在$r$分组中的节点占所有节点的比例,同时也是随机节点落在$r$分组的概率。易得这两个参数都满足归一化条件:$\sum^{c}_{r=1}\pi_r=1,\sum^{n}_{i=1}\theta_{ri}=1$。在整个模型中我们有观察数据$\{A_ij\}$(邻接矩阵),隐藏数据$\{g_i\}$(节点$i$属于哪个社区),以及模型参数$\{\pi_r,\theta_{ri}\}$, 然后我们要最大化似然函数 \ 其中 \ 事实上,我们求的是似然函数的log形式,所以式子变为 \ \] 因为$g$是隐藏变量,我们无法直接通过上面的式子求得最大似然值,但是我们可以通过EM算法来得到似然函数的期望值: \ \\ =\sum_{ir} P(g|A,\pi,\theta) \\ =\sum_{ir} q_{ir} \end{split}\] 其中$q_{ir}$为给予参数$\pi,\theta$以及观察数据之后的关于$g$的后验概率,可以通过贝叶斯公式得到: \ 利用拉格朗日算子求得上述似然期望的最大值,并得到参数 \ 以上模型是基于有向图的,$\theta_{ri}$代表$r$组节点的节点选择连接到节点$i$的概率。如果是无向图,我们限制连接只会在两个节点互相选择时产生,例如$s$组中的$i$和$r$组中的$j$相互选择,这概率为$\theta_{ri}\theta_{sj}$,这样就对称了。由图2可以看到,算法可以很好地处理混合型的网络结构。 参考文献: Newman, M. and E. Leicht (2007). "Mixture models and exploratory analysis in networks." Proceedings of the National Academy of Sciences 104 (23): 9564-9569.
1467 次阅读|0 个评论
一般形式的EM算法学习
chenhao317 2012-12-23 13:50
一般形式的EM算法学习
先给出一般形式的EM算法问题定义。 给定一个训练集$ X=\{x^{\{1\}},\ldots,x^{\{m\}}\} $,根据模型的假设,每个我们观察到的$x^{i}$ 还对应着一个我们观察不到的隐含变量$z^(i)$,我们记$Z=\{z^{\{1\}},\ldots,z^{\{m\}}\}$, 我们希望拟合得到包含隐藏变量$z$的模型$p(X,Z|\theta)$ 中的参数$\theta$。 我们通过求最大似然$L(\theta|X)$来估计$\theta$的值。 \ 其中 \ 由于在对数函数中又存在加和,所以我们很难直接求导得到$\theta$的值。这里EM算法可以很好地解决这个问题。 首先,我们拆分$\log p(X|\theta)$,利用贝叶斯公式把它变形: \ 等式两边同时乘以$q(Z)$,并对$Z$求和 \ \] 因为$Z$与$p(X|\theta)$独立且$\sum_{z}q(Z)=1$,所以 \ 我们将其写作 \ 其中: \ \ 这里我们可以$KL(q||p)$(注1)描述了概率分布$q(Z)$和$p(Z|X,\theta)$之间的差别。由于$KL(q||p)\geq 0$,而且仅在$q(Z)=p(Z|X,\theta)$时等于0,所以$\mathcal{L}(q,\theta)\leq \ln p(X|\theta)$。因为$\mathcal{L}(q,\theta)$ 也包含了$X,Z$ 的联合分布,可以把它看做$\ln p(X|\theta)$ 的下界函数。 假设参数当前的值为$\theta^{old}$。 在E-step中,我们固定$\theta^{old}$,通过寻找$q(Z)$来最大化下界$\mathcal{L}(q,\theta^{old})$ 的值。这个最大化问题比较简单,因为变量只有$Z$, $\ln p(X|\theta^{old})$与$q(Z)$无关,所以最大值在$KL(q||p)=0$,也就是$q(Z)= p(Z|X,\theta)$ 时取得(这个同时也解释了为什么要用$Z$的后验概率去而不是别的概率求Z的期望值),此时$\mathcal{L}(q,\theta) = \ln p(X|\theta)$(如图1所示)。 在M-step中,我们固定$q(Z)$,通过寻找新的参数$\theta^{new}$来最大化$\mathcal{L}(q,\theta)$ 的值,通过增大下界函数$\mathcal{L}(q,\theta)$的值,来增大似然函数的值。因为概率分布$q(Z)$是用$\theta^{old}$决定的,当$\theta$改变之后,它将不再等于新的后验概率$p(Z|X,\theta^{new})$。因此$KL$散度也大于0.因此似然函数的增大将来自两个方面:下界函数的增大和KL散度的增大(如图2所示)。 然后我们不断运行E步和M步直到算法收敛。如图3所示,红色曲线(未知)是我们想要最大化的似然函数。在第一个E步,我们初始化参数$\theta^{old}$,然后通过它求得下界$\mathcal{L}(q,\theta^{old})$(蓝色曲线)。可以看到,下界函数在$\theta^{old}$时,为似然函数的正切线,所以两条曲线的梯度相同。注意到下界函数是个凸函数(参照国外convex function 定义),所以它有唯一的最大值。在M步中,我们通过${\theta^{new}}$来获取下界函数的最大值。然后在接下来的E步,我们重新构造一个下界函数(如绿色曲线所示),使得它在在$\theta^{new}$ 时,为似然函数的正切线。 我们不仅可以用EM算法估计最大似然值,还能求最大后验概率(MAP)。在给定先验概率$p(\theta)$ 的情况下,后验概率 \ 所以我们有 \ 这里$p(X)$为常数。 这里的EM算法: E-step:固定$\theta^{old}$,那么$\ln p(\theta^{old})$为常数,找一个分布$q(Z)$,使$\mathcal{L}(q,\theta^{old})$最大。 M-step:固定$q(Z)$,寻找参数$\theta^{new}$,使$\mathcal{L}(q,\theta^{new}) +\ln p(\theta^{new})$最大。 除此之外,如果 M-step中的最大化$\mathcal{L}(q,\theta)$的$\theta^{new}$也很难求的话,我们可以把要求放宽,并不一定要求出最大值,只要能够得到比$\theta^{old}$更好的结果就可以,这样的做法叫 Generalized EM (GEM)。 注: 1.KL散度,在信息论中称为相对熵,用于衡量两个函数或概率分布之间的差异程度。 性质如下: 1.$KL(q||p)\neq KL(p||q)$ 2.$KL(q||p)$越大,差异程度越大。当$p$和$q$完全相同时,$KL(p||q)=0$。 参考: 1.Pattern_Recognition_and_Machine_Learning
1785 次阅读|0 个评论
高斯混合模型——EM算法的经典应用
chenhao317 2012-11-26 10:26
这周主要学习了高斯混合模型以及EM算法的经典应用。Gaussian Mixture Model (GMM)即可以用于聚类,也可以用于估计概率密度函数。假设我们有一个训练集$x^{(1)},\ldots,x^{(m)}$, 这训练集是无监督的,所以没有分类标签。 我们假设假设数据服从 Mixture Gaussian Distribution ,即把数据看作是从许多个 Gaussian Distribution 中生成出来的。具体就是建立联合分布 $ p(x^{(i)},z^{(i)})=p(x^{(i)}|z^{(i)})p(z^{(i)}) $。 这里 $ z^{(i)} \sim Multinomial(\phi) $,其中$\phi_{j}\geq0,\sum^{k}_{j=1}\phi_{j}=1$,$\phi_{j}$即$p(z^{(i)}=j)$, 而$x^{(i)}|z^{(i)}=j \sim N(\mu_j,\Sigma_j)$。混合高斯模型的主要分为两个步骤,是首先随机地在这$\{1,\ldots,K\}$个高斯分布中之中选一个(用$z^{(i)}$表示),再根据选取分布中生成数据$x^{(i)}$。要注意的是,因为这些数据都是未标注的,这里我们并不知道$z^{(i)}$的值,所以$z^{(i)}$也被称作隐藏变量。 高斯混合模型的参数有$\phi,\mu,\Sigma$。为了估计这些参数,我们写出它们的似然函数: \ 这个似然函数在log之中又存在加和,所以通过普通的求导方法是不能得出最大似然的。之前提到$z^{(i)}$是用来表示数据$x^{(i)}$是来自$k$个高斯分布中的哪一个的,假设我们已经知道了$z^{(i)}$是多少(比如说$z^{(i)}=k$),那么求解决这个极大似然问题就简单多了。因为$z^{(i)}=k$,对于任意的$j$,只有$\phi_{k}=p(z^{(i)}=k)=1$,其余全部都是0,因此在1到$K$的加和中,只有一个值是存在的,其余全为0。 所以似然函数可以化简成下面这样: \ 对此似然函数求极大值,得到参数值如下: \ 但是,事实上我们并不知道这些$z^{(i)}$的值是多少。如果我们有了这些值,所有的问题都迎刃而解了。下文对于混合高斯模型的EM算法主要分为两步。在E步里,我们猜出所有的$z^{(i)}$的值,然后在M步中根据猜出的值,更新模型中的参数,反复迭代。 E步: 具体地,对于所有的$i,j$,我们设 \ 这里$w^{i}_j$是$z^{(i)}=j$的一个后验概率。 M步: 我们假设$w^{i}_j$是已知的,求得参数 \ 相互迭代直到似然函数的值收敛。 在E步中,我们使用了后验概率,可以通过贝叶斯公式来计算: \ 式子中的$p(x^{(i)}|z^{(i)}=j;\mu,\Sigma)p(z^{(i)}=j;\phi)$是用一个拥有平均值$\mu_j$和协方差$\Sigma_j$的高斯分布在$x^{(i)}$上的概率密度算出的;$p(z^{(i)}=j;\phi)$是由$\phi_j$算出的。计算得到的$w^{i}_j$代表了对$z^{(i)}$的软猜测。 PS:软猜测是指猜测的结果是$ $之间的概率值,而硬猜测为单值(0或1)。 PPS:这篇是CSS229上对于高斯混合模型的介绍,相对于PRML这本书的介绍,我个人觉得有一些欠缺的地方: 1.为什么选取后验概率$p(w|x)$? 2.EM算法的全称是期望最大化算法,取的是什么的期望,没有详细说明。 3.事实上最大化的是似然函数的期望,而不是似然函数本身,没有详细说明。 这篇文章用于理解高斯混合模型挺好,但是用来理解EM算法还有一些欠缺。 参考: 1.斯坦福大学公开课 :机器学习课程 CS229 2.Pattern Recognition And Machine Learning
6411 次阅读|0 个评论
EM算法
Austindglx 2012-11-11 14:40
EM算法总结.docx (鉴于博文插入图片比较麻烦,进一步了解请下载附件查看) EM 算法是常用来进行概率密度估计或者给数据建模,这样说有点难以理解,这可以通过对高斯混合模型, K-Means 的算法的学习进一步了解。 用百度百科的话来说: 最大期望算法 ( Expectation-maximization algorithm ,又译 期望最大化算法 )在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。 最大期望算法经过两个步骤交替进行计算:   第一步是计算期望( E ),利用对隐藏变量的现有估计值,计算其最大似然估计值;   第二步是最大化( M ),最大化在 E 步上求得的最大似然值来计算参数的值。    M 步上找到的参数估计值被用于下一个 E 步计算中,这个过程不断交替进行。   总体来说, EM 的算法流程如下:    1. 初始化分布参数    2. 重复直到收敛:    E 步骤:估计未知参数的期望值,给出当前的参数估计。    M 步骤:重新估计分布参数,以使得数据的似然性最大,给出未知变量的期望估计。 说到 EM 算法,不得不提的是 Jensen 不等式,定理如下: 定理:如果 f 是一个凸函数, X 是随机变量,则有: E ≥ f( E(X) ). 进一步的如果 f 是一个严格的凸函数 注:凸函数要求其二次导数不小于零,比如 x2 是一个严格凸函数,因为其二次导数是一个常数 2 恒大于零(没有等号);一个常数函数比如 f(X)=5, 其二次导数恒等于 0 ,则其是一个不严格的凸函数。可以看出来,若一个凸函数包含一段常数函数,则其为一个不严格的凸函数。 而凹函数与凸函数相对,其性质恰好相反,不再多说,仅给出以下不等式,若 f 是一个凹函(比如对数函数),有: E ≤ f( E(X) ) 。 为何要提这个 Jensen 不等式呢?因为在 EM 算法中第一步是对隐藏变量的期望的估计,然后根据 Jensen 不等式构造出一个下界函数(因为一般都是 log 函数),第二步就是再计算这个下界函数的最大值(其实也就是让 Jensen 不等式的等号成立的条件)的参数,后面详细过程中会讲到。 下面是细致的说明和推导过程: 假设给定了 m 个独立样本 {x (1) , ... , x (m) } ,假设我们想根据这些数据选择合适的参数构造模型 p(x,z) 。其似然函数可以写作: 但是根据上式往往直接估计参数θ会非常困难。上式中 z (i) 是一个个的隐含变量,一般情况下,当观察到这个隐含变量时再进行 MLE 会比较容易。第二个式子是边际分布,很容易得到。 根据上面介绍, EM 算法给出了一个高效的解决策略: E 步,总是为似然函数 l 构造一个下界函数; M 步,最大化这个下界函数。 具体说来,首先做一个假设:对于每一个 z (i) ,设 Q i (Z) 为其对应的分布,因此满足 z Q i (z) =1 , Q i (z)≥0 . 因此对于上面提到的似然函数可以做如下推导: 其中第一步是根据边际分布得到的不再多说,第二步更容易看懂,但是把 z 的分布加进去了,从第二步到第三步是利用的 Jensen 不等式,构造了一个下确界函数(因为似然函数里面的 log 函数是凹函数)。 注: 仔细解释下第二步到第三步,可以将 看成是一个关于 z (i) 的函数 g(z (i) ) ,而且 logX 是一个凹函数, Q i (Z (i) ) 是一个关于 z (i) 的分布, 因此 可以看成是一个变量的期望的函数,根据 Jensen 不等式有对于凹函数“期望的函数≥函数的期望”,即: 其中 f 指的是 log 函数,因此有公式( 2 )到公式( 3 )。 此时, Q i (z) 可以是任何形式的分布,但是应该如何选择呢?直观上看,在当前θ的条件下,应该使 似然函数 尽可能的大,其实说白了让 Jensen 不等式的等号成立找到一个紧确界就好了。问题又来了,怎样才能找到一个紧确界呢?哈哈,根据前面对 Jensen 不等式的分析,只需要满足 其中 c 是一个不依赖于 z (i) 的常数就可以了,进一步讲,就是这时候满足了 Jensen 中的凹函数是一个常数,即期望的函数等于函数的期望了。因此说这样就可以构造一个紧确界了。这可以通过选择 达到目的。 再根据 z Q i (z) =1 ,可做如下推导: 其实,到目前为止,我们也就完成了 E 步当中对 Q i (z (i) ) 的选择过程。 至此,可以写出 EM 算法的过程为: 至于收敛性证明此处不再多讲。值得一提的是,若定义 则根据前面的推导有 l( θ ) ≥ J(Q, θ ). 则 EM 算法可以看成是一个对于 J 的坐标上升算法,其中 E 步是关于 Q 最大化 J ,而 M 步是关于θ最大化 J 。 至此, EM 算法总结完毕,事实上我们只学到了 EM 算法的一些基本思想和推导过程,要想真正的掌握,本人建议通过对高斯混合分布模型的学习以及 K-Means 算法来进一步的理解和巩固。
11 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-16 12:05

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部