原文地址:http://tech.sina.com.cn/d/i/2015-12-12/doc-ifxmpnqi6368668.shtml

science   Human-level concept learning through probabilistic program induction

原文地址:http://science.sciencemag.org/content/350/6266/1332

github:https://github.com/brendenlake/BPL

本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载

   作者:汪汪

  今天,《科学》杂志封面刊登了一篇重磅研究:人工智能终于能像人类一样学习,并通过了图灵测试。

  这个人工智能像你一样学习写字

  假设你从来没有见过菠萝。有一天,有人送了你一个菠萝。尽管你这辈子只见过这一个菠萝,但你只用一眼就看出了菠萝的特征。第二天,你去水果店,很快就能从一堆苹果、葡萄、柚子中认出菠萝来。你甚至还能在纸上画出菠萝的简笔画。

  这种‘仅从一个例子就形成概念’的能力对人来说很容易。然而,尽管人工智能近年来取得了长足的进步,但要让机器做到这一点,却难于上青天,因为目前的人工智能通常需要从大量的数据中进行学习,你得让它看成千上万张菠萝的图片才行。

  不过,这个事实或许从今天开始改变了。今天,一篇人工智能论文登上了《科学》杂志的封面,为人们带来了人工智能领域的一个重大突破:三名分别来自麻省理工学院、纽约大学和多伦多大学的研究者开发了一个‘只看一眼就会写字’的计算机系统。(论文Human-level concept learning through probabilistic program induction见文末,或回复12可下载pdf格式。)

  《科学》杂志封面

  只需向这个系统展示一个来自陌生文字系统的字符,它就能很快学到精髓,像人一样写出来,甚至还能写出其他类似的文字——更有甚者,它还通过了图灵测试。下面就是机器和人写出的字符。你猜哪些是机器写出来的?傻傻分不清了吧?

  机器的作品是1,2;2,1;1,1

  这三名研究者分别是纽约大学数据科学中心的Brenden Lake,多伦多大学计算机科学与统计学系的Ruslan Salakhutdinov和麻省理工学院大脑与认知科学系的Joshua Tenenbaum。他们创造的AI系统能够迅速学会写陌生的文字,从某种意义上说明它领悟到了字符的本质特征(也就是字符的整体结构),同时还能识别出非本质特征(也就是那些因书写造成的轻微变异)。

  三名研究者从左到右分别是:Ruslan Salakhutdinov, Brenden Lake和Joshua B。 Tenenbaum。图/Alain Decarie/The New York Times

  人类的概念具有极大的弹性,因此,尽管许多概念的边界十分模糊,但我们依然能进行明确的分类。这三位研究者声称,他们的系统就抓住了这种弹性。该系统能模仿人类的一个特殊天赋——从少量案例中学习新概念。它所根植的计算结构叫做概率程序(probabilistic program),还可能有助于对人类获得复杂概念的过程进行建模。

  Joshua B。 Tenenbaum是麻省理工学院大脑与认知科学系的教授,他说:‘目前的人工智能领域大都聚焦在对模式进行分类。但是,这种类型的智能所缺少的不是分类或识别的能力,而是思考。所以,尽管我们研究的只是手写字符,但依然大言不惭地使用“概念”这种词。因为我们能用字符来研究更加丰富和复杂的概念。我们能理解字符的来历和构件,也能理解如何用不同的方式来使用字符,并造出新的字符来。’

  通过‘图灵测试’

  这篇论文的第一作者Brenden Lake曾在Tenenbaum的团队中获得认知科学博士学位,如今他是纽约大学的博士后。根据Lake的介绍,他们在论文中分析了三个核心原则。这些原则都很通用,既可以用在字符上,也可以用在其他的概念上:

  组合性(compositionality):表征是由更简单的基元构建而成。

  因果性(causality):模型表征了字符生成的抽象因果结构。

  学会学习(learning to learn):过去的概念知识有助于学习新的概念。

  研究者对这个AI系统进行了几项测试。

  测试1:研究者向它展示了它从未见过的书写系统(例如藏文)中的一个字符例子,并让它写出同样的字符。这里并不是让它复制出完全相同的字符,而是让它写出9个不同的变体,就像人每次手写的笔迹都不相同一样。例如,在看了一个藏文字符之后,算法挑选出该字符用不同的笔迹写出来的例子,识别出组成字符的笔画,并重画出来。

  测试2:研究者向系统展示了一个陌生书写系统中的几个不同的字符,并让它创造出一些相似的字符。

  测试3:研究者让它在一个假定的书写系统中创造出全新的字符。

  与此同时,人类被试也被要求做同样的事情。最后,研究者要求一组人类裁判(来自亚马逊土耳其机器人,Amazon Mechanical Turk)分辨出哪些字符是机器写的,哪些是人类写的。结果,裁判的正确率仅为52%,和随机的结果差不多。于是,机器通过了所谓的视觉图灵测试。

  红圈标出的是机器的作品

  传统的机器学习系统(比如手机上的语音识别算法)在某些分类任务上的表现很好,但它们首先需要大量的数据集来进行训练。相比之下,人类只需要少量的例子就能抓住某个概念的精髓。这种‘一次性学习’正是研究者希望他们的系统能模拟的能力。

  学会如何学习

  三位研究者采用的方法是‘贝叶斯程序学习’(BPL,Bayesian Program Learning),能让计算机系统对人类认知进行很好的模拟。传统的机器学习方法需要大量的数据来训练,而这种方法只需要一个粗略的模型,然后使用推理算法来分析案例,补充模型的细节。

  在这篇论文中,研究者的模型只规定了字符由笔画组成,笔画由抬高笔触来区分,而笔画又由更小的子笔画组成,子笔画用笔尖速度为零的点来区分。

  有了这个初始模型之后,研究者向AI展现了人类手写文字的方式,包括笔画顺序等,让系统学习连续的笔画和子笔画之间的统计关系,以及单个笔画所能容忍的变异程度。这个系统从未在它所分析的书写系统上进行过任何训练,它只是推理出了人类写字的一般规律。

  Tenenbaum说:‘每个星期,我们似乎都能读到机器在人脸识别、语音识别方面与人类旗鼓相当的新闻。但是,对我这种研究心智的科学家来说,机器学习和人类学习之间的鸿沟是巨大的。我们希望弥合这个鸿沟,这是我们的长期目标。’

  各方评价

  剑桥大学的信息工程教授Zoubin Ghahramani说:‘我认为这对人工智能、认知科学和机器学习是一个重大的贡献。深度学习目前已取得了重要的成功,这篇论文非常清醒地表明了深度学习的局限性,因为深度学习需要大量的数据,并且在这篇论文所描述的任务上表现很差。这篇论文也展现了实现类人机器学习的重要方法。’

  也有一些人对‘人工智能超越人脑’这种说法持谨慎态度。艾伦人工智能研究所的Oren Etzioni说:‘我对“超人的表现”这种说法非常谨慎。当然,这个算法确实超过一般人的表现,除了达斯汀·霍夫曼。’(指霍夫曼主演的《雨人》电影。)

  与深度学习优势互补

  多伦多大学和谷歌的人工智能先驱Geoffrey Hinton说这个研究‘令人印象非常深刻’。他说,这个模型能通过视觉图灵测试,这很重要,‘是一个不错的成就。’Hinton是深度学习的奠基者。深度学习近年来取得了举世瞩目的成就,被广泛应用在许多领域,例如语音翻译、图像识别等,还用在谷歌的图像搜索和Facebook的人脸识别上,获得了巨量的数据以供学习。

  然而,这篇新论文说‘贝叶斯程序学习’在某些方面比深度学习的表现更好。三位作者和Hinton都礼貌地表明,这两种方法在不同的任务上各领风骚,假如能彼此借鉴,一定能互相弥补。如果能建出一个混血系统,说不定能有更大的提升。在数据量巨大但较混乱的情况下,深度学习能发挥优势;而在数据量少而清晰的情况下,贝叶斯学习占领上风。

  Hinton说,这篇论文最令人兴奋的成果或许是能让那些宣称智能计算机系统的学习方式与人类完全不同的批评者闭嘴,因为他们的主要论据正是计算机不能从单个例子中形成概念。

  未来

  在未来,这种机器学习的技术能够完成很多任务,例如读懂手语、提升语音识别软件的性能等。运用这种方法,或许只用向计算机展示一张人脸照片,它就能从任何角度识别出这个人。它甚至有可能用来制定军事行动计划。

  当然,尽管这个成果很重要,但它对人工智能领域来说只是一个小小的起点,不代表未来的机器学习都必须采用这种方法。正如它颠覆了‘计算机如何理解概念’这个课题一样,在这个日新月异的领域中,极有可能下个月就出现一种新方法,将它甩在后面飞扬的尘土中。

