Scienece年度概率图神文

辣鸡翻译了解一下

年度神文标题:A generative vision model that trains with high data efficiency and breaks text-based CAPTCHAs

项目主页见 https://www.vicarious.com/2017/10/26/common-sense-cortex-and-captcha/

源代码可以看见 https://github.com/vicariousinc/science_rcn

背景

其主要是用于处理验证码的问题,因为其加入了隔断和一些非常拥挤的文字,这样就使得整个算法让分割器和鉴别器变成了一个典型的鸡和蛋的问题:分割字符需要分割器来帮助,而分割器需要能对于字符有着很好的理解的能力,然而这些字符可能以其他的方式被组合成其他的数字。最新的解决验证码的深度学习的方法依赖于庞大的已经标记的数据作为驱动,早期的方法大的部分依赖于人工的校正和分割,而人并不需要任何刻意的训练就能解决新形式下的验证码。其实这种理解方式也正如同图1所示那样。(图A说明了人非常善于解析那些不熟悉的验证码,B说明了同一个字符刻意被渲染成不同形式的样子,可是人们还是能够在这些图片中检测到A这个字符C说明了尝试和直接都能很容的影响人们对于字符的感知,就比如说图i的m u以及n,在图中是很难分得清的。ii说的是遮挡物的位置,三条很简单的线能够被解释成N和S,iii说的是感知可以帮助人理解bison和bike这两个单词。)

人类对于字符变化感知的灵活性

在这里其引入了一种带有等级制度的网络,其被称为迭代皮质网络(Recursive Cortical Network (RCN)),其从神经科学的角度解释了一个具有结构的基于概率生成的模型。其在之后把这个模型还应用到其他的训练的例子之中,诸如解析验证码、遮挡推理和基于情景的文字识别。

核心

这篇文章从神经科学系统之中获得灵感,其引进了一个基于概率的生成模型来处理视觉问题。其原理在于基于信息传递的推理、分割以及推理。这个模型在泛化性能和物体遮挡推理的能力上有着极大的能力。(CapsNet也善于物体遮挡的推理)RCN是基于现有的一个复合模型之中建立。

现有的基于规则模型的缺陷

基于规则的模型总伴随着下面的缺陷:

  • 限制了单棵树的辨析能力
  • 使用属性关系的时候使得计算变得不可解

基于树状的复合模型能够简化推断但是又由于缺乏横向的约束使之缺失了选择能力。

captcha_as.png

RCN建立于复合模型之中的许许多多的灵感,诸如

  • 等级结构
  • 逐步建立的不变性
  • 为了选择性使用横向连接
  • 轮廓表面分解
  • 基于联合解释的解析

将其结合到有序的概率图形模型之中。信念传播算法就能作为一个基础的推断引擎了(类似于反向传播算法在神经网络之中的运用)。

RCN的表达能力

在RCN之中,我们解析的对象是按照轮廓和表面的组合所建立的模型。轮廓出现在面的边界,同时物体的外壳,物体和物体之间的表面之间的边界从而组成了一个对象的轮廓。而表面则是使用条件随机场(CRF)建模,其能捕捉表面特征变化的平滑性。轮廓由复合的不同等级的特征所组成。分权重的轮廓(形状)和表面(外表)使得模型能够识别不同的物体而不需要精疲力竭的训练了。

RCN的结构

图2 RCN的结构 (A)一个等级产生一个对象的轮廓,条件随机场产生对象的表面。(B)在轮廓层次结构的同一层次上的两个子网络通过制作子特征的父特定副本并将它们与父特定侧相连接来保持单独的横向连接,被绿色举行所包含的节点就是被标记为e特征的拷贝。(C)一个三级的RCN代表着一个正方体的轮廓,处于第二层的特征代表着四个角,每个角代表着四条由线段分割的特征(D)四层网络代表字符A

图2B显示了一个带轮廓等级的RCN层的两个子网络(黑和蓝)。图中的实心和空心圆点是一个二进制的随机变量,其分别对应着特征和池化。没一个特征节点都会与子节点编码一个和的关系,每一个池化变量都会和子节点编码一个或的关系,比较近似于和-或图。长方形的因子节点其代表着侧向的约束,其能够协调其选择连接的池化。这两个子网络能够对应着两个物体或者物体的部件,其共享底层维度上的特征。

