CS229 Lecture 13

CS229 Lecture 13


课程要点:

Mixture of Gaussians
Native of Bayes
Factor Analysis
Gaussians Distribution


回顾

给定无标记样本{x(1),x(2)......x(m)}\{x^{(1)},x^{(2)}......x^{(m)}\},希望对这些数据的概率密度进行建模P(x)P(x)。这里的数据可能来自多个 不同的高斯分布。P(x)=zP(xz)P(z)P(x)=\sum_{z} P(x|z)P(z),其中zz表明来自那个分布。这里假设zMultinomial(ϕ)z\sim Multinomial(\phi)P(xzj)N(uj,Σj)P(x|z_j)\sim N(u_j,\Sigma_j)。似然函数为:

maxθi=1mlogP(x(i);θ)maxθi=1mlogzjP(x(i),zj;θ)\max_{\theta}\,\sum_{i=1}^{m}logP(x^{(i)};\theta)\geq\max_{\theta}\,\sum_{i=1}^{m}log\sum_{z_j}P(x^{(i)},z_{j};\theta)

通过EM算法找到最优参数

E-step

Qi(z(i))=P(z(i)x(i);θ)Q_i(z^{(i)})=P(z^{(i)}|x^{(i)};\theta)

M-step

θ=argmaxθiz(i)Qi(z(i)logP(x(i),z(i);θ)Qi(z(i)))\theta=\arg\max_{\theta}\sum_{i}\sum_{z^{(i)}}Q_{i}(z^{(i)}log\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})})

直接对似然函数或者其tight下界求导的话,是十分困难的,而x,zx,z的联合分布其符合前面学习过的指数族,E-step和M-Step都是比较容易计算的。

CS229 Lecture 13
EM算法步骤E实际上相当于确定了一个tight bound l(θ)l(\theta)的下界函数,然后M步骤做的就是求这个函数的最大,每次跳到图上红色标示处,努力的贴近l(θ)l(\theta)


另一种理解EM算法的方法
定义一个优化目标J(θ,Q)=iz(i)Qi(z(i)logP(x(i),z(i);θ)Qi(z(i)))J(\theta,Q)=\sum_{i}\sum_{z^{(i)}}Q_{i}(z^{(i)}log\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})}),满足l(θ)J(θ,Q)l(\theta)\geq J(\theta,Q),这里的大于等于是来自于Jensen’s 不等式。

根据前面学过的坐标上升可以知道:

E step: maximum with QQ
M setp: maximum with θ\theta


EM算法应用到高斯混合模型

将EM算法的一般形式应用到高斯混合模型中

E step:

wj(i)=Qi(z(i)=j)=P(z(i)=jx(i);θ,u,Σ)=P(x(i)z(i)=j)P(z(i)=j)P(x(i)z(i)=j)P(z(i)=j)w_j^{(i)}=Q_i(z^{(i)}=j)=P(z^{(i)}=j|x^{(i)};\theta,u,|\Sigma)= \frac{P(x^{(i)}|z^{(i)}=j)P(z^{(i)}=j)}{\sum P(x^{(i)}|z^{(i)}=j)P(z^{(i)}=j)}

上式中x(i)z(i)=jN(uj,Σj)x^{(i)}|z^{(i)}=j\sim N(u_j,|\Sigma_j),而P(z(i)=j)Multinomial(ϕ)P(z^{(i)}=j)\sim Multinomial(\phi).

M step:

