【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。