图2C显示了一个三层的网络来表示一个正方形的轮廓,处于最低级、中间和顶层的特征分别代表着线段、拐角和整个正方形。每个池化的变量都汇集相对于中心特征以不同的变形,小的转义、大小的变化,这样就能引入相应的对应不变形的这个特征。没有两个池化之间的侧向连接,由一个表示拐角特征节点就会产生未对齐的线段,正如图3A所示那样。在两个池化之间的侧向链接通过保证一个池中的特征能影响其链接的池的特征,从而能能够提供选择性,这样就能产生那些轮廓变化更平滑的样本。侧向连接的限制的灵活性由干扰因素所控制,其也是在每层所指定的一个超参数。通过多层特征的汇集,侧向连接以及组合,处于顶层的特征节点就能够识别一个具有一定程度的尺度、形变变化的物体了。

多个物体都以同样的等级结构所表达,这些结构之间具有共享的部分。当多个亲本收集一个单独的子特征的时候,这个子特征就会被激活从而使得每个亲本也都会被激活(在图中的或门),并且不同于在和或门之中的独享结构,在一定条件下,子特征能够成为亲本特征的一部分。甚至当两个最高层的特征分享了一些相同的底层特征和池,高级的特征的侧连接仍然通过对其相关的每个底层特征进行复制从而保持独立。类似于高阶网络中使用的状态复制机制,横向网络的亲本特定拷贝用于实现与成对连接的高阶交互。这对于消息传递来说很重要,以实现准确的结果,并且其让人联想到双重分解中使用的技术。等级制度在RCN网络有两个作用。首先,其能允许变形的表达逐渐的在每层中表现,从而使跨层的变量发生变化。其次,等级制度也使得在两个不同的对象之间通过共享特征来加速效率。

图3

图3 A. 比较存在或去除侧连接下的拐角特征的样本 B. 来自不同变形情况下字符A的例子,其被汇集池和侧连接的超参数所决定。这个三层的等级就比较类似于图2D,最低层的特征几乎都是边,第二行则是显示了在层之间的变形性的分布,这样就会产生局部变形和全局演变。其他列则是显示了一些非常极限的情况。 C. 显示了一个立体的表面的条件随机场的轮廓,绿色的节点表示了由前景到北京的边,而蓝色的则是直接显示了对象的边。D. 在立体形状下的C的不同表面

推断

为了解析场景,RCN在多个位置对于多个对象实体维护了一个等级的图。场景的解析可以通过最大后验概率(Maximum A Posterior)的方法来推断,这个图能够以实体对象和分割来恢复一个最佳的连接配置。这个RCN网络是受皮质的推断所启发而来。首先输入的图像会接受PreProc的方法,其将使用类Gabor的滤波把像素值转换为对于边的可能性。接着,在网络之中传输的正向和反向的信息就会对这个对象进行假设的局部匹配,并且通过对于在假设对象的图进行场景解析,解决一个完全的近似MAP的问题。正向的传递将会给予顶层节点的概率以一个上确界,而反向的传输则会遍历正向传播假设之中的高概率路径,这个行为比较类似于一个自顶而下的注意力机制(Attention机制)的过程。这个条件的推断会假设所有其他的节点都处于关闭(类似于Dropout)的状态以便找到这个物体的近似MAP配置。(如图4)反向传播能够拒绝很多在正向传播中被错误标记正确的假设。

图4

Gabor滤波器

使用一个三角函数(如正弦函数)与一个高斯函数叠加我们就得到了一个Gabor滤波器,其是一个用于纹理分析的线性滤波。基本上其分析在点或区域周围的区域的特定方向上是否存在特定频率内容,其善于分析纹理的表示和辨别

全局的MAP配置就是通过正向和反向传播所产生的所有对象假设的一个子集。在场景之中对象的数量能够被推断为MAP解的一个部分。同时,搜索这么大的一个子集,需要在高阶的情况下推导,于是作者就开发了一个动态规划算法,从而能在线性时间内解决这个问题,这个动态规划算法利用了每个对象的假设都会占有了一个能被用2D掩码所表示的连续区域。当考虑到结合对象的假设,我们就能产生一个连续的空间并且他们的2D掩码也重叠,从而我们利用掩码包含关系来对他们进行一个拓扑排序。在这种情况下,我们就能在一个O(n)的数量级的情况下迭代地解决这个问题。