CS229 Lecture 14
课程要点:
Factor Analysis - EM step
Principal Components Analysis (PCA)
如果 x = [ x 1 x 2 ] x= \left[\begin{array}{c}x_1\\x_2\end{array}\right] x=[x1x2],且 x ∼ N ( u , Σ ) x\sim N(u,\Sigma) x∼N(u,Σ),那么 u = [ u 1 u 2 ] u= \left[\begin{array}{c}u_1\\u_2\end{array}\right] u=[u1u2], Σ = [ Σ 11 Σ 12 Σ 21 Σ 22 ] \Sigma= \left[\begin{array}{cc}\Sigma_{11}&\Sigma_{12}\\\Sigma_{21}&\Sigma_{22}\end{array}\right] Σ=[Σ11Σ21Σ12Σ22]。那边际分布 P ( x 1 ) P(x_1) P(x1)等于什么?通过上节课我们知道:
x 1 ∼ N ( u 1 , Σ 11 ) x_1\sim N(u_1,\Sigma_{11}) x1∼N(u1,Σ11)
条件分布 P ( x 1 ∣ x 2 ) P(x_1|x_2) P(x1∣x2)满足 x 1 ∣ x 2 ∼ N ( u 1 ∣ 2 , Σ 1 ∣ 2 ) x_1|x_2\sim N(u_{1|2},\Sigma_{1|2}) x1∣x2∼N(u1∣2,Σ1∣2),其中
u 1 ∣ 2 = u 1 + Σ 12 Σ 22 − 1 ( x 2 − u 2 ) u_{1|2}=u_1+\Sigma_{12}\Sigma_{22}^{-1}(x_2-u_2) u1∣2=u1+Σ12Σ22−1(x2−u2)
Σ 1 ∣ 2 = Σ 11 − Σ 12 Σ 22 − 1 Σ 22 \Sigma_{1|2}=\Sigma_{11}-\Sigma_{12}\Sigma_{22}^{-1}\Sigma_{22} Σ1∣2=Σ11−Σ12Σ22−1Σ22
给定样本 { x ( 1 ) , x ( 2 ) . . . . . x ( m ) } \{x^{(1)},x^{(2)}.....x^{(m)}\} {x(1),x(2).....x(m)},其中 x ( i ) ∈ R n x^{(i)}\in R^{n} x(i)∈Rn,我们希望对这些数据进行建模 P ( x ) P(x) P(x):
z ∼ N ( 0 , I ) z\sim N(0,I) z∼N(0,I)且 z ∈ R d z\in R^{d} z∈Rd
x = u + Λ Σ + ε x=u+\Lambda\Sigma+\varepsilon x=u+ΛΣ+ε 其总 ε ∼ N ( 0 , Ψ ) \varepsilon\sim N(0,\Psi) ε∼N(0,Ψ)
这里的参数 u ∈ R n u\in R^{n} u∈Rn, Λ ∈ R n × d \Lambda \in R^{n\times d} Λ∈Rn×d, Ψ ∈ R n × n \Psi \in R^{n\times n} Ψ∈Rn×n且其为对角矩阵。
x ∣ z ∼ N ( u + Λ z , Ψ ) x|z\sim N(u+\Lambda z,\Psi) x∣z∼N(u+Λz,Ψ)
[ z x ] ∼ N ( u z x , Σ ) = N ( [ 0 u ] , [ I Λ T Λ Λ Λ T + Ψ ] ) \left[\begin{array}{c}z\\x\end{array}\right]\sim N(u_{zx},\Sigma)=N(\left[\begin{array}{c}0\\u\end{array}\right],\left[\begin{array}{cc}I&\Lambda^T\\\Lambda&\Lambda\Lambda^T+\Psi\end{array}\right]) [zx]∼N(uzx,Σ)=N([0u],[IΛΛTΛΛT+Ψ])
我们知道 x ∼ N ( u , Λ Λ T + Ψ ) x\sim N(u,\Lambda\Lambda^T+\Psi) x∼N(u,ΛΛT+Ψ)
当给定样本 { x ( 1 ) , x ( 2 ) . . . . . x ( m ) } \{x^{(1)},x^{(2)}.....x^{(m)}\} {x(1),x(2).....x(m)},求其似然函数:
∏ i = 1 m P ( x ( i ) ; u , Λ , Ψ ) = 1 ( 2 π ) n / 2 ∣ Λ Λ T + Ψ ∣ exp ( − 1 2 ) ( x ( i ) − u ) T ( Λ Λ T + Ψ ) − 1 ( x ( i ) − u ) \prod_{i=1}^{m}P(x^{(i)};u,\Lambda,\Psi)=\frac{1}{(2\pi)^{n/2}|\Lambda\Lambda^T+\Psi|}\exp(-\frac{1}{2})(x^{(i)}-u)^T(\Lambda\Lambda^T+\Psi)^{-1}(x^{(i)}-u) i=1∏mP(x(i);u,Λ,Ψ)=(2π)n/2∣ΛΛT+Ψ∣1exp(−21)(x(i)−u)T(ΛΛT+Ψ)−1(x(i)−u)
可以对其求导,但是可以发现这样做十分困难,因此下面会通过EM方式对其进行求解,计算参数。
我们希望求出的参数是使 { x ( 1 ) , x ( 2 ) . . . . . x ( m ) } \{x^{(1)},x^{(2)}.....x^{(m)}\} {x(1),x(2).....x(m)}以最大概率出现,但存在隐变量 z z z因此:
max θ ∏ i = 1 m P ( x ( i ) ; θ ) = max θ ∏ i = 1 m ∫ z ( i ) P ( x ( i ) , z ( i ) ; θ ) d z ( i ) \max_{\theta}\prod_{i=1}^{m}P(x^{(i)};\theta)=\max_{\theta}\prod_{i=1}^{m}\int_{z^{(i)}}P(x^{(i)},z^{(i)};\theta)dz^{(i)} θmaxi=1∏mP(x(i);θ)=θmaxi=1∏m∫z(i)P(x(i),z(i);θ)dz(i)
EM求解
E step:
Q i ( z ( i ) ) = P ( z ( i ) ∣ x ( i ) ; θ ) Q_i(z^{(i)})=P(z^{(i)}|x^{(i)};\theta) Qi(z(i))=P(z(i)∣x(i);θ)
M step:
θ : = arg max θ ∑ i = 1 m ∫ z ( i ) Q i ( z ( i ) ) l o g P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) d z ( i ) \theta:=\arg \max_{\theta}\sum_{i=1}^{m}\int_{z^{(i)}}Q_{i}(z^{(i)})log\frac{P(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})}dz^{(i)} θ:=argθmaxi=1∑m∫z(i)Qi(z(i))logQi(z(i))P(x(i),z(i);θ)dz(i)
在E step中:
z ( i ) ∣ x ( i ) ∼ N ( u z ( i ) ∣ x ( i ) , Σ z ( i ) ∣ x ( i ) ) z^{(i)}|x^{(i)}\sim N(u_{z^{(i)}|x^{(i)}},\Sigma_{z^{(i)}|x^{(i)}}) z(i)∣x(i)∼N(uz(i)∣x(i),Σz(i)∣x(i))
其中 u z ( i ) ∣ x ( i ) = 0 ⃗ − Λ T ( Λ Λ T + Ψ ) − 1 ( x ( i ) − u ) u_{z^{(i)}|x^{(i)}}=\vec{0}-\Lambda^T(\Lambda\Lambda^T+\Psi)^{-1}(x^{(i)}-u) uz(i)∣x(i)=0−ΛT(ΛΛT+Ψ)−1(x(i)−u)
这里是和前面提到过的 u 1 ∣ 2 = u 1 + Σ 12 Σ 22 − 1 ( x 2 − u 2 ) u_{1|2}=u_1+\Sigma_{12}\Sigma_{22}^{-1}(x_2-u_2) u1∣2=u1+Σ12Σ22−1(x2−u2)一一对应的。
Σ z ( i ) ∣ x ( i ) = I − Λ T ( Λ Λ T + Ψ ) − 1 Λ \Sigma_{z^{(i)}|x^{(i)}}=I-\Lambda^T(\Lambda\Lambda^T+\Psi)^{-1}\Lambda Σz(i)∣x(i)=I−ΛT(ΛΛT+Ψ)−1Λ
这里是和前面提到过的 Σ 1 ∣ 2 = Σ 11 − Σ 12 Σ 22 − 1 Σ 22 \Sigma_{1|2}=\Sigma_{11}-\Sigma_{12}\Sigma_{22}^{-1}\Sigma_{22} Σ1∣2=Σ11−Σ12Σ22−1Σ22一一对应的。
在M step中如果我们将 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))的公式代入 ∫ z ( i ) Q i ( z ( i ) ) z ( i ) d z ( i ) \int_{z^{(i)}}Q_i(z^{(i)})z^{(i)}dz^{(i)} ∫z(i)Qi(z(i))z(i)dz(i):
∫ z ( i ) 1 ( 2 π ) k / 2 ∣ Σ z ( i ) ∣ x ( i ) ∣ exp ( − 1 2 ( z z ( i ) − u x ( i ) ∣ x ( i ) ) Σ z ( i ) ∣ x ( i ) ( z z ( i ) − u x ( i ) ∣ x ( i ) ) ) z ( i ) d z ( i ) \int_{z^{(i)}}\frac{1}{(2\pi)^{k/2}|\Sigma_{z^{(i)}|x^{(i)}}|}\exp(-\frac{1}{2}(z_{z^{(i)}-u_{x^{(i)}|x^{(i)}}})\Sigma_{z^{(i)}|x^{(i)}}(z_{z^{(i)}-u_{x^{(i)}|x^{(i)}}}))z^{(i)}dz^{(i)} ∫z(i)(2π)k/2∣Σz(i)∣x(i)∣1exp(−21(zz(i)−ux(i)∣x(i))Σz(i)∣x(i)(zz(i)−ux(i)∣x(i)))z(i)dz(i)
可以发现上式是极难求解的。
另一种方式是将其看做 z z z的期望 E z ∼ Q i [ z ( i ) ] = u z ( i ) ∣ x ( i ) E_{z\sim Q_i}[z^{(i)}]=u_{z^{(i)}|x^{(i)}} Ez∼Qi[z(i)]=uz(i)∣x(i)
E z ∼ Q i [ l o g P ( z ( i ) , x ( i ) ; θ ) Q i ( z ( i ) ) ] = E z ∼ Q i [ l o g P ( x ( i ) ∣ z ( i ) ; θ ) ] + E z ∼ Q i [ l o g P ( z ( i ) ) Q ( z ( i ) ) ] E_{z\sim Q_i}[log\frac{P(z^{(i)},x^{(i)};\theta)}{Q_i(z^{(i)})}]=E_{z\sim Q_i}[log{P(x^{(i)}|z^{(i)};\theta)}]+E_{z\sim Q_i}[log\frac{P(z^{(i)})}{Q(z^{(i)})}] Ez∼Qi[logQi(z(i))P(z(i),x(i);θ)]=Ez∼Qi[logP(x(i)∣z(i);θ)]+Ez∼Qi[logQ(z(i))P(z(i))]
上面的拆分是根据 P ( x ( i ) ∣ z ( i ) ) p ( z ( i ) ) = P ( x ( i ) z ( i ) ) P(x^{(i)}|z^{(i)})p(z^{(i)})=P(x^{(i)}z^{(i)}) P(x(i)∣z(i))p(z(i))=P(x(i)z(i))
上面式子中的两项只有第一项是含有参数的(这里的 Q i ( z ( i ) ) ∼ N ( u z ( i ) ∣ x ( i ) , Σ z ( i ) ∣ x ( i ) ) Q_i(z^{(i)})\sim N(u_{z^{(i)}|x^{(i)}},\Sigma_{z^{(i)}|x^{(i)}}) Qi(z(i))∼N(uz(i)∣x(i),Σz(i)∣x(i))但是这里的Q已经在E step计算出来固定了,因此不认为其存在参数),因而只需要将第一项参数最大化即可
在M step中
max
Λ
∑
i
=
1
m
E
[
l
o
g
P
(
x
(
i
)
∣
z
(
i
)
;
Λ
,
Ψ
,
u
)
]
\max_{\Lambda}\sum_{i=1}^{m}E[logP(x^{(i)}|z^{(i)};\Lambda,\Psi,u)]
Λmaxi=1∑mE[logP(x(i)∣z(i);Λ,Ψ,u)]
上式子中的 P ( x ( i ) ∣ z ( i ) ; Λ , Ψ , u ) P(x^{(i)}|z^{(i)};\Lambda,\Psi,u) P(x(i)∣z(i);Λ,Ψ,u)的分布为 x ( i ) ∣ z ( i ) ∼ N ( u + Λ z ( i ) , Ψ ) x^{(i)}|z^{(i)}\sim N(u+\Lambda z^{(i)},\Psi) x(i)∣z(i)∼N(u+Λz(i),Ψ)
优化后为:
∑
i
=
1
m
[
c
o
n
s
t
a
n
t
−
1
2
(
x
(
i
)
−
u
−
Λ
z
(
i
)
)
T
Ψ
−
1
(
x
(
i
)
−
u
−
Λ
z
(
i
)
)
]
\sum_{i=1}^{m}[constant-\frac{1}{2}(x^{(i)}-u-\Lambda z^{(i)})^T\Psi^{-1}(x^{(i)}-u-\Lambda z^{(i)})]
∑i=1m[constant−21(x(i)−u−Λz(i))TΨ−1(x(i)−u−Λz(i))]
对 Λ \Lambda Λ求导后得出:
Λ = ( ∑ i = 1 m ( x ( i ) − u ) E z ( i ) ∼ Q i [ z ( i ) T ] ) ( ∑ i = 1 m E z ( i ) ∼ Q i [ z ( i ) z ( i ) T ] ) − 1 \Lambda=(\sum_{i=1}^{m}(x^{(i)}-u)E_{z^{(i)}\sim Q_i}[z^{(i)T}])(\sum_{i=1}^{m}E_{z^{(i)}\sim Q_i}[z^{(i)}z^{(i)T}])^{-1} Λ=(i=1∑m(x(i)−u)Ez(i)∼Qi[z(i)T])(i=1∑mEz(i)∼Qi[z(i)z(i)T])−1
这里的 z ( i ) ∼ Q i z^{(i)}\sim Q_i z(i)∼Qi
E [ z ( i ) T ] = u z ( i ) ∣ x ( i ) T E[z^{(i)T}]=u_{z^{(i)}|x^{(i)}}^T E[z(i)T]=uz(i)∣x(i)T
如果说 z ∼ N ( u , Σ ) z\sim N(u,\Sigma) z∼N(u,Σ),那么 Σ = E z z T − E z ( E z ) T \Sigma=Ezz^T-Ez(Ez)^T Σ=EzzT−Ez(Ez)T进而有 E z z T = Σ + E z ( E z ) T Ezz^T=\Sigma+Ez(Ez)^T EzzT=Σ+Ez(Ez)T
因此第二项等于 Σ z ( i ) ∣ x ( i ) + u z ( i ) ∣ x ( i ) u z ( i ) ∣ x ( i ) T \Sigma_{z^{(i)}|x^{(i)}}+u_{z^{(i)}|x^{(i)}}u_{z^{(i)}|x^{(i)}}^T Σz(i)∣x(i)+uz(i)∣x(i)uz(i)∣x(i)T
主成分分析
给定样本 { x ( 1 ) , x ( 2 ) . . . . . x ( m ) } \{x^{(1)},x^{(2)}.....x^{(m)}\} {x(1),x(2).....x(m)}样本是 n n n维向量,将其转换为 k k k维数据( k < n k<n k<n)
上图中横轴标示开直升飞机的技术,纵轴标示开直升飞机的兴趣。其实这两者在一定程度上是相关的,我们可以将二维数据降维到一维子空间。上图中的
u
1
u_1
u1就是我们想要找的方向,而
u
2
u_2
u2可以被认为是噪音。
数据的预处理
- 计算 u = 1 m ∑ i = 1 m x ( i ) u=\frac{1}{m}\sum_{i=1}^{m}x^{(i)} u=m1∑i=1mx(i)
- 中心化 x ( i ) ⇒ x ( i ) = x ( i ) − u x^{(i)}\Rightarrow x^{(i)}=x^{(i)}-u x(i)⇒x(i)=x(i)−u
- 计算数据的方差 σ j 2 = 1 m ∑ i = 1 m ( x j ( i ) ) 2 \sigma_j^2=\frac{1}{m}\sum_{i=1}^{m}(x_{j}^{(i)})^2 σj2=m1∑i=1m(xj(i))2
- 标准化 x j ( i ) = x j ( i ) σ j x_j^{(i)}=\frac{x_j^{(i)}}{\sigma_j} xj(i)=σjxj(i)
对数据进行标准化主要是去除数据单位不同带来的影响。
如果 ∥ u ∥ = 1 \|u\|=1 ∥u∥=1,那么向量 x ( i ) x^{(i)} x(i)投影到 u u u上,其长度为 x ( i ) T u x^{(i)T}u x(i)Tu
如何找到我们想要的
u
u
u,首先要知道我们的目的是降低维度,降低维度并不能将数据信息大量丢失,因此我们我们需要找到一个方向使得数据投影到这个方向上数据特征尽量被保留即投影得到的点尽量分散。上面两个图明显第一个图是我们想要的,因为其保留了数据更多原有的特征。
选择 u u u
max ∥ u ∥ = 1 1 m ∑ i = 1 m ( x ( i ) T u ) 2 = 1 m ∑ i = 1 m u T x ( i ) x ( i ) T u = u T [ 1 m ∑ i = 1 m x ( i ) x ( i ) T ] u \max_{\|u\|=1}\frac{1}{m}\sum_{i=1}^{m}(x^{(i)T}u)^2=\frac{1}{m}\sum_{i=1}^{m}u^Tx^{(i)}x^{(i)T}u=u^T[\frac{1}{m}\sum_{i=1}^{m}x^{(i)}x^{(i)T}]u ∥u∥=1maxm1i=1∑m(x(i)Tu)2=m1i=1∑muTx(i)x(i)Tu=uT[m1i=1∑mx(i)x(i)T]u
我们知道如果 A u = λ u Au=\lambda u Au=λu那么 λ \lambda λ被成为特征值而 u u u被称为 A A A的特征向量。根据上式可知 u u u是 Σ = x ( i ) x ( i ) T \Sigma=x^{(i)}x^{(i)T} Σ=x(i)x(i)T中的主特征向量。
max
u
T
Σ
u
\max u^T\Sigma u
maxuTΣu
s
.
t
∥
u
∥
=
1
s.t \|u\|=1
s.t∥u∥=1
因此有 L ( u , λ ) = u T Σ u − λ ( u T u − 1 ) L(u,\lambda)=u^T\Sigma u-\lambda(u^Tu-1) L(u,λ)=uTΣu−λ(uTu−1)
对上式求导 ▽ u L = Σ u − λ u \bigtriangledown_{u}L=\Sigma u-\lambda u ▽uL=Σu−λu令其等于0 ⇒ Σ u = λ u \Rightarrow \Sigma u=\lambda u ⇒Σu=λu,那么 u u u就是 Σ \Sigma Σ的特征向量。
PCA有中解释可以理解为是寻找样本点到目标空间距离平方和最小的子空间。
如果说我们像将 n n n维数据投影到 k k k维空间我们需要选择 Σ \Sigma Σ的前 k k k个特征向量 u 1 , u 2 , . . . . u k u_1,u_2,....u_k u1,u2,....uk。那么将这 k k k个特征向量重新表示数据就是 y ( i ) = u 1 T x ( i ) + u 2 T x ( i ) + . . . . + u k T x ( i ) y^{(i)}=u_1^Tx^{(i)}+u_2^Tx^{(i)}+....+u_k^Tx^{(i)} y(i)=u1Tx(i)+u2Tx(i)+....+ukTx(i)
PAC的主要应用
- 数据可视化(高维度降到低维可视)
- 数据压缩
- 学习(降低维度可以减少过拟合的可能性)
- 异常检测(远离子空间的点)
- 匹配/距离计算(相似人脸识别)
例如有人脸图片数据为 100 × 100 100\times 100 100×100那么一条数据就是一万维,实际上那么多像素并不是都是用来标示人脸的,因此我们可以将数据投影到子空间,例如50维子空间。当输入人脸时可以检索数据库找出在子空间中与这个人脸最近似的人脸图片。