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

news2024/11/19 9:33:22

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.coloradmin.cn/o/681362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机科学与技术报考指南【河南农业大学】

文章目录 前言环境介绍龙子湖校区文化路校区许昌校区 学院专业介绍计算机学习方面思维上态度上 最后 前言 这几年计算机分数虚高已经成为了不争的事实,加上计算机技术发展日新月异、大多数高校学习课程落后,转换思维另辟蹊径的报考农林类高校的计算机专…

WebSocket:基于 Spring Cloud 配置注解实现 WebSocket 集群方案

上一篇:WebSocket 的具体介绍与内部执行原理 文章目录 介绍用法抽象思路转发思路连接流程获取服务实例信息连接区分和管理 消息发送连接选择给指定用户发送消息给指定路径发送消息 结束源码地址声明 介绍 WebSocket大家应该是再熟悉不过了,如果是单体应…

Debezium系列之:发布Debezium 2.3.0.Final

Debezium系列之:发布Debezium 2.3.0.Final 一、重大变化1.PostgreSQL / MySQL 安全连接更改2.JDBC 存储编码更改 二、新功能和改进1.Debezium Server支持K8s2.新的通知子系统3.新的可扩展信号子系统4.JMX 信号和通知集成5.新的 JDBC 存储子系统6.PostgreSQL 流式传输…

优化伊通河漂流旅行方案的模型——JLU数学学院2020级数学模型期末大作业

文章目录 题目描述背景介绍模型假设问题一的模型决策树模型游客安全最大化与旅行次数最大化模型统筹考虑游客安全与旅行次数的模型模型对比 第二问的模型每天下水的脚踏游船与电动游船的比率的敏感性分析全是电动游船的情形全是脚踏游船的情形每天下水的脚踏游船与电动游船成比…

【深度学习笔记】神经网络概述

本专栏是网易云课堂人工智能课程《神经网络与深度学习》的学习笔记,视频由网易云课堂与 deeplearning.ai 联合出品,主讲人是吴恩达 Andrew Ng 教授。刚兴趣的网友可以观看网易云课堂的视频进行深入学习,视频的链接如下:https://mo…

前端Vue自定义等宽标签栏标题栏选项卡

前端Vue自定义等宽标签栏标题栏选项卡&#xff0c; 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13170 效果图如下&#xff1a; # cc-chooseTab #### 使用方法 使用方法 <!-- tabArr:标签数组 current&#xff1a;当前选择序…

Linux 实用操作技巧一

文章目录 Linux 实用操作技巧前言查找当前目录下所有 .gz 结尾的文件查找当前目录超过30天没有修改过且文件大于10M的.gz文件。将software 目录下大于 100k 的文件移动至 /tmp下 时间戳快速转换动态查看日志&#xff0c;并且停止获取内存、CPU、磁盘、IO等信息获取 公网 ip总结…

关于 SpringBoot 日志文件的知识

目录 日志有什么用&#xff1f; 日志怎么用&#xff1f; 自定义日志打印 在程序中得到日志对象 使用日志对象打印日志 日志格式 日志级别的分类与使用 日志级别设置 日志持久化 日志有什么用&#xff1f; 日志对于我们来说&#xff0c;最主要的用途就是排除和定位问题…

Java设计模式之行为型-模板方法模式

目录 一、概念 二、角色设计 三、代码实现 四、总结 一、概念 定义一个操作中的算法骨架&#xff0c;而将算法的一些步骤延迟到子类当中&#xff0c;使得子类可以不改变该算法结构的情况下重定义该算法的特定步骤&#xff0c;即在一个抽象类中公开定义了执行某一方法的模板…

一种新颖的智能优化算法—飞蛾扑火优化(MFO)算法

飞蛾扑火优化(Moth-Flame Optimization,MFO)算法是Mirjalili于2015年提出的一种新型智能优化算法&#xff0c;其灵感来源于一种特殊的导航机制—横向定位导航,实现了勘探与开发的较好平衡以获得全局优化性能。MFO算法具有并行优化能力强&#xff0c;全局性优且不易落入局部极值…

VS安装中报“应用程序无法启动,因为应用程序的并行配置不正确”的解决办法

