基于图嵌入的高斯混合变分自编码器的深度聚类(Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding, DGG)
基于图嵌入的高斯混合变分自编码器的深度聚类
Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding, DGG
作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/
1. 引言
这篇博文主要是对论文“Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding”的整理总结,这篇文章将图嵌入与概率深度高斯混合模型相结合,使网络学习到符合全局模型和局部结构约束的强大特征表示。将样本作为图上的节点,并最小化它们的后验分布之间的加权距离,在这里使用Jenson-Shannon散度作为距离度量。
阅读这篇博文的前提条件是:了解高斯混合模型用于聚类的算法,了解变分推断与变分自编码器,进一步了解变分深度嵌入(VaDE)模型。在知道高斯混合模型(GMM)与变分自编码器(VAE)之后,VaDE实际上是将这两者结合起来的一个产物。与VAE相比,VaDE在公式推导中多了一个变量c。与GMM相比,变量c就相当于是GMM中的隐变量z,而隐层得到的特征z相当于原来GMM中的数据x。而基于图嵌入的高斯混合变分自编码器的深度聚类(DGG)模型可以看做在VAE的基础上结合了高斯混合模型与图嵌入来完成聚类过程,公式推导中同样增加了表示类别的变量c,同时,目标函数后面加了一项图嵌入的约束项。比起VaDE来说,可以理解为多了一个约束项——图嵌入,当然目标函数还是有所不同。
下面主要介绍DGG模型目标函数的数学推导过程。推导过程用到了概率论与数理统计的相关知识,更用到了VaDE模型推导里面的知识,如果想要深入了解推导过程,请先看变分深度嵌入(VaDE)模型的相关推导。
2. 目标函数的由来与转化






3. 目标函数具体推导






4. 参数更新过程及聚类结果

5. 我的思考
在推导过程中我与原文中的推导有不一样的地方。
1)我的推导过程中变分下界L中第二项系数是1/2,原文直接是1,而在支撑材料里面仍然是1/2,因此可以认为是作者笔误造成的。
2)我的推导过程中变分下界L中的第二项与第四项都有常数项(蓝框框标出的),这两项正好正负抵消,才没有这个参数项,而在原文支撑材料里面直接第二四项都没有常数项。不过这只是支撑材料的内容,在原文中没有太大影响。
3)我用的是πk,原文用的πik。这点没有太大影响。


6. 参考文献
[1] Linxiao Yang, Ngai-Man Cheung, Jiaying Li, and Jun Fang, "Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding", In ICCV 2019.
[2] 论文补充材料:Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding - Supplementary
[3] DGG Python代码:https://github.com/ngoc-nguyen-0/DGG
[4] 变分深度嵌入(Variational Deep Embedding, VaDE) - 凯鲁嘎吉 - 博客园
[5] 变分推断与变分自编码器 - 凯鲁嘎吉 - 博客园
基于图嵌入的高斯混合变分自编码器的深度聚类(Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding, DGG)的更多相关文章
- Learning Combinatorial Embedding Networks for Deep Graph Matching(基于图嵌入的深度图匹配)
1. 文献信息 题目: Learning Combinatorial Embedding Networks for Deep Graph Matching(基于图嵌入的深度图匹配) 作者:上海交通大学 ...
- [zz] 混合高斯模型 Gaussian Mixture Model
聚类(1)——混合高斯模型 Gaussian Mixture Model http://blog.csdn.net/jwh_bupt/article/details/7663885 聚类系列: 聚类( ...
- 基于变分自编码器(VAE)利用重建概率的异常检测
本文为博主翻译自:Jinwon的Variational Autoencoder based Anomaly Detection using Reconstruction Probability,如侵立 ...
- 高斯混合聚类及EM实现
一.引言 我们谈到了用 k-means 进行聚类的方法,这次我们来说一下另一个很流行的算法:Gaussian Mixture Model (GMM).事实上,GMM 和 k-means 很像,不过 G ...
- 腾讯云存储专家深度解读基于Ceph对象存储的混合云机制
背景 毫无疑问,乘着云计算发展的东风,Ceph已经是当今最火热的软件定义存储开源项目.如下图所示,它在同一底层平台之上可以对外提供三种存储接口,分别是文件存储.对象存储以及块存储,本文主要关注的是对象 ...
- 基于图的图像分割(Graph-Based Image Segmentation)
一.介绍 基于图的图像分割(Graph-Based Image Segmentation),论文<Efficient Graph-Based Image Segmentation>,P. ...
- 图像切割—基于图的图像切割(Graph-Based Image Segmentation)
图像切割-基于图的图像切割(Graph-Based Image Segmentation) Reference: Efficient Graph-Based Image Segmentation ...
- 混合高斯模型(Gaussian mixture model, GMM)
1. 前言 这就是为什么我要学习一下二维高斯分布的原因: 总感觉数学知识不够用呐,顺带把混合高斯模型也回顾一下. 2. 单高斯模型(Gaussian single model, GSM) 2.1 一维 ...
- 混合云存储组合拳:基于云存储网关与混合云备份的OSS数据备份方案
前言 阿里云对象存储(OSS)用户众多.很多用户因为业务或者合规性需求,需要对OSS内的数据做备份,无论是线上备份,还是线下备份.用户可以选择使用OSS的开放API,按照业务需求,做数据的备份,也可以 ...
随机推荐
- 无监督LDA、PCA、k-means三种方法之间的的联系及推导
\(LDA\)是一种比较常见的有监督分类方法,常用于降维和分类任务中:而\(PCA\)是一种无监督降维技术:\(k\)-means则是一种在聚类任务中应用非常广泛的数据预处理方法. 本文的 ...
- Copy-on-write + Proxy = ?
一.简介 Immer (German for: always) is a tiny package that allows you to work with immutable state in a ...
- HTTP协议浅析(一)
先来看看百度百科对HTTP的解释 http是一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应.请求和响应消息的头以ASCII码形式给出: ...
- 基于使用ISCSI存储的ibmmq通过heartbeat实现HA方案以及碰到的问题总结
一.背景 ibmmq是一种传统架构的mq产品,运行稳定,有其自身优点,但在高可用(HA)这一块需要使用公司根据自身需求选用高可用(HA)产品,但由于市面HA商业产品较贵,所以使用linux操作系统级的 ...
- Nice Jquery Validator 内置属性
required - 必填 适用于 input.textarea.select 输入框.(checkbox 与 radio 请使用 checked 规则)字段必填,则值不能为空.字段非必填,则值为空的 ...
- 当小程序的flex布局遇到button时,justify-content不起作用的原因及解决方案
当小程序的flex布局遇到button时 发现justify-content不起作用,无论怎么设置都是space-around的效果. 经过排查,发现原因是小程序button中的默认样式中的margi ...
- Java中Clob类型转换成String类型的问题
1.问题: 项目中使用druid+达梦数据库(基本类似Oracle),查出的Clob类型数据在运行时为ClobProxyImpl对象而不是内容,不能转为字符串 2.原代码: map为达梦数据库或Ora ...
- FFT快速傅里叶变换的python实现
FFT是DFT的高效算法,能够将时域信号转化到频域上,下面记录下一段用python实现的FFT代码. # encoding=utf-8 import numpy as np import pylab ...
- css3动画的实例讲解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- c++的两个冒号::四个点是什么意思,什么作用呢?
c++的两个冒号::四个点是什么意思,什么作用呢? 双冒号(::)用法 (1)表示“域操作符”例:声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定 ...