【Transforming Auto-encoders】: G E Hinton, A Krizhevsky, S D Wang. Transforming auto-encoders[C]. //ICANN2011

Introduction 第三段 Page 2

首先需要明确的是一个capsule本身代表了一个visual entity的隐式定义。它的输入是一个图像(图像块),它的输出包括两个部分:(1)probability,即输入的图像属于这个capsule所隐式定义的entity的可能程度,这是一个标量;(2)instantiation parameter,即当前这个图像块相对于这个capsule本身定义的entity的pose,这是一个向量。

举一个例子,假如有一个capsule,本身是隐式定义了一个鼻子,这个鼻子我们假设是一个正正规规,大小合适的鼻子,我们称之为canonical entity,然后由于环境条件(比如光照,照射角度),我们有一个图像块(一个倾斜的鼻子),我们将这个倾斜的鼻子表述为instantiation entity,这个instantiation entity就是当前这个capsule的输入,如果这个capsule能够work的话,他的probability输出应该是一个大值(即这个capsule能够识别出歪鼻子也是鼻子),他的instantiation parameters反应的就是这个instantiation entity相对于canonical entity的pose。

以上是我对capsule的认知。结合到这一段,Hinton认为capsule一个优势就是能够通过识别物体的part达到识别物体的whole的能力。

比如人脸识别,training set中的特定人脸,我们可以认为是一个canonical entity,这里我把它称为canonical face,然后由于环境条件的问题,我们得到同一个人的另一张图像,比如一个侧脸。

基于这样的认知:一个人鼻子和嘴巴的空间关系大致是固定的,正面照,鼻子和嘴巴是什么关系,侧面照,也有类似的空间关系,即文中所述的viewpoint-invariance.

我们现在有三个capsule,A隐式定义了这个人的nose,B隐式定义了这个人的mouth,在A和B的上面有一个C,隐式定义了这个人的face。

TA表示canonical nose和instantiation nose之间的转换关系

TAC表示nose和face之间的坐标转换关系

显然TA和TAC都是我们可以学习到的。进一步的,我的一个猜想,这个TA是不是就是A这个capsule中一些参数,比如类似于CNN中filter的weight,来表示的,而C实际上的输入应该是A的输出,所以TAC就是C这个capsule的一些参数表示的。下面这个TC就是这两个参数的某种combination。

TC表示canonical face和instantiation face之间的转换关系,这个是未知的。

我们可以从TA和TAC得到一个TC,即文中所述一个prediction,也可以从TB和TBC得到一个TC,另一个prediction。基于前面所述的viewpoint-invariance,如果当前的这个instantiation face和canonical face表示的是同一个人的face,那么这两个prediction应该差不多,即文中所述的these predictions are a good match。如果两个prediction差太多,那么这个instantiation face可能就不是canonical face中的那个人。

更进一步,我们可以从两个TC去取average,进而得到一般的情况下instantiation face和canonical face之间的关系(这两个face是同一个人)。

基于以上我们就可以通过parts来识别whole。

论文中这段文字也进一步说明了capsule的输出就是当前instantiation相对于canonical的一种pose。

论文阅读笔记:【Transforming Auto-encoders】的更多相关文章

  1. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  2. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  3. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

  4. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  5. [置顶] 人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)

    这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...

  6. Nature/Science 论文阅读笔记

    Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...

  7. 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification

    Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...

  8. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

  9. [论文阅读笔记] GEMSEC,Graph Embedding with Self Clustering

    [论文阅读笔记] GEMSEC: Graph Embedding with Self Clustering 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 已经有一些工作在使用学习 ...

  10. [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks

    [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks 本文结构 解决问题 主要贡献 算法 ...

随机推荐

  1. tar命令-压缩,解压缩文件

    tar: -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 上面五个参数是独立的,压缩解压都要用到其中一个,可以和下面的命令连用但只能用其 ...

  2. RabbitMQ(3) Spring boot集成RabbitMQ

    springboot集成RabbitMQ非常简单,如果只是简单的使用配置非常少,springboot提供了spring-boot-starter-amqp项目对消息各种支持. 资源代码:练习用的代码. ...

  3. 学习GT一书前九章的体会

    学习Gilbarg和Trudinger一书前九章的体会 本书第二章,调和函数的基本性质进行展示.特别的对比较定理有深刻的阐述以及Perron方法的基本说明,并对Wiener准则作了简要说明. 第三章的 ...

  4. php 按照中文字母名字排序,并把相应的头像显示出来

    //排序public function getFirstChar($s){ $s0 = mb_substr($s,0,3); //获取名字的姓 $s = iconv('UTF-8','gb2312', ...

  5. Golang 容器和不同header的解析

    记录一下,用golang实现一个静态资源容器,膜拜下强人 http.Handle("/", http.FileServer(http.Dir(currentPath+"/ ...

  6. flask请求上下文

    先看一个例子: #!/usr/bin/env python # -*- coding:utf-8 -*- import threading # local_values = threading.loc ...

  7. select * from 后有多个表的使用方法

    已知一个表的结构为: ------------------- 姓名 科目 成绩 张三 语文 20 张三 数学 30 张三 英语 50 李四 语文 70 李四 数学 60 李四 英语 90   怎样通过 ...

  8. STL 小白学习(1) 初步认识

    #include <iostream> using namespace std; #include <vector> //动态数组 #include <algorithm ...

  9. java使用valueOf的方法反转字符串输出

    public class FanZhuan { public static void main(String[] args) { String s = "987654321088123abo ...

  10. 人群密度估计 CrowdCount

    最近在看人群密度估计方面的东西,把博客看到的一些方法简单总结一下,后续继续添加. 1.论文<CrowdNet: A Deep Convolutional Network for DenseCro ...