Andrew Ng机器学习课程笔记(十六)之无监督学习之因子分析模型与EM算法

  • Preface
  • Marginals and Conditionals of Gaussians
  • Restrictions of Σ
  • Factor Analysis
    • 低维映射高维
    • (x,z)的联合分布
    • x的最大似然估计
  • EM Algorithm for Factor Analysis
    • E-Step
    • M-Step
      • (1)基于参数Λ的函数最大化
      • (2)基于参数μ的函数最大化
      • (3)基于参数Ψ的函数最大化
    • EM Algorithm for Factor Analysis

Preface

Marginals and Conditionals of Gaussians(高斯分布的边缘分布与条件分布)
Restrictions of Σ Σ (限制协方差矩阵)
Factor Analysis(因子分析模型)
EM Algorithm for Factor Analysis

Marginals and Conditionals of Gaussians

假设一个随机变量 x x

x=[x1x2] x = [ x 1 x 2 ]

其中, x1Rr,x2Rs,xRr+s x 1 ∈ R r , x 2 ∈ R s , x ∈ R r + s
再次假设 xN(μ,Σ) x ∼ N ( μ , Σ ) ,所以可以得到:
μ=[μ1μ2],Σ=[Σ11Σ21Σ12Σ22] μ = [ μ 1 μ 2 ] , Σ = [ Σ 11 Σ 12 Σ 21 Σ 22 ]

其中, μ1Rr,μ2Rs,Σ11Rr×r,Σ12Rr×s μ 1 ∈ R r , μ 2 ∈ R s , Σ 11 ∈ R r × r , Σ 12 ∈ R r × s ,并且逆对角矩阵相互对称,即为 Σ12=ΣT21 Σ 12 = Σ 21 T
同时,我们可以求出随机变量 x x 的协方差矩阵:
Cov(x)=Σ=[Σ11Σ21Σ12Σ22]=E[(xμ)(xμ)T]=E[(x1μ1x2μ2)(x1μ1x2μ2)T]=[(x1μ1)(x1μ1)T(x2μ2)(x1μ1)T(x1μ1)(x2μ2)T(x2μ2)(x2μ2)T] C o v ( x ) = Σ = [ Σ 11 Σ 12 Σ 21 Σ 22 ] = E [ ( x − μ ) ( x − μ ) T ] = E [ ( x 1 − μ 1 x 2 − μ 2 ) ( x 1 − μ 1 x 2 − μ 2 ) T ] = [ ( x 1 − μ 1 ) ( x 1 − μ 1 ) T ( x 1 − μ 1 ) ( x 2 − μ 2 ) T ( x 2 − μ 2 ) ( x 1 − μ 1 ) T ( x 2 − μ 2 ) ( x 2 − μ 2 ) T ]

其中,随机变量 x1 x 1 的边缘分布为 x1N(μ1,Σ11) x 1 ∼ N ( μ 1 , Σ 11 ) ,同时条件分布 x1|x2 x 1 | x 2 x1|x2N(μ1|2,Σ1|2) x 1 | x 2 ∼ N ( μ 1 | 2 , Σ 1 | 2 )
μ1|2=μ1+Σ12Σ122(x2μ2)Σ1|2=Σ11Σ12Σ122Σ21 μ 1 | 2 = μ 1 + Σ 12 Σ 22 − 1 ( x 2 − μ 2 ) Σ 1 | 2 = Σ 11 − Σ 12 Σ 22 − 1 Σ 21

Restrictions of Σ

之前我们考虑的训练集 x(i)Rn,i{1,m} x ( i ) ∈ R n , i ∈ { 1 , m } 中样例的个数 m m 都远远大于其特征个数 n n ,这样不管是进行回归、聚类等都没有太大的问题。但是如果样例的个数 m m 都小于其特征个数 n n ,甚至样例的个数 m m 都远远小于其特征个数 n n ,我们在使用以前的模型算法时(例如梯度下降法),如果初值不同,得到的参数结果会有很大偏差。

通过前面的文章Andrew Ng机器学习课程笔记(十四)之无监督学习之混合高斯模型与EM算法中多元高斯分布对数据进行拟合往往可以得到较好的效果。

多元高斯分布的参数估计公式如下:

μ=1mmi=1x(i)Σ=1mmi=1(x(i)μ)(x(i)μ)T μ = 1 m ∑ m i = 1 x ( i ) Σ = 1 m ∑ m i = 1 ( x ( i ) − μ ) ( x ( i ) − μ ) T

