【文献阅读笔记】Unsupervised Deep Embedding for Clustering Analysis

文章介绍了一种名为DeepEmbeddedClustering(DEC)的无监督学习方法,它利用深度神经网络同时学习特征空间和聚类分配。DEC通过迭代优化基于KL散度的目标函数,自动生成特征表示并改进聚类效果。这种方法在特征空间选择和聚类任务中提供了一种数据驱动的解决方案。
摘要由CSDN通过智能技术生成

标题(paper):Unsupervised Deep Embedding for Clustering Analysis

期刊 + 时间 + 有无源代码: Proceedings of the 33 rd International Conference on Machine
Learning + 2016 + 没收集

作者: Junyuan Xie, Ross Girshick, Ali Farhadi

方法名及缩写: Deep Embedded Clustering
(DEC)

算法框架: 使用从当前软聚类分配中派生的辅助目标分布来迭代地改进聚类。这个过程逐步改进了聚类和特征表示。

DEC的工作原理是迭代优化基于KL散度的聚类目标和自训练目标分布。

流程图 : 在这里插入图片描述

DEC模型分为两个部分:(1)自编码器用于参数初始化;(2)参数优化(即聚类)。

主要创新点: 利用深度神经网络同时学习特征空间和分配聚类。

动机: 特征空间的选择通常作为应用程序特定的细节留给最终用户来决定。然而很明显,特征空间的选择是至关重要的;除了最简单的图像数据集,在原始像素上使用欧几里德距离聚类是完全无效的。在本文中,我们重新审视了聚类分析,并提出了一个问题:我们能否使用数据驱动的方法来共同解决特征空间和聚类隶属关系?

目标函数:

第一部分:自编码器作非线性映射: f θ : X → Z f_{\theta}:X\to Z fθ:XZ 其中 θ \theta θ是可以学习的参数, Z Z Z潜在特征表示。

DEC:

(1)初始化参数 θ \theta θ { μ j } j = 1 k \{\mu_j\}^k_{j=1} {μj}j=1kk个类的类中心点。

(2)利用KL散度进行聚类:

  • 第一步计算软聚类
    q i j = ( 1 + ∥ z i − μ j ∥ 2 / α ) − α + 1 2 ∑ j ′ ( 1 + ∥ z i − μ j ′ ∥ 2 / α ) − α + 1 2 , q_{ij}=\frac{(1+\|z_i-\mu_j\|^2/\alpha)^{-\frac{\alpha+1}2}}{\sum_{j^{\prime}}(1+\|z_i-\mu_{j^{\prime}}\|^2/\alpha)^{-\frac{\alpha+1}2}}, qij=j(1+ziμj2/α)2α+1(1+ziμj2/α)2α+1,
    α \alpha α是Students t 分布的自由度( α = 1 \alpha=1 α=1

    q i j q_{ij} qij是样本 i i i被分配到第 j j j个类的概率

  • KL 散度最小化
    L = K L ( P ∥ Q ) = ∑ i ∑ j p i j log ⁡ p i j q i j . L=\mathrm{KL}(P\|Q)=\sum_i\sum_jp_{ij}\log\frac{p_{ij}}{q_{ij}}. L=KL(PQ)=ijpijlogqijpij.

    p i j p_{ij} pij是辅助分布(对最终的表现影响大)

    确定 p i j p_{ij} pij
    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^{\prime}}q_{ij^{\prime}}^2/f_{j^{\prime}}}, pij=jqij2/fjqij2/fj,
    f j = ∑ i q i j f_j=\sum_iq_{ij} fj=iqij是软聚类的频率。

对上述目标函数的总结

首先DEC预训练模型,然后去掉自编码器的解码部分。

