0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

对比机器学习和程序语言的发展史

zhKF_jqr_AI 来源:未知 作者:李倩 2018-09-02 09:35 次阅读

编者按:Microsoft Semantic Machines资深研究科学家、UC Berkeley计算机科学博士Jacob Andreas对比了机器学习和程序语言的发展史,提出可组合性、模块化是神经网络的重要发展方向。

应用机器学习简史:

每当我们用能力更强、特征更简单、结构性限制更少的模型替换能力更弱、附带手工编写的结构性限制的模型时,模型质量提升了(模型更小,开发用时更短,在未见数据上的概括性更好)。

从NLP领域我们就能举出很多例子:线性模型取代了决策列表;Jelinek说:“我每开掉一个语言学家,语音识别系统的表现就会提高一点”;基于统计的机器翻译;最近一大波论文的实质是“将log-linear模型(双层神经网络)替换为一个三层神经网络”。

程序语言简史:

每当我们用带有少量高层构件的语言替换带有大量简单构件的语言时,程序质量提升了(同等复杂度的程序更短了,开发用时更短,包含bug的可能性降低)。

所有人都不写汇编了,接着,所有人都不写C了。(显然这是粗暴的过度概括,因为还有很多人在写汇编和C。争议更少的说法是使用底层语言写程序的人越来越少,使用底层语言更难写对程序。)

不知道你注意到了没有,在以上两个情形中,我们移动的都是同一个滑块——只不过方向不同。机器学习和程序语言设计最终目标是一致的:让特定的问题求解机器(不管是人类还是优化算法)产生正确的代码。在现实世界中,我们并不是因为机器学习内在地比手写代码更纯粹或者更美才偏爱机器学习——我们使用机器学习是因为它高效。如果今天有人发布了一个包含一些可组合的视觉原语的库,接着突然之间Facebook发现实习生可以比神经网络更高效地解决所有的图像标记问题,那么明天神经网络就会被弃之门外。

实际上,我们现在能够写出这样的库吗?

澄清一下,我指的不是类似OpenCV的东西,让你选择为特定任务预先实现的模型,然后在后处理部分加上你想要的操作。相反,我想要的是一些视觉原语,基于这些原语我们可以这样编写一个分类器:

load(image) andThen

detectObjects andThen

orderBy(salience) andThen

head andThen

name

或者这样给图像自动加上说明:

load(image) andThen

detectObjects andThen

describeAll

或者这样识别人脸:

load(image) andThen

detectObjects andThen

filter(name(_) == Face) andThen

drawBoundaries

detectObjects、describeAll等函数看起来是什么样?目前的经验提示它们应该是神经网络,但不是特定种类的神经网络:它们并不是为完成某个具体任务(比如给图像加上说明)而训练的,而是以可自由组合的方式进行训练:describeAll承诺可以接受任何“检测结果列表之类”的输入(可以直接来自detectObjects,也可以是经过后续过滤的),并生成一个字符串。这些函数的输入和输出都是实向量。无法结构化地强制“检测结果列表之类”的东西实际具有所需的语义,相反,我们完全依赖训练过程。

在当前的真实世界实现中,将网络层视为模块化、预先规定的单元,而将网络视为为特定任务定制的单一模型(需要端到端训练)。不过,一旦我们转移到模块化网络上,我们可以开始进行不存在训练数据的任务。例如,使用上面指定的原语“为图像中的人添加说明”:

load(image) andThen

detectObjects andThen

filter(name(_) == Face)

andThen describeAll

其实我们已经向这个方向迈步了:人们使用图像分类网络的前若干层初始化几乎所有视觉任务;尽管“注意力”是一系列组合多个网络层的复杂操作,人们在描述模型时突然开始将其用作原语。Roger Grosse关于矩阵分解模型的语法的出色论文(arXiv:1210.4856)也多少是这个风格,还有Christopher Olah对视作可复用模块组合的神经网络的类型理论细节的讨论(git.io/fAn4J)。

回到我们之前的程序语言讨论,我们观察到:

手工编写人类检测器对人类来说很难,但对神经网络而言很容易。

给定功能恰当的视觉原语,编写人类描述器很容易。但从头训练完成这一任务的神经网络需要大量人类描述的样本。(我们也许可以说,对人类来说“容易”,对神经网络来说“困难”。)

更进一步,有很多更类似人类而不是神经网络的机器学习技术,使用很小的数据集以及良好的预先指定的原语,比如,程序推导和语义解析。如果我们真的只在乎最少的人类干预,我们可以将指定的视觉原语交给机器学习子系统自动推导。

所以让我们编写这个库!这里有一些问题需要研究:首先,提供给人们的功能原语(或用于程序推导的模块)的正确组合是什么?接着,这些共享的表示真的可以被学习吗?我们如何基于现有的标记数据为这些模块搜寻参数配置?

