[TOC]
2 无监督学习(Unsupervised Learning)
无监督学习的目的是寻找无标签数据
x
(
1
)
,
.
.
.
,
x
(
m
)
中的隐藏模式。
Jensen不等式(Jensen’s inequality)
记
f
为凸函数(convex function),$X$ 为随机变量。我们得到如下不等式:
E
[
f
(
X
)
]
⩾
f
(
E
[
X
]
)
2.2.1 最大期望算法(Expectation-Maximization)
隐变量是隐藏或不可观测的变量,它使得估计问题更困难,通常用
z
表示。下表是存在隐变量时最常用的设置:
| 设置 | 隐变量
z
|
x
|
z
| 备注 |
| :---------------------------------------: | :----------------: | :--------------------------------: | :----------------------------------: |
|
k
高斯混合模型(Mixture of k Gaussians ) | 多项的($\phi$) |
N
(
μ
j
,
∑
j
)
|
μ
j
∈
R
n
,
ϕ
∈
R
k
|
| 因子分析(Factor analysis) |
N
(
0
,
I
)
|
N
(
μ
+
Λ
z
,
ψ
)
|
μ
j
∈
R
n
|
最大期望算法(Expectation-Maximization,EM)通过重复构建似然下界(E-step),并优化下界(M-step)来给出通过MLE参数
θ
的有效方法,如下:
E-step :估计簇
z
(
i
)
中每个数据点
x
(
i
)
的后验概率(posterior probability)
Q
i
(
z
(
i
)
)
,如下:
Q
i
(
z
(
i
)
)
=
P
(
z
(
i
)
|
x
(
i
)
;
θ
)
M-step :使用后验概率
Q
i
(
z
(
i
)
)
作为簇在数据点
x
(
i
)
的权重,去分别重新估计每个簇,如下:
θ
i
=
a
r
g
m
a
x
θ
∑
i
∫
z
(
i
)
Q
i
(
z
(
i
)
)
log
(
P
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
)
d
z
(
i
)
2.2.2 k-均值聚类(k-means clustering)
记
c
(
i
)
为簇内第
i
个点,$\mu_j$ 是簇
j
的中心点。
随机初始化簇形心
μ
1
,
μ
2
,
.
.
.
,
μ
k
∈
R
,k均值算法重复以下步骤直到收敛:
c
(
i
)
=
a
r
g
m
i
n
j
|
x
(
i
)
−
μ
j
|
2
和
μ
j
=
∑
i
=
1
m
1
c
(
i
)
−
j
x
(
i
)
∑
i
−
1
m
1
c
(
i
)
−
j
失真函数(Distortion function)
为了查看算法是否收敛,定义如下的失真函数:
J
(
c
,
μ
)
=
∑
i
=
1
|
x
(
i
)
−
μ
c
(
i
)
|
2
2.2.3 层次聚类(Hierarchical clustering)
它是一种聚类算法,采用聚合分层方法,以连续方式构建嵌套的聚类。
为了优化不同的目标函数,有不同种类的层次聚类算法,汇总见下表:
Ward linkage
Average linkage
Complete linkage
簇内距离最小
簇之间平均距离最小
簇之间最大距离最小
在无监督的学习环境中,通常很难评估模型的性能,因为没有像监督学习环境中那样的ground-truth标签。
轮廓系数(Silhouette coefficient)
记
a
表示一个样本和同一类中其他点的平均距离,$b$ 表示一个样本和距离最近的其他类的平均距离,一个样本的轮廓系数可表示为:
s
=
b
−
a
max
(
a
,
b
)
Calinski-Harabaz指数(Calinski-Harabaz index)
记
k
为簇的个数,类间、类内的散布阵(dispersion matrices)
B
k
和
W
k
定义如下:
B
k
=
∑
j
=
1
k
n
c
(
i
)
(
μ
c
(
i
)
−
μ
)
(
(
μ
c
(
i
)
−
μ
)
)
T
,
W
k
=
∑
j
=
1
m
(
x
(
i
)
−
μ
c
(
i
)
)
(
x
(
i
)
−
μ
c
(
i
)
)
T
,
Calinski-Harabaz指数
s
(
k
)
表明了聚类模型对聚类的定义的好坏,得分越高,聚类就越密集,分离得也越好。定义如下:
s
(
k
)
=
T
r
(
B
k
)
T
r
(
W
k
)
×
N
−
k
k
−
1
2.3 降维(Dimension reduction)
2.3.1 主成分分析(Principal component analysis)
主成分分析是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。
给定一个矩阵
A
∈
R
n
×
n
,如果存在一个向量
z
∈
R
n
,$lambda$ 叫做
A
的特征值:
A
z
=
λ
z
令
A
∈
R
n
×
n
。如果
A
是对称的,那么
A
可以通过正交矩阵
U
∈
R
n
×
n
对角化。记
L
a
m
b
d
a
=
d
i
a
g
(
λ
1
,
.
.
.
,
λ
n
)
,我们得到:
∃
Λ
d
i
a
g
n
o
a
l
,
A
=
U
Λ
U
T
∈
R
n
×
n
备注:和最大特征值关联的特征向量,被称作矩阵
A
的主特征向量(principal eigenvector)。
主成分分析(PCA)是一种降维方法,通过使数据的方差最大化,在k维上投影数据,方法如下:
第1步:将数据标准化,使其均值为0,标准差为1。
x
j
(
i
)
←
x
j
(
i
)
−
μ
j
σ
j
其
中
μ
j
=
1
m
∑
i
=
1
m
x
j
(
i
)
且
σ
j
2
=
1
m
∑
i
=
1
m
(
x
j
(
i
)
−
μ
j
)
2
第2步:计算
∑
=
1
m
∑
i
=
1
m
x
(
i
)
x
(
i
)
T
,它与实特征值对阵。
第3步:计算
∑
的
k
个正交主特征向量
u
1
,
.
.
.
,
u
k
∈
R
n
,即k个最大特征值的正交特征向量。
第4步:在
s
p
a
n
R
(
u
1
,
.
.
.
,
u
k
)
上投射数据。这个会产生
k
维空间的最大方差。
2.3.2 独立成分分析(Independent component analysis)
这是一种寻找潜在生成源的技术。
我们假设数据x是通过混合和非奇异(non-singular)矩阵
A
,由
n
维源向量
s
=
(
s
1
,
.
.
.
,
s
n
)
生成的(其中,$s_i$ 是独立的随机变量),如下:
x
=
A
s
目的是找到解混矩阵(unmixing matrix)
W
=
A
−
1
。
Bell和Sejnasi-ICA算法(Bell and Sejnowski ICA algorithm)
该算法通过以下步骤找到解混矩阵W:
将
x
=
A
s
=
W
−
1
s
的概率表示为:
p
(
x
)
=
∏
i
=
1
n
p
s
(
ω
i
T
x
)
⋅
|
W
|
记
g
为激活函数,给定我们的训练集
x
(
i
)
,
i
∈
[
1
,
m
]
,则 对数似然函数可表示为:
l
(
W
)
=
∑
i
=
1
m
(
∑
j
=
1
n
log
(
g
′
(
ω
j
T
x
(
i
)
)
)
+
log
|
W
|
)
因此,随机梯度上升学习规则是对于每个训练样本
x
(
i
)
,我们更新
W
如下:
W
←
W
+
α
(
(
1
−
2
g
(
w
1
T
x
(
i
)
)
1
−
2
g
(
w
2
T
x
(
i
)
)
⋅
⋅
⋅
1
−
2
g
(
w
n
T
x
(
i
)
)
)
x
(
i
)
T
+
(
W
T
)
−
1
)