大多数机器学习模型采用监督学习,这意味着它们需要在标注数据上进行训练,而获取标注数据成本高昂且耗时。无监督学习的主要方法是聚类,即根据显著特征将数据点分组,其核心思想是每个聚类代表某个类别,例如同一个人的照片或同一动物物种的照片。
为了决定聚类之间的边界,传统聚类算法通常依赖于启发式规则,例如聚类中心之间的阈值距离或聚类分布的形态。在即将提交给国际计算机视觉大会的一篇论文中,提出了一种从数据中学习如何划定边界的方法。
首先使用图来表示视觉数据,然后使用图神经网络生成图中节点的向量表示。然而,并非依赖启发式规则,而是使用标注数据来学习如何对向量进行聚类,并且关键的是,决定这些聚类应该精细到什么程度。将这种标注数据称为元训练数据,因为目标是学习一种通用的聚类技术,而非一个特定的分类模型。
特别地,提出了一种层次化图神经网络,这意味着它通过在图的节点之间添加边来创建聚类,然后在聚类之间添加边以创建更大的聚类,如此迭代,直到模型决定不应再添加任何边。
构建图
论文研究了一种情况:训练一个模型,使其能够对与元训练数据相似但类别与之无重叠的视觉数据进行聚类。例如,元训练数据可能是电影明星的人脸,而目标应用是对政治家、运动员或其他公众人物的人脸进行聚类。
该过程的第一步是使用元训练数据构建一个监督分类器:如果元训练数据是电影明星的人脸,分类器就会用电影明星的名字标记输入图像。该分类器是一个编码器-解码器模型:编码器生成输入的固定长度向量表示(即特征向量),解码器利用该向量预测标签。然而,一旦训练完分类器,后续过程只使用编码器部分。
特征向量定义了多维空间中的点。根据这些向量的位置,构建一个图,其中每个节点代表一幅图像,并且每个图像在特征空间中的 k 个最近邻节点在图中与之相连。
这个图将作为聚类模型的输入,该模型也是一个编码器-解码器模型。编码器是一个图神经网络,它根据每个节点的特征向量及其相连节点的特征向量,为图中的每个节点生成一个向量表示。将这个向量称为节点嵌入。
聚类模型
采用层次化方法进行聚类。基于节点嵌入,聚类模型预测节点之间的边。一个聚类被定义为一组节点,其中每个节点都与组内至少另一个节点共享一条边,并且没有一个节点与组外任何节点共享边。
请注意,聚类模型的目标不仅仅是重现最近邻图,而是要连接代表相同数据类型数据的节点。最近邻连接对于预测聚类连接是有用的,但二者并不完全相同。
在对数据进行第一次处理后,将每个聚聚合成为一个具有代表性的“超级节点”,并重复整个过程。即,在每个超级节点与其 k 个最近邻之间创建边,将生成的图通过同一个图神经网络,并基于超级节点嵌入预测边。重复此过程,直到聚类模型预测不到节点之间存在边为止。
根据两个不同的目标来训练聚类模型。一是正确预测节点之间的链接,正确的链接是指在元训练数据中找出相同数据类型的两个代表。二是训练模型正确预测给定图邻域中特定数据类型的密度。也就是说,对于每个节点,模型应预测其附近相同数据类型邻居的比例。
过去关于聚类的研究表明,将数据密度纳入考量可以提高结果。然而,先前链接预测和数据密度预测是由不同模型处理的。通过使用单一模型联合预测两者,显著提高了计算效率。这种结合也有助于提高准确性。
该方法的另一个新颖之处在于,由于采用了层次化处理方案,可以在整个输入图上优化聚类。以前的方法会先将图划分为子图,然后在子图内进行推理。这阻碍了自然的并行化处理,并限制了信息流经图的有效性。全图范围的处理是模型效率得以提升的另一个原因。
在实验中,考虑了两组不同的元训练数据:一组包含人脸特写,另一组包含特定动物物种的图像。使用人脸数据训练的模型在其他两个数据集上进行了测试,这些测试集的数据类别与元训练集重叠度为零或非常低(0% 和小于 2%)。使用动物物种训练的模型在一个包含前所未见物种的数据集上进行了测试。综合两个模型和三个测试集,平均改进幅度相对于之前基于图神经网络的聚类模型和无监督聚类方法分别达到了 49% 和 47%。
在正在进行的工作中,正在研究训练一个更通用的聚类模型的可能性,使其在推理阶段的性能能够在不同的数据类型之间更好地迁移,例如,既能准确地对人脸进行聚类,也能准确地对动物物种进行聚类。
致谢:Tianjun Xiao, Yongxin Wang, Yuanjun Xiong, Wei Xia, David Wipf, Zhang Zheng, Stefano SoattoFINISHED
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。