作为概念证明,我和一些研究人员合作,写了三篇关于可组合模块化神经网络的论文:

Neural Module Networks(arXiv:1511.02799)

Learning to Compose Neural Networks for Question Answering(arXiv:1601.01705)

Modeling Relationships in Referential Expressions with Compositional Modular Networks(arXiv:1611.09978)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4576

    浏览量

    98948
  • 机器学习
    +关注

    关注

    66

    文章

    8144

    浏览量

    130706

原文标题:程序语言与神经网络

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    恒压变压器的发展史

    本电子书汇集了各类恒压变压器原理、产品以及它的的发展史,它的各项特性在电子行业得到普遍认可和广泛使用。清版主删除,以为附件超大了不能上传[此贴子已经被作者于2008-7-29 15:14:40编辑过]
    发表于 07-29 14:55

    中国电机工业发展史首发书籍下载

    工业和做好各项工作都具有重要指导意义。序言内容十分丰富,寓意非常深刻,我们一定要认真学习和贯彻落实,努力把电机工业和整个工业提高到新水平。中国电机工业发展史下载地址:[hide][/hide]
    发表于 11-08 21:18

    怎么分析程序语言啊?

    怎么分析程序语言啊?
    发表于 05-15 21:14

    如何正确掌握程序语言

    学习程序语言是每个程序员的必经之路。可是这个世界上有太多的程序语言,每一种都号称具有最新的“特性”。所以程序员的苦恼就在于总是需要
    发表于 08-15 23:47

    matlab导入及导出RINEX文件具体程序语言

    本帖最后由 轻舞飞扬123AA 于 2015-12-2 11:15 编辑 小弟有一下两个问题需要大家帮忙:1、把RINEX文件(o文件及n文件)导入matlab形成矩阵文件具体程序语言。2、把矩阵文件导出成RINEX文件(o文件及n文件)具体程序语言。多谢大家!!
    发表于 12-02 11:12

    紧跟科技潮流,简述智能家居的发展史

    了今天的智能新生活。 下面,我们就来八一八智能家居的发展史,看看人们是经过怎样的努力,才享受到了如今美好惬意的新生活。 1932年:Alpha机器人 1939年:Elektro机器人 1950年:按钮庄园
    发表于 12-04 14:09

    Robot的发展史

    手的小东西。其实机器人的完整意义应该是一种可以代替人进行某种工作的自动化设备。它可以是各种样子,并不一定长得像人,也不见得以人类的动作方式活动。二.发展史机器人一词的出现以及工业机器
    发表于 09-25 15:43

    美国力科示波器发展史

    都是由同时代最优异的电子器件架构而成,同时它本身又有力的推动了电子技术向前进步,工程师只有借助于示波器才能不断改进产品性能。可以毫不夸张的说,示波器的历史就是一部电子工业的发展史,而美国力科公司就是这一历史进程中非常重要的参与者。
    发表于 06-28 06:44

    蓝牙耳机发展史

    蓝牙耳机摆脱了有线的束缚,再加上2016年起苹果手机率先取消3.5mm耳机口,更是扩大了蓝牙耳机的市场。进入2019年,TWS真无线蓝牙耳机得到爆发式增长,下面我来讲解蓝牙耳机的发展史。1、1994
    发表于 10-22 14:29

    Linux系统发展史及版本更迭

    运维必知Linux系统发展史及版本更迭
    发表于 04-29 14:15

    5G的发展史

    5G到底是什么?为什么引得一众通讯巨头相继抢占先机?在这里,将用一组图带您梳理一下5G的发展史。在视频、游戏霸屏移动端的今天,4G已不能满足庞大的流量需求。4G即将成为明日黄花,5G即将接棒流量市场
    发表于 12-24 06:25

    最值得学习机器学习编程语言

    如果你对人工智能和机器学习感兴趣,而且正在积极地规划着自己的程序员职业生涯,那么你肯定面临着一个问题:你应该学习哪些编程语言,才能真正了解并
    发表于 03-02 06:22

    硬件:Intel CPU发展史 精选资料推荐

    发展史来向您讲述,处理器是如何一步一步发展到今天的。(有一大波CPU来袭,总有几款你认得)第一部分:20世纪70至80年代(1).1971年11月15日,世界上第一块个人微型处理器4004诞生...
    发表于 07-26 07:31

    什么是单片机程序语言的头文件?

    什么是单片机程序语言的头文件?
    发表于 10-14 08:01

    萌新求助,求关于ARM发展史及各时期内核的知识点

    萌新求助,求关于ARM发展史及各时期内核的知识点
    发表于 10-22 06:29