- 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 ]
其中,
x1∈Rr,x2∈Rs,x∈Rr+s x 1 ∈ R r , x 2 ∈ R s , x ∈ R r + s 。
再次假设
x∼N(μ,Σ) x ∼ N ( μ , Σ ) ,所以可以得到:
μ=[μ1μ2],Σ=[Σ11Σ21Σ12Σ22] μ = [ μ 1 μ 2 ] , Σ = [ Σ 11 Σ 12 Σ 21 Σ 22 ]
其中,
μ1∈Rr,μ2∈Rs,Σ11∈Rr×r,Σ12∈Rr×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 的边缘分布为
x1∼N(μ1,Σ11) x 1 ∼ N ( μ 1 , Σ 11 ) ,同时条件分布
x1|x2 x 1 | x 2 为
x1|x2∼N(μ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算法中多元高斯分布对数据进行拟合往往可以得到较好的效果。
多元高斯分布的参数估计公式如下:
μ=1m∑mi=1x(i)Σ=1m∑mi=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=1m∑mi=1(x(i)j−μj)2 Σ j j = 1 m ∑ m i = 1 ( x j ( i ) − μ j ) 2
更进一步的假设,对角线上的元素都是等值:
Σ=σ2I Σ = σ 2 I
进行极大似然估计:
σ2=1mn∑nj=1∑mi=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 ) 生成。
假设存在一个隐含随机变量 z∈Rk,k<n z ∈ R k , k < n 的联合分布 (x,z) ( x , z ) ,同时 z∼N(0,I) z ∼ N ( 0 , I ) 。
所以:
x|z∼N(μ+Λ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 , Σ )
由于
z∼N(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[(z−E[z])(x−E[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[(x−E[x])(x−E[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的边缘分布为:
x∼N(μ,ΛΛT+Ψ) x ∼ N ( μ , Λ Λ T + Ψ )
x的最大似然估计
所以,(x,z)的联合分布的似然函数:
l(μ,λ,Ψ)=∏mlogP(x(i))=log∏mi=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{
- (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 ) ; θ )
- (M-step) set
θ:=argmaxθ∑i∑z(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=1∫z(i)Qi(z(i))logp(x(i),z(i);μ,Λ,Ψ)Qi(z(i))dz(i)argmaxμ,Λ,Ψ∑mi=1∫z(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=1−E[12(x(i)−μ−Λz(i))TΨ−1(x(i)−μ−Λz(i))]12∑mi=1∇ΛE[−trz(i)TΛTΨ−1Λz(i)+trz(i)TΛTΨ−1(x(i)−μ)]12∑mi=1∇ΛE[−trΛTΨ−1Λz(i)z(i)T+trΛTΨ−1(x(i)−μ)z(i)T]12∑mi=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,所以有:
μ=1m∑mi=1x(i) μ = 1 m ∑ m i = 1 x ( i )
(3)基于参数Ψ的函数最大化
关于参数 Ψ Ψ 求偏导并令其等于0,所以有:
Φ=1m∑mi=1x(i)x(i)T−x(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{
- (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 ) ) )
- (M-step) set
Λ=(∑mi=1(x(i)−μ)μTz(i)|x(i))(∑mi=1μTz(i)|x