论文阅读:Deep divergence-based approach to clustering

论文地址:main.pdf (sciencedirectassets.com)


摘要

深度学习研究中的一个有前景的方向是通过优化判别损失函数,学习表示并同时发现无标签数据中的聚类结构。与监督式深度学习不同,这一研究方向尚处于起步阶段,如何设计和优化合适的损失函数以训练深度神经网络进行聚类仍然是一个开放性问题。我们对这一新兴领域的贡献是提出一种新的深度聚类网络,该网络利用信息论发散度量的判别能力,已被证明在传统聚类中具有有效性。我们提出了一种新颖的损失函数,结合了几何正则化约束,从而避免了结果聚类划分的退化结构。通过在合成基准测试和真实数据集上的实验,表明该网络在与其他最先进方法的比较中表现出竞争力,能够很好地扩展到大规模数据集,且不需要预训练步骤。

引言

深度神经网络(Goodfellow, Bengio, & Courville, 2016;Krizhevsky, Sutskever, & Hinton, 2012)在层次表示学习(Bengio, Courville, & Vincent, 2013)方面表现卓越,并在图像分类(Krizhevsky et al., 2012)、目标检测(Ren, He, Girshick, & Sun, 2015)、图像分割(Kampffmeyer, Salberg, & Jenssen, 2016;Long, Shelhamer, & Darrell, 2015)、时间序列预测(Bianchi, Maiorino, Kampffmeyer, Rizzi, & Jenssen, 2017)和语音识别(Graves, Mohamed, & Hinton, 2013)等领域取得了最先进的成果。然而,深度网络通常是通过监督学习进行训练的,因此需要大量的标注数据,这在许多应用领域中是一个挑战。

聚类(Jain, 2010;Von Luxburg, 2007)是机器学习中的一个基础领域,旨在将无标签数据分类成不同的组(簇)。深度学习研究中的一个有前景的方向是通过优化判别损失函数,学习表示并同时发现无标签数据中的聚类结构。深度嵌入聚类(DEC)(Xie, Girshick, & Farhadi, 2016)是这一方向的典型代表,且据我们所知,它代表了当前的最先进技术。DEC基于一种优化策略,其中神经网络通过自编码器进行预训练,然后通过联合优化输出空间中的聚类中心和底层特征表示来进行微调。另一个例子是(Yang, Fu, Sidiropoulos and Hong, 2016),作者提出了一种联合优化方法,使用神经网络和k-means聚类进行降维。最近还提出了基于对抗网络的无监督深度学习替代方法(Goodfellow et al., 2014)。这些方法在理念上有所不同,但也可以用于聚类(Makhzani, Shlens, Jaitly, Goodfellow, & Frey, 2015;Springenberg, 2015)。

在这项工作中,我们提出了一种我们称之为“基于深度发散的聚类”(DDC)算法。我们的方法受到传统聚类技术文献的启发,这些技术通过基于信息论度量的判别损失函数进行优化(Dhillon, Mallela, & Kumar, 2003;Jenssen, Erdogmus, Hild, Principe, & Eltoft, 2007;Tishby & Slonim, 2001;Vikjord & Jenssen, 2014)。选择这种方法的主要动机是,发散度作为聚类之间相似度的度量,基于两个基本目标(图1):聚类之间的分离和聚类内部的紧凑性。这些是提高非参数混合模型可识别性(Aragam, Dan, Ravikumar, & Xing, 2018)所期望的特性。我们的新发散基深度聚类损失函数支持端到端学习,并在优化过程中明确利用了输出空间几何形状的知识。DDC在不需要手工设计特征的情况下实现了最先进的性能,同时减少了预训练阶段的重要性。该论文的初步版本出现在Kampffmeyer, Løkse, Bianchi, Livi, Salberg 和 Jenssen(2017)中。初步版本专注于结合卷积神经网络架构和我们提出的聚类损失函数的图像聚类。在这里,我们通过以下几方面扩展了我们的工作:

(i)修改了提议的架构,使其也能处理文本数据;

