Neural network-based clustering using pairwise constraints (ICLR-workshop 2016)

news/2024/11/29 1:30:19/

Neural network-based clustering using pairwise constraints (ICLR-workshop 2016)

源代码

摘要

这篇论文提出了一个基于神经网络的端到端的聚类框架。我们设计了一种新策略,除了学习适用于聚类的特征嵌入,还直接在源数据利用对比方法来推动数据形成的簇。该网络通过弱标签训练——部分数据实例之间的成对关系。簇分配和分类概率是前馈网络的输出层结果。这个框架有个有趣的特征,即不需要明确指出簇中心,因此作为结果的簇分布完全是数据驱动的,没有预先定义任何距离度量。实验证明所提方法通过一个独特边缘(一个超参)击败传统两阶段方法(特征嵌入后进行k-means聚类)。和基于标准交叉熵的分类方式相比。其性能也具有相当的可比性。鲁棒性分析表明该方便对簇的数量极度不敏感,即使预定义簇数量为一个较大值,但最终占主导作用的簇的数量和真实簇的数量相近。

端到端的聚类网络

将多层感知机(vanilla multilayer preceptron)应用到分类任务:每个输出节点将预定义的标签和最小化一个损失函数的优化问题相关联,例如交叉熵,比较网络给一系列样例的输出标签(或者标签上的分布)和对应的真实标签。我们从这个模型开始,移除了标签和网络输出之间的硬关联。这个想法是只用一堆样本之间的信息,并且以一种能够表示数据集群的方式定义输出节点。换句话说,哪个节点会对应哪个簇(物体类别)是在训练过程中动态变化的。为了实现该想法。我们构思出一种只需要在为分类任务设计的神经网络的softmax层上修改代价指标的方法。因此,我们展示了一种新的逐对损失函数用于聚类,以此来取代,或者说联合传统的监督分类损失函数。这种灵活性允许网络使用这两种类型的信息,具体取决于哪一种可用。

成对的KL散度

传统softmax层的输出代表是一个样本属于不同类别的概率(也就是本文的簇),整个softmax层的输出可以看作是所给样本在可能的簇上的概率分布。
在这里插入图片描述

如果数据中仅包含一个简单的概率,如手写数字识别,那么对一个相似对而言,它们的softmax的输出分布也应该相似。相对的,如果这两个数据分属于不同的簇,那么在标签概率分布上它们也应该不一样。
在这里插入图片描述
分布之间的距离可以通过统计距离来评估,比如KL散度。一般而言KL散度可以用来度量输出分布和真实分布之间的距离,但是,在我们的例子中,它被用来度量所给的一对实例的输出分布之间的距离。
在这里插入图片描述

P , Q P, Q P,Q分别表示两个输入数据的输出分布(个人觉得这边的margin可能是考虑到KL散度在计算两个没有必要重叠的分布时,其结果是不具备优化意义的,所以直接截断)。因为KL散度的不对称特性,最终损失函数定义如下:
在这里插入图片描述
求导结果如下:
在这里插入图片描述
为了避免孪生网络重复喂入相同数据导致的计算冗余,该方法是将小批量数据同时喂入网络后,根据预先采样(从 n n n个数据,共 n ( n − 1 ) / 2 n(n-1)/2 n(n1)/2种配对方式)的配对组,直接计算该批次数据总的损失,并优化网络。
在这里插入图片描述

值得注意

该方法对预先定义的簇的数量不敏感,即使预定义了较大的簇的数量,最终收敛结果中几个优势簇的分布是和真实分布几乎一致的,而这是k-means方法所做不到的。
在这里插入图片描述


http://www.ppmy.cn/news/559699.html

相关文章

【开源与项目实战:开源实战】83 | 开源实战三(下):借Google Guava学习三大编程范式中的函数式编程

现在主流的编程范式主要有三种,面向过程、面向对象和函数式编程。在理论部分,我们已经详细讲过前两种了。今天,我们再借机会讲讲剩下的一种,函数式编程。 函数式编程并非一个很新的东西,早在 50 多年前就已经出现了。近…

QQ空间人气精灵王 QQ空间人气提升

升级新增离线刷人气模式,网友可以提交Q号后5分钟后退出软件,服务器会自动帮网友刷空间人气,每小时可刷1-2万人气。 QQ空间人气王是一款提升QQ空间人气的辅助软件,她能自动模拟无数个真实用户访问你的QQ空间,从而达到刷QQ空间人气值的目的,同时…

qq空间h5页面,如何在微信中直接打开qq空间链接却不需要登陆qq账号密码

我们在玩微信营销的时候,发现一个有趣的问题:在微信上打开qq页面,不需要登陆qq账号密码,这是怎么回事呢? 这个qq空间h5页面是怎么做的呢? 微信打开免登陆QQ: 如果随便一篇QQ空间文章或者说说&a…

QQ空间登陆协议分析-2014年8月

在做此工程之前当然也是参考了网上各位前辈的分析原理,最后实际上是分析很简单,但是代码的实现让我着实犯难,毕竟作MFC还没有实际开发过什么项目,敲代码的经验,水平都不是很好,不过最后还是花了一周的时间把…

python整合selenium爬取QQ空间访客记录

利用周末放假两天时间写了个QQ空间访客记录的爬虫,在这里分享出来;本文将会把要做的步骤都列出来,一步一步的实现这个爬虫程序。 特别注明: 本程序仅供学习交流目的请勿用于不可描述的事情 爬取过程中需要获取的关键信息如下&a…

QQ空间API接口

2019独角兽企业重金招聘Python工程师标准>>> (以下内容可能会随着时间改变而改变!) 查看对方QQ空间的背景音乐 http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?json=0&uin=QQ号码 json=1 为使用json json=0 为XML --------------------------…

自动访问QQ空间(亮点是程序的美化)

自动访问QQ空间,原理很简单,就是用程序来打开好友的QQ空间, 然后再用程序关闭打开的空间就可以了,网速快的话,一秒钟可以访问N个好友。 本程序代码很简单,没什么好说的。值得一提的是,本程序使…

网络营销技术之——QQ空间访问

QQ空间访问器 原文: http://www.cnblogs.com/txw1958/articles/QZoneBrowser.html 网络营销新技术之QQ空间访问 开始之前,来看三个问题 你的QQ空间是不是允许所有人访问?或者你的某个QQ好友空间允许你访问? 你(或你的好友)的QQ空…