但是在样例的个数 m m 都小于其特征个数 n n ,甚至样例的个数 m m 都远远小于其特征个数 n n 的情况下,由于 Σ Σ 是奇异矩阵(缺秩矩阵),即 |Σ|=0 | Σ | = 0 。也就是说, Σ Σ 不存在逆矩阵,即为我们无法解得 Σ Σ (没办法拟合出多元高斯分布)。
为了解决上述问题(没有足够的数据去估计Σ时),我们对模型参数进行一定假设,对 Σ Σ 加上一些限制条件:
Σ Σ 为对角矩阵,对角矩阵各特征向量间相互独立,我们只需要计算每个特征的方差即可,最后的 Σ Σ 只有对角线上的元素不为 0 。所以 Σ Σ 为:
Σjj=1mmi=1(x(i)jμj)2 Σ j j = 1 m ∑ m i = 1 ( x j ( i ) − μ j ) 2

更进一步的假设,对角线上的元素都是等值:
Σ=σ2I Σ = σ 2 I

进行极大似然估计:
σ2=1mnnj=1mi=1(x(i)jμj) σ 2 = 1 m n ∑ n j = 1 ∑ m i = 1 ( x j ( i ) − μ j )

继而得到 Σ Σ

Factor Analysis

定义数据集 S={x(i)},x(i)Rn,i{1,m} S = { x ( i ) } , x ( i ) ∈ R n , i ∈ { 1 , m } 。即,S有m个n维特征的训练样本。

低维映射高维

1.每一个 x(i) x ( i ) 由一个 k 维多元高斯分布 z(i) z ( i ) 生成。
假设存在一个隐含随机变量 zRk,k<n z ∈ R k , k < n 的联合分布 (x,z) ( x , z ) ,同时 zN(0,I) z ∼ N ( 0 , I )
所以:

x|zN(μ+Λz,Ψ) x | z ∼ N ( μ + Λ z , Ψ )

其中, μRn,ΛRn×k,ΨRn×n μ ∈ R n , Λ ∈ R n × k , Ψ ∈ R n × n ,并且 Ψ Ψ 为对角阵。

2.将 z(i) z ( i ) 通过变换矩阵 Λ Λ 由k维映射到n维。
所以有:

x=Λz x = Λ z

z(i) z ( i ) 的均值是 0,映射后的 Λz Λ z 仍然是 0。

3.对于变换之后的 Λz Λ z 加上均值 μRn μ ∈ R n

x=μ+Λz x = μ + Λ z

对应的意义是将变换后的 μ+Λz μ + Λ z 移动到样本 x(i) x ( i ) 的中心点μ。

4.加入协方差为 Ψ Ψ 的随机噪声。
所以有:

x=μ+Λz+ϵ x = μ + Λ z + ϵ

其中, ϵN(0,Ψ) ϵ ∼ N ( 0 , Ψ ) z z 相互独立。

(x,z)的联合分布

这样一来, (x,z) ( x , z ) 的联合分布为:

[zx]N(μzx,Σ) [ z x ] ∼ N ( μ z x , Σ )

由于 zN(0,I) z ∼ N ( 0 , I ) ϵN(0,Ψ) ϵ ∼ N ( 0 , Ψ ) ,所以 E[z]=E[ϵ]=0 E [ z ] = E [ ϵ ] = 0 ,所以:
E[x]=E[μ+Λz+ϵ]=μ+ΛE[z]+E[ϵ]=μ E [ x ] = E [ μ + Λ z + ϵ ] = μ + Λ E [ z ] + E [ ϵ ] = μ

所以:
μzx=[0μ] μ z x = [ 0 μ ]

由Marginals and Conditionals of Gaussians小节内容可以得到:
Σ=[ΣzzΣxzΣzxΣxx] Σ = [ Σ z z Σ z x Σ x z Σ x x ]

所以:
Σzz=Cov(z)=I Σ z z = C o v ( z ) = I

Σzx=E[(zE[z])(xE[x])T]=E[z(μ+λz+ϵμ)]=E[zzT]ΛT+E[zϵT]=ΛT Σ z x = E [ ( z − E [ z ] ) ( x − E [ x ] ) T ] = E [ z ( μ + λ z + ϵ − μ ) ] = E [ z z T ] Λ T + E [ z ϵ T ] = Λ T