(ii)在额外的数据集上进行了实验和比较(包括文本数据——Reuters数据集);

(iii)通过消融实验对提出的代价函数及其组件进行了深入分析;

(iv)在控制环境中说明和讨论了该方法的工作原理;

(v)通过引导反向传播(Springenberg, Dosovitskiy, Brox, & Riedmiller, 2014)解释了网络的预测;最后,(vi)提供了更为深入的文献背景讨论,将我们的工作置于更广泛的背景中。

模型

图2为图像数据集的提出架构以及损失函数的详细说明。该网络由两层卷积层(每一层后面跟着一个池化层,图中未显示)和一个全连接(FC)层组成。每一层后面都跟着一个非线性ReLU变换。最后,一个全连接输出层实现了一个逻辑函数(softmax)。无监督损失函数作用于核矩阵 Kh,该矩阵编码了基于隐藏表示评估的数据相似度,以及由softmax函数返回的聚类分配值。正交性约束来源于聚类分配,而分离性和紧凑性约束则来自于Cauchy-Schwarz发散度,这一发散度是在相似度矩阵(加权聚类分配)上计算得到的。当考虑非图像数据时,卷积层会被替换。

架构概述

网络架构是一个设计选择,因此有很多不同的选项。在本文中,我们选择了一种基于卷积神经网络的方法来处理不同的图像数据集,使用了一种受LeNet启发的架构(LeCun, Bottou, Bengio, & Haffner, 1998)。我们选择LeNet是因为它是一个广为人知的基准网络,支持端到端学习,并且在图像分类中得到了广泛应用。该架构如图2所示。它由两层卷积层组成:第一层包含32个5×5的滤波器,第二层包含64个5×5的滤波器,每一层后面跟着一个2×2的最大池化层和一个ReLU激活函数。最后的卷积层后跟着一个具有100个节点的全连接层,再一个ReLU非线性激活函数,最后是softmax输出层,其维度与所需的聚类数量相对应。全连接层应用了批量归一化(Ioffe & Szegedy, 2015)。这一设计选择旨在提高模型的鲁棒性。

我们的方法也可以应用于非图像数据的聚类,只需将卷积层和池化层替换为全连接层即可。特别地,对于非图像数据的实验,我们使用了一个具有四个全连接层的架构,其层的大小为200-200-500-C。500个节点的全连接层包括批量归一化,C个节点的层对应softmax输出层,其维度等于聚类的数量。

最近,神经网络理论的进展(Giryes, Sapiro, & Bronstein, 2016)揭示了输入数据的度量结构是如何通过具有随机独立同分布(i.i.d.)高斯权重的深度神经网络得到保留的。一项限制是,只有在数据的内在维度与网络宽度成比例时,这一理论才成立。然而,Giryes等人(2016)证明了数据在通过网络传播时,其内在维度并不会增加,这表明我们为实验选择的网络宽度(每层的隐藏单元数量)应该足够。这一理论特性支持了我们提出的损失函数的设计选择,该函数是在隐藏表示上估算发散度,而不是在输入空间中进行估算。

实验

实验数据集

我们在MNIST手写图像数据集上评估了DDC,因为它是文献中广为人知的基准数据集。此外,我们还在两个更具挑战性的真实世界数据集上评估了我们的算法:一个用于检测海豹幼崽的航拍图像数据集,称为SEALS数据集;另一个是用于新闻故事聚类的Reuters数据集。在结果中,我们将我们的方法与四种替代的聚类方法进行了比较。

MNIST数据集

MNIST数据集包含70,000张手写数字图像,涵盖数字0到9(LeCun等,1998),这些图像最初来自美国国家标准与技术研究院(NIST)数据集。图像是灰度图,数字位于28×28像素的图像中心。

SEALS数据集

