Deep Embedded Cluster
简介
一般的聚类算法例如K-means,GMM,这些方法速度快,适用于各种各样的问题, 但是,它们的距离度量仅限于原始数据空间,当输入维度较高时,它们往往无效。因此突出DEC聚类,DEC可以同时学习使用深度神经网络的特征表示和聚类分配,DEC从数据空间学习映射到低维特征空间,在该特征空间中迭代地优化聚类目标。
DEC定义了一个基于质心的概率分布,并将KL散度最小化为一个辅助目标分布,以同时改善聚类分配和特征表示,而不是最小化KL散度以产生忠实于原始数据空间中的距离的嵌入。 基于质心的方法还具有降低 O(nk) 的复杂度的优点,其中k是质心的数量。
DEC通过同时学习特征空间Z中的k个聚类中心 { u j ∈ Z } j = 1 k \{u_{j} \in Z\}_{j=1}^k {uj∈Z}j=1k 和将数据点映射到Z的DNN的参数 θ \theta θ 来聚类数据。DEC具有两个阶段:( 1)使用自动编码器进行参数初始化,(2)参数优化(即聚类),其中我们在计算辅助目标分布和最小化Kullback-Leibler(KL)散度之间进行迭代。
贡献:
(a)深度嵌入和聚类的联合优化;
(b)通过软分配进行新颖的迭代改进;
(c)得出聚类精度和速度方面最先进的聚类结果;
KL散度
给定非线性映射 f θ f_{\theta} fθ 和初始聚类质心 { u j } j = 1 k \{u_{j}\}_{j=1}^{k} {uj}j=1k 的初始估计,DEC使用在两个步骤之间交替的无监督算法来改进聚类。 在第一步中,我们计算嵌入点和集群质心之间的软分配。 在第二步中,我们更新深度映射 f θ f_{\theta} fθ 并通过使用辅助目标分布从当前高置信度分配中学习来优化聚类质心。 重复这个过程直到满足收敛条件。
软分配
基于 t-sne 的思想,DEC使用 t 分布作为核来测量嵌入点和质心之间的相似度。
q
i
j
=
(
1
+
∣
∣
z
i
−
u
j
∣
∣
2
/
α
)
α
+
1
2
∑
j
‘
(
1
+
∣
∣
z
i
−
u
j
‘
∣
∣
2
/
α
)
α
+
1
2
q_{ij}=\frac{(1+||z_{i}-u_{j}||^2/\alpha)^\frac{\alpha+1}{2}}{\sum_{j^`}(1+||z_{i}-u_{j^`}||^2/\alpha)^\frac{\alpha+1}{2}}
qij=∑j‘(1+∣∣zi−uj‘∣∣2/α)2α+1(1+∣∣zi−uj∣∣2/α)2α+1
其中
z
i
=
f
θ
(
x
i
)
∈
Z
z_{i}=f_{\theta}(x_{i}) \in Z
zi=fθ(xi)∈Z 对应于嵌入后的
x
i
∈
X
x_{i} \in X
xi∈X ,
α
\alpha
α 是Student-t分布自由度,
q
i
j
q_{ij}
qij 可解释为将样本i分配给聚类j的概率(即软分配)。在所有实验中作者设置
α
\alpha
α = 1。
作者提出另一个辅助分布也用来衡量样本属于某个聚类的分布:
p
i
j
=
q
i
j
2
/
f
j
∑
j
‘
q
i
j
‘
2
/
f
j
‘
p_{ij}=\frac{q_{ij}^2/f_{j}}{\sum_{j^`}q_{ij^`}^2/f_{j^`}}
pij=∑j‘qij‘2/fj‘qij2/fj
其中
f
j
=
∑
i
q
i
j
f_{j}=\sum_{i}q_{ij}
fj=∑iqij 是软群频率。
作者的论文中说该公式主要考虑以下三点:
- 强化预测。q分布为软分配的概率,那么p如果使用delta分布来表示,显得比较原始。
- 置信度越高,属于某个聚类概率越大。
- 规范每个质心的损失贡献,以防止大类扭曲隐藏的特征空间。分子中那个 f j f_{j} fj就是做这个的。
KL散度的测量
综上所述,作者给出了原始分布和假设分布,那么就需要使用 KL-divergence 去拉近两分布之间的距离:
L
=
K
L
(
P
∣
∣
Q
)
=
∑
i
∑
j
p
i
j
log
p
i
j
q
i
j
L=KL(P||Q)=\sum_{i}\sum_{j}p_{ij}\log\frac{p_{ij}}{q_{ij}}
L=KL(P∣∣Q)=i∑j∑pijlogqijpij
每次迭代更新需要Update的参数为:
∂
L
∂
z
i
=
α
+
1
α
∑
j
(
1
+
∣
∣
z
i
−
u
j
∣
∣
2
α
)
−
1
×
(
p
i
j
−
q
i
j
)
(
z
i
−
u
j
)
\frac{\partial L}{\partial z_{i}}=\frac{\alpha+1}{\alpha}\sum_{j}(1+\frac{||z_{i}-u_{j}||^2}{\alpha})^{-1}\times(p_{ij}-q_{ij})(z_{i}-u_{j})
∂zi∂L=αα+1j∑(1+α∣∣zi−uj∣∣2)−1×(pij−qij)(zi−uj)
∂
L
∂
u
j
=
−
α
+
1
α
∑
i
(
1
+
∣
∣
z
i
−
u
j
∣
∣
2
α
)
−
1
×
(
p
i
j
−
q
i
j
)
(
z
i
−
u
j
)
\frac{\partial L}{\partial u_{j}}=-\frac{\alpha+1}{\alpha}\sum_{i}(1+\frac{||z_{i}-u_{j}||^2}{\alpha})^{-1}\times(p_{ij}-q_{ij})(z_{i}-u_{j})
∂uj∂L=−αα+1i∑(1+α∣∣zi−uj∣∣2)−1×(pij−qij)(zi−uj)
第一个公式是优化AE中的Encoder参数,第二个公式是优化聚类中心。也就是说作者同时优化了聚类和DNN的相关参数。
结构图

DEC算法由两部分组成,第一部分会预训练一个AE模型;第二部分选取AE模型中的Encoder部分,加入聚类层,使用KL散度进行训练聚类。
References:
https://zhuanlan.zhihu.com/p/50365577
https://flashgene.com/archives/7798.html
https://zhuanlan.zhihu.com/p/28967965
http://proceedings.mlr.press/v48/xieb16.pdf

DEC是一种深度学习驱动的聚类方法,它结合了深度神经网络和聚类算法,尤其适用于高维数据。DEC通过学习低维特征表示并优化聚类分配,使用KL散度最小化来改进聚类效果。算法包括自动编码器预训练和聚类优化两个阶段,实现了聚类和特征学习的联合优化,提供了一种有效的非监督学习策略。

7096

被折叠的 条评论
为什么被折叠?