1.问题描述 安装应用程序的时候&#xff0c;提示“应用程序无法启动&#xff0c;因为应用程序的并行配置不正确”。 2.解决过程 方法一 开启服务 开始→ 运行&#xff08;输入services.msc或者服务&#xff09;→确定后打开服务&#xff1b;找到Windows Modules Installer服务…

Advanced Installer使用指南

PC打包软件有很多 我只推荐一个advanced Installer完全傻瓜式操作&#xff0c;直接点就行了。innoSetUp需要学习它的脚本语言&#xff0c;学习成本太高了&#xff0c;而且网上的学习资料也很少。其它东西 增加依赖 我的程序需要dotNet5.0.13的运行时环境。 但是在AI上面没有…

chatgpt赋能python:Python撤销和回退的完全指南:从基础到高级

Python撤销和回退的完全指南&#xff1a;从基础到高级 Python是一种强大的编程语言&#xff0c;但即使在最好的情况下&#xff0c;错误也会出现。在此时&#xff0c;撤销错误和回退操作会变得非常重要。本指南将介绍Python中的撤销和回退操作&#xff0c;从基础操作到高级操作…

SparkSQL之AstBuilder

Spark SQL是基于ANTLR实现的&#xff0c;前文中有关于ANTLR的介绍文章《ANTLR实战》和《设计模式之访问者模式》&#xff0c;这篇文章主要介绍的内容是AstBuilder类。 Catalyst中提供了直接面向用户的ParseInterface接口&#xff0c;该接口中包含了对SQL语句、Expression表达式…

DDD(领域驱动设计) 核心概念浅析

文章目录 DDD(领域驱动设计) 核心概念浅析前言贫血模型什么是贫血模型贫血模型的优点贫血模型的缺点 充血模型充血模型的优点充血模型的缺点 DP 概念抽象接口简单概念简单概念流程&#xff1a;实现 统一语言和模型价值DP 和 Entity 的区别 Aggregate&#xff08;聚合&#xff0…

HackTheBox - 学院【CPTS】复习1 - PASSWORD ATTACKS

前言 有一个月时间没发文章了&#xff0c;我在6月11号进入htb学院学习CPTS&#xff0c;在扎实的THM基础的加持下&#xff0c;我学的非常顺利&#xff0c;其实大部分内容都相当于复习&#xff0c;而学到的内容只是一些可能不太常见、又或者非常细节的小技巧&#xff0c;这也是非…

vscode 出现 No such file or directory 的解决办法(python tkinter)

问题 Traceback (most recent call last): File “e:\Github\Python-GUI\PyQt-Fluent-Widgets\examples\navigation\demo.py”, line 202, in w Window() File “e:\Github\Python-GUI\PyQt-Fluent-Widgets\examples\navigation\demo.py”, line 95, in init self.initWindo…

ThreadPoolExecutor源码剖析

ThreadPoolExecutor源码涉及到的内容比较多&#xff0c;需要一点点的去啃和查看… ThreadPoolExecutor的核心属性 ThreadPoolExecutor的核心属性主要就是CTL。基于CTL获取到线程池的状态以及工作线程个数。 ctl是一个int类型的整数&#xff0c;內部基于AtomicInteger&#xff0…

再谈StringBuilder为什么线程不安全以及带来的问题

1 缘起 比较有意思的是&#xff0c;学习锁消除的过程中&#xff0c;有人讲到StringBuffer在方法内构建&#xff0c;不会被其他方法引用时&#xff0c;StringBuffer的锁会被消除&#xff0c; 于是&#xff0c;顺便看了一下同源的StringBuidler为什么线程不安全&#xff0c;以及…

【无标题】TP-LINK XDR5470 WiFi6路由器 简单开箱评测

TL-XDR5470易展版AX5400双频WiFi6路由器 简单开箱测评&#xff0c;上次买的XDR6078覆盖不够&#xff0c;还是得每层再买一个&#xff0c;所以又买了个TL-XDR5470&#xff0c;支持易展mesh。 上次买的XDR6078没有外置FEM功放芯片&#xff0c;所以信号差了一点&#xff0c;得加2…