SEALS-3数据集包含几千张航拍RGB图像,这些图像是在2007年和2012年分别在格陵兰岛东部的西冰和加拿大纽芬兰岛东部的调查中获取的。图像拍摄自大约300米的高度,像素间距约为3厘米(具体取决于飞行的精确高度)。每张典型图像的大小为11,500 × 7,500像素。从这些图像中,我们提取了64×64大小的海豹幼崽、头巾海豹幼崽和背景(非海豹)图像,并将其下采样到28×28,以适应我们选择的架构。由于最小类别仅包含1000张图像,我们从每个类别中选择了1000张图像,创建了一个平衡的数据集。图5显示了SEALS-3数据集中三类图像的示例。

由于背景类包含大量不同类型的图像,如白雪和黑水图像,无监督算法可能会将这些实例分配到不同的聚类中。因此,我们还创建并测试了另一个数据集(SEALS-2),其中不包含背景类。

Reuters数据集

Reuters数据集包含80万个新闻故事,这些故事已被手动分类到一个类别树中(Lewis, Yang, Rose, & Li, 2004)。在本工作中,类似于Xie等人(2016)的做法,我们选择了四个根类别作为标签,删除了被标记为多个根类别的新闻故事,并将每个新闻故事表示为一个特征向量,该向量由2000个最常出现的词干的词频-逆文档频率(TF-IDF)组成。与SEALS数据集一样,我们从每个类别中选择了54,000个数据点,以便平衡数据集。

实验结果


这篇论文发表的较早,主要是学习一下路透社数据集处理的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888225.shtml

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

相关文章

docker build ubuntu ssh

dockerfile 构建镜像 为了使用Dockerfile构建Docker镜像,请遵循以下步骤: 创建一个名为Dockerfile的文件,并在其中定义镜像的构建指令。 FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ubuntu:24.04# 安装openssh-server和pas…

2024.12.2工作复盘

1.今天学了什么? 简单的写了一篇博客,是关于参数校验的问题,参数校验,一个是前后端校验到底一不一致,一个是绕过前端校验,看后台的逻辑到底能不能校验住。 2.今天解决了什么问题? 3.今天完成…

关于单片机的原理与应用!

成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///目前正在学习C😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于单片…

【Vue3】【Naive UI】<n-upload>标签

【Vue3】【Naive UI】标签 基本设置 【VUE3】【Naive UI】<NCard> 标签 【VUE3】【Naive UI】<n-button> 标签 【VUE3】【Naive UI】<a> 标签 【VUE3】【Naive UI】<NDropdown> 标签…

Flink四大基石之CheckPoint(检查点) 的使用详解

目录 一、Checkpoint 剖析 State 与 Checkpoint 概念区分 设置 Checkpoint 实战 执行代码所需的服务与遇到的问题 二、重启策略解读 重启策略意义 代码示例与效果展示 三、SavePoint 与 Checkpoint 异同 操作步骤详解 四、总结 在大数据流式处理领域,Ap…

LeetCode Hot100 31~40

