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

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

ID:27875727

大小:280.00 KB

页数:5页

时间:2018-12-06

对比机器学习和程序语言的发展史.doc_第1页
对比机器学习和程序语言的发展史.doc_第2页
对比机器学习和程序语言的发展史.doc_第3页
对比机器学习和程序语言的发展史.doc_第4页
对比机器学习和程序语言的发展史.doc_第5页
资源描述:

《对比机器学习和程序语言的发展史.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、对比机器学习和程序语言的发展史  应用机器学习简史:  每当我们用能力更强、特征更简单、结构性限制更少的模型替换能力更弱、附带手工编写的结构性限制的模型时,模型质量提升了(模型更小,开发用时更短,在未见数据上的概括性更好)。  从NLP领域我们就能举出很多例子:线性模型取代了决策列表;Jelinek说:“我每开掉一个语言学家,语音识别系统的表现就会提高一点”;基于统计的机器翻译;最近一大波论文的实质是“将log-linear模型(双层神经网络)替换为一个三层神经网络”。  程序语言简史:  每当我们用带有少量高层构件的语言替换带有大量简单构件的语言时,程序质量提升了(同等复杂度的程序更

2、短了,开发用时更短,包含bug的可能性降低)。  所有人都不写汇编了,接着,所有人都不写C了。(显然这是粗暴的过度概括,因为还有很多人在写汇编和C。争议更少的说法是使用底层语言写程序的人越来越少,使用底层语言更难写对程序。)  不知道你注意到了没有,在以上两个情形中,我们移动的都是同一个滑块——只不过方向不同。机器学习和程序语言设计最终目标是一致的:让特定的问题求解机器(不管是人类还是优化算法)产生正确的代码。在现实世界中,我们并不是因为机器学习内在地比手写代码更纯粹或者更美才偏爱机器学习——我们使用机器学习是因为它高效。如果今天有人发布了一个包含一些可组合的视觉原语的库,接着突然之间

3、Facebook发现实习生可以比神经网络更高效地解决所有的图像标记问题,那么明天神经网络就会被弃之门外。    实际上,我们现在能够写出这样的库吗?  澄清一下,我指的不是类似OpenCV的东西,让你选择为特定任务预先实现的模型,然后在后处理部分加上你想要的操作。相反,我想要的是一些视觉原语,基于这些原语我们可以这样编写一个分类器:  load(image)andThen  detectObjectsandThen  orderBy(salience)andThen  headandThen  name  或者这样给图像自动加上说明:  load(image)andThen  dete

4、ctObjectsandThen  describeAll  或者这样识别人脸:  load(image)andThen  detectObjectsandThen  filter(name(_)==Face)andThen  drawBoundaries  detectObjects、describeAll等函数看起来是什么样?目前的经验提示它们应该是神经网络,但不是特定种类的神经网络:它们并不是为完成某个具体任务(比如给图像加上说明)而训练的,而是以可自由组合的方式进行训练:describeAll承诺可以接受任何“检测结果列表之类”的输入(可以直接来自detectObjects,也

5、可以是经过后续过滤的),并生成一个字符串。这些函数的输入和输出都是实向量。无法结构化地强制“检测结果列表之类”的东西实际具有所需的语义,相反,我们完全依赖训练过程。  在当前的真实世界实现中,将网络层视为模块化、预先规定的单元,而将网络视为为特定任务定制的单一模型(需要端到端训练)。不过,一旦我们转移到模块化网络上,我们可以开始进行不存在训练数据的任务。例如,使用上面指定的原语“为图像中的人添加说明”:  load(image)andThen  detectObjectsandThen  filter(name(_)==Face)  andThendescribeAll  其实我们已经

6、向这个方向迈步了:人们使用图像分类网络的前若干层初始化几乎所有视觉任务;尽管“注意力”是一系列组合多个网络层的复杂操作,人们在描述模型时突然开始将其用作原语。RogerGrosse关于矩阵分解模型的语法的出色论文(arXiv:1210.4856)也多少是这个风格,还有ChristopherOlah对视作可复用模块组合的神经网络的类型理论细节的讨论(git.io/fAn4J)。  回到我们之前的程序语言讨论,我们观察到:  手工编写人类检测器对人类来说很难,但对神经网络而言很容易。  给定功能恰当的视觉原语,编写人类描述器很容易。但从头训练完成这一任务的神经网络需要大量人类描述的样本。(

7、我们也许可以说,对人类来说“容易”,对神经网络来说“困难”。)  更进一步,有很多更类似人类而不是神经网络的机器学习技术,使用很小的数据集以及良好的预先指定的原语,比如,程序推导和语义解析。如果我们真的只在乎最少的人类干预,我们可以将指定的视觉原语交给机器学习子系统自动推导。  所以让我们编写这个库!这里有一些问题需要研究:首先,提供给人们的功能原语(或用于程序推导的模块)的正确组合是什么?接着,这些共享的表示真的可以被学习吗?我们如何基于现有

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。