maxi=1mz(i)Qi(z(i)=j)logP(x(i),z(i);ϕ,u,Σ)Qi(z(i)=j)=i=1mj=1kQi(z(i)=j)logP(x(i)z(i);u,Σ)P(z(i)=j;ϕ)Qi(z(i)=j)=i=1mj=1kwj(i)log12π2/nΣ1/2exp(12(x(i)u(i))TΣj1(x(i)u(i)))ϕjwj(i)\max\sum_{i=1}^{m}\sum_{z^{(i)}}Q_i(z^{(i)}=j)log\frac{P(x^{(i)},z^{(i)};\phi,u,\Sigma)}{Q_i(z^{(i)}=j)}\\ =\sum_{i=1}^{m}\sum_{j=1}^{k}Q_i(z^{(i)}=j)log\frac{P(x^{(i)}|z^{(i)};u,\Sigma)P(z^{(i)}=j;\phi)}{Q_i(z^{(i)}=j)}\\ =\sum_{i=1}^{m}\sum_{j=1}^{k}w_j^{(i)}log\frac{\frac{1}{2\pi^{2/n}|\Sigma|^{1/2}}exp(-\frac{1}{2}(x^{(i)}-u^{(i)})^T\Sigma_j^{-1}(x^{(i)}-u^{(i)}))\phi_j}{w_j^{(i)}}

对上式进行求导

uj=i=1mwj(i)x(i)i=1mwj(i)u_j=\frac{\sum_{i=1}^{m}w_j^{(i)}x^{(i)}}{\sum_{i=1}^{m}w_j^{(i)}}

ϕj=1mi=1mwj(i)\phi_j=\frac{1}{m}\sum_{i=1}^{m}w_j^{(i)}

在求导ϕ\phi时需要注意ϕj0\phi_j\geq0并且j=1kϕj=1\sum_{j=1}^{k}\phi_j=1,这些约束可以通过拉格朗日乘子进行求解。


文本聚类

给定一堆文本,希望可以把这些文本根据主题进行聚类。

给定训练集{x(1),x(2)......x(m)}\{x^{(1)},x^{(2)}......x^{(m)}\},其中x(i){0,1}nx^{(i)}\in \{0,1\}^{n}xj(i)x_j^{(i)}表示词jj是否出现于文本ii中。

这里z(i){0,1}z^{(i)}\in\{0,1\} 因此z(i)Beroli(ϕ)z^{(i)}\sim Beroli(\phi).

P(x(i)z(i))=i=1mP(xjiz(i))P(x^{(i)}|z^{(i)})=\prod_{i=1}^{m}P(x_j^{i}|z^{(i)})

P(xj(i)=1z(i)=j)=ϕjzP(x_j^{(i)}=1|z^(i)=j)=\phi_{j|z}

可以看到如果将上面的zz替换为yy,那么上面公式将会和朴素贝叶斯公式一样。

E step:

wi=P(z(i)=1x(i);ϕi=z)w^{i}=P(z^{(i)}=1|x^{(i)};\phi_{i=z})

M step:

ϕjz=1=i=1mw(i)1{xj(i)=1}i=1mw(i)\phi_{j|z=1}=\frac{\sum_{i=1}^{m}w^{(i)}1\{x_j^{(i)}=1\}}{\sum_{i=1}^{m}w^{(i)}}

ϕjz=0=i=1m(1w(i))1{xj(i)=1}i=1m(1w(i))\phi_{j|z=0}=\frac{\sum_{i=1}^{m}(1-w^{(i)})1\{x_j^{(i)}=1\}}{\sum_{i=1}^{m}(1-w^{(i)})}

ϕjz=w(i)m\phi_{j|z}=\frac{\sum w^{(i)}}{m}


因子分析

因子分析相较于高斯混合模型其EM算法中对应的隐变量zz可能是连续的。

一般来说如果mnm\geq n用混合高斯来建模是可取的,但是如果说nmn \approx m或者nmn\geq m,那么又该如何模拟数据的分布P(x)P(x)?

当然可以选择单纯的高斯模型来建模。

有训练样本{x(1),x(2).....x(m)}\{x^{(1)},x^{(2)}.....x^{(m)}\},对其进行建模。假设xN(u,Σ)x\sim N(u,\Sigma),通过极大似然估计可以得出:

u=1mi=1mx(i)u=\frac{1}{m}\sum_{i=1}^{m}x^{(i)}