链表 31. K个一组翻转链表 题目不难理解 主要是怎么写出清晰易懂的代码 可以先分成K组 再排序 class Solution { public:ListNode* reverseKGroup(ListNode* head, int k) {ListNode* dummyHead new ListNode();dummyHead->next head;// 首先查看需要翻转几次int count…

字典树TRIE

模板 模板总共分为两部分 插入一个字符串查找一个字符串 int idx 0; int trie[3000010][150]; int ans[3000010];##原理 trie[上节点编号][下方连接的字母] 下方连接的字母的节点编号 trie[0][0]1;trie[0][1]5; trie[1][1]2; trie[2][1]4;trie[2][2]3; trie[5][2]6; tri…

Python学习第十五天--魔术方法

魔法方法就是可以给你的类增加魔力的特殊方法,它们总被双下划线所包围,像这种格式:"__方法名__",这些方法很强大,充满魔力,可以让你实现很多功能。 使用dir()查看类的所有属性和方法 class A:passprint(di…

支持JT1078和GB28181的流媒体服务器-LKM启动配置文件参数说明

流媒体服务器地址:https://github.com/lkmio/lkm GB28181信令,模拟多个国标设备工具:https://github.com/lkmio/gb-cms 文章目录 gop_cachegop_buffer_sizeprobe_timeoutwrite_timeoutmw_latencylisten_ippublic_ipidle_timeoutreceive_timeo…

【MySQL-6】MySQL的复合查询

1. 整体学习的思维导图 2. 回顾基本查询 使用scott数据库中的表,完成以下查询: 查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J mysql> select * from emp where (sal>500 or jobMANAGER) and ename …

STL算法之其它算法_中

目录 lower_bound(应用于有序区间) upper_bound(应用于有序区间) binary_search(应用于有序区间) next_permutation prev_permutation lower_bound(应用于有序区间) 这是二分查找(binary search)的一种版本,试图在…

GEE教程——Google Earth Engine 处理和分析刚果民主共和国(DR Congo)地区的 Landsat 8 图像(NDVI和NDWI)

目录 简介 函数 sort(property, ascending) Arguments: Returns: Collection size() Arguments: Returns: Integer 代码解释 代码 结果 简介 GEE教程——Google Earth Engine 处理和分析刚果民主共和国(DR Congo)地区的 Landsat 8 图像(NDVI和NDWI) 函数 sor…

[高阶数据结构六]最短路径算法

1.前言 最短路径算法是在图论的基础上讲解的,如果你还不知道图论的相关知识的话,可以阅读下面几篇文章。 [高阶数据结构四] 初始图论_初始图结构-CSDN博客 [高阶数据结构五] 图的遍历和最小生成树_图的遍历和生成树求解-CSDN博客 本章重点:…

Meta Reality Labs的VR/AR投资战略转向:内部视角与市场影响

最近,关于Meta(原Facebook)计划减少其在消费者虚拟现实(VR)领域的投资而增加对增强现实(AR)眼镜的投资的消息引起了广泛讨论。这一战略调整不仅反映了Meta对未来技术趋势的看法,也揭示了公司在面对激烈的市场竞争时所采取的新方向。本文将从不同角度探讨此次战略转向的…

ASP.NET Core项目中使用SqlSugar连接多个数据库的方式

之前学习ASP.NETCore及SqlSugar时都是只连接单个数据库处理数据&#xff0c;仅需在Program文件中添加ISqlSugarClient的单例即可&#xff08;如下代码所示&#xff09;。 builder.Services.AddSingleton<ISqlSugarClient>(s > {SqlSugarScope sqlSugar new SqlSugar…

flutter_quill如何设置Editor中的文字为富文本

比如一个场景 在输入框中&#xff0c;某某某 是一个颜色&#xff0c;其他文本是一个颜色 这里要注意 const QuillEditor({required this.controller,required this.focusNode,required this.scrollController,required this.scrollable,required this.padding,required this…

uniapp:封装商品列表为组件并使用

封装商品列表为组件并使用 商品组件封装 <template><!-- 商品列表 --><view class"goods_list"><view class"goods_item" v-for"item in goods" :key"item.id"><image :src"item.img_url">…

【AI系统】LLVM 架构设计和原理

LLVM 架构设计和原理 在上一篇文章中&#xff0c;我们详细探讨了 GCC 的编译过程和原理。然而&#xff0c;由于 GCC 存在代码耦合度高、难以进行独立操作以及庞大的代码量等缺点。正是由于对这些问题的意识&#xff0c;人们开始期待新一代编译器的出现。在本节&#xff0c;我们…

【C语言】结构体(二)

一&#xff0c;结构体的初始化 和其它类型变量一样&#xff0c;对结构体变量可以在定义时指定初始值 #include <stdio.h> #include <stdlib.h> struct books // 结构体类型 {char title[50];char author[50]; //结构体成员char subject[100];int book_id; }…

【docker】docker网络六种网络模式

Docker 网络模式总结 网络模式描述使用场景bridge默认的网络模式&#xff0c;容器之间通过虚拟网桥通信&#xff0c;容器与宿主机隔离。单机部署、本地开发、小型项目host容器与宿主机共享网络堆栈&#xff0c;容器直接使用宿主机的 IP 地址。高性能网络应用、日志处理、大量与…