Σxx=E[(xE[x])(xE[x])T]=E[(μ+λz+ϵμ)(μ+λz+ϵμ)T]=E[ΛzzTΛT+ϵzTΛT+ΛzϵT+ϵϵT]=ΛE[zzT]ΛT+E[ϵϵT]=ΛΛT+Ψ Σ x x = E [ ( x − E [ x ] ) ( x − E [ x ] ) T ] = E [ ( μ + λ z + ϵ − μ ) ( μ + λ z + ϵ − μ ) T ] = E [ Λ z z T Λ T + ϵ z T Λ T + Λ z ϵ T + ϵ ϵ T ] = Λ E [ z z T ] Λ T + E [ ϵ ϵ T ] = Λ Λ T + Ψ

所以 (x,z) ( x , z ) 的联合分布为:

[zx]N([0μ],[IΛΛTΛΛT+Ψ]) [ z x ] ∼ N ( [ 0 μ ] , [ I Λ T Λ Λ Λ T + Ψ ] )

所以x的边缘分布为:
xN(μ,ΛΛT+Ψ) x ∼ N ( μ , Λ Λ T + Ψ )

x的最大似然估计

所以,(x,z)的联合分布的似然函数:

l(μ,λ,Ψ)=mlogP(x(i))=logmi=11(2π)n/2|λΛT+Ψ|exp(12(x(i)μ)(ΛΛT+Ψ)1(x(i)μ)) l ( μ , λ , Ψ ) = ∏ m l o g P ( x ( i ) ) = l o g ∏ m i = 1 1 ( 2 π ) n / 2 | λ Λ T + Ψ | e x p ( − 1 2 ( x ( i ) − μ ) ( Λ Λ T + Ψ ) − 1 ( x ( i ) − μ ) )

同GMM模型一样我们想要求得似然方程求最大值是极其困难的。所以我们将把EM算法用于因子分析中。

EM Algorithm for Factor Analysis

回顾我们在Andrew Ng机器学习课程笔记(十三)之无监督学习之EM算法中提到的EM算法

Repeat until convergence{

  1. (E-step) for each i, set
    w(i)j:=Qi(z(i)=j):=p(z(i)=j|x(i);θ) w j ( i ) := Q i ( z ( i ) = j ) := p ( z ( i ) = j | x ( i ) ; θ )
  2. (M-step) set
    θ:=argmaxθiz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i)) θ := arg max θ ∑ i ∑ z ( i ) Q i ( z ( i ) ) l o g p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) )

由Marginals and Conditionals of Gaussians小节内容可以得到条件概率:

z(i)|x(i);μ,Λ,ΨN(μz(i)|x(i),Σz(i)|x(i))μz(i)|x(i)=ΛT(ΛΛT+Ψ)1(x(i)μ)Σz(i)|x(i)=IΛT(ΛΛT+Ψ)1Λ z ( i ) | x ( i ) ; μ , Λ , Ψ ∼ N ( μ z ( i ) | x ( i ) , Σ z ( i ) | x ( i ) ) μ z ( i ) | x ( i ) = Λ T ( Λ Λ T + Ψ ) − 1 ( x ( i ) − μ ) Σ z ( i ) | x ( i ) = I − Λ T ( Λ Λ T + Ψ ) − 1 Λ

所以使用因子分析中的 μ,Λ,Ψ μ , Λ , Ψ 参数替换一般化EM算法中的 θ θ 参数,然后在依次解决 w(i)j w j ( i ) μ,Λ,Ψ μ , Λ , Ψ 参数的更新问题就好。

E-Step

Qi(z(i))=p(z(i)|x(i);μ.Λ,Ψ)=1(2π)k/2Σz(i)|x(i)1/2exp(12(z(i)μz(i)|x(i))TΣ1z(i)|x(i)(z(i)μz(i)|x(i))) Q i ( z ( i ) ) = p ( z ( i ) | x ( i ) ; μ . Λ , Ψ ) = 1 ( 2 π ) k / 2 | Σ z ( i ) | x ( i ) | 1 / 2 e x p ( − 1 2 ( z ( i ) − μ z ( i ) | x ( i ) ) T Σ z ( i ) | x ( i ) − 1 ( z ( i ) − μ z ( i ) | x ( i ) ) )

M-Step

我们得到的是:

