Unsupervised deep embedding for clustering analysis

偶然发现这篇发在ICML2016的论文,它主要的关注点在于unsupervised deep embedding。据我所了解的,Unsupervised 学习是deep learning的一个难点,毕竟deep network这种非常复杂的非线性映射,暂时的未知因素太多,可能在原来的domain有clustering的特征数据经过nonlinear映射之后,就变得不再clustering了。

这篇论文受t-SNE的启发,优化的目标是两个分布之间的KL距离。假设deep embedding之后的两个点 和 ,其中是第个类的centroid。于是,similarity 的measure为

也可以认为是 属于 的概率。

假设此时一个目标分布,则 。优化的过程和普通的BP算法一样,(1)通过BP算法优化deep network的参数,即计算。(2)通过计算梯度来调整cluster的centroid,但是否这类centroid的调整也需要乘上一个学习率呢?

此外,一个重点的问题是潜在目标分布的构造。Paper里给出了三个标准,我觉得这三个标准确实挺有意义的:(1)对预测效果可以strengthen(2)对于一些高概率被标注某个cluster的点,给予更多的权重(3)归一化每个点对于每个centroid用于计算loss函数时候的贡献,避免一些大的cluster扭曲了整个feature space。构造如下,

其中,。对以上三个标准说一说自己的理解,不一定准确。(1)对于第一点,对于某个明显更靠近类的point,它比其他point离得除类以外更远,这个点的也更高,而且也可能会更高(2)平方项的应用使得小的更加小了,即emphasis更小。同时,当较高,在 的所有点中, 也会有相对高的值。(3)对于某些大的cluster,可能总和更大,反而最终更小,而对于小的cluster,使得更大。最终把一个点push到另一个小cluster。

直觉上说,概率分布的初始化的正确性很大程度影响的算法最终的结果,首先因为这不是一个真实的分布,而deep network没有一个很好的初始化很难在另一个domain 保持cluster的结构。而section 5.1 的结果显示,对于high confidence的点,sample也变得更加canonical,如图越高confidence越明显是“5”的字样,而对于梯度的贡献也越来越大,即说明初始化概率分布也是接近正确的。

网络的初始化和SAE(栈autoencoder)一样,采用greedy training的方式训练每一层,然后再微调整个网络。而初始化cluster的选择,则通过在embedding上perform k means clustering 算法得到。

【CV论文阅读】Unsupervised deep embedding for clustering analysis的更多相关文章

  1. 论文解读DEC《Unsupervised Deep Embedding for Clustering Analysis》

    Junyuan Xie, Ross B. Girshick, Ali Farhadi2015, ICML1243 Citations, 45 ReferencesCode:DownloadPaper: ...

  2. PP: Unsupervised deep embedding for clustering analysis

    Problem: unsupervised clustering represent data in feature space; learn a non-linear mapping from da ...

  3. 【论文阅读】Deep Adversarial Subspace Clustering

    导读: 本文为CVPR2018论文<Deep Adversarial Subspace Clustering>的阅读总结.目的是做聚类,方法是DASC=DSC(Deep Subspace ...

  4. 论文阅读 DynGEM: Deep Embedding Method for Dynamic Graphs

    2 DynGEM: Deep Embedding Method for Dynamic Graphs link:https://arxiv.org/abs/1805.11273v1 Abstract ...

  5. 论文阅读 | Clustrophile 2: Guided Visual Clustering Analysis

    论文地址 论文视频 左侧边栏可以导入数据,或者打开以及前保存的结果.右侧显示了所有的日志,可以轻松回到之前的状态,视图的主区域上半部分是数据,下半部分是聚类视图. INTRODUCTION 数据聚类对 ...

  6. 【CV论文阅读】Deep Linear Discriminative Analysis, ICLR, 2016

    DeepLDA 并不是把LDA模型整合到了Deep Network,而是利用LDA来指导模型的训练.从实验结果来看,使用DeepLDA模型最后投影的特征也是很discriminative 的,但是很遗 ...

  7. 论文解读《Deep Attention-guided Graph Clustering with Dual Self-supervision》

    论文信息 论文标题:Deep Attention-guided Graph Clustering with Dual Self-supervision论文作者:Zhihao Peng, Hui Liu ...

  8. 【论文阅读】Deep Clustering for Unsupervised Learning of Visual Features

    文章:Deep Clustering for Unsupervised Learning of Visual Features 作者:Mathilde Caron, Piotr Bojanowski, ...

  9. 【CV论文阅读】生成式对抗网络GAN

    生成式对抗网络GAN 1.  基本GAN 在论文<Generative Adversarial Nets>提出的GAN是最原始的框架,可以看成极大极小博弈的过程,因此称为“对抗网络”.一般 ...

随机推荐

  1. taskctl的后台字符界面登录不了解决办法

    今天在使用taskctl的designer时,十多分钟挂了2次,每次挂了之后就签不出来了,只能等半小时,然后在taskctl的QQ群里咨询了,给的解决方案是 http://www.taskctl.co ...

  2. vue2.0 v-model指令

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. bat 时间 的运算与提取

    比如在系统中date这个环境变量的值为 -- 星期六 年------%date:~,% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2011 月------%date:~ ...

  4. Jmeter中的参数化常用的几种方式

    Jmeter中的参数化常用的几种方式,这里讲一下前两个方式,最后一个在csv参数化里已详细讲解. 1.用户参数 2.函数助手 3.CSV Data Set Config  一.用户参数 位置:添加-前 ...

  5. CAD参数绘制直线(网页版)

    用户可以在CAD控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE ...

  6. Android突破64K限制

    1.添加依赖 android{ defaultConfig{ ... multiDexEnabled true ... } } dependencies{ compile 'com.android.s ...

  7. 第1节 MapReduce入门:11、mapreduce程序的入门

    1.1.理解MapReduce思想 MapReduce思想在生活中处处可见.或多或少都曾接触过这种思想.MapReduce的思想核心是“分而治之”,适用于大量复杂的任务处理场景(大规模数据处理场景). ...

  8. Syslinux编译环境配置简要步骤

    由于毕业设计要做一个加密U盘的LINUX,需要修改一sysylinux引导程序,在网上很少有关于syslinux编译环境配置的文章,在此简要总结一下,发出来共享. 需要的软件: 1.  vmware ...

  9. for in,Object.keys()与for of的用法与区别

    Array.prototype.sayLength=function(){ console.log(this.length); } let arr = ['a','b','c','d']; arr.n ...

  10. Codeforces Beta Round #1 补题题解

    A Theatre Square(数学) 算出每行能装多少乘以每列能装多少就行 公式 ans=ceil(n/a)+ceil(m/a) 代码 #include <bits/stdc++.h> ...