A generative vision model that trains with high data efficiency and breaks text-based CAPTCHAs
(递归皮层网络RCN识别验证码CAPTCHAs)
从一些例子中学习和泛化(generalize)能力是人类智慧的标志。CAPTCHAs(全称Completely Automated Public Turing test to tell Computers and Humans Apart),网站用来阻止自动交互的图像集,是人类容易识别但计算机难以解决的问题。CAPTCHAs很难用于算法,因为它们将杂乱和众包字母组合在一起,为字符分类器创建鸡和蛋问题(chicken-and-egg problem)——分类器适用于已经分割出来的字符,但是对单个字符进行分段需要理解字符,每个都可以按组合数方式呈现。最近一种特定的解析CAPTCHA风格的深度学习方法,需要数以百万计的标记数据集,而早期方法主要依靠手工特定类型启发法(hand-crafted style-specific heuristics)来分割出字符;而人类可以在没有明确训练的情况下解决新的类型(图1A)。图1显示了各种各样的字形可以呈现并且仍然被人们理解的方式。
建立远远超出其训练分布范围的模型,是道格拉斯·霍夫斯塔特所设想的灵活性的重要一步,他说“对于任何能够处理具有人类灵活性字形的程序,它必须拥有全人工智能。许多研究人员推测,这可以通过利用神经科学和认知科学研究产生的大量数据,来结合视觉皮层的诱导偏差(inductive biases)来实现。在哺乳动物大脑中,视觉皮层中的反馈连接在分割图形和环境(figure-ground-segmentation)中发挥作用,并在基于对象的自上而下的注意力中,即使当物体的部分是透明的时候,也会识别出物体的轮廓(说的是主观轮廓错觉吧)。视觉皮层中的横向连接与强制轮廓连续性(enforcing contour continuity)有关。轮廓(Contours)和表面(surfaces)使用相互作用的独立机制来表示,使得能够识别和想象具有不寻常外观的物体——例如冰制椅子。皮质激活时间和地域(timing and topography of cortical activations)提供了关于轮廓表面表征和推理算法(contoursurfacerepresentations and inference algorithms)的线索。这些基于皮质功能的见解尚未纳入领先的机器学习模型。
我们引入一种称为递归皮层网络Recursive Cortical Network(RCN)的分层模型,该模型将这些神经科学见解纳入结构化概率生成模型(structured probabilisticgenerative model)框架。除了开发RCN及其学习和推理算法之外,我们还将模型应用于各种视觉认知任务,这些任务需要从一个或几个训练样例中进行泛化:解析CAPTCHAs,一次(one-shot)和几次(few-shot)识别以及手写生成数字,遮挡推理(occlusion reasoning)和场景文本识别。然后,我们将其性能与最先进的模型state of the art models进行了比较。
递归皮质网络(Recursive cortical network)
RCN以一只重要的方式建立在现有组合模型。尽管基于语法的模型具有基于语言学(linguistics)中众所周知的优点,但它们要么将解释限制为单个的树(single trees),要么在使用归属关系(attributed relations)时计算上不可行。关于AND-OR模板(AND-OR templates)和树状成分模型(tree-structured compositional models)的开创性工作(seminal work)具有简化推理(simplified inference)的优点,但由于没有横向约束(lateral constraints)而缺乏选择性。来自另一个重要类的模型使用横向约束,但不是通过池化结构逐渐建立不变性(invariance),而是使用参数变换在每个级别进行完全缩放,旋转和平移不变性。需要自定义推理算法,但这些算法不能有效地将横向约束的影响传播出局部交互的范围。在(37)中,不对轮廓和表面的表征的相互作用建模,而是选择将它们视为独立的机制单独建模。RCN和组合机器Composition Machines(CM)分享将组合模型思想(compositional modelideas)放置在图形模型公式中的动机。然而,CM的“组合分布”的代表性选择——使用单层随机变量来折叠特征检测,池化和横向协调——导致扩展的状态空间,从而将模型约束为贪心推理(greedyinference)和解析处理(parsingprocess)。一般而言,由于表征选择的变化varied和冲突,组合模型的推理依赖于不同模型实例的定制方,包括求解随机偏微分方程,基于采样的算法和修剪动态规划。
RCN将来自组合模型的各种思想——分层组合,不变性的渐进构建,横向连接选择性,轮廓表面因子分解和基于联合解释的解析——整合并构建到结构化概率图形模型中,使信念传播可以用作主要的近似推理引擎。实验神经科学数据为代表性选择(representationalchoices)提供了重要指导,然后通过实验研究证实这是有益的。我们现在讨论RCN的表征及其推理和学习算法。数学细节在(33)第2至5节中讨论。
表征Representation
在RCN中,对象被建模为轮廓和表面的组合(图2A)。轮廓出现在表面的边界处,包括对象轮廓和构成对象的表面之间的边界。表面使用条件随机场Conditional Random Field(CRF)建模,其捕获表面特性变化的平滑度。轮廓使用特征的组合层次结构建模。轮廓(形状)和表面(外观)的因式表示使模型能够识别具有显着不同外观的物体形状,而无需对每种可能的形状和外观组合进行详尽的训练。我们现在详细描述形状和外观表征
图2B显示了RCN轮廓层次一个级别内的两个子网(黑色和蓝色)。图中实心和空心的圆形节点分别对应于特征和池(pools)的二进制随机变量。每个特征节点对其子池(child pools)的与(AND)关系进行编码,每个池变量对其子特征的或(OR)进行编码,类似于与或图。横向约束(表示为矩形“因子节点”)协调它们连接的池之间的选择。两个子网络可以对应两个对象或对象的一部分,共享较低级别的特征。
图2C显示了表示正方形轮廓的三级网络。底部,中间和顶部的各级特征分别代表线段,角和整个正方形。每个池变量(pool variable)汇集在“中心”特征的不同变形,少量平移(translations),比例变化等上,从而引入相应的不变性。在没有池(图2C中的灰色方块)之间的横向连接的情况下,从表示角的特征节点生成会产生未对准的线段,如图3A所示。
池之间的横向连接提供的选择性,是通过确保一个池中的特征的选择影响其连接的(整个?)池中的特征的选择来实现的,从而创建轮廓变化更平滑的样本(samples)。
横向约束的灵活性通过扰动因子(perturb-factor)来控制,扰动因子是每级指定的超参数(hyperparameter)。通过多层特征池化、横向连接以及组合,顶层的特征节点来表示一个对象,这个对象可以通过某种程度的平移,缩放和变形不变性来识别 。(Throughmultiple layers of feature pooling, lateral connections, and compositions, a feature node at the top level comes to represent an object that can be recognized with some level of translation, scale, and deformation invariance. )
多对象通过共享它们的部分以相同的形状层次表示(图2B)。当多个父节点汇聚于单个子特征(图2B中的特征节点feature node“e”)时,当任何父节点处于活动状态(图形模型l中的与门(OR-gate)时,这将是活动的,并且允许子特征成为子节点的一部分。如果证据允许,父母双方都不同于AND-OR图形语法中的独享(exclusivesharing)。
(When multiple parents converge on a single child feature (feature node “e” in Fig. 2B), this will be active when any parent is active (OR gate in the graphical model), and the child feature is allowed to be part of both parents if evidence allows, unlike the exclusive sharing in AND-OR graph grammars)
美国人能看懂吗?。。。怎么断句?
即使两个较高级别的特征共享一些相同的较低级别特征和池,这些较高级别特征的横向网络也会通过为其参与的每个特定更高级别特征制作较低级别功能的副本而保持独立(多读几遍应该能明白它的意思),如图2B所示。与成对连接相比,横向网络的特定的父节点副本(Parent-specific copies)用于实现更高阶的交互,类似于在高阶网络(higher-order networks)中使用的状态复制机制(state copying mechanism )。这也被发现对于消息传递很重要,以获得准确的结果,并且让人联想到双重分解(dual decomposition)中使用的技术。RCN网络中的层次结构扮演两个角色。首先,它能够通过多个层次结构逐渐地表示变形,从而在层间传播变化量variation(图3B)。其次,层次结构通过在不同对象之间共享特征来提供效率(42)。这两者都可以通过共享计算实现有效的学习和推理。
表面使用成对CRF建模(图3C)。局部表面片属性(Local surface patch properties )(如颜色,纹理或表面法线(surface normal))由分类变量(categorical variables)表示,其变化的平滑性由横向因子(图2中的灰色方块)强制执行。轮廓层次生成的轮廓以特定的方式与表面CRF相互作用:轮廓表示着表面连续性的一个断裂,这种轮廓可以是在对象内(内轮廓)以及对象与其背景之间(外轮廓),这是一种受神经生物学启发的表征选择。图3,B和D显示了从RCN生成的样本。
推理(Inference)
为了解析场景,RCN在平铺场景的多个位置,维持多个对象实例的分层图。可以通过该复杂图上的最大后验概率估计(MAP)(maximum a posteriori)推断来获得场景的解析,其解释了包括对象身份及其分割的最佳联节配置。虽然RCN网络有许多循环,但我们发现消息传递,其时间表受到视觉皮层激活时间的激发,导致快速准确的推断。输入图像首先通过预处理(PreProc),使用一组Gabor类滤波将像素值转换为边缘似然。然后使用在网络中传递的前向和后向消息来识别对应于对象假设(object hypotheses)的部分分配(Partial assignments),并且通过解决对象假设图上的场景解析问题,来找到完整的近似最大后验概率估计(MAP)解决方案(图4)。前向传递给出了顶层节点的对数概率的上限。后向传递逐个访问高得分的前向传递假设,这个方式类似于自上而下的关注过程,该方式有个条件推断:假设所有其他节点都关闭,目的是为了找到近似MAP对象的配置(图4A)。后向传递可以推翻许多在前向传递中识别错误了的对象假设。
全局MAP(最大后验概率估计)配置是前向和后向传递生成的所有对象假设的子集。场景中的对象数量被推断为此MAP解决方案的一部分。除了要在数量以指数(exponentially)增长的子集中搜索之外,找到全局MAP还需要推断出不同假设之间的高阶交互。我们开发了一种近似动态规划(DP)(dynamic programming)的方法,可以在线性时间内解决这个问题。DP算法利用每个对象假设占据连续区域的事实,该连续区域可以在输入图像上表示为2d掩模(mask)。通过考虑在其2d掩模重叠时产生空间连续掩模的对象假设的组合,我们通过根据包含在其他掩模中的掩模对它们进行排序来创建解析的拓扑排序。这导致得分的递归计算,其在搜索最佳解析时仅需要评估线性数量的候选解析。
学习(Learning)
直到网络的倒数第二级(penultimate level)的特征和横向连接都是在无人监督的情况下使用通用3D对象数据集进行训练,该通用3D对象数据集是任务不可知的并且仅被渲染为轮廓图像。由此产生的学习特征从较低级别的简单线段到较高级别的曲线和角。
考虑一个部分学习模型,其中在第k层学习到了新特征。在第k层中,到达第k-1层的特征已经被学习并最终确定,并且在第k层已经学习了一些特征(图4B)。
(Consider a partially learned model, where new features are being learned at level k, where features up to level k − 1 have already been learned and finalized, and a few features have been learned at level k (Fig. 4B).。这里的第二个where是指level k吗?and又是和那个部分并列?有人知道吗?)
当呈现训练图像时,第一步是使用第k层处的现有特征为该图像的轮廓查找MAP解释。这与前面描述的为场景找到MAP解决方案的推理问题相同。使用第k-1层的特征解析仍然无法解释的轮廓,并从它们的轮廓连续连接(contour-continuous conjunctions)中提出新特征。对所有训练图像重复该过程,累积对级别k处的不同特征的使用的计数,并且通过优化平衡压缩(balances compression)和重建误差(reconstruction error)的目标函数(objective function)来选择该级别的最终特征(31)。同一过程逐级(level-by-level)重复。
横向图结构,是从输入图像的轮廓连通性(contour connectivity)中学习,指定池对(pool pairs)之间的连通性(connectivity)。在第一个池化层,具有在输入轮廓中相邻的特征的池彼此连接。在层次结构中递归地重复该过程,其中较高层的横向连接是从较低层图中的邻接(adjacency)推断的。
最顶层的特征代表整个对象。这些是通过找到直到网络倒数第二级(penultimate level)的新对象的MAP配置而获得的:根据输入对象的轮廓连续性在倒数第二级连接池对(pool pairs),然后在倒数第二级存储激活的连接(conjunction of activations)作为最顶层特征。
一旦训练了一组较低级别的特征和横向连接,就可以通过调整一些超参数(hyper-parameters)来将它们用于不同的域(domains)。根据图像和对象大小选择预处理(PreProc)中的滤波器比例,并设置横向连接的灵活性以匹配数据中的失真(distortions)。另外,最低级别特征具有“平滑参数”(smoothing parameter),这个参数设置是用来估计由于噪声导致边缘像素开启(ON)的可能性 。可以根据域中的噪声级别设置此参数。
结论(Results)
如果CAPTCHA数据集超过1%被自动解决,则认为CAPTCHA测试被击破。RCN用很少的训练数据就能击破各种基于文本的CAPTCHAs,并且不使用CAPTCHA特定启发式方法(图5)。它能够以66.6%的准确率来解决reCAPTCHAs问题,(字符级准确度为94.3%),在BotDetect生成的测试集上为64.4%,Yahoo上为57.4%和PayPal上为57.1%,远远高于破解CAPTCHAs问题仅需的1%成功率。不同CAPTCHA任务中架构的唯一区别是用于训练的纯字体集(sets of clean fonts)和一些超参数(hyper-parameters)的不同选择,这些参数取决于CAPTCHA图像的大小以及杂波(clutter)和变形(deformations)的数量。这些参数可以直接手动设置,也可以通过带注释的CAPTCHA集上的交叉验证(cross validation)自动调整。来自CAPTCHA的嘈杂(Noisy),混乱(cluttered)和变形(deformed)的例子没有用于训练,但RCN在泛化这些变化方面是有效的。
对于准确率为66.6%的reCAPTCHA解析,RCN里每个字符只需要五个纯净的训练样例(clean training examples)。该模型使用三个参数来影响单个字符如何组合在一起以读出一串字符,这些参数都与CAPTCHA的长度无关,并且对字符间距很稳健 [图5B]。除了获得CAPTCHA转录(transcription)外,该模型还提供对单个字符的高度准确的分割,如图5A所示。相比之下,reCAPTCHA的人类准确率为87.4%。由于许多输入图像具有多种有效解释(图5A),因此来自两个人的解析仅时间内达成在81%的一致(agree only 81% of the time)。
与RCN相比,最先进的CNN需要大约50,000倍的实际CAPTCHA字符串训练集,并且对输入的扰动(perturbations)不太稳健。由于CNN需要大量标记示例,因此该对照研究(control study)使用我们创建的CAPTCHA生成器来模拟reCAPTCHAs的外观。该方法使用了一组特定位置的CNN,每个CNN都经过训练以区分特定位置的字母。训练该CNN以实现89.9%的单词准确率,需要超过230万个独特训练图像,用已翻译词句(translated crops)进行数据增加(data augmentation),从79,000个不同的CAPTCHA单词创建。由此产生的网络在训练期间不存在字符串长度(string lengths)失败,更重要的是,网络的识别准确性迅速恶化,甚至对人类几乎感觉不到的字符间距产生微小扰动——间距增加15%精度降低到38.4%,间距增加25%精度降低到7%。这表明深度学习方法学会利用特定CAPTCHA的细节而不是学习随后用于解析场景的字符模型。对于RCN,增加字符的间距可以提高识别精度(图5B)。
BotDetect中各种各样的字符外观(图5C)说明了为什么轮廓和表面的分解很重要:没有这种分解的模型会锁定(latch)字体的特定外观细节,从而限制了它们的泛化。RCN结果基于对来自BotDetect的10种不同风格的CAPTCHA测试,所有这些都基于每个字符做24个训练示例训练的单个网络进行解析,并且在所有样式中使用相同的解析参数(parsing parameters)。尽管BotDetect CAPTCHA可以仅使用轮廓信息进行解析,但使用外观信息可以将准确率从61.8%提高到64.4%,在所有数据集中使用相同的外观模型。
在标准的MNIST手写数字数据集中,RCN在一次性(one-shot)和几次(few shot)分类任务上的表现优于其他模型。我们比较了RCN在MNIST上的分类性能,因为我们将每个类别的训练样例数从1改为100。CNN与两种最先进的模型进行了比较,即LeNet-5和VGG-fc6 CNN,其级别使用数百万张图像进行ImageNet分类预训练。选择VGG-CNN的全连接层 fc6进行比较,因为与其他预训练水平的VGG-CNN相比,它为此任务提供了最佳结果,并与使用相同数据集和边缘预处理(edgepre-processing)为RCN的其他预先训练的CNN进行了比较设置。此外,我们还比较了最近报告的关于此任务的最新表现的成分补丁模型(Compositional PatchModel)。RCN的表现优于CNN和CPM。RCN的one-hot识别性能(one shot recognition performance)为76.6%,CPM为68.9%,VGG-fc6为54.2%。RCN对于在测试期间引入的不同形式的杂波(clutter)也很健壮,而不必在训练期间对网络训练那些变换(transformations)。相比之下,这种样本外的测试实例(out-of-sample test examples)对CNN的泛化性能具有很大的不利影响(图6B)。为了分清横向连接,正向传递和反向传递对RCN准确性的贡献,我们进行了选择性地关闭这些机制(mechanisms)的病变研究(lesion studies)。结果总结在图6C中,表明所有这些机制对RCN的性能有显着贡献。具有两级特征检测和池化的RCN网络足以在字符解析任务上获得最佳的准确性性能。增加层次结构中层次数的效果是减少推理时间。
作为生成模型,RCN在重建损坏的MNIST图像时优于变分自动编码器(VAE)(Variational Auto Encoders)和DRAW(图7,A和B)。DRAW对于纯净测试集(clean test set)优于RCN的优势并不令人惊讶,因为DRAW正在学习一种过于灵活的模型,该模型几乎在重建中复制输入图像,这会在更混乱的数据集(cluttered datasets)上损害其性能。在Omniglotdata在线语言文字百科数据上,一次训练(one-shot training)后从RCN生成的示例显示出显着变化,同时仍然可以识别为原始类别[图7D]。
为了测试遮挡推理(occlusion reasoning),我们通过在每个验证(validation)/测试(test)图像中添加一个矩形来创建MNIST数据集的变体,使得数字的某些部分被矩形遮挡,并且矩形的某些部分被数字遮挡[图7C]。这些图像中的遮挡关系不能推断为一个对象在另一个对象前的简单分层。对该数据集的分类具有挑战性,因为数字的许多部分被矩形遮挡,并且因为矩形行为杂乱。如果检测到并分割出矩形,则可以使用RCN生成模型解释其对特定数字的证据的影响,从而提高分类和分割的准确性。RCN在这个具有挑战性的数据集上进行了分类准确性和遮挡推理的测试。无解释的分类准确率为47.0%。解释矩形可将分类精度提高到80.7%。另外,RCN用于通过推理矩形和数字之间的遮挡关系来解析场景。该模型成功地预测了测试图像的精确遮挡关系,如图7C所示,获得了在遮挡区域上测量的0.353的平均交会(IOU)(intersection over union)。
最后,RCN在ICDAR-13稳健读数数据集(Robust Readingdata set)上进行了测试,这是现实世界图像中文本识别的基准(benchmark)(图7E)。对于此测试,我们增强了解析算法,以包括有关n-gram和单词统计的先验知识,以及与场景中字母布局相关的几何先验(geometric priors),包括间距(spacing),相对大小(relative sizes)和外观一致性(appearance consistency)。我们将我们的结果与ICDAR竞赛的最高参与者以及最近的深度学习方法进行了比较(表1)。尽管PhotoOCR使用了790万个训练图像,但RCN模型的表现优于顶级竞争者PhotoOCR 1.9%,而RCN使用了来自25,584个字体图像的基于模型的聚类(model-based clustering)选择的1,406个训练图像。除了提供竞争方法无法提供的字符的详细分段(图7E)外,RCN在此任务上实现了更高的准确性,同时数据利用率(data efficient)提高了300倍。
讨论(Discussion)
分段阻抗(Segmentation resistance)是基于文本CAPTCHA的主要防御,它是实现自动生成的一般原则。尽管在用特定样式的分段启发式法(style-specific segmentation heuristics)前已经破坏了特定CAPTCHA,但这些攻击可以通过对CAPTCHA的微小改动而轻易地被挫败。RCN以一种基本方式打破了分段防御,并且只有非常少的训练数据,这表明网站应该采用更强大的机制来阻止阻抗AI程序。
成分模型(Compositional models)过去已成功用于通用对象识别(generic object recognition)和场景解析(scene parsing),我们的初步实验表明RCN也可适用于这些领域(图8)。RCN公式为在图形模型中开发更广泛的高级推理和学习算法打开了组合模型,可能导致在现实世界场景解析中基于其先前成功的改进。尽管作为生成模型的优势,RCN需要若干改进才能在ImageNet规模数据集上实现卓越性能。灵活地合并多个实例,在前向和后向推理期间在层次结构的所有级别使用表面外观,学习通过3D变形池化更复杂池化结构(sophisticated pooling structures),以及场景上下文和背景的生成建模需要调查并与RCN整合的问题。
与CNN和VAE等全图像模型(whole-image models)相比,RCN的数据利用率高源于RCN在其结构中对强假设(strong assumptions)做编码的事实。最近的神经网络模型使用空间关注窗口(spatial attention window)结合了组合性的想法,但是它们的当前实例需要在整洁的设置(uncluttered setting)中良好地分离对象,因为每个关注窗口使用整个图像VAE建模。将RCN的对象和基于部分的组合性(part-based compositionality)结合到神经网络模型中将是一个有趣的研究方向。与神经网络不同,当前版本的RCN学习算法需要干净的训练数据,这是我们打算使用基于梯度的学习(gradient based learning)以及基于消息传递方法(message passing based approaches)解决的一个弊端(drawback)。
将RCN与贝叶斯程序学习(BPL)(Bayesian ProgramLearning)相结合是未来调研的另一种途径。BPL具有精确建模顺序因果机制(sequential causal mechanisms)的优点,例如Omniglot数据集中的笔划生成,但其推断取决于轮廓与背景分离——RCN可以轻松提供。更一般地,可以组合BPL和类RCN图形模型(RCN-likegraphical models)以获得模拟涉及感知(perception)和认知(cognition)的并行和顺序过程所需的表达能力和有效推断。
当然,Douglas Hofstadter的挑战——理解具有相同效率和灵活性的字形——仍然是人工智能的宏伟目标。当人们识别字形时,人们会以上下文敏感和动态的方式使用更多常识知识(图1C,iii)。我们的工作表明,结合系统神经科学的归纳偏差(inductive biases)可以产生强大、可泛化的机器学习模型,展示出高数据效率。我们希望这项工作能够激发改进的皮层电路模型(cortical circuits)以及将神经网络和结构化概率模型(structured probabilistic models)的功能与通用人工智能系统(general artificia lintelligence systems)相结合的研究。
方法总结Methods summary
对于reCAPTCHA实验,我们从google.com的reCAPTCHA页面下载了5500个reCAPTCHA图像,其中500个用作参数调整的验证集,并在剩余5000个上报告准确度数字。图像按2倍因子放大了比例。通过与本地系统上可用字体的视觉比较,识别出格鲁吉亚(Georgiare CAPTCHA)中使用的类似字体。RCN接受了这种字体的小写和大写字符的几次旋转训练。使用验证集优化超参数。使用亚马逊标记平台(AMT)(AmazonMechanicalTurk)工人估算reCAPTCHA数据集的人工准确性。
使用Image-Magick创建用于训练神经网络进行对照实验(control experiments)仿真reCAPTCHA数据集,以产生与原始reCAPTCHA定性相似的失真(distortions)。仿真数据生成器用作无限制源(unlimited source),以生成用于训练神经网络的随机批次。神经网络优化运行了80期(epochs),其中数据在每期开始时被置换(permuted);通过每期每个基本方向(cardinal direction)上最多5像素的随机翻译来增强数据。类似方法用于BotDetect,PayPal和YahooCAPTCHAs。对于BotDetect,我们下载了每个CAPTCHA样式50-100个图像的数据集,用于确定解析参数和训练设置,另外100个图像作为未调整网络的测试数据集。作为系统的训练图像,我们通过直观地比较BotDetect CAPTCHAs的几个示例,从系统中可用的那些中选择了一系列字体和比例。BotDetect测试图像按1.45倍的因子重新调整。使用验证集优化解析参数,并通过分别适配(adapting)每种样式的参数来测试解析参数的可转移性,然后在其他样式上测试这些参数。
为了训练RCN解析ICDAR,我们从谷歌字体中获得了492种字体,产生了25584个字符的训练图像。由此我们使用自动贪婪字体选择方法(automated greedy font selection approach)选择了一组训练图像。我们为所有字体渲染了二进制图像,然后使用相同字母的结果图像来训练RCN。然后,该RCN用于识别其训练的精确图像,为相同字母的所有字体对提供兼容性分数(compatibility score)(在0.0和1.0之间)。最后,使用阈值threshold(=0.8)作为停止标准,我们贪婪地选择最具代表性的字体,直到所有字体的90%被表示,这导致776个独特的训练图像。使用630个单词图像训练解析器,并使用来自维基百科Wikipedia的单词训练字符。
对MNIST数据集的RCN分类实验是通过将该图像按4倍因子上采样(up-sampling)来完成的。对于每个训练设置,使用旋转的MNIST数字的独立验证集来调整模型的两个池化超参数(pooling hyperparameters)。作为基线的一部分,探索了几种预训CNN的方法。为了理解网络在嘈杂的MNIST数据上的性能,我们创建了六种噪声变体,每种变体具有三个严重级别levels of severity。对于遮挡推理o,RCN网络训练有11个类别:10个MNIST数字类别带20个类别示例,和矩形环类别(rectangularring category)带一个例子。在MNIST数据集上的重建实验使用仅在干净的MNIST图像上训练的网络,然后测试6种不同噪声变体的均方重建误差,每种噪声变化具有3个严重级别。
源码:https://github.com/vicariousinc/science_rcn