《科学》封面:人工智能终于能像人类一样学习 zz的更多相关文章

  1. 大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2)

              大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out  of  bag  data及代码(2) 上一节中我们讲解了随机森林的基本概念,本节的话我们讲解随机森 ...

  2. 秦曾昌人工智能课程---7、决策树集成学习Tree Ensembles

    秦曾昌人工智能课程---7.决策树集成学习Tree Ensembles 一.总结 一句话总结: 其实机器模型减少variance的比较好的方式就是 多个模型取平均值 1.CART是什么? classi ...

  3. 人工智能不过尔尔,基于Python3深度学习库Keras/TensorFlow打造属于自己的聊天机器人(ChatRobot)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_178 聊天机器人(ChatRobot)的概念我们并不陌生,也许你曾经在百无聊赖之下和Siri打情骂俏过,亦或是闲暇之余与小爱同学谈 ...

  4. 人工智能-有限状态机(FSM)的学习

    首先声明:此文源于本人最近学习的一本书 <游戏人工智能编程案例精粹> FSM的定义: 一个有限状态机是一个设备,或是一个设备模型,具有有限数量的状态,它可以在任何给定的时间根据输入进行操作 ...

  5. 《转载》python/人工智能/Tensorflow/自然语言处理/计算机视觉/机器学习学习资源分享

    本次分享一部分python/人工智能/Tensorflow/自然语言处理/计算机视觉/机器学习的学习资源,也是一些比较基础的,如果大家有看过网易云课堂的吴恩达的入门课程,在看这些视频还是一个很不错的提 ...

  6. 科学计算和可视化(numpy及matplotlib学习笔记)

    网上学习资料:https://2d.hep.com.cn/1865445/9 numpy库内容: 函数 描述 np.array([x,y,z],dtype=int) 从Python列表和元组创造数组 ...

  7. 百度网盘 人工智能书籍【Tensorflow和深度学习】

    链接:https://pan.baidu.com/s/1ejCvwn08ILI2fMhBEdXR8w 提取码:6pk9

  8. 人工智能之基于Opencv与深度学习的计算机视觉实战课程

    https://www.bilibili.com/video/av66375362 imagewatch:https://blog.csdn.net/iracer/article/details/83 ...

  9. Cell期刊论文:为什么计算机人脸识别注定超越人类?(祖母论与还原论之争)

    终于找到ML日报的微信链接,抄之...................................... 请拜访原文链接:[祖母论与还原论之争]为什么计算机人脸识别注定超越人类?评价:       ...

