【转载】 《Human-level concept learning through probabilistic program induction》阅读笔记

 

 

 

 

 

 

原文地址:算法

https://blog.csdn.net/ln1996/article/details/78459060网络

 

---------------------
做者:lnn_csdn
来源:CSDN框架

 

--------------------------------------------------------------------------------机器学习

 

 

 

 

花了一周多的时间读了一篇论文《Human-level concept learning through probabilistic program induction》(《经过几率规划概括进行类人概念学习》),这是15年12月science的一篇封面文章,主要解决了小样本状况下的计算机学习问题。第一次读论文,并且是英文论文仍是有点吃力,参考了不少其余的博客和新闻评论,本身也总结出了一些阅读笔记。

 函数

 

 

背景:
       咱们知道,人类经过几个简单的例子就可以学会新的概念,可是对于传统的机器学习算法,却须要几十甚至是几百倍的数据训练才能够达到这样的程度。工具

 

 

举个例子:
       咱们看到上图中左上角这个两轮车,咱们一眼看到它的时候便知道它是代步工具;还能够根据它衍生出其余形状的两轮车;将这个二轮车解析为扶手、轮胎这一类更小的部件;还能够将它和其余的代步工具联合起来创造出其余的代步工具。
       对右边的这个图也是同样,看到一个字符便知道它是那个字符系统里的;手写字符能够写出其余的变体(人每次写字的字迹都是不同的);解析字符的笔画;根据一些字符,解析他们的特色创造出新的字符。
       这说明,人类具备从极少许的数据中学习丰富概念的能力:归类、派生、解析、创造。
       本文试图模仿人类的学习能力创建一个学习模型,从稀少的数据中造成丰富的概念。
 性能

 

 

 

 

BPL:
       文章提出了BPL(贝叶斯规划学习)框架来进行类人概念学习。BPL框架具备三个重要的特性,分别是合成性、因果性、学习如何学习。合成性的意思是概念是由更简单的基本元素构成的,好比说一个字符是由更简单的笔画构成的;因果性指的物体是如何生成的这一抽象的关系。咱们看到一个字符,就知道它是怎么写出来的,由哪些笔画构成、这些笔画间有什么关系;学习如何学习则指的是过去的概念知识可以帮助学习新概念,简单地说就是BPL能够从现有的字符中抽象出其部件,而后根据不一样部件的因果关系创造新的字符。
       BPL框架把上述三个特性结合在一块儿,具体思路是:每个“概念”均由多个简单的“基本元素”组成,“基本元素”之间有位置、时间、因果等关系,“基本元素”根据这些关系选择性的“组合”,就获得一个相应的“概念”的实例。将上述关系在BPL模型中进行参数化,经过必定的几率计算,自动的学习这些参数。
 学习

 

 

       文章的主要内容:把BPL应用在手写字符的单样本概念学习中,实现了模拟手写字符,一次性分类手写字符,产生新的手写字符。 一些定义:
       测试

 

在学习这三个应用以前,先了解一些定义:优化

 

 

 

 

 

模拟手写字符:

 

 

将BPL应用在模拟手写字符这个过程分为两个部分:type level和token level。Type level主要是构建字符的解析结构,token level是根据解析结构产生手写字符的过程。
       先来看type level:
       (1)从背景集合的经验分布(就是前期的一些统计规律)中取样k个part,每一个part中取样n个subpart;
       (2)从背景集中学习获得离散笔画集,构造一个part的模版;
       (3)经过采样每一个subpart的一些控制点和尺度参数,将part表示成参数化的曲线(到这一步已经获得了笔画的轮廓,轨迹);
       (4)根据relation(attached along,attached at start)获得笔画间粗略的位置关系(独立放置、开始、结束、仍是沿着以前的subpart);
       这时候就已经获得了字符的解析结构,而后进入到token level的过程:
       (1)引入适当的噪声来生成笔画曲线S(m);
       (2)笔画开始位置L的精确选定,从背景集中可以获得笔画的空间位置关系,结合上一笔,取样便可获得part的开始位置;
       (3)进行放射变换A(m)以及加入适当的噪声;
       (4)经过随机补偿函数便可获得二值图像,用灰色墨水画出轨迹。


 

 

 

 