argmaxμ,Λ,Ψ==mi=1z(i)Qi(z(i))logp(x(i),z(i);μ,Λ,Ψ)Qi(z(i))dz(i)argmaxμ,Λ,Ψmi=1z(i)Qi(z(i))[logp(x(i)|z(i);μ,Λ,Ψ)+logp(z(i))logQi(z(i))]dz(i)argmaxμ,Λ,Ψmi=1Ez(i)Qi[logp(x(i)|z(i);μ,Λ,Ψ)+logp(z(i))logQi(z(i))](1)(2)(3) arg max μ , Λ , Ψ ∑ m i = 1 ∫ z ( i ) Q i ( z ( i ) ) l o g p ( x ( i ) , z ( i ) ; μ , Λ , Ψ ) Q i ( z ( i ) ) d z ( i ) ( 1 ) = arg max μ , Λ , Ψ ∑ m i = 1 ∫ z ( i ) Q i ( z ( i ) ) [ l o g p ( x ( i ) | z ( i ) ; μ , Λ , Ψ ) + l o g p ( z ( i ) ) − l o g Q i ( z ( i ) ) ] d z ( i ) ( 2 ) = arg max μ , Λ , Ψ ∑ m i = 1 E z ( i ) ∼ Q i [ l o g p ( x ( i ) | z ( i ) ; μ , Λ , Ψ ) + l o g p ( z ( i ) ) − l o g Q i ( z ( i ) ) ] ( 3 )

上式中的步骤(2)到步骤(3)的推导依然是使用数学期望公式(如同在Andrew Ng机器学习课程笔记(十三)之无监督学习之EM算法中关于M-Step的推导方法一样)。需要特别注明的是: Ez(i)Qi E z ( i ) ∼ Q i 表示随机变量 z(i) z ( i ) 在某一分布的密度函数 Qi Q i 下的期望值。

同时在这里,由于我们是要基于 w(i)j w j ( i ) μ,Λ,Ψ μ , Λ , Ψ 参数去解得目标函数的最大值,我们可以将目标函数的最大值化简为:

==mi=1E[logp(x(i)|z(i);μ,Λ,Ψ)]mi=1E[log1(2π)n/2/|Ψ|1/2exp(12(x(i)μΛz(i))TΨ1(x(i)μΛz(i)))]mi=1E[12log|Ψ|n2log(2π)12(x(i)μΛz(i))TΨ1(x(i)μΛz(i))] ∑ m i = 1 E [ l o g p ( x ( i ) | z ( i ) ; μ , Λ , Ψ ) ] = ∑ m i = 1 E [ l o g 1 ( 2 π ) n / 2 / | Ψ | 1 / 2 e x p ( − 1 2 ( x ( i ) − μ − Λ z ( i ) ) T Ψ − 1 ( x ( i ) − μ − Λ z ( i ) ) ) ] = ∑ m i = 1 E [ − 1 2 l o g | Ψ | − n 2 l o g ( 2 π ) − 1 2 ( x ( i ) − μ − Λ z ( i ) ) T Ψ − 1 ( x ( i ) − μ − Λ z ( i ) ) ]

(1)基于参数Λ的函数最大化

关于参数 Λ Λ 求偏导,同时由于只考虑参数 Λ Λ ,所以有:

===Λmi=1E[12(x(i)μΛz(i))TΨ1(x(i)μΛz(i))]12mi=1ΛE[trz(i)TΛTΨ1Λz(i)+trz(i)TΛTΨ1(x(i)μ)]12mi=1ΛE[trΛTΨ1Λz(i)z(i)T+trΛTΨ1(x(i)μ)z(i)T]12mi=1E[Ψ1Λz(i)z(i)T+Ψ1(x(i)μ)z(i)T] ∇ Λ ∑ m i = 1 − E [ 1 2 ( x ( i ) − μ − Λ z ( i ) ) T Ψ − 1 ( x ( i ) − μ − Λ z ( i ) ) ] = 1 2 ∑ m i = 1 ∇ Λ E [ − t r z ( i ) T Λ T Ψ − 1 Λ z ( i ) + t r z ( i ) T Λ T Ψ − 1 ( x ( i ) − μ ) ] = 1 2 ∑ m i = 1 ∇ Λ E [ − t r Λ T Ψ − 1 Λ z ( i ) z ( i ) T + t r Λ T Ψ − 1 ( x ( i ) − μ ) z ( i ) T ] = 1 2 ∑ m i = 1 E [ − Ψ − 1 Λ z ( i ) z ( i ) T + Ψ − 1 ( x ( i ) − μ ) z ( i ) T ]

上式的第一步到第二步是根据 tra=a(a) t r a = a ( a 是 实 数 时 ) trAB=trBA t r A B = t r B A ,第二步到第三步是根据 AtrABATC=CAB+CTAB ∇ A t r A B A T C = C A B + C T A B