那么,现在的编码器:
L = K L ( P ∥ Q ) = ∑ i ∑ j p i j log ⁡ p i j q i j L=KL(P\|Q)=\sum_i\sum_jp_{ij}\log\frac{p_{ij}}{q_{ij}} L=KL(PQ)=ijpijlogqijpij
q i j q_{ij} qij是特征空间 z i z_i zi和聚类中心 μ j \mu_j μj的相似度(可以看作是 z i z_i zi有多大可能属于 μ j \mu_j μj这个类)。 q i j q_{ij} qij的计算是学生 t-分布:
q i j = ( 1 + ∥ z i − μ j ∥ 2 ) − 1 ∑ j ( 1 + ∥ z i − μ j ∥ 2 ) − 1 q_{ij}=\frac{(1+\|z_i-\mu_j\|^2)^{-1}}{\sum_j(1+\|z_i-\mu_j\|^2)^{-1}} qij=j(1+ziμj2)1(1+ziμj2)1
p i j p_{ij} pij​是目标分布:
p i j = q i j 2 / ∑ i q i j ∑ j ( q i j 2 / ∑ i q i j ) p_{ij}=\frac{q_{ij}^2/\sum_iq_{ij}}{\sum_j\left(q_{ij}^2/\sum_iq_{ij}\right)} pij=j(qij2/iqij)qij2/iqij
目标分布 P P P是由 Q Q Q定义的,所以最小化 L L L是一种自我训练

优化

z i = f W ( x i ) z_i=f_W(x_i) zi=fW(xi)是编码器的映射。在预训练之后,对 z i z_i zi利用k-meas获得最初的聚类中心点 μ j \mu_j μj,然后最小化 L L L(梯度下降的方法计算),这里样本 x i x_i xi的预测标号为 a r g m a x j q i j argmax_jq_{ij} argmaxjqij.

对于方向传播:根据 ∂ L / ∂ z i \partial L/\partial z_i L/zi去反向更新编码器 f W ( ) f_W() fW(), 通过 ∂ L / ∂ μ j ) \partial L/\partial \mu_j) L/μj)更新聚类中心点 μ j \mu_j μj
μ j = μ j − λ ∂ L ∂ μ j \mu_j=\mu_j-\lambda\frac{\partial L}{\partial\mu_j} μj=μjλμjL

优化步骤: 使用带动量的随机梯度下降(SGD)方法对聚类中心 { μ j } \{\mu_j\} {μj}和DNN参数 θ \theta θ进行联合优化。
∂ L ∂ z i = α + 1 α ∑ j ( 1 + ∥ z i − μ j ∥ 2 α ) − 1 ( 4 ) × ( p i j − q i j ) ( z i − μ j ) , ∂ L ∂ μ j = − α + 1 α ∑ i ( 1 + ∥ z i − μ j ∥ 2 α ) − 1 ( 5 ) × ( p i j − q i j ) ( z i − μ j ) . \begin{matrix}\frac{\partial L}{\partial z_i}&=&\frac{\alpha+1}{\alpha}\sum_j(1+\frac{\|z_i-\mu_j\|^2}{\alpha})^{-1}&(4)\\&&\times(p_{ij}-q_{ij})(z_i-\mu_j),\\\frac{\partial L}{\partial\mu_j}&=&-\frac{\alpha+1}{\alpha}\sum_i(1+\frac{\|z_i-\mu_j\|^2}{\alpha})^{-1}&(5)\\&&\times(p_{ij}-q_{ij})(z_i-\mu_j).\end{matrix} ziLμjL==αα+1j(1+αziμj2)1×(pijqij)(ziμj),αα+1i(1+αziμj2)1×(pijqij)(ziμj).(4)(5)
然后将梯度 ∂ L ∂ z i \frac{\partial L}{\partial z_i} ziL传递给DNN,并在标准反向传播中使用,以计算DNN的参数梯度 ∂ L ∂ θ \frac{\partial L}{\partial\theta} θL。为了发现聚类分配,当在两个连续迭代之间更改聚类分配的点少于 t o l % tol\% tol%时,迭代停止该过程

注解:(优缺点 + 随便想记的内容 )

1、初始化DEC利用 stacked autoencoder (SAE)

2、自编码器的设计和优化可以查原文

3、所有数据集的网络层数d–500–500–2000–10,d是数据空间的维度

4、基于DAE的改进

5、DEC在预训练之后舍弃了解码过程,同时根据聚类过程实时更新编码器,在DEC中也只考虑了聚类损失(关于这一点我感觉DEC像是把编码过程给他融合到了聚类过程之中,可以理解为在传统方法中将各类范数或者是原始数据重构的过程融合到目标函数中,算在聚类的一个环节里)

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值