随机推荐

  1. 使用bcrypt进行用户密码加密的简单实现

    Bcrypt百度百科: bcrypt,是一个跨平台的文件加密工具.由它加密的文件可在所有支持的操作系统和处理器上进行转移.它的口令必须是8至56个字符,并将在内部被转化为448位的密钥. 除了对您的数 ...

  2. [LeetCode] Pow(x, n) (二分法)

    Implement pow(x, n). 刚开始没想到,后来看remlost的博客才写出来,代码很简练: class Solution { public: double pow(double x, i ...

  3. Celery - Best Practices

    If you've worked with Django at some point you probably had the need for some background processing ...

  4. JS之toString方法

    1.JS中几乎每个值都有toString方法,null和undefined除外 2.对于字符串形式的值也可以使用toString()方法,返回该字符串的一个副本 3.toString(radix)方法 ...

  5. iOS 时间戳

    时间戳用过一回,总结一下: 1.在Terminal下获得时间戳: date +%s 原来要在服务器端挂文档,方便开发商下载,用时间戳作为文件名称来区分. 2.在程序下获得时间戳: NSDate * n ...

  6. Java实现热替换

    package test; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.nio. ...

  7. 手机端input[type=date]的时候placeholder不起作用解决方案

    目前PC端对input 的date类型支持不好,我试下来的结果是只有chrome支持.firefox.IE11 都不支持.而且PC端有很多日历控件可供使用.就不去多考虑这点了. 那么在移动端的话,io ...

  8. perl常见符号

    =>  键值对,左键右值 -> 引用,相当于java中的 [对象.方法名]中的点号 :: 表示调用类的一个方法 % 散列的标志,定义一个键值对类型的 @ 数组的标志 $ 标量的标志 =~ ...

  9. Android --slidedatetimepicker时间控件应用

    下载参考SlideDateTimePicker时间选择器 1.创建 beginTimeTxt=(EditText)findViewById(R.id.search_begintime_edittext ...

  10. CentOS 配置本地yum源

    [root@localhost ~]#ls /media/dvd/                                                                   ...