当前位置: 首页 > 科技观察

在人类水平上破译概念学习和一次性泛化

时间:2023-03-14 12:25:18 科技观察

最近,在高元军的带领下,我们讨论了Lake等人的《Human-level concept learning through probabilistic program induction》。[1]和DaniloJ.Rezende等人的《One-Shot Generalization in Deep Generative Models》。[2]这两篇论文。这些论文旨在模仿人类从少量样本中学习的能力。第一篇论文介绍了贝叶斯程序学习(BPL/BayesianProgramLearning)框架——一种允许这种学习能力的概率模型,而第二篇论文在深度生成模型中实现了这一思想。1.HumanLevelConceptLearning从Lake的论文[1]的介绍来看,oneshotlearning的动机非常明确:“人们可以从一个样本或一小群人中学习一个新概念,而标准算法机器学习需要数十或数百个行为相似的样本。”这篇论文用三种能力来表达这种学习。给定单个对象,人类可以:1.对新样本进行分类,2.生成相似类型的新样本,3.将其解析为多个部分并理解它们之间的关系。论文[1](上文)的图1中的示例对此进行了很好的描述。当给定(i)红框中的单个对象时,无论是否属于相似类型,都可以对下面的对象进行分类。此外,人类可以创建类似于(ii)中的样本。人类还可以将其解析为三个较小的部分,如(iii)所示,并想象新的样本,如(iv)所示。1.贝叶斯程序学习论文提出了一个贝叶斯程序学习(BPL)框架,使算法能够获得上述能力。BPL框架基于三个基本思想:组合因果关系学习学习BPL方法学习简单的随机程序来表示概念,通过部分、子部分和空间关系[1]构建它们。对于类型ψ,该类型的M个tokenθ(1),...,θ(M)和对应图像I(1),...,I(M)的联合分布可以表示为:2.关于Anexampleofhandwrittencharacters提供了一个例子,让大家更容易理解BPL及其基本思想。假设我们正在从几个样本中学习一组新的手写字符。可以根据以压笔开始并以提笔结束的笔划(在下图中定义为“部分”)来解析字符。然后可以通过笔的短暂停顿进一步分隔每个笔画(下面的“子部分”)。如果给定字符“B”,那么“B”可以被解析为两部分:直线部分和两条曲线的部分。此外,第二部分可以进一步分为一组两个半圆。在这个模型中,可以使用生成过程来描述手写字符的生成。该过程可分为类型生成和令牌生成,如论文[1]的图3所示。综上所述,类型生成过程为:确定零件数量。对于每个部分,确定小节的数量(以部分的数量为条件)。对于每个小节,实际符号是从基元中“按顺序”采样的(以前一小节为条件)。它完成了每一部分。对于每个部分,采样每个部分的关系(以当前部分和前一部分为条件)。例如,关系可以是“当前部分应该连接到前一部分的哪个点”。关系和部分定义一类字符给定类型,手写字符的实际图像(令牌和图像生成过程)通过(模拟人写字时笔的移动方式)为每个部分生成,添加运动变化(因为手写字符每次看起来都略有不同)。对于每个部分,开始位置依次采样,条件是它与前一个部分的关系和轨迹。对于每个部分,都会根据其形状和起始位置对轨迹进行采样。添加全局转换。该图像由随机渲染函数创建,使用灰度墨水对笔划轨迹进行排序并解释像素值。上面的例子很好的解释了BPL的三个基本思想。字符可以被认为是由简单的基元构成的(“B”由直杆和半圆构成)。解析基于笔划和停顿这一事实捕捉了现实世界过程的自然因果结构。此外,该模型通过“开发允许以前的经验帮助学习新概念的分层先验”来学习学习[1]。(分析“B”学习新的原语和关系,以后可以很容易地用来学习其他字符)。[1]的图4(底部)显示了BPL如何通过解析学习新图。左侧面板显示了给定示例的最佳五个学习解析,以及如何使用它来改装新示例。右侧面板将机器解析与真实情况进行比较,即人类如何解析它们。2.与人类能力的比较1.新样本的分类给定一个新角色的单张图像,分类任务是从20个不同的角色中选择相同类型的图像。结果显示在文章[1](底部面板)的图6A中。BPL和人类表现出相似的错误率(3.3%和4.5%)。该论文还在“破坏”算法的某些部分后尝试了相同的任务。例如,“learning-to-learn”步骤中的损伤去除取消了生成过程的类型,导致错误率为11%。削弱“组合性”步骤要求每个字符仅使用一个笔划来学习,并导致14%的错误。这些结果显示了这两个想法在BPL中的重要性。2.新样本/概念的生成要经过“视觉图灵测试”来检查这种能力。给定一个示例角色,人类和BPL创建一组新的样本。然后参与者判断哪一组是由人(或机器)创建的。新创建的示例如文章[1]的图5所示。如图所示,很难区分它们。您可以在图标题的末尾查看答案。实验结果显示在文章[1]的图6B(上图)中。由于是图灵测试,50%的识别(ID)水平表明这两种情况很难区分。法官平均只有52%的歧视。为了更直接地测试解析方法,绘制的字符以电影幻灯片的形式呈现给评委。结果是59%的识别率水平。此外,测试了相同的实验以生成新概念,而不是新样本。BPL的认可度也接近50%。3.将对象解析成部分并理解它们之间的关系如文章[1]的图4(上数第三图)所示,BPL的解析能力相当合理,可以与人类解析相媲美。4.讨论BPL理解视觉概念结构的能力仍然非常有限。它缺乏关于平行线、对称性、可选元素(如十字笔画等)的大量知识。它还缺乏人类将学习到的概念用于其他任务(如规划、交流和概念组合)的能力[1]。然而,对于人类来说,这些是通过多年的教育习得的。一次学习和概括这些东西似乎不是一件容易的事。该论文还提到了开发概念的神经表征和更多基于神经的学习模型的希望,这引出了下一篇论文。3.One-ShotGeneralizationinDeepGenerativeModels本文使用深度生成模型进行图像的one-shot泛化学习。它建立在反馈和关注的原则之上。1.模型(1)注意力该模型结合了注意力机制来学习图像。本文实现了空间变换(ST)[3]的注意力过程,它对形状和大小是不变的。它使用参数λ处理输入图像x以产生输出:其中κh和κw是一维核,?是两个核的张量外积,*表示卷积。(2)顺序生成模型下面的数学表达式和文章[2]的图2(如下所示)简洁地描述了该模型:在每一步t=1...T,K维隐藏变量zt被独立采样。注意机制可用于合并外部上下文或辅助信息片段x'。该模型是现有模型的推广,例如DRAW[4]、CompositeVAE[5]和AIR[6]。然而,它引入了一个隐藏的画布步骤,允许在隐藏空间中构建原像。另一个需要注意的是,它允许在不将画布ct的结果反馈到隐藏状态tht的情况下对模型进行采样,这将使其更加高效。它生成样本的能力显示在不同的数据集中。例如,为二值化MNIST数据集的样本生成的结果如下所示。3.使用一次性泛化生成新样本或新类型。这篇文章展示了使用上述生成模型对给定小样本进行的演示。它类似于上述论文中描述的功能。但是,该模型不是从单个图像(或少量图像)中学习来生成样本,而是生成不属于训练集的单一类型的新样本。为此,它使用条件生成模型,如[2]的图2b或生成过程的“上下文”部分所示。(1)生成新样本论文在两种不同情况下测试了能力。该模型使用所有可用的字母进行训练。但是从每个字母表中删除三个字符以形成测试集。在这50个字母中,30个用于训练,20个用于测试。训练测试数据拆分更改为40-10和45-5也进行了测试。结果如下所示(文章[2]的图9和图10),训练和测试的对数似然也与不同的训练-测试数据拆分进行了比较。文章[2]的图5显示了45-5拆分的训练和测试对数似然的微小差异,但它表现出不同。这表明过拟合发生在小型训练数据集上。然而,结果特征表明即使在过度拟合的情况下它也能生成合理的新样本。(2)新类型的生成本文还测试了该过程是否可以通过显示字符图像来生成新类型。结果显示在文章[2]的图11中。(结果是主观的。)4.讨论本文使用深度生成过程来模仿人类的一次性概括。它表明,当提供未见过的样本时,该过程可以生成新样本或新类型。与Lake[1]的BPL模型使用对象自然发生的因果结构相比,这种方法适用于许多场景。但是,仍然存在一些局限性,需要在未来进一步研究。它仍然需要合理数量的数据来避免过度拟合。虽然它适用于任何图像(通过不使用专用结构的方式),但它无法将结构解析为更小的部分。原文地址:https://casmls.github.io/general/2017/02/08/oneshot.html【本文为专栏机器心原创翻译,微信公众号“机器心(id:almosthuman2014)”】点此查看作者更多好文