一次性分类问题:

       给出一个训练图像,5个训练图像的解析及得分,每一个训练图像都能改形成测试图像。
       选取fast bottom-up方法引入一系列的候选解析,使用连续优化、局部搜索造成离散后验几率分布的近似值,得分高的即为最佳解析。
       这里的得分是log 后验几率
       得分越高,重构的图像越清晰,说明他们更有可能属于同一类。

 

 

 

 

 产生新字符:
       问题定义:给定一个背景集中的几个例子,根据它们的特征创造出属于该背景集的新字符。
       解决方案:对这些例子进行解析,从新生成“经验”,即这个背景集中最常出现的笔画数目、子笔画的样式、相互位置关系等等,而后再根据这一经验去创造新的字符。

 

 

实验结果分析:
       研究者对这个AI系统进行了几项测试来检验BPL模型。

 

 

       左边这个图是一次分类(one-shot classification)的测试结果,研究者给定一张字符图片,要求人类测试者和BPL机器从20张图片中选出和他同类的图片。人的错误率只有4.5%,BPL表现出了更低的错误率,只有3.3%,而深度卷积网络表现出了13.5%的错误率,HD模型的错误率最高34.8%,即便是优化后的深度卷积网络也有8%的错误率。所以BPL的优点是能够在概念的学习中对隐含的因果关系进行建模。


       在这个一次分类(one-shot classification)实验中,研究者还对缺乏“学习如何学习”或“合成性”特性的BPL模型作了测试,分别表现出了11%和14%的错误率,说明这两个特性对BPL起着重要做用(缺乏“学习如何学习”(no learning to learn)的意思是破坏以前设计好的type level和token level生成模型的超参数,好比以token level为例,原来设计好的参数多是让along这种位置关系的两个笔画在必定范围内进行链接,破坏后则是彻底随机的一种链接方式。缺乏“合成性”(no compositionality)的意思是说把字符当作一个总体,经过一条样条曲线进行拟合,而不是像以前同样作笔画和子笔画的拆分。)

 

 

 

      右边这个图是作了一个视觉图灵测试,研究者向BPL系统展现它从未见过的书写系统中的一个字符例子,并让它写出一样的字符。并非让它复制出彻底相同的字符,而是让它写出9个不一样的变体,就像人每次手写的笔迹都不相同同样。与此同时,人类测试者也被要求作一样的事情。最后,经过视觉图灵测试来比较人和机器产生的例子——研究者要求一组人类裁判分辨出哪些字符是机器写的,哪些是人类写的。 这个测试的评价参数为Identification level,理想状况下ID level的值为50% ,即裁判不能区分哪些是机器产生的,哪些是人产生的,最差的表现状况下ID level的值是100%,就是说人类裁判彻底可以正确区分人类和机器。从图中能够看出BPL的ID level是52%,很是接近理想值。而缺乏“学着如何学习”或“合成性”特性的BPL模型的ID level分别为80%和65%,说明这两个特性对BPL模型的拟人化很是重要。
       为了更直白地评价分解状况,研究者经过另一个动态视觉测试来完成此项任务,而且换了一批裁判,每一个裁判会被展现人类和机器写同一个字符的笔画过程,这时BPL在这一视觉图灵测试上的表现为59% ID level,不是那么理想了。若是再把学习到的笔画的书写顺序等先验知识去掉,结果仅为71% ID,所以捕捉正确的动态的因果关系对于BPL来讲很是重要。
       后面的两组实验就不作具体讲解了,总之研究者经过这些实验告诉咱们,BPL经过了视觉图灵测试,大多数人类裁判已经没法对BPL模型生成的字符和人类手写字符进行有效的区分了。

 

 

 

 

 

 

总结:
       做者在本文中基于贝叶斯准则提出了一种计算模型,用来模拟人类的学习能力,将其用于手写字符的单样本概念学习中,实现模拟手写字符、一次性分类手写字符、产生新的手写字符。在具备挑战性的一次性分类任务上,该模型实现了人类层面的性能且赛过最近的深度学习方法。该论文也经过“视觉图灵测试”探索了模型创造性泛化能力,代表该模型在不少方面和人类的行为是极为类似的。
       BPL的意义在于:模仿了人类对新事物的认知,经过少许的样本学习出一类事物。不一样于目前主流的运用大量数据训练复杂模型的深度神经网络,BPL提供了学习模型的一种新思路。 

相关文章
相关标签/搜索