论文阅读: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,一经查实,立即删除!

相关文章

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

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

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

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

字典树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…

【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)的一种版本,试图在…

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

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

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; }…

四、初识C语言(4)

一、作业&#xff1a;static修饰局部变量 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> //作业&#xff1a;static修饰局部变量 int sum (int a) {int c 0;static int b 3;c 1;b 2;return (abc); } int main() {int i 0;int a …

Linux 中的 ls 命令:从使用到源码解析

ls 命令是 Linux 系统中最常用和最基本的命令之一。下面将深入探讨 ls 命令的使用方法、工作原理、源码解析以及实际应用场景。 1. ls 命令的使用** ls 命令用于列出目录内容&#xff0c;显示文件和目录的详细信息。 1.1 基本用法 ls [选项] [文件或目录]例如&#xff1a; …

The selected directory is not a valid home for Go SDK

在idea里配置go语言的环境时&#xff0c;选择go语言的安装目录&#xff0c;一直提示这个 The selected directory is not a valid home for Go SDK后来查了一下&#xff0c;发现原来idea识别不出来 需要改一下配置文件&#xff0c;找到go环境的安装目录&#xff0c;我是默认安…

Leetcode581. 最短无序连续子数组(HOT100)

链接 我的代码&#xff1a; class Solution { public:int findUnsortedSubarray(vector<int>& nums) {vector<int> res nums;sort(res.begin(),res.end());int l 0,r nums.size()-1;while(nums[l]res[l]){l;if(lnums.size()){return 0;}}while(nums[r]res…

SQL优化与性能——数据库事务管理

数据库事务管理是数据库系统中至关重要的一部分&#xff0c;确保了数据的一致性、完整性、可靠性和隔离性。尤其在高并发、高负载的系统中&#xff0c;事务管理的设计和实现直接影响到系统的稳定性和性能。本章将详细探讨以下内容&#xff1a;事务的ACID特性、使用 BEGIN、COMM…

【Robocasa】Code Review

文章目录 OverviewalgoInitializationImportant Class MethodsTrain LoopTest Time ConfigsdemoConfig FactoryConfig StructureConfig Locking默认锁定状态配置修改的上下文管理器 dataset示例数据集对象参数说明 model基础模块EncoderCoreVisualCoreScanCore随机化器 (Random…

【单细胞数据库】癌症单细胞数据库CancerSEA

数据库地址&#xff1a;home (hrbmu.edu.cn) Cite Huating Yuan, Min Yan, Guanxiong Zhang, Wei Liu, Chunyu Deng, Gaoming Liao, Liwen Xu, Tao Luo, Haoteng Yan, Zhilin Long, Aiai Shi, Tingting Zhao, Yun Xiao, Xia Li, CancerSEA: a cancer single-cell state atlas…

React 的学习记录一:与 Vue 的相同点和区别

目录 一、学习目标 二、学习内容1️⃣——React的特点 1.组件化设计 2.单向数据流 3.声明式 UI 4.虚拟 DOM 5.Hooks 6.JSX 7.React Native 三、React与vue的比较总结 四、总结 一、学习目标 时间&#xff1a;两周 内容&#xff1a; React的特点React的入门React的…

数据库管理-第267期 23ai:Oracle Data Redaction演示(20241128)

数据库管理267期 2024-11-286 数据库管理-第267期 23ai&#xff1a;Oracle Data Redaction演示&#xff08;20241128&#xff09;1 示例表及数据2 创建编校策略2.1 名字全编校2.2 电话部分编校 3 DML演示3.1 场景13.2 场景2 总结 数据库管理-第267期 23ai&#xff1a;Oracle Da…

hue 4.11容器化部署,已结合Hive与Hadoop

配合《Hue 部署过程中的报错处理》食用更佳 官方配置说明页面&#xff1a; https://docs.gethue.com/administrator/configuration/connectors/ 官方配置hue.ini页面 https://github.com/cloudera/hue/blob/master/desktop/conf.dist/hue.ini docker部署 注意&#xff1a; …

Spring Boot自定义启动banner

在启动 Springboot 应用时&#xff0c;默认情况下会在控制台打印出 Springboot 相关的banner信息。 自定义banner 如果你想自定义一个独特的启动banner&#xff0c;该怎么做呢&#xff1f;Springboot 允许我们通过自定义启动banner来替换默认的banner。只需要在 resources 目…