令上式为0,所以有:

mi=1ΛEz(i)Qi[z(i)z(i)T]=mi=1(x(i)μ)Ez(i)Qi[z(i)T] ∑ m i = 1 Λ E z ( i ) ∼ Q i [ z ( i ) z ( i ) T ] = ∑ m i = 1 ( x ( i ) − μ ) E z ( i ) ∼ Q i [ z ( i ) T ]

所以:
Λ=(mi=1(x(i)μ)Ez(i)Qi[z(i)T])(mi=1Ez(i)Qi[z(i)z(i)T])1 Λ = ( ∑ m i = 1 ( x ( i ) − μ ) E z ( i ) ∼ Q i [ z ( i ) T ] ) ( ∑ m i = 1 E z ( i ) ∼ Q i [ z ( i ) z ( i ) T ] ) − 1

因为 Qi(z(i))=p(z(i)|x(i);μ.Λ,Ψ) Q i ( z ( i ) ) = p ( z ( i ) | x ( i ) ; μ . Λ , Ψ ) ,且 Ez(i)Qi E z ( i ) ∼ Q i 表示随机变量 z(i) z ( i ) 在某一分布的密度函数 Qi Q i 下的期望值。

所以:

Ez(i)Qi[z(i)T]=μTz(i)|x(i) E z ( i ) ∼ Q i [ z ( i ) T ] = μ z ( i ) | x ( i ) T

由于 E[x2]=E[xxT] E [ x 2 ] = E [ x x T ] Σ=E[x2](E[x])2=E[xxT](E[x])2 Σ = E [ x 2 ] − ( E [ x ] ) 2 = E [ x x T ] − ( E [ x ] ) 2 ,所以:

Ez(i)Qi[z(i)z(i)T]=μz(i)|x(i)μTz(i)|x(i)+Σz(i)|x(i) E z ( i ) ∼ Q i [ z ( i ) z ( i ) T ] = μ z ( i ) | x ( i ) μ z ( i ) | x ( i ) T + Σ z ( i ) | x ( i )

所以:
Λ=(mi=1(x(i)μ)μTz(i)|x(i))(mi=1μTz(i)|x(i)+Σz(i)|x(i))1 Λ = ( ∑ m i = 1 ( x ( i ) − μ ) μ z ( i ) | x ( i ) T ) ( ∑ m i = 1 μ z ( i ) | x ( i ) T + Σ z ( i ) | x ( i ) ) − 1

(2)基于参数μ的函数最大化

关于参数 μ μ 求偏导并令其等于0,所以有:

μ=1mmi=1x(i) μ = 1 m ∑ m i = 1 x ( i )

(3)基于参数Ψ的函数最大化

关于参数 Ψ Ψ 求偏导并令其等于0,所以有:

Φ=1mmi=1x(i)x(i)Tx(i)μTz(i)|x(i)ΛTΛμz(i)|x(i)x(i)T+Λ(μz(i)|x(i)μTz(i)|x(i)+Σz(i)|x(i))ΛT Φ = 1 m ∑ m i = 1 x ( i ) x ( i ) T − x ( i ) μ z ( i ) | x ( i ) T Λ T − Λ μ z ( i ) | x ( i ) x ( i ) T + Λ ( μ z ( i ) | x ( i ) μ z ( i ) | x ( i ) T + Σ z ( i ) | x ( i ) ) Λ T

然后令 Ψii=Φii Ψ i i = Φ i i ,可以得参数 Ψ Ψ

EM Algorithm for Factor Analysis

所以EM Algorithm for Factor Analysis的E-step和M-step为:

Repeat until convergence{

  1. (E-step) for each i, set
    Qi(z(i))=1(2π)k/2Σz(i)|x(i)1/2exp(12(z(i)μz(i)|x(i))TΣ1z(i)|x(i)(z(i)μz(i)|x(i))) Q i ( z ( i ) ) = 1 ( 2 π ) k / 2 | Σ z ( i ) | x ( i ) | 1 / 2 e x p ( − 1 2 ( z ( i ) − μ z ( i ) | x ( i ) ) T Σ z ( i ) | x ( i ) − 1 ( z ( i ) − μ z ( i ) | x ( i ) ) )
  2. (M-step) set
    Λ=(mi=1(x(i)μ)μTz(i)|x(i))(mi=1μTz(i)|x

你可能感兴趣的:(机器学习,人工智能,机器学习——基础篇)