Σ=1mi=1m(x(i)u)(x(i)u)T\Sigma = \frac{1}{m}\sum_{i=1}^{m}(x^{(i)-u})(x^{(i)}-u)^T

由于nmn\geq m因此Σ\Sigma必然为奇异矩阵,即不满秩。其对应的高斯轮廓曲线是一个无限延伸的椭圆。

可以加上一些假设如Σ=[σ12σ22σ32σ42]\Sigma= \left[\begin{array}{cccc} \sigma_1^2&&&\\ &\sigma_2^2&&\\ &&\sigma_3^2&\\ &&&\sigma_4^2 \end{array}\right] 这样得到σj2=1m(x(i)u)2\sigma_j^2=\frac{1}{m}\sum({x^{(i)}-u})^2

这样的假设会导致各个维度之间完全不相关,高斯轮廓曲线是平行的。

还可以假设Σ=σ2I=[σ2σ2σ2σ2]\Sigma=\sigma^2I= \left[\begin{array}{cccc} \sigma^2&&&\\ &\sigma^2&&\\ &&\sigma^2&\\ &&&\sigma^2 \end{array}\right],即高斯的轮廓曲线是圆型。以上这些假设都过强,不能采用。


假设zN(0,I)z\sim N(0,I),其中zRd  (d<n)z\in R^{d}\,\,(d\lt n)

xzN(u+Λz,Ψ)x|z\sim N(u+\Lambda z,\Psi)

对等的可以说:

x=u+Λz+εx=u+\Lambda z + \varepsilon,其中εN(0,Ψ)\varepsilon\sim N(0,\Psi)并且Ψ\Psi是一个对角矩阵。

上面这些参数uRn     ΛRn×d     ΨRn×nu\in R^{n}\,\,\,\,\,\Lambda\in R^{n\times d}\,\,\,\,\,\Psi\in R^{n\times n}dnd\leq n

例子:

zRz\in R

xR2x\in R^2

Λ=[21]\Lambda= \left[\begin{array}{c}2\\1\end{array}\right]

Ψ=[1002]\Psi= \left[\begin{array}{cc}1&0\\0&2\end{array}\right]

u=[00]u=\left[\begin{array}{c}0\\0\end{array}\right]

z(i)N(0,1)z^{(i)}\sim N(0,1)

CS229 Lecture 13
上图中横轴中红色的点是对zz的一个采样,斜线上的点是Λz\Lambda z,由于u=0u=\vec0,那么斜线上的点同样为u+Λzu+\Lambda z,图上绿色的圈是每个采样点zz对应xx的可能分布。因为ε\varepsilon服从高斯分布,因此xx是在在对应紫色点为中心的一个高斯分布的采样。


拟合模型中的参数

为了描述模型中的参数的拟合方法,需要将高斯模型写成另一种形式:
x=[x1x2]x=\left[\begin{array}{c}x_1\\x_2\end{array}\right]其中x1Rrx_1\in R^{r} x2Rsx_2\in R^{s}那么自然xRr+sx\in R^{r+s}

xN(u,Σ)x\sim N(u,\Sigma),其中u=[u1u2]u=\left[\begin{array}{c}u_1\\u_2\end{array}\right],那么Σ=[Σ11Σ12Σ21Σ22]\Sigma=\left[\begin{array}{cc}\Sigma_{11}&\Sigma_{12}\\\Sigma_{21}&\Sigma_{22}\end{array}\right]。其中Σ12Rr×s\Sigma_{12}\in R^{r\times s}

P(x1)P(x_1)的边际分布为:

P(x1)=x2P(x1,x2)dx2P(x_1)=\int_{x_2}P(x1,x2)dx_2

其中x1N(u1,Σ11)x_1\sim N(u_1,\Sigma_{11})

P(x1x2)=P(x1x2)P(x2)P(x_1|x_2)=\frac{P(x_1x_2)}{P(x_2)}

其中P(x1x2)N(u,Σ)P(x_1x_2)\sim N(u,\Sigma)P(x2)N(u2,Σ22)P(x_2)\sim N(u2,\Sigma_{22})

