深度聚类相关(三篇文章)

一、Deep Clustering for Unsupervised Learning of Visual Features

原文链接:https://arxiv.org/pdf/1807.05520.pdf

        完全不需要标签的无监督学习方法,好像是为了学习好的特征表达(当然下游任务肯定需要标签)。

网络结构

深度聚类相关(三篇文章)_第1张图片

        将所有N个输入图像输入卷积神经网络得到表达(或特征)(设输入x_n对应的输出f_\theta(x_n))。然后输入到两个分支:分类分支和聚类分支。

        聚类分支先用某种方式聚类(如K-means),得到每张图片的“伪标签”y_n=[0,\cdots,0,1,0,\cdots,0],并计算聚类损失(C为待学习的参数矩阵):

\min_{C\in \mathbb{R}^{d\times k}}\frac{1}{N}\sum_{n=1}^N\min_{y_n\in\{0,1\}^k}\left \| f_\theta(x_n)-Cy_n \right \|^2_2

其中y_n^T\mathbf{1}_k=1

        分类分支则利用分类头(g_W)预测结果,与伪标签比较,计算得到分类损失(log-softmax):

\min_{\theta,W}\frac{1}{N}\sum_{n=1}^Nl(g_W(f_\theta(x_n)),y_n)

        为防止出现平凡解:当一个簇B为空时,随机选择一个非空簇A,并使用带有小随机扰动的质心作为空簇B的新质心。然后,将属于非空簇A的点重新分配给两个结果簇(AB);对输入数据进行重新采样使得分布均匀。

        若下游任务为图像分类,则丢掉上面的分类和聚类分支,加入新的分类头并微调。

二、ClusterNet: Deep Hierarchical Cluster Network with Rigorously Rotation- Invariant Representation for Point Cloud Analysis

原文链接:ClusterNet: Deep Hierarchical Cluster Network With Rigorously Rotation-Invariant Representation for Point Cloud Analysis | IEEE Conference Publication | IEEE Xplore

        严格旋转不变(RRI)映射F满足:F(S)=F(R(S))且映射前后点数不变。其中S为点的集合(点云),R为任一旋转变换。

        采用如下点的表达:

p_i=(r_i,(r_{i1},\theta_{i1},\phi_{i1}),(r_{i2},\theta_{i2},\phi_{i2}),\cdots,(r_{iK},\theta_{iK},\phi_{iK}))

其中p_{ik}p_i的K近邻点之一,序号为k(r_{ik},\theta_{ik},\phi_{ik})分别为l_2-norm、T变换前夹角、T变换后夹角的最小值;变换T为到平面L_i(与p_i正交的平面)的正交投影变换。

        本文证明了:(a)上述表达为RRI的;(b)该表达可以重建点云(即除旋转信息以外不损失信息)。

        将上述表达重新表示为

p_i=(\underbrace{(r_i,r_{i1},\theta_{i1},\phi_{i1})}_{T_{i1}},\underbrace{(r_i,r_{i2},\theta_{i2},\phi_{i2})}_{T_{i2}},\cdots,\underbrace{(r_i,r_{iK},\theta_{iK},\phi_{iK})}_{T_{iK}})

p_i=(T_{i1},T_{i2},\cdots,T_{iK})

        则一个点p_i也可以看成4维、K个点的点云。然后用PointNet提取该点的局部信息,得到D维特征{p}'_i

{p}'_i=\max_{1\leq k\leq K}f_\Theta(T_{ik})

网络结构

深度聚类相关(三篇文章)_第2张图片

其中EdgeConv(将邻居的特征聚合到每一个点,不进行下采样):

{x}'_i=\max_{j:(i,k)\in E}f_\Theta(x_i-x_k,x_i)

        此外还提出一种评估旋转不变性的benchmark:均匀随机产生欧拉轴和旋转角,将测试集的每个点云都进行多种旋转(训练集不变),然后在增强的测试集上评估。

三、Unsupervised Feature Learning for Point Cloud Understanding by Contrasting and Clustering Using Graph Convolutional Neural Networks

原文链接:Unsupervised Feature Learning for Point Cloud Understanding by Contrasting and Clustering Using Graph Convolutional Neural Networks | IEEE Conference Publication | IEEE Xplore

        不需要任何标签学习点云语义特征。

深度聚类相关(三篇文章)_第3张图片

深度聚类相关(三篇文章)_第4张图片

ContrastNet:将所有点云分割为两个部分得到部分集,然后在部分集随机抽取两个部分,进行二分类判断,即两个part是否属于同一点云。使用交叉熵损失。

Clustering:使用K-means++方案将所有点云的特征聚类,得到伪标签。

ClusterNet:和本文第一篇文章相同。

        聚类损失如下:

\min_{C\in \mathbb{R}^{d\times k}}\frac{1}{N}\sum_{n=1}^N\min_{y_n\in\{0,1\}^k}\left \| f_\theta(x_n)-Cy_n \right \|^2_2,\; y^T_n\mathbf{1}_k=1

        ClusterNet预测点云的伪标签,对应的损失如下:

\min_{\theta,W}\frac{1}{N}\sum_{n=1}^Nl(g_W(f_\theta(x_n)),y_n)

总结(个人理解)

        目前的深度聚类算法就是把神经网络和聚类模型结合,总损失等于网络损失和聚类损失之和。而要有聚类损失则要求聚类方法有待优化的目标函数(如K-means、谱聚类、高斯混合模型等,这些方法往往也需要指定聚类数目)。

你可能感兴趣的:(深度学习)