非监督学习,簇,混合模型,矩阵填充
在第九章,小弟分享了常见的可监督学习的机器学习模型,在第十章,小弟将分享一些非监督学习的机器学习模型。
一. 非监督学习(Unsupervised learning)
假如我们有这么一把数据,即如下:
Y
=
(
y
1
y
2
.
.
.
y
n
)
=
(
y
(
1
,
1
)
,
y
(
1
,
2
)
,
.
.
.
,
y
(
1
,
q
)
y
(
2
,
1
)
,
y
(
2
,
2
)
,
.
.
.
,
y
(
2
,
q
)
.
.
.
y
(
n
,
1
)
,
y
(
n
,
2
)
,
.
.
.
,
y
(
n
,
q
)
)
Y=\begin{pmatrix} y_1\\ y_2 \\ ...\\ y_n\\ \end{pmatrix}=\begin{pmatrix} y_{(1,1)},y_{(1,2)},...,y_{(1,q)}\\ y_{(2,1)},y_{(2,2)},...,y_{(2,q)} \\ ...\\ y_{(n,1)},y_{(n,2)},...,y_{(n,q)}\\ \end{pmatrix}
Y=⎝⎜⎜⎛y1y2...yn⎠⎟⎟⎞=⎝⎜⎜⎛y(1,1),y(1,2),...,y(1,q)y(2,1),y(2,2),...,y(2,q)...y(n,1),y(n,2),...,y(n,q)⎠⎟⎟⎞
我们有n个个体,即n行,有q个变量,但是不像监督学习,我们是没有目标变量的,也就是没有我们想预测的变量。那么我们需要研究这把数据的结构,这就是非监督学习。
非监督学习可以用在:
1.分类,区分个体,例如动物的种类
2.填充丢失的数据,例如有些个体的数据在传输过程中因为噪音而丢失或者被改变。
3.图片处理,例如压缩,图像识别,移除噪音
现在我们来看看非监督学习和监督学习的区别
监督学习:
有目标变量即
Y
Y
Y,和变量
X
1
,
X
2
,
.
.
.
,
X
p
X_1,X_2,...,X_p
X1,X2,...,Xp
对于监督学习,在概率的角度上来看,它其实是条件分布:
P
(
Y
∣
X
1
,
X
2
,
.
.
,
X
p
)
P(Y|X_1,X_2,..,X_p)
P(Y∣X1,X2,..,Xp)
在模型的角度上看,它其实是在寻找
Y
Y
Y与
X
1
,
X
2
,
.
.
.
,
X
p
X_1,X_2,...,X_p
X1,X2,...,Xp的关系。
非监督学习:
仅仅有变量
X
1
,
X
2
,
.
.
.
,
X
p
X_1,X_2,...,X_p
X1,X2,...,Xp
对于监督学习,在概率的角度上来看,它其实是联合分布:
P
(
X
1
,
X
2
,
.
.
.
,
X
p
)
P(X_1,X_2,...,X_p)
P(X1,X2,...,Xp)
在模型的角度上来看,它其实在寻找变量
X
1
,
X
2
,
.
.
.
,
X
p
X_1,X_2,...,X_p
X1,X2,...,Xp的内在关系。
现在开始介绍我们的第一个非监督模型,簇也叫聚类
二. 簇/聚类(Clustering)
假如我们有一大把数据(即总体),现在告诉我们这个总体可以被分为K个子部分,我们的目标就是找出这个K具体值,以及用模型找到这K个子部分。在过去,这种应用叫做内在分类(intrinsic classification),说白了就是发现数据的内在结构从而进行标签分类。
K均值聚类
举个例子:
假如我们有K个点,这K个点其实是均值,也其实是图形的心即形心。那么我们就有了K类,即:
M
=
(
μ
1
μ
2
.
.
.
μ
K
)
=
(
μ
(
1
,
1
)
,
.
.
.
,
μ
(
1
,
q
)
.
.
.
μ
(
K
,
1
)
.
.
.
,
μ
(
K
,
q
)
)
M=\begin{pmatrix} \mu_1\\ \mu_2 \\ ...\\ \mu_K\\ \end{pmatrix}=\begin{pmatrix} \mu_{(1,1)},...,\mu_{(1,q)}\\ ...\\ \mu_{(K,1)}...,\mu_{(K,q)}\\ \end{pmatrix}
M=⎝⎜⎜⎛μ1μ2...μK⎠⎟⎟⎞=⎝⎛μ(1,1),...,μ(1,q)...μ(K,1)...,μ(K,q)⎠⎞
假如我们有这么一张散地图,即如下:
通过我们的观察也知道K均值聚类的K=2,两个形心
μ
1
,
μ
2
\mu_1,\mu_2
μ1,μ2,即下图:
图中的蓝色×号和红色×号即为我们的2个形心,即
μ
1
,
μ
2
\mu_1,\mu_2
μ1,μ2,我们便将数据分为了两类。
K均值聚类的逻辑:
第一步:通过观察数据,我们通过我们的第六感来估摸着给个K值,即多少个形心。
第二步:随便给我们的形心 μ 1 , μ 2 , . . . , μ K \mu_1,\mu_2,...,\mu_K μ1,μ2,...,μK赋值。
第三步:分别计算数据(全部数据)和形心距离,即利用两点间距离公式(欧几里得距离):
d
k
(
i
)
=
(
∑
j
=
1
q
(
y
i
,
j
−
μ
k
,
j
)
)
1
2
,
k
∈
K
d_k(i)=(\sum_{j=1}^{q}(y_{i,j}-\mu_{k,j}))^{\frac{1}{2}},k∈K
dk(i)=(j=1∑q(yi,j−μk,j))21,k∈K
第四步:将最靠近该对应形心的数据摘出来,再利用该摘出来的数据重新估计对应的形心的值,返回第三步,当循环多次第三步,第四步后,估计形心的值比较稳定时,到第五步。
第五步:看看是否我们的K值,即多少个分类能够诠释数据内部结构,再进行K=K+1或者K=K-1去掉其中一个形心 μ k \mu_k μk,返回至第三步。
当然了这个逻辑有两个问题:
1.容易局部最小值
2.初始的形心值很容易造成我们最终结果的不同,也就是对于初始形心值较敏感。
如果我们定义了K=3,3个形心,我们初始这三个形心的具体值,即如下图的三个×号。
经过第三步和第四步反复的收敛,这三个形心的值会逐渐稳定,便会得到下图:
如果我们初始的形心值不好的话,经过第三步和第四步反复的收敛,会得到下图:
对于聚类,我们也有很多的测量相似度的办法,不仅仅光有欧几里得距离,还有权重欧几里得距离,曼哈顿距离,汉明距离(纯二进制数据,被用在信息传输和计算机网络安全方面),等等。
对于聚类,还有一些潜在问题, 如何适当的选取K值,即适当的类/形心很难处理混合的变量数据。另一个问题则是一个变量具有连续和离散两种不同的类型的数据。
对于处理混合的变量数据,混合模型是个不错的选择。
三.混合模型(Mixture Modelling)
混合模型顾名思义,是一种可以诠释混合概率分布的模型,即如下:
p
(
y
i
,
j
)
=
∑
k
=
1
K
α
k
p
(
y
i
,
j
∣
θ
k
,
j
)
p(y_{i,j})=\sum_{k=1}^{K}\alpha_kp(y_{i,j}|\theta_{k,j})
p(yi,j)=k=1∑Kαkp(yi,j∣θk,j)
上述公式中:
K意味着类的数量。
α
=
(
α
1
,
α
2
,
.
.
.
,
α
k
)
\alpha=(\alpha_1,\alpha_2,...,\alpha_k)
α=(α1,α2,...,αk)是权重(其实是先验概率)
θ
k
,
j
\theta_{k,j}
θk,j是分布的参数,即第k类里关于变量j的分布参数
很抽象是么,我们来举个例子,一元高斯(正态分布)混合模型
上图是K=2,两类,即两个正态分布组成的。结合我们上面的聚类,我们可以把数据分为两类,一类属于
N
(
μ
=
4.3
,
σ
2
=
0.4
∗
0.4
)
N(\mu=4.3,\sigma^2=0.4*0.4)
N(μ=4.3,σ2=0.4∗0.4),一类属于
N
(
μ
=
6.2
,
σ
2
=
0.5
∗
0.5
)
N(\mu=6.2,\sigma^2=0.5*0.5)
N(μ=6.2,σ2=0.5∗0.5).
假如我们有一个数据点,那么如何测量这个数据点和第k类相似呢?我们会利用这个公式:
p
k
(
y
i
)
=
Π
k
=
1
q
p
(
y
i
,
j
∣
θ
k
,
j
)
p_k(y_i)=\Pi_{k=1}^{q}p(y_{i,j}|\theta_{k,j})
pk(yi)=Πk=1qp(yi,j∣θk,j)
对于正态分布模型,它就是欧几里得距离。
对于非正态分布模型(例如伯努利,泊松),它通常是欧几里得变化而来的,在高等数据分析里它其实和库尔贝科差异(Kullback-Leibler divergence)是有关系的。
那么我们如何计算这个数据点属于某个类的概率呢?这里我们将用到贝叶斯理论,小弟稍微介绍两个知识点。
先验概率:说白了就是,没看数据之前你觉的这个数据点属于某个类概率的概率是多少,有的同学说,那我们咋知道,没关系,我们可以用 α \alpha α分布或者 β \beta β或者 γ \gamma γ分布作为我们的第6感,用这样的分布来估计下它产生的概率。有些同学会觉得很离谱,但这个知识点说来话长了,初学者可以先用这个说方法理解下。
后验概率:看完数据后你觉得这个数据点属于某个类的概率是多少
那么这个数据点属于第k类的概率为,即计算后验概率:
γ
i
,
k
=
α
k
p
k
(
y
i
)
∑
l
=
1
K
α
l
p
l
(
y
i
)
\gamma_{i,k}=\frac{\alpha_kp_k(y_i)}{\sum_{l=1}^{K}\alpha_lp_l(y_i)}
γi,k=∑l=1Kαlpl(yi)αkpk(yi)
α
k
\alpha_k
αk是先验概率,第6感觉得该数据点属于k类的概率。
p
k
(
y
i
)
p_k(y_i)
pk(yi)意思是将
y
i
y_i
yi带入k类那个分布上去,即该数据点在这个k类下的概率,即我们讲到的相似度
大家肯定迷迷糊糊的,小弟当初学习这个知识的时候也很不明白,这不是我们的错,是因为教科书排版的问题,贝叶斯统计属于高等数据分析的内容,小弟是根据上学的教课书为基础来和大家分享的。
小弟在此举个高斯混合模型的例子,供大家理解:
一元高斯混合模型
一元高斯混合模型就是由K个一元高斯分布组成的即K类,它属于聚类算法。假设我们的数据只有一个变量即1列,n排,即n个个体,那么一元混合概率分布模型公式可写成:
p
(
y
)
=
∑
k
=
1
K
p
(
k
)
p
(
y
∣
θ
k
)
=
∑
k
=
1
K
π
k
N
(
y
∣
μ
k
,
∑
k
)
p(y)=\sum_{k=1}^{K}p(k)p(y|\theta_k)=\sum_{k=1}^{K}\pi_kN(y|\mu_k,\sum_k)
p(y)=k=1∑Kp(k)p(y∣θk)=k=1∑KπkN(y∣μk,k∑)
那么怎么生成数据?我们可以看到每个类都有自己的概率即前面的系数
π
k
\pi_k
πk,那么我们选中了其中的一个类,在这个类里取点就行了,按照这个类的高斯分布取点。
假设我们的数据服从高斯分布(正态分布) p ( y ) p(y) p(y),那么我们要估计这里面的参数 π k , μ k , ∑ k \pi_k,\mu_k,\sum_k πk,μk,∑k,对没错利用似然方程 Π i = 1 n p ( y i ) \Pi_{i=1}^{n}p(y_i) Πi=1np(yi),还是那句话为了计算方便,并且因为很小的数字连乘造成计算机浮点数下溢出,采用log似然,即 ∑ i = 1 N l o g p ( y i ) = ∑ i = 1 N l o g ( ∑ k = 1 K π k N ( y i ∣ μ k , ∑ k ) ) \sum_{i=1}^{N}logp(y_i)=\sum_{i=1}^{N}log(\sum_{k=1}^{K}\pi_kN(y_i|\mu_k,\sum_k)) ∑i=1Nlogp(yi)=∑i=1Nlog(∑k=1KπkN(yi∣μk,∑k)),之后利用求偏导计算估计出参数。
计算
y
i
y_i
yi由第k类产生的概率:
γ
i
,
k
=
π
k
N
(
y
i
∣
μ
k
,
∑
k
)
∑
l
=
1
K
π
l
N
(
y
i
∣
μ
j
,
∑
j
)
\gamma_{i,k}=\frac{\pi_kN(y_i|\mu_k,\sum_k)}{\sum_{l=1}^{K}\pi_lN(y_i|\mu_j,\sum_j)}
γi,k=∑l=1KπlN(yi∣μj,∑j)πkN(yi∣μk,∑k)
多元高斯/正态分布(Multivariate Normal Distribution)
多元高斯分布其实在混合模型里是极其重要的,为了理解多元高斯混合模型模型,我们这里讲解下多元高斯分布。
假设有n个变量, Y = ( Y 1 , Y 2 , . . . , Y n ) Y=(Y_1,Y_2,...,Yn) Y=(Y1,Y2,...,Yn),互相独立,且服从高斯分布,那么各个维度的均值 μ = ( μ 1 , μ 2 , . . . . , μ n ) \mu=(\mu_1,\mu_2,....,\mu_n) μ=(μ1,μ2,....,μn),方差 σ 2 = ( σ 1 2 , σ 2 2 , . . . , σ n 2 ) \sigma^2=(\sigma^2_1,\sigma^2_2,...,\sigma^2_n) σ2=(σ12,σ22,...,σn2)
那么,如果一个变量服从一个高斯分布,它有它的产生概率,那么多个变量服从不同的高斯分布,那么它们产生的概率自然是乘在一起,即联合概率:
p
(
Y
1
,
Y
2
,
.
.
,
Y
n
)
=
1
(
2
π
)
n
Π
i
=
1
n
σ
i
e
−
(
∑
i
=
1
n
(
Y
i
−
μ
i
)
2
2
(
σ
i
)
2
)
p(Y_1,Y_2,..,Y_n)=\frac{1}{(\sqrt{2\pi})^n\Pi_{i=1}^n\sigma_i}e^{-(\sum_{i=1}^{n}\frac{(Y_i-\mu_i)^2}{2(\sigma_{i})^2})}
p(Y1,Y2,..,Yn)=(2π)nΠi=1nσi1e−(∑i=1n2(σi)2(Yi−μi)2)
这公式看的头大,我们令:
z
2
=
(
∑
i
=
1
n
(
Y
i
−
μ
i
)
2
(
σ
i
)
2
)
z^2=(\sum_{i=1}^{n}\frac{(Y_i-\mu_i)^2}{(\sigma_{i})^2})
z2=(i=1∑n(σi)2(Yi−μi)2)
σ
z
=
Π
i
=
1
n
σ
i
\sigma_z=\Pi_{i=1}^n\sigma_i
σz=Πi=1nσi
那么得:
1
(
2
π
)
n
σ
z
e
−
z
2
2
\frac{1}{(\sqrt{2\pi})^n\sigma_z}e^{-\frac{z^2}{2}}
(2π)nσz1e−2z2
这就是多元高斯分布,是不是看的根一元高斯分布很像,但多元高斯分布是3D图像,有着极强的几何思想,我们要利用矩阵形式再转换下。
z
2
=
z
T
z
=
[
Y
1
−
μ
1
,
Y
2
−
μ
2
,
.
.
.
.
,
Y
n
−
μ
n
]
[
1
σ
1
2
,
0
,
⋯
,
0
0
,
1
σ
2
2
⋯
,
0
.
.
.
.
.
.
.
0
,
0
,
⋯
,
1
σ
n
2
]
[
Y
1
−
μ
1
,
Y
2
−
μ
2
,
.
.
.
.
,
Y
n
−
μ
n
]
T
z^2=z^Tz=[Y_1-\mu_1,Y_2-\mu_2,.... ,Y_n-\mu_n]\begin{bmatrix} \frac{1}{\sigma^2_1} ,0, \cdots,0 \\ 0,\frac{1}{\sigma^2_2}\cdots ,0\\ ....... \\ 0,0,\cdots,\frac{1}{\sigma^2_n}\\ \end{bmatrix}[Y_1-\mu_1,Y_2-\mu_2,.... ,Y_n-\mu_n]^T
z2=zTz=[Y1−μ1,Y2−μ2,....,Yn−μn]⎣⎢⎢⎢⎡σ121,0,⋯,00,σ221⋯,0.......0,0,⋯,σn21⎦⎥⎥⎥⎤[Y1−μ1,Y2−μ2,....,Yn−μn]T
令:
∑
=
[
σ
1
2
,
0
,
⋯
,
0
0
,
σ
2
2
⋯
,
0
.
.
.
.
.
.
.
0
,
0
,
⋯
,
σ
n
2
]
\sum=\begin{bmatrix} {\sigma^2_1} ,0, \cdots,0 \\ 0,{\sigma^2_2}\cdots ,0\\ ....... \\ 0,0,\cdots,{\sigma^2_n}\\ \end{bmatrix}
∑=⎣⎢⎢⎡σ12,0,⋯,00,σ22⋯,0.......0,0,⋯,σn2⎦⎥⎥⎤
这个是变量的协方差矩阵,即在i行j列意味着
Y
i
Y_i
Yi与
Y
j
Y_j
Yj的协方差即
∑
i
,
j
=
c
o
v
(
Y
i
,
Y
j
)
\sum_{i,j}=cov(Y_i,Y_j)
∑i,j=cov(Yi,Yj),因为变量间独立所有除了对角线,其余均为0. 在对角线上变量自己的协方差就是方差。
那么,
∑
\sum
∑的逆矩阵为:
(
∑
)
−
1
=
[
1
σ
1
2
,
0
,
⋯
,
0
0
,
1
σ
2
2
⋯
,
0
.
.
.
.
.
.
.
0
,
0
,
⋯
,
1
σ
n
2
]
(\sum)^{-1}=\begin{bmatrix} \frac{1}{\sigma^2_1} ,0, \cdots,0 \\ 0,\frac{1}{\sigma^2_2}\cdots ,0\\ ....... \\ 0,0,\cdots,\frac{1}{\sigma^2_n}\\ \end{bmatrix}
(∑)−1=⎣⎢⎢⎢⎡σ121,0,⋯,00,σ221⋯,0.......0,0,⋯,σn21⎦⎥⎥⎥⎤
因为对角矩阵的行列式为对角元素的乘积,那么:
σ
z
=
∣
(
∑
)
−
1
∣
1
2
=
Π
i
=
1
n
σ
i
\sigma_z=|(\sum)^{-1}|^\frac{1}{2}=\Pi_{i=1}^n\sigma_i
σz=∣(∑)−1∣21=Πi=1nσi
那么我们最终的多元高斯分布公式为:
(
1
2
π
)
n
2
∣
(
∑
)
−
1
∣
e
−
1
2
(
Y
−
μ
)
T
(
∑
)
−
1
(
Y
−
μ
)
(\frac{1}{2\pi})^\frac{n}{2}\sqrt{|(\sum)^{-1}|} e^{-\frac{1}{2}(Y-\mu)^T(\sum)^{-1}(Y-\mu)}
(2π1)2n∣(∑)−1∣e−21(Y−μ)T(∑)−1(Y−μ)
我们可以看到,从一维增加到n维,每次增加一维,高度(概率)缩减 2 π \sqrt{2\pi} 2π倍。从高斯分布转换为标准高斯/正态分布高度(概率)压缩 ∣ ∑ ∣ 1 2 |\sum|^{\frac{1}{2}} ∣∑∣21倍。
二元高斯分布图,因为有两个变量,所以为3D图像:
现在我们从顶部往下看这张图:
μ
=
(
0
,
0
)
,
∑
=
(
1
,
0
0
,
1
)
\mu=(0,0),\sum=\begin{pmatrix} 1,0\\ 0,1\\ \end{pmatrix}
μ=(0,0),∑=(1,00,1)
但很多时候,在现实中变量和变量之间是有关系的,即如下图:
μ
=
(
2
,
0
)
,
∑
=
(
1
,
−
0.9
−
0.9
,
1
)
\mu=(2,0),\sum=\begin{pmatrix} 1,-0.9\\ -0.9,1\\ \end{pmatrix}
μ=(2,0),∑=(1,−0.9−0.9,1)
但是,我们之前讨论的多元正态分布均是变量之间独立,即协方差除了对角线其余均为0.那么我们需要改变坐标系,使变化后的变量之间成互相独立,这样我们才能套用我们的多元正态分布公式,得到概率。这个过程叫做去相关性,也叫归化。
以上图红线所示,作为新的坐标系。
假设原坐标系上任意一点为
(
y
1
,
y
2
)
(y_1,y_2)
(y1,y2)
新的坐标系上任意一点为
(
y
1
′
,
y
2
′
)
(y_1',y_2')
(y1′,y2′)
那么,它们俩之间的关系为:
Y
′
=
U
T
Y
=
[
x
1
′
x
2
′
]
=
[
u
x
1
0
,
u
x
2
0
u
x
1
1
,
u
x
2
1
]
T
[
x
1
x
2
]
Y'=U^TY=\begin{bmatrix} x'_1\\ x'_2\\ \end{bmatrix}=\begin{bmatrix} u^0_{x1},u^0_{x2}\\ u^1_{x1},u^1_{x2}\\ \end{bmatrix}^T\begin{bmatrix} x_1\\ x_2\\ \end{bmatrix}
Y′=UTY=[x1′x2′]=[ux10,ux20ux11,ux21]T[x1x2]
这里的
U
U
U即为映射矩阵,
U
U
U的列空间即为新的坐标向量。
那么在这个新的坐标下,
μ
′
=
(
μ
1
′
,
μ
2
′
)
\mu'=(\mu'_1,\mu'_2)
μ′=(μ1′,μ2′)是很好算的:
μ
′
=
E
[
U
T
Y
]
=
U
T
E
[
Y
]
=
U
T
μ
\mu'=E[U^TY]=U^TE[Y]=U^T\mu
μ′=E[UTY]=UTE[Y]=UTμ。
难点在于如何算 Y ′ Y' Y′协方差即 ∑ \sum ∑,这样我们才能带入我们的多元高斯模型。
计算映射后的协方差:
σ
y
′
=
E
[
(
Y
′
−
μ
′
)
(
Y
′
−
μ
′
)
T
]
=
E
[
(
Y
′
−
μ
′
)
(
Y
′
T
−
μ
′
T
)
]
=
E
[
U
T
Y
Y
T
U
−
E
[
U
T
Y
]
Y
T
U
−
U
T
Y
E
[
U
T
Y
]
T
+
E
[
U
T
Y
]
E
[
U
T
Y
]
T
]
=
U
T
E
[
Y
Y
T
−
E
(
Y
)
Y
T
−
Y
E
[
Y
]
T
+
E
[
Y
]
E
[
Y
]
T
]
U
=
U
T
σ
y
U
\sigma_{y'}=E[(Y'-\mu')(Y'-\mu')^T]=E[(Y'-\mu')(Y'^T-\mu'^T)]=E[U^TYY^TU-E[U^TY]Y^TU-U^TYE[U^TY]^T+E[U^TY]E[U^TY]^T]=U^TE[YY^T-E(Y)Y^T-YE[Y]^T+E[Y]E[Y]^T]U=U^T\sigma_y U
σy′=E[(Y′−μ′)(Y′−μ′)T]=E[(Y′−μ′)(Y′T−μ′T)]=E[UTYYTU−E[UTY]YTU−UTYE[UTY]T+E[UTY]E[UTY]T]=UTE[YYT−E(Y)YT−YE[Y]T+E[Y]E[Y]T]U=UTσyU
所以:
(
∑
)
y
′
=
U
T
(
∑
)
y
U
(\sum)_{y'}=U^T(\sum)_yU
(∑)y′=UT(∑)yU
我们可以看出
(
∑
)
y
′
(\sum)_{y'}
(∑)y′和
(
∑
)
y
(\sum)_y
(∑)y为相似矩阵,所以,相似矩阵行列式相等,即:
∣
(
∑
)
y
′
∣
=
∣
(
∑
)
y
∣
|(\sum)_{y'}|=|(\sum)_y|
∣(∑)y′∣=∣(∑)y∣
另外:
(
∑
)
y
′
−
1
=
(
U
T
(
∑
)
y
U
)
−
1
=
(
U
−
1
(
∑
)
y
U
)
−
1
=
U
−
1
(
∑
)
y
−
1
U
=
U
T
(
∑
)
y
−
1
U
(\sum)^{-1}_{y'}=(U^T(\sum)_yU)^{-1}=(U^{-1}(\sum)_yU)^{-1}=U^{-1}(\sum)^{-1}_yU=U^T(\sum)^{-1}_yU
(∑)y′−1=(UT(∑)yU)−1=(U−1(∑)yU)−1=U−1(∑)y−1U=UT(∑)y−1U
那么到目前为止,我们有了 ( ∑ ) y ′ − 1 (\sum)^{-1}_{y'} (∑)y′−1, ∣ ( ∑ ) y ′ ∣ |(\sum)_{y'}| ∣(∑)y′∣, μ ′ \mu' μ′, ( ∑ ) y ′ (\sum)_{y'} (∑)y′,带入到多元正态分布里去即可,得到概率。
多元高斯混合模型(Multivariate Normal Mixture Model)
到目前为止,关于混合模型我们仅仅涉及到了一元高斯混合模型,其实在现实中,多元高斯混合模型是最常见的(其实还有多元泊松混合模型等等,但都大同小异,因为中心极限定律,最终还是多元正态/高斯混合模型)。一元高斯混合模型,其实是一元高斯分布的混合,即为平面2D图像,这时我们仅仅有一个变量(一元)。当我们有很多变量(多元),都服从不同的分布,在每一个变量(一元)中又是由几个不同的一元高斯分布混合而成的,这就是多元高斯混合模型。举个例子,假如我们有两个变量,每个变量服从一元高斯混合分布,那么我们最终的图像是一个3D图像,如下图(二元高斯混合模型):
上图中,宽和长这两个轴是我们的两个变量,高这个轴是概率,这个概率即为联合概率.
估计混合模型
1.估计参数
当我们有个混合模型,我们需要估计它的参数:
−
∑
i
=
1
n
γ
i
,
k
∑
j
=
1
q
l
o
g
p
(
y
i
,
j
∣
θ
k
,
j
)
-\sum_{i=1}^{n}\gamma_{i,k}\sum_{j=1}^{q}logp(y_{i,j}|\theta_{k,j})
−i=1∑nγi,kj=1∑qlogp(yi,j∣θk,j)
即负log似然,求偏导,估计参数。
我们需要用到期望最大化逻辑(Expectation-maximisation. EM),也叫做EM逻辑:
第一步: 估计出
θ
k
,
j
\theta_{k,j}
θk,j,利用上述负log似然公式
第二步:重新计算
γ
i
,
k
\gamma_{i,k}
γi,k,利用第一步估计的参数
第三步:如果估计不稳定,则返回第一步
2.寻找K类
找到K类其实比较困难,很容易陷入局部最小值。
迭代(找到K值根据最小拟合度方程例如似然){
-移除较少数据的类
-尝试区分所有类
-尝试结合某一对的类
-随机分配数据给我们的类,重新估计}
大家也可以看到,上述利用迭代方法找K值,其实很蠢。更高深的估计混合模型的方法有很多,例如 利用信息准则估计模型的复杂度即多少类,还有一种很热门的方法叫做最小消息长度(minimum message length)来估计混合模型,小弟在此也很自豪的推荐曾经在我们学校C.S.Wallace教授写的关于最小消息长度的论文方法,谷歌查询minimum message length by C.S.Wallace。利用了信息理论的相关知识。寻找K值其实是个世纪难点,大家感兴趣的话可以在读博士期间与导师研究这个问题,小弟也愿意向各位学习如何避免局部最小值找到K值。
四. 矩阵填充(Matrix Completion)
假如我们有一把数据 Y Y Y,列为变量,行为个体.当然了,这把数据可以看成一个矩阵。但有些数据丢失了,并且无法测量和找回。这个时候我们会用到矩阵填充的方法,估计出这些丢失的数据。
在矩阵填充里有个前提,即个体是独立,但变量之间是有关系的。利用变量之间的关系,从而估计出丢失的数据。
这里有两个关于矩阵填充的应用:
1.缺失值处理(imputation)
这个应用是处理有关矩阵特征对于监督学习的问题。大部分监督学习是无法处理丢失数据的。虚拟估算虚拟值可以填充整个矩阵,从而供我们使用。
2.推荐系统(recommender systems)
举个例子,假如系统记录了你浏览物品的次数,例如在某宝上,浏览了100次电脑商品,10次图书商品,?次衣服商品。推荐系统将估计出你浏览了多少次衣服的相关商品。
单变量的缺失值处理方法:
这个方法很快,很简单,忽视其他变量的关系,单单关注于一个变量里的丢失数据。利用比较稳定的统计方法来估计这个丢失值,例如均值,中间值。
多元正态分布处理缺失值:
这个方法注意了变量与变量之间的关系,结合两两变量间的相关系数,估计缺失值。当然也可以利用我们上述的多元高斯混合模型来估计缺失值,即利用聚类的方法。
K近邻逻辑处理缺失值:
举个很简单的例子:
A | B | C |
---|---|---|
2 | 4 | 2 |
4 | 1 | 5 |
4 | ? | 4 |
根据第三行的个体当中的A变量=4和C变量=4对比其他个体当中的A变量和C变量的值。我们发现,第二行的个体中A变量=4,C变量=5与第三行A变量=4和C变量=4的相似度很大,那么我们估计第三行个体中的B应为1
五. 结语
有公式推导错误的或理论有谬误的,请大家指出,我好及时更正,感谢。