P(x1x2)N(u12,Σ12)P(x_1|x_2)\sim N(u_{1|2},\Sigma_{1|2})对应的u12=u1+Σ12Σ221(x2u2)u_{1|2}=u_1+\Sigma_{12}\Sigma_{22}^{-1}(x_2-u_2)Σ12=Σ11Σ12Σ221Σ21\Sigma_{1|2}=\Sigma_{11}-\Sigma_{12}\Sigma_{22}^{-1}\Sigma_{21}


xxzz的联合概率分布因子分析为:

[zx]N(uxz,Σ)\left[\begin{array}{c}z\\x\end{array}\right]\sim N(u_{xz},\Sigma)

zN(0,I)z\in N(0,I)

x=u+Λz+εx=u+\Lambda z + \varepsilon其中εN(0,Ψ)\varepsilon \sim N(0,\Psi)

E[z]=0E[z]=0

E[x]=E[u+Λz+ε]=uE[x]=E[u+\Lambda z+\varepsilon]=u因为ε\varepsilonzz的希望都为00

uzx=E[zx]=[0u]u_{zx}=E\left[\begin{array}{c}z\\x\end{array}\right]=\left[\begin{array}{c}\vec0\\u\end{array}\right]

Σ=[E[(zE[z])(zE[z])T]E[(zE[z])(xE[x])T]E[(xE[x])(xE[x])T]E[(xE[x])(zE[z])T]]\Sigma = \left[\begin{array}{cc}E[(z-E[z])(z-E[z])^T]&E[(z-E[z])(x-E[x])^T]\\E[(x-E[x])(x-E[x])^T]&E[(x-E[x])(z-E[z])^T]\end{array}\right]

Σ11=cov(z)=I\Sigma_{11}=cov(z)=I

Σ21=E[(xE[x])(zE[z])T]=E[(uΛz+εu)z]=E[ΛzzT]E[Σz]=ΛE[zzT]=Λ\Sigma_{21}=E[(x-E[x])(z-E[z])^T]=E[(u-\Lambda z+\varepsilon-u)z]=E[\Lambda zz^T]-E[\Sigma z]=\Lambda E[zz^T]=\Lambda

上式中Σ\Sigmazz是相互独立的,且期望均为0,因此E[Σz]=0E[\Sigma z]=0

Σ22=E[(uΛz+εu)(uΛz+εu)T]=ΛΛT+Ψ\Sigma_{22}=E[(u-\Lambda z+\varepsilon-u)(u-\Lambda z+\varepsilon-u)^T]=\Lambda \Lambda^T+\Psi

综上[zx]N([0u],[IΛTΛΛΛT+Ψ])\left[\begin{array}{c}z\\x\end{array}\right]\sim N(\left[\begin{array}{c}\vec0\\u\end{array}\right],\left[\begin{array}{cc}I&\Lambda^T\\\Lambda&\Lambda \Lambda^T+\Psi\end{array}\right])


给定样本{x(1),x(2)......x(m)}\{x^{(1)},x^{(2)}......x^{(m)}\}对其建模P(x),其xN(u,ΛΛT+Ψ)x\sim N(u,\Lambda \Lambda^T+\Psi)

如果直接对其求最大似然l(θ)=log(P(x(i)))l(\theta)=\sum log(P(x^{(i)}))可以发现是十分困难的。因此为了求解最优值,因此其EM步骤为:

E step:

Q(z(i))=P(z(i)x(i);θ)Q(z^{(i)})=P(z^{(i)}|x^{(i)};\theta)

M step

argmaxθi=1mzQi(z(i))logP(x(i),z(i);u,Λ,Ψ)Qi(z(i))\arg \max_{\theta}\sum_{i=1}^{m}\int_{z}Q_i(z^{(i))}log\frac{P(x^{(i)},z^{(i)};u,\Lambda,\Psi)}{Q_i(z^{(i)})}