从无标签的数据中学习出一些有用的模式.
无监督学习就是发现隐藏的数据中的有价值信息,包括有效的特征、类别、结构以及概率分布等.
典型的无监督学习问题可以分为以下几类:
- 无监督特征学习(Unsupervised Feature Learning) 从无标签的训练数据中挖掘有效的特征或表示. 特征学习
- 概率密度估计(Probabilistic Density Estimation)简称密度估计, 根据一组训练样本来估计样本空间的概率密度. 密度估计可以分为参数密度估计和非参数密度估计
- 参数密度估计是假设数据服从某个已知概率密度函数形式的分布(比如高斯分布),然后根据训练样本去估计概率密度函数的参数. 高斯过程 …
- 非参数密度估计是不假设数据服从某个已知分布,只利用训练样本对密度进行估计,可以进行任意形状密度的估计.非参数密度估计的方法有直方图、核密度估计等.
- 聚类(Clustering) 将一组样本根据一定的准则划分到不同的组(也称为簇(Cluster)). 一个比较通用的准则是组内样本的相似性要高于组间样本的相似性.常见的聚类算法包括K-Means算法、谱聚类等
无监督特征学习
从无标注的数据中自动学习有效的数据表示,从而能够帮助后续的机器学习模型更快速地达到更好的性能
主成分分析(Principal Component Analysis,PCA)
一种最常用的 数据降维 方法,使得在转换后的空间中 数据的方差最大
更
加
离
散
\textcolor{red}{更加离散}
更加离散
→
\rightarrow
→ 数据差异性更大,样本丰富,尽可能少的减少样本特性的丢失
矩
阵
的
特
征
向
量
与
特
征
值
{矩阵的特征向量与特征值}
矩阵的特征向量与特征值
假设有一组D维的样本 x ( n ) ∈ R D , 1 ≤ n ≤ N x^{(n)}\in \mathbb{R}^D, 1\le n \le N x(n)∈RD,1≤n≤N , 将其投影到一维空间中 ,投影向量为 w ∈ R D w\in \mathbb{R}^D w∈RD. (不失一般性,我们限制𝒘的模为1,即 w T w = 1 w^Tw=1 wTw=1) 每个样本点 x ( n ) x^{(n)} x(n) 投影之后的表示为
z ( n ) = w T x ( n ) z^{(n)}=w^Tx^{(n)} z(n)=wTx(n)
用矩阵
X
=
[
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
N
)
]
X=[x^{(1)},x^{(2)},...,x^{(N)}]
X=[x(1),x(2),...,x(N)] 表示输入样本,
x
ˉ
=
1
N
∑
n
=
1
N
x
(
n
)
\bar x=\frac 1 N \sum_{n=1}^N{x^{(n)}}
xˉ=N1∑n=1Nx(n) 为原始样本的中心点,所有样本投影后的方差为
σ
(
X
;
w
)
=
1
N
∑
n
=
1
N
(
w
T
x
(
n
)
−
w
T
x
ˉ
)
2
=
1
N
(
w
T
X
−
w
T
X
ˉ
)
(
w
T
X
−
w
T
X
ˉ
)
T
=
w
T
Σ
w
\begin{aligned} \sigma(X;w)&= \frac 1 N \sum_{n=1}^N{(w^Tx^{(n)}-w^T \bar x)^2}\\ &=\frac 1 N (w^TX-w^T\bar X)(w^TX-w^T\bar X)^T\\ &=w^T\Sigma w \end{aligned}
σ(X;w)=N1n=1∑N(wTx(n)−wTxˉ)2=N1(wTX−wTXˉ)(wTX−wTXˉ)T=wTΣw
矩 阵 计 算 , i m p o r t a n t ! ! \textcolor{blue}{矩阵计算,important!!} 矩阵计算,important!!
其中
X
ˉ
=
x
ˉ
1
D
T
\bar X=\bar x1_D^T
Xˉ=xˉ1DT 是向量
x
ˉ
\bar x
xˉ 和 D 维全1的向量
1
D
1_D
1D 的外积 ??高维向量的外积计算??
?
?
即
有
𝐷
列
𝒙
ˉ
组
成
的
矩
阵
?
?
\textcolor{red}{??即有 𝐷 列 𝒙̄组成的矩阵??}
??即有D列xˉ组成的矩阵??
Σ
=
1
N
(
X
−
X
ˉ
)
(
X
−
X
ˉ
)
T
\Sigma=\frac 1 N (X-\bar X)(X-\bar X)^T
Σ=N1(X−Xˉ)(X−Xˉ)T 是原始样本的协方差矩阵.
最大化投影方差 σ ( X ; w ) \sigma(X;w) σ(X;w) 并满足 w T w = 1 w^Tw=1 wTw=1 ,利用拉格朗日方法转换为无约束优化问题,
f ( w ) = max w w T Σ w + λ ( 1 − w T w ) f(w)=\max_w{w^T\Sigma w+\lambda(1-w^Tw)} f(w)=wmaxwTΣw+λ(1−wTw)
∂ f ∂ w = 0 则 Σ w = λ w \frac {\partial f} {\partial w}=0 \quad则 \Sigma w=\lambda w ∂w∂f=0则Σw=λw
w
w
w 是协方差矩阵
Σ
\Sigma
Σ 的特征向量,
λ
\lambda
λ 为特征值.同时
σ
(
X
;
w
)
=
w
T
Σ
w
=
w
T
λ
w
=
λ
\sigma(X;w)=w^T\Sigma w=w^T \lambda w=\lambda
σ(X;w)=wTΣw=wTλw=λ
λ
\lambda
λ 也是投影后样本的方差
因此,主成分分析可以转换成一个矩阵特征值分解问题,投影向量 w w w 为矩阵 Σ \Sigma Σ 的最大特征值对应的特征向量.
如果要通过投影矩阵
W
∈
R
D
×
D
′
\mathbf{W\in R^{D\times D'}}
W∈RD×D′ 将样本投到
D
′
D'
D′ 维空间,投影矩阵满足
W
T
W
=
I
W^TW=I
WTW=I 为单位阵 , 只需要将
Σ
\Sigma
Σ 的特征值从大到小排列,保留前
D
′
D'
D′ 个特征向量,其对应的特征向量即是最优的投影矩阵.
Σ
W
=
W
d
i
a
g
(
λ
)
\Sigma W= W diag(\lambda)
ΣW=Wdiag(λ)
λ
=
[
λ
1
,
.
.
.
,
λ
D
′
]
\lambda =[\lambda_1,...,\lambda_{D'}]
λ=[λ1,...,λD′] 为S的前
D
′
D'
D′ 个最大的特征值.
主成分分析是一种无监督学习方法,可以作为监督学习的数据预处理方法, 用来去除噪声并减少特征之间的相关性,但是它并不能保证投影后数据的类别可分性更好.
稀疏编码(Sparse Coding)
受哺乳动物视觉系统中简单细胞感受野而启发的模型.
在哺乳动物的初级视觉皮层(Primary Visual Cortex)中,每个神经元仅对处于其感受野中特定的刺激信号(比如特定方向的边缘、条纹等特征)做出响应. 感受野:卷积窗口&支队特定刺激响应:卷积核, but此处侧重点不同,卷积神经网络 → \rightarrow → 过程 此处 → \rightarrow → 结果
局部感受野可以被描述为具有空间局部性、方向性和带通性
- 外界信息经过编码后仅有一小部分神经元激活,即外界刺激在视觉神经系统的表示具有很高的稀疏性.
编码的稀疏性在一定程度上符合生物学的低功耗特性.
在数学上,(线性)编码是指给定一组基向量
A
=
[
a
1
,
.
.
.
,
a
M
]
A=[a_1,...,a_M]
A=[a1,...,aM] ,将输入样本
x
∈
R
D
x\in R^D
x∈RD 用该基向量表示 okay
x
=
∑
m
=
1
M
z
m
a
m
=
A
z
x=\sum_{m=1}^M{z_ma_m}=Az
x=m=1∑Mzmam=Az
编码即为在新基底下的坐标 z = [ z 1 , . . . , z M ] z=[z_1,...,z_M] z=[z1,...,zM] , 基向量A成为字典
编码是对
D
D
D 维空间中的样本
x
x
x 找到其在
P
P
P 维空间中的表示(或投影), 其目标通常是编码的各个维度都是统计独立的,并且可以重构出输入样本.
编码的关键是找到一组“完备”的基向量
A
A
A ,比如主成分分析等.但是主成分分析得到的编码通常是稠密向量,没有稀疏性
→ \rightarrow → 稀疏
为了得到稀疏的编码,我们需要找到一组“过完备”的基向量(即 M > D M>D M>D) 来进行编码.在过完备基向量之间往往会存在一些冗余性,因此对于一个输入样本,会存在很多有效的编码. 如果加上稀疏性限制,就可以减少解空间的大小,得
到“唯一”的稀疏编码. okay
给定一组 N N N 个输入向量 x ( 1 ) , . . . , x ( N ) x^{(1)},...,x^{(N)} x(1),...,x(N),其稀疏编码的目标函数定义为 x = A z x=Az x=Az
L ( A , Z ) = ∑ n = 1 N ( ∥ x ( n ) − A z ( n ) ∥ 2 + η ρ ( z ( n ) ) ) L(A,Z)=\sum_{n=1}^N{(\Vert x^{(n)} -Az^{(n)}\Vert^2 + \eta\rho (z^{(n)}))} L(A,Z)=n=1∑N(∥x(n)−Az(n)∥2+ηρ(z(n)))
ρ
(
⋅
)
\rho(\cdot)
ρ(⋅) 是一个稀疏性衡量函数,
η
\eta
η 是一个超参数,用来控制稀疏性的强度
稀疏性衡量函数
ρ
(
z
)
\rho(z)
ρ(z) 是给向量𝒛一个标量分数. 𝒛越稀疏,
ρ
(
z
)
\rho(z)
ρ(z) 越小.
由于通常比较难以得到严格的稀疏向量,因此如果一个向量只有少数几个远大于零的元素,其他元素都接近于 0,我们也称这个向量为稀疏向量.
ρ ( z ) \rho(z) ρ(z) 的定义 ( z ∈ R M z\in R^M z∈RM)
-
ℓ
0
\ell_0
ℓ0 范数 非零维度 但
ℓ
0
\ell_0
ℓ0 范数不满足连续可导,因此很难进行优化
ρ ( z ) = ∑ m = 1 M I ( ∣ z m ∣ > 0 ) \rho(z)=\sum_{m=1}^M{I(\vert z_m\vert >0)} ρ(z)=m=1∑MI(∣zm∣>0) -
ℓ
1
\ell_1
ℓ1 范数
ρ ( z ) = ∑ m = 1 M ∣ z m ∣ \rho(z)=\sum_{m=1}^M{\vert z_m\vert} ρ(z)=m=1∑M∣zm∣ - 对数函数
ρ ( z ) = ∑ m = 1 M l o g ( 1 + z m 2 ) \rho(z)=\sum_{m=1}^M{log(1+z_m^2)} ρ(z)=m=1∑Mlog(1+zm2) - 指数函数
ρ ( z ) = ∑ m = 1 M − e x p ( z m 2 ) \rho(z)=\sum_{m=1}^M{-exp(z_m^2)} ρ(z)=m=1∑M−exp(zm2)
训练方法
目的:选取合适的基向量并编码
给定一组 𝑁 个输入向量
{
x
(
n
)
}
n
=
1
N
\lbrace x^{(n)}\rbrace_{n=1}^N
{x(n)}n=1N ,需要同时学习 基向量
𝑨 以及每个输入样本对应的稀疏编码
{
z
(
n
)
}
n
=
1
N
\lbrace z^{(n)} \rbrace_{n=1}^N
{z(n)}n=1N .
稀疏编码的优点
稀疏编码的每一维都可以被看作一种特征.和基于稠密向量的分布式表示相比,稀疏编码具有更小的计算量和更好的可解释性等优点. 稀疏极致 → \rightarrow → one-hot编码
计算量
稀疏性带来的最大好处就是 可以极大地降低计算量.可解释性
因为稀疏编码只有少数的非零元素,相当于将一个输入样本表示为少数几个相关的特征.这样我们可以更好地描述其特征,并易于理解.特征选择
可以实现特征的自动选择,只选择和输入样本最相关的少数特征, 从而更高效地表示输入样本,降低噪声并减轻过拟合.
自编码器
通过无监督的方式来学习一组数据的有效编码(或表示).
假设有一组𝐷 维的样本 x ( n ) ∈ R D , 1 ≤ n ≤ N x^{(n)} \in R^D,1\le n\le N x(n)∈RD,1≤n≤N ,自编码器将这组数据映射到特征空间得到每个样本的编码 z ( n ) ∈ R D , 1 ≤ n ≤ N z^{(n)} \in R^D, 1\le n\le N z(n)∈RD,1≤n≤N ,并且希望这组编码可以重构出原来的样本.
编码器(Encoder)
f
:
R
D
→
R
M
f: R^D \rightarrow R^M
f:RD→RM
解码器(Decoder)
g
:
R
M
→
R
D
g: R^M \rightarrow R^D
g:RM→RD
R
(
x
)
≤
R
(
z
)
R(x)\le R(z)
R(x)≤R(z) 若要求稀疏
R
(
z
)
R(z)
R(z) 尽可能的大于
R
(
x
)
R(x)
R(x)
方阵A – 编码
x
=
A
z
x=Az
x=Az 解码
z
=
A
−
1
x
z=A^{-1}x
z=A−1x
→
\rightarrow
→ 矩阵处理
自编码器的学习目标是最小化重构错误(Reconstruction Error):
L
=
∑
n
=
1
N
∥
x
(
n
)
−
g
(
f
(
x
(
n
)
)
)
∥
2
=
∑
n
=
1
N
∥
x
(
n
)
−
f
∘
g
(
x
(
n
)
)
∥
2
\begin{aligned} L&=\sum_{n=1}^N{\Vert x^{(n)} -g(f(x^{(n)})) \Vert^2}\\ &=\sum_{n=1}^N{\Vert x^{(n)} - f\circ g(x^{(n)}) \Vert^2} \end{aligned}
L=n=1∑N∥x(n)−g(f(x(n)))∥2=n=1∑N∥x(n)−f∘g(x(n))∥2
- 如果 M < D M<D M<D,自编码器相当于是一种降维或特征抽取方法.
- 如果
M
≥
D
M\ge D
M≥D,一定可以找到一组或多组解使得
f
∘
g
f\circ g
f∘g 为单位函数(Identity Function),并使得重构错误为 0. 然而,这样的解并没有太多的意义.
数
据
降
维
便
于
处
理
,
除
非
S
V
M
无
限
高
维
可
以
采
用
核
函
数
解
决
\tiny{数据降维便于处理,除非SVM无限高维可以采用核函数解决}
数据降维便于处理,除非SVM无限高维可以采用核函数解决
但是,如果再加上一些附加的约束,就可以得到一些有意义的解,比如编码的稀疏性
、取值范围
, f f f 和 g g g 的具体形式
等.
如果我们让编码只能取 K K K 个不同的值( K < N K<N K<N),那么自编码器就可以转换为一个 K K K 类的聚类(Clustering)问题.
对于样本𝒙,自编码器的中间隐藏层的活性值为𝒙的编码,即
z
=
f
(
W
(
1
)
x
+
b
(
1
)
)
z=f(W^{(1)}x+b^{(1)})
z=f(W(1)x+b(1))
自编码器的输出为重构的数据
x
′
=
f
(
W
(
2
)
z
+
b
(
2
)
)
x'=f(W^{(2)}z+b^{(2)})
x′=f(W(2)z+b(2))
如果令 W ( 2 ) = W ( 1 ) T W^{(2)}=W^{(1)^T} W(2)=W(1)T ,称为捆绑权重(Tied Weight).捆绑权重自编码器的参数更少,因此更容易学习.此外,捆绑权重还在一定程度上起到正则化的作用
给定一组样本 x ( n ) ∈ R D , 1 ≤ n ≤ N x^{(n)}\in R^D, 1\le n \le N x(n)∈RD,1≤n≤N,其重构错误为
L = ∑ n = 1 N ∥ x ( n ) − x ′ ( n ) ∥ 2 + λ ∥ W ∥ F 2 L=\sum_{n=1}^N{\Vert x^{(n)}-x'^{(n)}\Vert ^2 +\lambda \Vert W \Vert_F^2} L=n=1∑N∥x(n)−x′(n)∥2+λ∥W∥F2
我们使用自编码器是为了得到 有效的数据表示 ,因此在训练结束后,我们一般会去掉解码器,只保留编码器.编码器的输出可以直接作为后续机器学习模型的输入.
稀疏自编码器
R D R^D RD 维编码到 R M R^M RM 空间 稀疏: M > D M > D M>D
通过给自编码器中隐藏层单元 𝒛 加上稀疏性限制,自编码器可以学习到数据中一些有用的结构.
给定𝑁 个训练样本
{
x
(
n
)
}
n
=
1
N
\lbrace x^{(n)}\rbrace_{n=1}^N
{x(n)}n=1N,稀疏自编码器的目标函数为
L = ∑ n = 1 N ∥ x ( n ) − x ′ ( n ) ∥ 2 + η ρ ( Z ) + λ ∥ W ∥ 2 L=\sum_{n=1}^N{\Vert x^{(n)}-x'^{(n)}\Vert ^2 + \eta \rho(Z)+\lambda \Vert W \Vert^2} L=n=1∑N∥x(n)−x′(n)∥2+ηρ(Z)+λ∥W∥2
ρ
(
z
)
\rho(z)
ρ(z) 为稀疏矩阵的度量,数值越小越稀疏
此外,
ρ
(
z
)
\rho(z)
ρ(z) 还可以定义为一组训练样本中每一个神经元激活的概率.
Reason
给定𝑁 个训练样本,隐藏层第𝑗 个神经元平均活性值为
ρ
^
j
=
1
N
∑
n
=
1
N
z
j
(
n
)
\hat \rho_j=\frac 1 N \sum_{n=1}^N{z_j^{(n)}}
ρ^j=N1n=1∑Nzj(n)
其中
ρ
^
j
\hat \rho_j
ρ^j 可以近似地看作第 𝑗 个神经元激活的概率.我们希望
ρ
^
j
\hat \rho_j
ρ^j 接近于一个事先给定的值
ρ
∗
\rho^*
ρ∗,比如0.05,可以通过KL距离来衡量
ρ
^
j
\hat \rho_j
ρ^j 和
ρ
∗
\rho^*
ρ∗ 的差异,即
K
L
(
ρ
∗
∥
ρ
^
j
)
=
ρ
∗
l
o
g
ρ
∗
ρ
^
j
+
(
1
−
ρ
∗
)
l
o
g
1
−
ρ
∗
1
−
ρ
^
j
KL(\rho^*\Vert \hat \rho_j)=\rho^* log{\frac {\rho^*}{\hat \rho_j}} + (1-\rho^*)log{\frac {1- \rho^*}{1-\hat \rho_j}}
KL(ρ∗∥ρ^j)=ρ∗logρ^jρ∗+(1−ρ∗)log1−ρ^j1−ρ∗
稀疏性度量函数定义为
ρ
(
Z
)
=
∑
j
=
1
P
K
L
(
ρ
∗
∥
ρ
^
j
)
\rho(Z)=\sum_{j=1}^P{KL(\rho^* \Vert \hat \rho_j)}
ρ(Z)=j=1∑PKL(ρ∗∥ρ^j)
熵
一个热力学系统的无序程度. 在信息论中,熵用来衡量一个随机事件的不确定性.
信息熵 反应了一个系统的有序化程度,一个系统越是有序,那么它的信息熵就越低,反之就越高。
KL距离(Kullback-Leibler Divergence)
如果一个随机变量X的可能取值为
X
=
[
x
1
,
.
.
.
,
x
n
]
X=[x_1,...,x_n]
X=[x1,...,xn] ,对应的
x
i
x_i
xi 出现的概率为
p
(
X
=
x
i
)
∈
(
0
,
1
]
p(X=x_i)\in (0,1]
p(X=xi)∈(0,1] ,那么随机变量 X 的熵定义为
H
(
X
)
=
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
p
(
x
i
)
≥
0
H(X)=-\sum_{i=1}^n{p(x_i)logp(x_i)} \ge 0
H(X)=−i=1∑np(xi)logp(xi)≥0
相对熵 又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度(即KL散度)等
设
p
(
x
)
p(x)
p(x) 和
q
(
x
)
q(x)
q(x) 是X取值的两个概率分布,则 p 对 q的的相对熵为
D
(
p
∥
q
)
=
∑
i
=
1
n
p
(
x
i
)
l
o
g
p
(
x
i
)
q
(
x
i
)
D(p\Vert q)=\sum_{i=1}^n{p(x_i)log{\frac {p(x_i)} {q(x_i)}}}
D(p∥q)=i=1∑np(xi)logq(xi)p(xi)
在一定程度上,熵可以度量两个随机变量的距离。KL散度是两个概率分布P和Q差别的非对称性的度量。 – 相似度越高,相对熵越小
KL散度是用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数
相对熵的性质
- 尽管KL散度从直观上是个度量或距离函数,但它并不是一个真正的度量或者距离,因为 它不具有对称性 D ( p ∥ q ) ≠ D ( q ∥ p ) D(p\Vert q)\ne D(q\Vert p) D(p∥q)=D(q∥p)
举例:
- 相对熵的值为 非负值 ,即 D ( p ∥ q ) ≥ 0 D(p\Vert q)\ge 0 D(p∥q)≥0
证明:
吉布斯不等式
若有
∑
i
=
1
n
p
i
=
∑
i
=
1
n
q
i
=
1
\sum_{i=1}^n{p_i}=\sum_{i=1}^n{q_i}=1
∑i=1npi=∑i=1nqi=1 且
p
i
,
q
i
∈
(
0
,
1
]
p_i, q_i \in(0,1]
pi,qi∈(0,1] 那么有
−
∑
i
=
1
n
p
i
l
o
g
p
i
≤
−
∑
i
=
1
n
p
i
l
o
g
q
i
-\sum_{i=1}^n{p_ilogp_i}\le -\sum_{i=1}^n{p_ilogq_i}
−i=1∑npilogpi≤−i=1∑npilogqi
当且仅当
∀
i
,
p
i
=
q
i
\forall i , p_i=q_i
∀i,pi=qi 时等号成立。
吉布斯不等式等价于:
0
≥
∑
i
=
1
n
p
i
l
o
g
q
i
−
∑
i
=
1
n
p
i
l
o
g
p
i
=
∑
i
=
1
n
p
i
l
o
g
q
i
p
i
=
−
D
K
L
(
P
∥
Q
)
0\ge \sum_{i=1}^n{p_ilogq_i}-\sum_{i=1}^n{p_ilogp_i} =\sum_{i=1}^n{p_ilog {\frac {q_i}{p_i}}} = -D_{KL}(P\Vert Q)
0≥i=1∑npilogqi−i=1∑npilogpi=i=1∑npilogpiqi=−DKL(P∥Q)
欲证明 小于等于0
由
ln
(
x
)
≤
x
−
1
\ln(x)\le x-1
ln(x)≤x−1 则
∑
i
=
1
n
p
i
l
o
g
q
i
p
i
≤
∑
i
=
1
n
p
i
(
q
i
p
i
−
1
)
=
0
\sum_{i=1}^n{p_ilog {\frac {q_i}{p_i}}} \le \sum_{i=1}^n{p_i (\frac {q_i}{p_i}-1)}=0
i=1∑npilogpiqi≤i=1∑npi(piqi−1)=0
ok
KL距离的几个用途:
- 衡量两个概率分布的差异。
- 衡量利用概率分布Q 拟合概率分布P 时的能量损耗,也就是说拟合以后丢失了多少的信息。
- 衡量两个概率分布的相似度,在运动捕捉里面可以衡量未添加标签的运动与已添加标签的运动,进而进行运动的分类。
堆叠自编码
两层神经网络
→
\rightarrow
→ 深层神经网络
深层神经网络作为自编码器提取的数据表示一般会更加抽象,能够更好地捕捉到数据的语义信息.
降噪自编码器
希望自编码器也能够从部分损坏的数据中得到有效的数据表示,并能够恢复出完整的原始信息. ← \leftarrow ← 得益于高维信息的冗余性
使用自编码器是为了得到有效的数据表示,而有效的数据表示除了具有最小重构错误或稀疏性等性质之外,还可以要求其具备其他性质,比如 对数据部分损坏(Partial Destruction)的鲁棒性
降噪自编码器(Denoising Auto-Encoder)就是一种通过引入噪声来增加编码鲁棒性的自编码器.
对于一个向量 x x x,我们首先根据一个比例 μ \mu μ 随机将 x x x 的一些维度的值设置为0,得到一个被损坏的向量 x ~ \tilde{x} x~ , 然后将被损坏的 x ~ \tilde x x~ 输入给编码器得到z, 并通过解码器重构出 原始未损坏 x x x
概率密度估计
概率密度估计(Probabilistic Density Estimation),简称密度估计(Density Estimation),是基于一些观测样本来估计一个随机变量的概率密度函数.
密度估计方法可以分为两类:参数密度估计和非参数密度估计.
参数密度估计
参数密度估计(Parametric Density Estimation)是根据先验知识假设随机
变量服从某种分布,然后通过训练样本来估计分布的参数。
对于已知样本 X = { x i } i = 1 N X=\lbrace x_i \rbrace_{i=1}^N X={xi}i=1N 以及各样本发生概率 p ( x i ) p(x_i) p(xi) → \rightarrow → 预测 新的样本 x ^ \hat x x^ 出现的概率
p ( x i ) = p ( x i ; θ ) p(x_i)=p(x_i;\theta) p(xi)=p(xi;θ) 存在参数 θ \theta θ
- 频率派
认为 θ \theta θ 为参数, p ( x i ) p(x_i) p(xi) 的取值只与 θ \theta θ 相关,确定 θ \theta θ 后,代入新的样本后即可获取 新样本 x ^ \hat x x^ 的概率.
经典算法:最大似然估计(MLE)
θ M L E = arg max θ ∑ i = 1 N l o g p ( x i ; θ ) \theta_{MLE} =\arg \max_{\theta} {\sum_{i=1}^N{log p(x_i;\theta)}} θMLE=argθmaxi=1∑Nlogp(xi;θ)
目的
p
(
x
^
)
=
p
(
x
^
∣
θ
M
L
E
)
p(\hat x)=p(\hat x\vert \theta_{MLE})
p(x^)=p(x^∣θMLE)
- 贝叶斯派
认为 θ \theta θ 是一个参数且也服从一个概率分布 θ ∼ p ( θ ) \theta \sim p(\theta) θ∼p(θ) 先验概率
p ( θ i ∣ x ) = p ( x ∣ θ i ) ⋅ p ( θ i ) p ( x ) p(\theta_i \vert x)=\frac {p(x \vert \theta_i) \cdot p(\theta_i)}{p(x)} p(θi∣x)=p(x)p(x∣θi)⋅p(θi)
p
(
x
)
p(x)
p(x) 根据全概率公式求出
p
(
x
)
=
∑
离
散
的
p
(
x
∣
θ
)
p
(
θ
)
=
∫
p
(
x
∣
θ
)
p
(
θ
)
d
θ
=
C
p(x)=\sum_{离散的}{p(x|\theta)p(\theta)}=\int p( x \vert \theta) p(\theta)d\theta=C
p(x)=∑离散的p(x∣θ)p(θ)=∫p(x∣θ)p(θ)dθ=C 是一个与
θ
\theta
θ 无关的常量,
p
(
x
∣
θ
i
)
p(x\vert \theta_i)
p(x∣θi) 为
θ
=
θ
i
\theta = \theta_i
θ=θi 发生的条件下,结果x 发生的概率 似然
p
(
θ
i
∣
x
)
p(\theta_i \vert x)
p(θi∣x) 为后验概率
p ( θ i ∣ x ) 正 比 于 p ( x ∣ θ i ) ⋅ p ( θ i ) p(\theta_i \vert x) 正比于 p(x \vert \theta_i) \cdot p(\theta_i) p(θi∣x)正比于p(x∣θi)⋅p(θi)
经典算法:最大后验估计(MAP)
θ
M
A
P
=
arg
max
θ
p
(
θ
∣
x
)
≈
arg
max
θ
p
(
x
∣
θ
)
⋅
p
(
θ
)
\theta_{MAP}= \arg \max_{\theta}{p(\theta|x)} \approx \arg \max_{\theta}{p(x \vert \theta) \cdot p(\theta)}
θMAP=argθmaxp(θ∣x)≈argθmaxp(x∣θ)⋅p(θ)
贝叶斯估计
计算后验概率:
p
(
θ
∣
x
)
=
p
(
x
∣
θ
)
p
(
θ
)
p
(
x
)
=
∫
p
(
x
∣
θ
)
p
(
θ
)
d
θ
p(\theta \vert x)= \frac {p(x\vert \theta)p(\theta)}{p(x)=\int p(x\vert \theta)p(\theta)d\theta}
p(θ∣x)=p(x)=∫p(x∣θ)p(θ)dθp(x∣θ)p(θ)
目的
贝叶斯预测
p
(
x
^
∣
X
)
=
∫
p
(
x
^
,
θ
∣
X
)
d
θ
=
∫
p
(
x
^
,
θ
,
X
)
p
(
X
)
d
θ
=
∫
p
(
x
^
∣
θ
,
X
)
⋅
p
(
θ
,
X
)
p
(
X
)
d
θ
当
θ
固
定
时
,
x
^
与
X
相
互
独
立
则
有
p
(
x
^
∣
θ
,
X
)
=
p
(
x
^
∣
θ
)
=
∫
p
(
x
^
∣
θ
)
p
(
θ
∣
X
)
d
θ
\begin{aligned} p(\hat x \vert X)&=\int p(\hat x,\theta \vert X)d\theta\\ &=\int\frac {p(\hat x,\theta , X)} {p(X)} d\theta \\ &=\int\frac {p(\hat x\vert \theta , X)\cdot p(\theta ,X)} {p(X)} d\theta \\ & 当\theta 固定时,\hat x与 X 相互独立 则有 p(\hat x\vert \theta, X)=p(\hat x \vert \theta)\\ &= \int p(\hat x\vert \theta) p(\theta \vert X) d\theta \end{aligned}
p(x^∣X)=∫p(x^,θ∣X)dθ=∫p(X)p(x^,θ,X)dθ=∫p(X)p(x^∣θ,X)⋅p(θ,X)dθ当θ固定时,x^与X相互独立则有p(x^∣θ,X)=p(x^∣θ)=∫p(x^∣θ)p(θ∣X)dθ
正太分布 & 多项分布
ok
在实际应用中,参数密度估计一般存在以下问题:
- 模型选择问题:即如何选择数据分布的密度函数.实际数据的分布往往是非常复杂的,而不是简单的正态分布或多项分布.
- 不可观测变量问题:即我们用来训练的样本只包含部分的可观测变量, 还有一些非常关键的变量是无法观测的 ,这导致我们很难准确估计数据的真实分布.
- 维度灾难问题:即高维数据的参数估计十分困难.随着维度的增加,估计参数所需要的样本数量指数增加.在样本不足时会出现过拟合.
非参数密度估计
不假设数据服从某种分布,通过将样本空间划分为不同的区域并估计每个区域的概率来近似数据的概率密度函数.
对于高维空间中的一个随机向量𝒙,假设其服从一个未知分布
p
(
x
)
p(x)
p(x) ,则𝒙落入空间中的小区域
R
R
R 的概率为
P
=
∫
x
∈
R
p
(
x
)
d
x
P=\int_{x\in R} p(x)dx
P=∫x∈Rp(x)dx
给定 N 个训练样本
D
=
{
x
(
n
)
}
n
=
1
N
D=\lbrace x^{(n)} \rbrace_{n=1}^N
D={x(n)}n=1N,落入区域ℛ的样本数量𝐾 服从二项分布:
P
K
=
{
n
k
}
P
K
(
1
−
P
)
N
−
K
P_K= {n\brace k}P^K(1-P)^{N-K}
PK={kn}PK(1−P)N−K
二项分布 E ( X ) = n p D ( X ) = n p ( 1 − p ) E(X)=np \quad D(X)=np(1-p) E(X)=npD(X)=np(1−p)
- 当 𝑁 非常大时,我们可以近似认为 P ≈ K N P\approx \frac K N P≈NK
- 假设区域ℛ 足够小,其内部的概率密度是相同的,则有
P
≈
p
(
x
)
V
P\approx p(x)V
P≈p(x)V 其中𝑉 为区域ℛ 的体积
结合上述两个公式,得到
p ( x ) ≈ K N V p(x)\approx \frac K{NV} p(x)≈NVK
要准确地估计 p ( x ) p(x) p(x),需要尽量使得样本数量 𝑁 足够大,区域体积 𝑉 尽可能地小.
但在具体应用中,样本数量一般是有限的,过小的区域会
导致落入该区域的样本比较少,这样估计的概率密度就不太准确.
因此,实践中非参数密度估计通常使用两种方式:
- 固定区域大小𝑉,统计落入不同区域的数量,这种方式包括
直方图方法
和核方法
两种; - 改变区域大小以使得落入每个区域的样本数量为𝐾 ,这种方式称为
K近邻方法
.
直方图法
以一维随机变量为例,首先将其取值范围分成 𝑀 个连续的、不重叠的区间(bin),每个区间的宽度为 Δ m \Delta_m Δm .给定𝑁 个训练样本 D = { x ( n ) } n = 1 N D=\lbrace x^{(n)} \rbrace_{n=1}^N D={x(n)}n=1N,我们统计这些样本落入每个区间的数量 K m K_m Km ,然后将它们归一化为密度函数.
p m = K m N Δ m , 1 ≤ m ≤ M p_m=\frac {K_m} {N\Delta_m}, \quad 1\le m \le M pm=NΔmKm,1≤m≤M
直方图方法的关键问题是如何选取一个合适的区间宽度 D e l t a Delta Delta.
- 如果 D e l t a Delta Delta 太小,那么落入每个区间的样本数量会比较少,其估计的区间密度也具有很大的随机性.
- 如果
D
e
l
t
a
Delta
Delta 太大,其估计的密度函数变得十分平
滑,很难反映出真实的数据分布
直方图通常用来处理低维变量,可以非常快速地对数据的分布进行可视化,但其缺点是很难扩展到高维变量
核方法
从一维区间之间判定是否落在该区间 → \rightarrow → 高维区间采用核函数判定
核密度估计(Kernel Density Estimation),也叫 Parzen 窗方法,是一种直方图方法的改进.
假设
R
R
R 为
D
D
D 维空间中的一个以点
x
x
x 为中心的“超立方体”,并定义核函数(Kernel Function)为
ϕ
(
z
−
x
H
)
=
{
1
i
f
∣
z
i
−
x
i
∣
<
H
2
,
1
≤
i
≤
D
0
e
l
s
e
\phi(\frac {z-x}{H})= \begin{cases} 1 & if \vert z_i-x_i \vert < \frac H 2,1\le i \le D\\ 0 & else \end{cases}
ϕ(Hz−x)={10if∣zi−xi∣<2H,1≤i≤Delse
判定 一个样本
z
z
z 是否落入该超立方体中,其中
H
H
H 为超立方体的边长,也称为核函数的宽度.
给定𝑁 个训练样本 D = { x ( n ) } n = 1 N D=\lbrace x^{(n)} \rbrace_{n=1}^N D={x(n)}n=1N,落入区域 R 的样本数
K = ∑ n = 1 N ϕ ( x ( n ) − x H ) K=\sum_{n=1}^N{\phi(\frac {x^{(n)}-x} H)} K=n=1∑Nϕ(Hx(n)−x)
点x的密度估计为
p
(
x
)
=
K
N
⋅
H
D
p(x)=\frac K {N \cdot H^D}
p(x)=N⋅HDK
其中
H
D
H^D
HD 表示超立方体
R
R
R 的体积.
高斯核函数
ϕ
(
z
−
x
H
)
=
1
(
2
π
)
1
/
2
H
e
x
p
(
−
∥
z
−
x
∥
2
2
H
2
)
\phi(\frac {z-x} H)=\frac 1 {(2\pi)^{1/2}H} exp(- \frac {\Vert z-x \Vert^2} {2H^2})
ϕ(Hz−x)=(2π)1/2H1exp(−2H2∥z−x∥2)
其中
H
2
H^2
H2 是高斯核函数的方差.这样,点
x
x
x 的密度估计为
p
(
x
)
=
1
N
∑
n
=
1
N
1
(
2
π
)
1
/
2
H
e
x
p
(
−
∥
x
(
n
)
−
x
∥
2
2
H
2
)
p(x)=\frac 1 N \sum_{n=1}^N{\frac 1 {(2\pi)^{1/2}H} exp(- \frac {\Vert x^{(n)}-x \Vert^2} {2H^2})}
p(x)=N1n=1∑N(2π)1/2H1exp(−2H2∥x(n)−x∥2)
K近邻方法
设置一种可变宽度的区域,并使得落入每个区域中样本数量为固定的𝐾.
要估计点𝒙的密度,首先找到一个以𝒙为中心的球体,使得落入球体的样本数量为K,然后再根据
p
≈
K
N
V
p\approx \frac K {NV}
p≈NVK 以计算出点𝒙的密度。
在 K 近邻方法中,𝐾 的选择也十分关键.如果 𝐾 太小,无法有效地估计密度函数;而𝐾 太大也会使得局部的密度不准确,并且增加计算开销. – 超参数
聚类(Clustering)
物以类聚,人以群分
将数据集中样本划分为若干个通常互不相交的子集,每个子集称为一个簇(Cluster)
假定样本集 D = { x 1 , x 2 , . . . , x m } D=\lbrace x_1, x_2,... , x_m \rbrace D={x1,x2,...,xm} 包含m个无标记样本,每个样本 x i = ( x i 1 ; x i 2 ; . . . . ; x i n ) x_i=(x_{i1};x_{i2};....;x_{in}) xi=(xi1;xi2;....;xin) 是一个 n n n 维特征向量,则聚类算法将样本集 D D D 划分为k个不相交的簇 { C l ∣ l = 1 , 2 , . . . . , k } \lbrace C_l \vert l=1,2,....,k\rbrace {Cl∣l=1,2,....,k} ,其中 C l ′ ∩ C l = ∅ , l ≠ l ′ C_{l'} \cap C_l=\emptyset, l\not =l' Cl′∩Cl=∅,l=l′ 且 D = ∪ l = 1 k C l D=\cup_{l=1}^kC_l D=∪l=1kCl . 相应地,用 λ j ∈ { 1 , . . , k } \lambda_j\in \lbrace 1,..,k\rbrace λj∈{1,..,k} 表示样本 x j x_j xj 的簇标记(cluster label),即 x j ∈ C λ j x_j \in C_{\lambda_j} xj∈Cλj .于是聚类的结果向量可表示为 λ = ( λ 1 ; λ 2 , . . . , λ m ) \lambda=(\lambda_1;\lambda_2,...,\lambda_m) λ=(λ1;λ2,...,λm)
Simlarity
性能度量
聚类的“有效性指标”(validity index) – 即 监督学习的期望函数(损失函数)
- 外部指标:聚类结果于某个“参考模型” (Reference Model) 进行比较
- 内部指标:直接考察聚类结果而不利用任何参考模型
聚类性能评价的其他
外部指标
将样本集
D
=
{
x
1
,
x
2
,
.
.
.
,
x
m
}
D=\lbrace x_1, x_2,... , x_m \rbrace
D={x1,x2,...,xm} 通过聚类算法簇划分为
C
=
{
C
1
,
C
2
,
.
.
.
,
C
k
}
C=\lbrace C_1, C_2,...,C_k \rbrace
C={C1,C2,...,Ck} ,参考模型给出的簇划分为
C
∗
=
{
C
1
∗
,
C
2
∗
,
.
.
.
,
C
s
∗
}
C^*=\lbrace C_1^*, C_2^*,...,C_s^*\rbrace
C∗={C1∗,C2∗,...,Cs∗}. 相应地,簇标记向量分别为
λ
,
λ
∗
\lambda,\lambda^*
λ,λ∗
a
=
∣
S
S
∣
,
S
S
=
{
(
x
i
,
x
j
)
∣
λ
i
=
λ
j
,
λ
i
∗
=
λ
j
∗
,
i
<
j
}
,
b
=
∣
S
D
∣
,
S
D
=
{
(
x
i
,
x
j
)
∣
λ
i
=
λ
j
,
λ
i
∗
≠
λ
j
∗
,
i
<
j
}
,
c
=
∣
D
S
∣
,
D
S
=
{
(
x
i
,
x
j
)
∣
λ
i
≠
λ
j
,
λ
i
∗
=
λ
j
∗
,
i
<
j
}
,
d
=
∣
D
D
∣
,
D
D
=
{
(
x
i
,
x
j
)
∣
λ
i
≠
λ
j
,
λ
i
∗
≠
λ
j
∗
,
i
<
j
}
,
\begin{aligned} a&= \vert SS\vert , &SS=\lbrace (x_i,x_j) \vert \lambda_i=\lambda_j, \lambda_i^* =\lambda_j^*,i<j \rbrace,\\ b&= \vert SD\vert , &SD=\lbrace (x_i,x_j) \vert \lambda_i=\lambda_j, \lambda_i^* \not =\lambda_j^*,i<j \rbrace,\\ c&= \vert DS\vert , &DS=\lbrace (x_i,x_j) \vert \lambda_i\not =\lambda_j, \lambda_i^* =\lambda_j^*,i<j \rbrace,\\ d&= \vert DD\vert , &DD=\lbrace (x_i,x_j) \vert \lambda_i\not =\lambda_j, \lambda_i^* \not =\lambda_j^*,i<j \rbrace, \end{aligned}
abcd=∣SS∣,=∣SD∣,=∣DS∣,=∣DD∣,SS={(xi,xj)∣λi=λj,λi∗=λj∗,i<j},SD={(xi,xj)∣λi=λj,λi∗=λj∗,i<j},DS={(xi,xj)∣λi=λj,λi∗=λj∗,i<j},DD={(xi,xj)∣λi=λj,λi∗=λj∗,i<j},
每个样本对
(
x
i
,
x
j
)
(x_i,x_j)
(xi,xj) ,鉴于
i
<
j
i<j
i<j 有
a
+
b
+
c
+
d
=
m
⋅
(
m
−
1
)
2
a+b+c+d=\frac {m\cdot (m-1)} 2
a+b+c+d=2m⋅(m−1)
基于以上定义,常用的性能度量的外部指标:
-
Jaccard系数
J C = a a + b + c JC=\frac a {a+b+c} JC=a+b+ca -
FM指数(Fowllkes and Mallows Index简称FMI)
F M I = a a + b ⋅ a a + c FMI=\sqrt{\frac a {a+b}\cdot \frac a {a+c}} FMI=a+ba⋅a+ca
以上两种只考虑匹配结果,而未考虑未匹配情形 d d d ,但是 d d d 的情形不一定对也不一定不对…
- Rand指数
R I = 2 ( a + d ) m ( m − 1 ) RI=\frac {2(a+d)}{m(m-1)} RI=m(m−1)2(a+d)
上述性能指标结果在 [ 0 , 1 ] [0,1] [0,1] 之间,值越大越好,okay
内部指标
考虑簇划分
C
=
{
C
1
,
C
2
,
.
.
.
,
C
k
}
C=\lbrace C_1, C_2,...,C_k \rbrace
C={C1,C2,...,Ck} 定义
簇
内
样
本
平
均
距
离
a
v
g
(
C
)
=
2
∣
C
∣
(
∣
C
∣
−
1
)
∑
1
≤
i
<
j
≤
∣
C
∣
d
i
s
t
(
x
i
,
x
j
)
簇
内
样
本
之
间
最
远
距
离
d
i
a
m
(
C
)
=
max
1
≤
i
<
j
≤
∣
C
∣
d
i
s
t
(
x
i
,
x
j
)
簇
C
i
与
簇
C
j
样
本
最
近
距
离
d
m
i
n
(
C
i
,
C
j
)
=
min
x
i
∈
C
i
,
x
j
∈
C
j
d
i
s
t
(
x
i
,
x
j
)
簇
C
i
与
簇
C
j
中
心
点
间
距
离
d
c
e
n
(
C
i
,
C
j
)
=
d
i
s
t
(
μ
i
,
μ
j
)
\begin{aligned} 簇内样本平均距离 && avg(C) &=\frac 2 {\vert C \vert (\vert C \vert -1)} \sum_{1\le i < j \le \vert C\vert} dist(x_i,x_j)\\ 簇内样本之间最远距离 && diam(C)&=\max_{1\le i < j \le \vert C\vert}dist(x_i,x_j)\\ 簇C_i 与 簇 C_j样本最近距离 && d_{min}(C_i,C_j)&=\min_{x_i\in C_i,x_j\in C_j} dist(x_i,x_j)\\ 簇C_i 与 簇 C_j中心点间距离 && d_{cen}(C_i,C_j)&=dist(\mu_i,\mu_j) \end{aligned}
簇内样本平均距离簇内样本之间最远距离簇Ci与簇Cj样本最近距离簇Ci与簇Cj中心点间距离avg(C)diam(C)dmin(Ci,Cj)dcen(Ci,Cj)=∣C∣(∣C∣−1)21≤i<j≤∣C∣∑dist(xi,xj)=1≤i<j≤∣C∣maxdist(xi,xj)=xi∈Ci,xj∈Cjmindist(xi,xj)=dist(μi,μj)
d
i
s
t
(
⋅
)
dist(\cdot)
dist(⋅) 计算两个样本之间的 距离
μ
\mu
μ 代表簇
C
C
C 的中心点
μ
=
1
∣
C
∣
∑
1
≤
i
≤
∣
C
∣
x
i
\mu=\frac 1 {\vert C\vert} \sum_{1\le i \le \vert C\vert}x_i
μ=∣C∣1∑1≤i≤∣C∣xi
基于以上定义有
-
DB指数
D B I = 1 k ∑ i = 1 k max i ≠ j ( a v g ( C i ) + a v g ( C j ) d c e n ( C i , C j ) ) DBI=\frac 1 k\sum_{i=1}^k{\max_{i\not = j}(\frac {avg(C_i)+avg(C_j)}{d_{cen}(C_i,C_j)})} DBI=k1i=1∑ki=jmax(dcen(Ci,Cj)avg(Ci)+avg(Cj))
sum{任意两簇平均距离/它们中心点间距离即簇间距离} – 越小越好okay -
Dunn指数
D I = min 1 ≤ i ≤ k { min i ≠ j ( d m i n ( C i , C j ) max 1 ≤ l ≤ k d i a m ( C l ) ) } DI=\min_{1\le i\le k}\lbrace \min_{i\not =j}(\frac {d_{min}(C_i,C_j)}{\max_{1\le l \le k}diam(C_l)})\rbrace DI=1≤i≤kmin{i=jmin(max1≤l≤kdiam(Cl)dmin(Ci,Cj))}
簇间间最小距离/簇内最大距离 – 越大越好okay
准则: 簇内距离越小,簇间距离越大
距离计算
距离度量函数 d i s t ( ⋅ ) dist(\cdot) dist(⋅) ,需要满足性质
- 非负性 d i s t ( x i , x j ) ≥ 0 dist(x_i,x_j)\ge 0 dist(xi,xj)≥0
- 同一性 d i s t ( x i , x j ) = 0 dist(x_i,x_j) =0 dist(xi,xj)=0 当且仅当 x i = x j x_i=x_j xi=xj
- 对称性 d i s t ( x i , x j ) = d i s t ( x j , x i ) dist(x_i,x_j) = dist(x_j,x_i) dist(xi,xj)=dist(xj,xi)
- 直递性(三角不等式) d i s t ( x i , x j ) + d i s t ( x i , x k ) ≥ d i s t ( x j , x k ) dist(x_i,x_j)+dist(x_i,x_k)\ge dist(x_j,x_k) dist(xi,xj)+dist(xi,xk)≥dist(xj,xk)
样本点 x i = ( x i 1 ; x i 2 ; . . . . ; x i n ) x_i=(x_{i1};x_{i2};....;x_{in}) xi=(xi1;xi2;....;xin) 与 x j x_j xj 之间距离计算
常用的距离度量函数:
闵可夫斯基距离
d
i
s
t
m
i
k
(
x
i
,
x
j
)
=
(
∑
u
=
1
n
∣
x
i
u
−
x
j
u
∣
p
)
1
p
dist_{mik}(x_i,x_j)=(\sum_{u=1}^n{\vert x_{iu}-x_{ju} \vert^p})^{\frac 1 p}
distmik(xi,xj)=(u=1∑n∣xiu−xju∣p)p1
当
p
≥
1
p\ge 1
p≥1 满足距离度量的基本要求。
p = 1... p = 2... p=1 ... p=2 ... p=1...p=2... ok
然而属性的数据类型 另外每一个维度的单位。。。
我们通常将数据属性划分为连续属性和离散属性。 离散属性是否定义了“序” {1,2,3} 可以用闵可夫斯基距离 {“人”,“马”,“人马”} no
对于无序属性可采用 VDM(Value Difference Metric)
定义:
m
u
,
a
m_{u,a}
mu,a 属性
u
u
u 上取值为
a
a
a 的样本数
m
u
,
a
,
i
m_{u,a,i}
mu,a,i 第i 个样本簇中属性
u
u
u 上取值为
a
a
a 的样本数 样本簇总数
k
k
k
属性u上两个离散值a,b之间的VDM距离
V
D
M
p
(
a
,
b
)
=
∑
i
=
1
k
∣
m
u
,
a
,
i
m
u
,
a
−
m
u
,
b
,
i
m
u
,
b
∣
p
VDM_p(a,b)=\sum_{i=1}^k\vert \frac {m_{u,a,i}} {m_{u,a}} -\frac {m_{u,b,i}} {m_{u,b}} \vert^p
VDMp(a,b)=i=1∑k∣mu,amu,a,i−mu,bmu,b,i∣p
簇中u取值为a,b占比之差
联合闵可夫斯基距离与VDM – 处理前
n
c
n_c
nc 个有序属性、
n
−
n
c
n-n_c
n−nc 个无序属性
M
i
n
k
o
v
D
M
p
(
x
i
,
x
j
)
=
(
∑
u
=
1
n
c
∣
x
i
u
−
x
j
u
∣
p
+
∑
u
=
n
c
+
1
n
V
D
M
p
(
x
i
u
,
x
j
u
)
)
1
p
MinkovDM_p(x_i,x_j)=(\sum_{u=1}^{n_c}{\vert x_{iu}-x_{ju} \vert^p} + \sum_{u=n_c+1}^n{VDM_p(x_{iu},x_{ju})})^{\frac 1 p}
MinkovDMp(xi,xj)=(u=1∑nc∣xiu−xju∣p+u=nc+1∑nVDMp(xiu,xju))p1
当样本空间中不同属性的重要性不同时,使用加权距离 ∑ w u ⋅ d i s t ( x i u , x j u ) , ∑ w i = 1 \sum{w_u\cdot dist(x_{iu},x_{ju})},\sum{w_i}=1 ∑wu⋅dist(xiu,xju),∑wi=1
距离作为相似度度量时,未必一定要满足距离度量的所有性质,尤其是直递性。
“人”,“马” 分别与 "人马"相似,but “人"与"马” no。。。 ,此时就不应该再满足直递性{非度量距离
}, 此时需要选取合适度量标准
\quad
“距离度量学习”
原型聚类
假设聚类结构能通过一组原型刻画
k-means算法
给定样本集 D = { x 1 , x 2 , . . . , x m } D=\lbrace x_1,x_2,...,x_m\rbrace D={x1,x2,...,xm}, k-means算法针对聚类所得簇划分 C = { C 1 , C 2 , . . . , C k } C=\lbrace C_1,C_2,...,C_k\rbrace C={C1,C2,...,Ck} 最小化平方误差
E = ∑ i = 1 k ∑ x ∈ C i ∥ x − μ i ∥ 2 2 E=\sum_{i=1}^{k}{\sum_{x\in C_i}\Vert x-\mu_i \Vert_2^2} E=i=1∑kx∈Ci∑∥x−μi∥22
其中 μ i = 1 ∣ C i ∣ ∑ x ∈ C i x \mu_i=\frac 1 {\vert C_i\vert}\sum_{x \in C_i}x μi=∣Ci∣1∑x∈Cix 是簇 C i C_i Ci 的均值向量。
最小化
E
E
E , 由于
E
E
E 的定义…
优缺点
简单快捷
初始化均值向量陷入到局部最优解,
由于E的定义,对每一个样本点{噪点}进行计算, 不适用球形邻域以外的
学习向量化(Learning Vector Quantization,LVQ)
LVQ假设数据样本带有类别标记,学习过程中使用监督信息来辅助聚类
给定样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } D=\lbrace (x_1,y_1),(x_2,y_2),...,(x_m,y_m)\rbrace D={(x1,y1),(x2,y2),...,(xm,ym)} 其中 x i x_i xi为n维类别标记 x i u , u = 1 , 2 , . . . , n x_{iu},u=1,2,...,n xiu,u=1,2,...,n y i ∈ Y y_i\in Y yi∈Y 为样本类别
LVQ的目标是学习一组n维原型向量 { p 1 , p 2 , . . , p q } \lbrace p_1,p_2,..,p_q \rbrace {p1,p2,..,pq} ,每个原型向量代表一个聚类簇,簇标记 t i ∈ Y t_i\in Y ti∈Y
高斯混合聚类
模式聚类
高斯混合(Mixture-of-Gaussian)聚类采用概率模型来表达聚类原型
高斯混合分布
p M ( x ) = ∑ i = 1 k α i ⋅ p ( x ∣ μ i , Σ i ) p_\mathcal{M}(x)=\sum_{i=1}^{k}{\alpha_i \cdot p(x\vert \mu_i,\Sigma_i)} pM(x)=i=1∑kαi⋅p(x∣μi,Σi)
x i ∼ N ( μ i , Σ i 2 ) x_i \sim N(\mu_i,\Sigma_i^2) xi∼N(μi,Σi2) 另外为了满足概率密度函数的基本要求 ∑ i = 1 k α i = 1 , ∀ α i > 0 \sum_{i=1}^{k}{\alpha_i}=1, \forall \alpha_i>0 ∑i=1kαi=1,∀αi>0
假设样本的生成过程由高斯混合分布给出:首先,根据 α 1 , α 2 , . . . , α k \alpha_1,\alpha_2,...,\alpha_k α1,α2,...,αk定义的先验分布选择高斯混合成分,其中 α i \alpha_i αi 为选择第 i 个混合成分的概率,然后,根据被选择的混合成分的概率密度函数进行采样,从而生成相应样本。 (贝叶斯ok)
若训练集
D
=
{
x
1
,
x
2
,
.
.
.
,
x
m
}
D=\lbrace x_1,x_2,...,x_m\rbrace
D={x1,x2,...,xm} 由上述过程生成,令随机变量
z
j
∈
{
1
,
2
,
.
.
,
k
}
z_j \in \lbrace 1,2,..,k\rbrace
zj∈{1,2,..,k} 表示生成样本
x
j
x_j
xj 的高斯混合成分(
α
j
\alpha_j
αj ),其取值未知。 显然
z
j
z_j
zj 的先验概率
P
(
z
j
=
i
)
P(z_j=i)
P(zj=i) 对应于
α
i
\alpha_i
αi. 根据贝叶斯定理 ,
z
j
z_j
zj的后验分布对应于
γ
j
i
=
p
M
(
z
j
=
i
∣
x
j
)
=
P
(
z
j
=
i
)
⋅
p
M
(
x
j
∣
z
j
=
i
)
p
M
(
x
j
)
=
α
i
⋅
p
M
(
x
j
∣
μ
i
,
Σ
i
)
∑
l
=
1
k
α
l
⋅
p
M
(
x
j
∣
μ
l
,
Σ
l
)
\begin{aligned} \gamma_{ji}&=p_\mathcal{M}(z_j=i\vert x_j)\\ &=\frac {P(z_j=i)\cdot p_\mathcal{M}(x_j\vert z_j=i)}{p_\mathcal{M}(x_j)}\\ &=\frac {\alpha_i \cdot p_\mathcal{M}(x_j\vert \mu_i,\Sigma_i)} {\sum_{l=1}^{k}{\alpha_l \cdot p_\mathcal{M}(x_j\vert \mu_l,\Sigma_l)}} \end{aligned}
γji=pM(zj=i∣xj)=pM(xj)P(zj=i)⋅pM(xj∣zj=i)=∑l=1kαl⋅pM(xj∣μl,Σl)αi⋅pM(xj∣μi,Σi)
目的 最大后验概率
当高斯混合分布已知时{即
{
α
i
,
μ
i
,
Σ
i
}
i
=
1
,
2
,
.
.
.
.
,
k
\lbrace \alpha_i,\mu_i,\Sigma_i \rbrace_{i=1,2,....,k}
{αi,μi,Σi}i=1,2,....,k 已知},高斯混合聚类将样本集D划分为k个簇
C
=
{
C
1
,
C
2
,
.
.
.
,
C
k
}
C=\lbrace C_1,C_2,...,C_k\rbrace
C={C1,C2,...,Ck} ,每个样本x_j的簇标记
λ
j
\lambda_j
λj 如下确定:
λ
j
=
arg
max
i
∈
{
1
,
2
,
.
.
.
,
k
}
γ
j
i
\lambda_j=\arg \max_{i\in\lbrace 1,2,...,k\rbrace}\gamma_{ji}
λj=argi∈{1,2,...,k}maxγji
因此从原型角度看,高斯混合聚类是利用概率模型对原型进行刻画,簇划分则由原型对后验概率确定。
密度聚类
假设聚类结构能通过样本分布的紧密程度确定,通常情形下,密度聚类算法从样本密度的角度考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。
DBSCAN是一种著名的密度聚类算法,她是基于一组邻域(neighborhood)参数 ( ε , M i n p t s ) (\varepsilon,Minpts) (ε,Minpts) 来刻画样本分布的紧密程度。
给定数据集 D = { x 1 , x 2 , . . . , x m } D=\lbrace x_1,x_2,...,x_m\rbrace D={x1,x2,...,xm} , 定义
- ε \varepsilon ε邻域: 对 x j ∈ D x_j\in D xj∈D,其 ε \varepsilon ε邻域包含样本集D中与 x j x_j xj 距离不大于 ε \varepsilon ε ,即 N ε ( x j ) = { x j ∈ D ∣ d i s t ( x i , x j ) ≤ ε } N_{\varepsilon}(x_j)=\lbrace x_j\in D \vert dist(x_i,x_j)\le \varepsilon \rbrace Nε(xj)={xj∈D∣dist(xi,xj)≤ε}
- 核心对象(core object):若 x j x_j xj 的 ε \varepsilon ε邻域至少包含 MinPts个样本,即 ∣ N ε ( x j ) ∣ ≥ M i n p t s \vert N_{\varepsilon}(x_j) \vert \ge Minpts ∣Nε(xj)∣≥Minpts ,则 x j x_j xj 是一个核心对象;
- 密度直达(directly density-reachable):若 x j x_j xj 位于 x i x_i xi 的 ε \varepsilon ε邻域中,则称 x j x_j xj 与 x i x_i xi 密度直达;
- 密度可达(density-reachable):对 x i x_i xi 与 x j x_j xj ,若存在样本序列 p 1 , p 2 , . . . , p n p_1,p_2,...,p_n p1,p2,...,pn , 其中 p 1 = x i , p n = x j p_1=x_i,p_n=x_j p1=xi,pn=xj 且 p i p_i pi 与 p i + 1 p_{i+1} pi+1 密度直达,则称 x i x_i xi 与 x j x_j xj 密度可达;
- 密度相连(density-connected): 对
x
i
x_i
xi 与
x
j
x_j
xj ,若存在
x
k
x_k
xk 使得
x
i
x_i
xi 与
x
j
x_j
xj 均由
x
k
x_k
xk 密度可达,则称
x
i
x_i
xi 与
x
j
x_j
xj 密度相连。
基于以上概念,DBSCAN 将 簇 定义为: 由密度可达关系导出的最大的密度相连样本集合。
簇的性质
- 连接性(connectivity): x i ∈ C , x j ∈ C → x i 与 x j 密 度 相 连 x_i\in C,x_j\in C \rightarrow x_i与x_j密度相连 xi∈C,xj∈C→xi与xj密度相连
- 最大性(maximality): x i ∈ C , x j 与 x i 密 度 可 达 → x j ∈ C x_i \in C, x_j 与 x_i密度可达 \rightarrow x_j \in C xi∈C,xj与xi密度可达→xj∈C
密度可达 – ε \varepsilon ε 邻域内
层次聚类
试图在不同层次对数据集进行划分,从而形成树形的聚类结构。
数据集的划分可采用"自底向上"的聚合策略,也可采用自顶向下的分拆策略。
AGNES是一种自底向上聚合策略的层次聚类算法,它将数据集中的每个样本看做一个初始簇,然后在算法的每一步中找出距离最近的两个聚类簇进行合并,给过程不断进行重复,直至达到预测的聚类簇个数.
距离计算
最 小 距 离 d m i n ( C i , C j ) = min x ∈ C i , z ∈ C j d i s t ( x , z ) 最 大 距 离 d m a x ( C i , C j ) = max x ∈ C i , z ∈ C j d i s t ( x , z ) 平 均 距 离 d a v g ( C i , C j ) = 1 ∣ C i ∣ ∣ C j ∣ ∑ x ∈ C i ∑ z ∈ C j d i s t ( x , z ) \begin{aligned} 最小距离 && d_{min}(C_i,C_j)&= \min_{x\in C_i,z\in C_j}{dist(x,z)}\\ 最大距离 && d_{max}(C_i,C_j)&= \max_{x\in C_i,z\in C_j}{dist(x,z)}\\ 平均距离 && d_{avg}(C_i,C_j)&= \frac 1 {\vert C_i \vert \vert C_j \vert}\sum_{x\in C_i}{\sum_{z\in C_j}{dist(x,z)}} \end{aligned} 最小距离最大距离平均距离dmin(Ci,Cj)dmax(Ci,Cj)davg(Ci,Cj)=x∈Ci,z∈Cjmindist(x,z)=x∈Ci,z∈Cjmaxdist(x,z)=∣Ci∣∣Cj∣1x∈Ci∑z∈Cj∑dist(x,z)
图的最小生成树 连通分量–簇