Human-level concept learning through probabilistic program induction个人理解

    这是一篇放在science封面文章的paper,作为人工智能机器学习的文章,被导师推荐去读了一番,再次为自己的英语理解能力哭瞎了,paper里的program一词从头到尾都不知道具体指什么,因为理论知识有限,以下的内容仅仅作为自己的一份学习笔记,参考时请慎重。

    文章要做的是模仿人类的学习能力去建立一个学习模型,由于目前机器学习无一不是需要大量数据支持的,而人类的学习可以从很少的学习样本中学到知识,并具有很强的识别能力和推广泛化的能力(generalization),作者利用贝叶斯准则(Bayesian criterion)建立了一套模型,对于one-shot classification task,该模型达到了人类学习的性能。这里one-shot classification即指从类中的一个范例中学习知识,具有对该类别分类的能力。

Human-level concept learning through probabilistic program induction个人理解_第1张图片

    以二轮车为例,作者认为之所以人类拥有相比于机器更强的学习能力,是因为能对物体进行结构的解析(parse),能从单个物体提取出丰富且具有代表性的特征,并用这些特征去创造其他二轮车的实例,或对相似的结构进行识别(分类)。如果把这些人类的这种能力看做一个函数(function),输入仅仅为一个实例,输出为实例的推广,或对其他类似物的识别结果,这种功能强大的函数,目前并没有一种模型能做到,包括deep convolution networks。

    这篇文章提出了BPL(Bayesian program learning)的一种架构,其中program一词实在不知道该如何理解,这里就直接不翻译了。给定少量(甚至只有1个)的样例,这种方法便能学习到类似于该样例的一大类可视概念(visual concepts),该架构结合了3种特性:合成性(compositionality)、因果性(causality)和对学习方法的学习(learning to learn)。

    算法的细节这里不作介绍,简单的说说我对这种方法的理解。合成性是指一个物体由各个部分组成,对于二轮车,水平的把手,竖直的推动杆,两个轮子,连接轮子的横版,人在看到一辆二轮车的时候,会自然的把它拆解成这些部分,之后会对这些部分进行多种合理的拼凑和组合,组合而成的集合便是人类对二轮车泛化之后的理解。类似的,bayesian program learning第一步便是要各种零件进行组合。

    文章中的样本对象是一种长相奇异的火星文(examples of handwritten characters from Omniglot)。笔画(primitive actions)由数据库给定,对应于之前所说的零件。合成性便是对这些笔画进行组合生成一个字符。

Human-level concept learning through probabilistic program induction个人理解_第2张图片

    事实上,笔画的组合并不是随意的组合,必须符合某种字符结构的规律Ψ,这个规律的体现便是因果性。定义联合概率密度分布:

Human-level concept learning through probabilistic program induction个人理解_第3张图片

    其中θ是指字符的笔画特征,如上图中的attached along, attached at start等,I指最终生成的字符图片数据。该分布量化了在给定规则下某个笔画组合是否是字符的可能性。组合过程中,下一步笔画的概率取决于之前的结构,因此这样的组合方式具有因果性。

    组合完成后形成目标模板(object template),以上的过程为type level,接下来进行token level的处理,对应于对学习方法的学习。人类对于目标物体具有很强的泛化能力,依旧以二轮车举例,推着的二轮车、平躺在地上的二轮车、破损了一个轮子的二轮车等等,为了模仿这种学习能力,BPL在token level中对目标模板进行了各种类似于后处理的操作,例如仿射变换,改变起始点,添加变差等等,最终生成字符图形(raw data)。

Human-level concept learning through probabilistic program induction个人理解_第4张图片


    就BPL的输出结果而言,生成的新字符已经与人类手写生成的新字符及其类似了,为了更进一步说明相似性,文章还进行了图灵测试,实验结果表明大多数的受试者已经无法对两者间进行有效的区分。同样对于one-shot classification,BPL也达到了相对于DP更优秀的结果。

Human-level concept learning through probabilistic program induction个人理解_第5张图片

    BPL的意义在于,它模仿了人类对新事物的认知过程,通过少量甚至是单一的样本,就能学习出一类事物的模型,利用贝叶斯准则实现了对抽象的结构和概念的学习。不同于目前主流的运用大量数据训练复杂模型的深度神经网络,BPL提供了学习模型的一种新的思路。

你可能感兴趣的:(统计学习)