Ghasedi Dizaji K, Herandi A, Deng C, et al. Deep clustering via joint convolutional autoencoder embedding and relative entropy minimization[C]//Proceedings of the IEEE international conference on computer vision. 2017: 5736-5745.
摘要翻译
论文提出了一个新的聚类模型---DEeP Embedded RegularIzed ClusTering (DEPICT),它可以有效的学习具有辨别性的嵌入子空间并且进行精准的聚类分配。DEPICT通常由一个堆叠在一个多项式逻辑回归函数上的多层卷积自编码器组成。模型使用相对熵(KL散度)最小化定义了一个聚类目标函数,并通过先验的聚类分配频率进行正则化。然后,通过更新参数和估计聚类分配,推导出一种交替策略来优化目标。此外,使用自编码器中的重构损失函数,作为一个数据相关的正则化项,以防止深度嵌入函数的过拟合。为了受益于端到端优化,消除层预训练的必要性,我们引入了一个联合学习框架来最小化统一的聚类和重建损失函数,并同时训练所有的网络层。实验结果表明,描述在真实聚类任务中具有优越性和更快的运行时间。
作者在intro总结了当前聚类存在的几点问题:
(1)使用不灵活的hand-crafted features(并不依赖于输入数据的分布)
(2)使用浅层和线性的嵌入函数,不能捕获数据的非线性性质
(3) 学习嵌入和聚类的过程并不是联合的,没法得到聚类的最佳嵌入子空间
(4)复杂的聚类算法需要使用标记数据来调整超参数,这在现实的聚类任务中是不可行的
DEPICT利用了判别聚类方法和深度嵌入模型的优势,缓解上述问题。DEPICT通常由两个主要部分组成,即堆叠在多层卷积自编码器之上的逻辑回归(soft-max)层和卷积自编码器本身。
总体的优势可以概括为:
- 可以通过深度卷积自编码器提供一个具有判别性的非线性嵌入子空间;
- 引入了一种端到端联合学习方法,统一了聚类和嵌入任务,避免了层预训练;
- 在高维和大规模的数据集上实现优越的或有竞争力的聚类结果,而不需要使用标记数据进行超参数调优。
模型浅析( Deep Embedded Regularized Clustering)
首先介绍模型中涉及到的损失函数和相关优化方法,交替进行聚类分配和参数优化。然后,介绍联合训练的模型结构。
DEPICT Algorithm
和所有的自编码结构模型一样,将原始样本表示通过嵌入函数得到低维的表示。给定学习到的嵌入特征,使用多项式逻辑回归(soft-max)函数预测聚类分配的概率。
为了定义聚类目标函数,使用辅助目标变量迭代细化模型预测。因为和显然都是样本到类簇的一个概率状况,因此可以理解为分布概率。为此,作者首先使用KullbackLeibler(KL)散度来减少模型预测与目标变量之间的距离。(这一点与DEC中使用是一致的)
为了避免 “退化解” 将大部分样本分配给几个簇或分配给离群样本,作者采用了对目标变量施加一个正则化项以达到缓解或类簇平衡的目的。为此,首先将目标变量的经验标签分布定义为:
其中,可以被认为是目标分布中聚类分配的软频率。使用这种经验分布,能够通过在损失函数中添加另一个KL散度来加强模型对平衡分配的偏好。 其中,是经验标签分布的均匀先验。
目标函数中的第一项使目标和模型预测分布之间的距离最小化,而第二项平衡了目标变量中簇的频率。利用平衡的目标变量,我们可以间接地迫使模型有更平衡的预测(聚类分配)。并且作者在这里指出,如果对簇的频率有任何额外的了解,那么将先验从均匀分布更改为目标函数中的任意分布也很简单。
整个模型采用一种交替学习的方法来优化目标函数。使用这种方法,我们通过固定参数(E步骤)估计目标变量,并在假设目标变量已知时更新参数(M步骤)。因此:推断目标变量的问题有以下目标:
并且,目标函数相对于目标变量的偏导数计算结果如下: 为了更仔细地研究这个问题,在公式(6)中通过删除第二项对梯度进行了近似,因为样本的数量N通常大到足以忽略第二项。在这种条件下,令梯度为零,即:,可以相应地计算的封闭形式解(求大神指教): 这一步骤相当于对目标变量的估计(E-step)。对于M-step,我们使用估计的目标变量更新网络参数和以下目标函数:
对于该目标函数,作者也给出了有趣的解释。这个问题可以作为分类任务的标准交叉熵损失函数,可以有效地使用反向传播对soft-max层和嵌入函数的参数进行更新学习。
DEPICT Architecture
该节作者使用去噪自编码器扩展了一般的聚类损失函数。深度嵌入函数( deep embedding function)对于捕获输入数据的非线性特性很有用;然而,它可能会过度拟合的数据相关性,并在训练期间陷入不理想的局部最小值 。为了避免这种过拟合,论文采用了自编码器结构,并使用重构损失函数作为数据相关的正则化来训练参数。DEPICT设计为包括一个soft-max层堆叠在多层卷积自编码器上。由于strided卷积层具有良好的性能,`模型在编码器中使用卷积层,在解码器路径中使用strided卷积层,避免使用确定性的空间池化层的使用(如最大池化)。
Strided convolutional layers allow the network to learn its own spatial upsampling, providing a better generation capability.
与去噪自动编码器的标准学习方法(包含一层的预训练,然后进行微调)不同,我们同时学习所有的自动编码器和soft-max层。
由模型图可以看出,DEPICT包括几个组件:
- Corrupted (noisy) feedforward (encoder) pathway 将噪声输入数据映射(卷积层+全连接层)到嵌入子空间。 其中是第层的噪声特征,Dropout是一个随机Mask函数,它随机将其输入的一个子集设置为零,是卷积或全连接层的激活函数 ,表示编码器中第层的权重。请注意,第一层特征等于有噪声的输入数据。
- 在Corrupted encoder之下,decoder pathway通过一个全链接层和多个strided卷积层重构输入数据: 其中,是第层重建层的输出,显示了解码器的第层的权值。输入重建。
- Clean feedforward (encoder) pathway与 corrupted encoder共享权重,并推断出 clean embedded features。下面公式显示了Clean feedforward (encoder) 的输出,用于重建损失函数和获得最终的聚类分配。 其中是encoder中第层的clean输出。第一层特征。
- 给定Corrupted encoder和Clean feedforward (encoder) pathway顶层作为嵌入子空间,soft-max层使用Eq(1).获得聚类分配。
note:论文中使用Clean feedforward (encoder) pathway计算目标变量,并通过Corrupted (noisy) feedforward (encoder) pathway建立模型预测。因此,聚类损失函数迫使模型具有关于噪声的不变特征。换句话说,模型被假设具有双重作用:使用Clean feedforward (encoder)计算更准确的目标变量;Corrupted (noisy) feedforward (encoder),经过训练以实现噪声不变预测。
DEPICT的Loss函数为: total loss算法的整体流程如下:
据说效果可以达到如下:
论文代码地址: https://github.com/herandy/DEPICT
关于论文的阅读记录两点,
- 作者在求目标变量的时候说到了封闭形式解,但说这个过程需要交替来进行:难道是给出由计算的封闭解形式,每次的计算都由网络的前馈计算自然的更新,还有那个封闭形式解的求法。。真的是跪了
- 第二点,作者在(2)式中给出了基础的聚类损失,然后又在其中加入了有助于平衡分布的正则项。关于这一点在类簇分布不均匀的数据集中,貌似显得有点鸡肋,当然作者也说了可以进行替换,但很明显在实际的应用中,我们是无法得到数据的这个先验的。(当然这就类似于我们在聚类之前知道类簇个数一样。。。很无语,但必须)
网友评论