机器学习(或深度学习),区块链,学习哪个更有利于去

深度学习以及各种框架的比较介绍(tensorflow,caffe,torch....)
在流行之前,都是基于规则的,因此做语音的需要了解语音学,做NLP的需要很多语言学知识,做深蓝需要很多国际象棋大师。
而到后来统计方法成为主流之后,领域知识就不再那么重要,但是我们还是需要一些领域知识或者经验来提取合适的feature(特征),feature的好坏往往决定了机器学习的成败。对于NLP来说,feature还相对比较好提取,因为语言本身就是高度的抽象;而对于Speech或者Image来说,我们人类自己也很难描述我们是怎么提取feature的。比如我们识别一只猫,我们隐隐约约觉得猫有两个眼睛一个鼻子有个长尾巴,而且它们之间有一定的空间约束关系,比如两只眼睛到鼻子的距离可能差不多。但怎么用像素来定义&眼睛&呢?如果仔细想一下就会发现很难。当然我们有很多特征提取的方法,比如提取边缘轮廓等等。
但是人类学习似乎不需要这么复杂,我们只要给几张猫的照片给人看,他就能学习到什么是猫。人似乎能自动&学习&出feature来,你给他看了几张猫的照片,然后问猫有什么特征,他可能会隐隐预约地告诉你猫有什么特征,甚至是猫特有的特征,这些特征豹子或者老虎没有。
深度学习为什么最近这么火,其中一个重要的原因就是不需要(太多)提取feature。
从机器学习的使用者来说,我们以前做的大部分事情是featureengineering,然后调一些参数,一般是为了防止过拟合。而有了深度学习之后,如果我们不需要实现一个CNN或者LSTM,那么我们似乎什么也不用干。(机器让工人失业,机器学习让搞机器学习的人失业!最终的目的是让人类失业?)
但是深度学习也不是万能的,至少现在的一个问题是它需要更强的计算能力才能训练出一个比较好的模型。它还不能像人类那样通过很少的训练样本就能学习很好的效果。
其实神经网络提出好几十年了,为什么最近才火呢?其中一个原因就是之前它的效果并不比非深度学习算法好,比如SVM。
到了2006年之后,随着计算能力的增强(尤其是GPU的出现),深度神经网络在很多传统的机器学习数据集上体现出优势来之后,后来用到Image和Speech,因为它自动学出的feature不需要人工提取feature,效果提升更加明显。这是否也说明,我们之前提取的图像feature都不够好,或者是根据人脑的经验提取的feature不适合机器的模型?
很多人对深度学习颇有微词的一个理由就是它没有太多理论依据,更多的像蛮力的搜索&&非常深的层数,几千万甚至上亿参数,然后调整参数拟合输入与输出。其实目前所有的机器学习都是这样,人类的大脑的学习有所不同吗,不是神经元连接的调整吗?
但不管怎么说,从深度神经网络的使用者(我们这样的工程师)的角度来说,如果我们选定了一种网络结构,比如CNN,那么我们要做的就是根据经验,选择合适的层数,每层的神经元数量,激活函数,损失函数,正则化的参数,然后使用validation数据来判定这次训练的效果。从效果来说,一般层次越多效果越好(至少相对一两层的网络来说),但是层次越多参数也越多,训练就越慢。单机训练一个网络花几天甚至几周的时间非常常见。因此用多个节点的计算机集群来训练就是深度学习的核心竞争力&&尤其对于用户数据瞬息万变的互联网应用来说更是如此。
常见深度神经网络的训练和问题
对于机器学习来说,训练是最关键也最困难的部分,一般的机器学习模型都是参数化的模型,我们可以把它看成一个函数y=f(w;x)。
比如拿识别图像来说,输入x是这张图片的每个像素值,比如MNIST的数据是28*28的图片,每个点是RGB的颜色值,那么x就是一个28*28*3的向量。而一个模型有很多参数,用w表示。输出y是一个向量,比如MNIST的数据是0-9的10个数字,所以我们可以让y输出一个10维的向量,分别代表识别成0-9的置信度(概率),选择最大的那个作为我们的识别结果(当然更常见的是最后一层是softmax而不是普通的激活函数,这样这个10维向量加起来等于1,可以认为是分类的概率)。
而训练就是给这个模型很多(x,y),然后训练的过程就是不断的调整参数w,然后使得分类错误尽可能少(由于分类错误相对w不连续因而不可求导,所以一般使用一个连续的LossFunction)。
对于神经网络来说,标准的训练算法就是反向传播算法(BackPropagation)。从数学上来说就是使用(随机)梯度下降算法,求LossFunction对每个参数的梯度。另外我们也可以从另外一个角度来看反向传播算法,比如最后一层的神经网络参数,直接造成错误(Loss);而倒数第二层的神经网络参数,通过这一次的激活函数影响最后一层,然后间接影响最终的输出。反向传播算法也可以看成错误不断往前传播的过程。
由于深度神经网络的参数非常多,比如GoogleNet,2014年ILSVRC挑战赛冠军,将Top5的错误率降低到6.67%,它是一个22层的CNN,有5百多万个参数。所以需要强大的计算资源来训练这么深的神经网络。
其中,CNN是Image领域常见的一种深度神经网络。由YannLeCun提出,通过卷积来发现位置无关的feature,而且这些feature的参数是相同的,从而与全连接的神经网络相比大大减少了参数的数量。
最开始的改进是使用GPU来加速训练,GPU可以看成一种SIMT的,和SIMD有些类似,但是执行相同指令的warp里的32个core可以有不同的代码路径。对于反向传播算法来说,基本计算就是矩阵向量乘法,对一个向量应用激活函数这样的向量化指令,而不像在传统的代码里会有很多if-else这样的逻辑判断,所以使用GPU加速非常有用。
但即使这样,单机的计算能力还是相对有限的。
深度学习开源工具
从数学上来讲,深度神经网络其实不复杂,我们定义不同的网络结构,比如层次之间怎么连接,每层有多少神经元,每层的激活函数是什么。前向算法非常简单,根据网络的定义计算就好了。
而反向传播算法就比较复杂了,所以现在有很多深度学习的开源框架来帮助我们把深度学习用到实际的系统中。
我们可以从以下几个不同的角度来分类这些开源的深度学习框架。
&通用vs专用
深度学习抽象到最后都是一个数学模型,相对于传统的机器学习方法来说少了很多特征抽取的工作,但是要把它用到实际的系统中还有很多事情要做。而且对于很多系统来说,深度学习只是其中的一个模块。
拿语音识别来说,语音识别包含很多模块,比如声学模型和语言模型,现在的声学模型可以用LSTMs(一种RNN,也是一种深度学习网络)来做,但是我们需要把它融入整个系统,这就有很多工作需要做。而且目前大部分的机器学习方法包括深度学习,都必须假设训练数据和数据是相同(或者类似)的分布的。所以在实际的应用中,我们需要做很多数据相关的预处理工作。
比如Kaldi,它是一个语音识别的工具,实现了语音识别的所有模块,也包括一些语音识别常用的深度神经网络模型,比如DNN和LSTM。
而Caffe更多的是用在图像识别,它实现了CNN,因为这个模型在图像识别上效果非常好。
大部分开源的深度学习工具把整个模型都封装好了,我们只需要指定一些参数就行了。比如我们使用Caffe的CNN。
但是还有一些工具只是提供一些基础库,比如Theano,它提供了自动求梯度的工具。
我们可以自己定义网络的结构,我们不需要自己求梯度。使用Theano的好处是如果我们&创造&一个新的网络结构或者是很新的深度神经网络,那么其它框架很可能还没有实现,所以Theano在学术界很流行。当然坏处就是因为它不可能针对特定的模型做优化,所以可能性能不如特定的实现那么好。
&单机vs集群
目前大部分的开源工具都是单机版的,有些支持在一个节点的多个GPU训练,但是支持GPUcluster比较少,目前支持多机训练的有GraphLab和Deeplearning4j。
Tensor Flow到底是什么?
Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow即为张量从图的一端流动到另一端。
TensorFlow表达了高层次的机器学习计算,大幅简化了第一代系统,并且具备更好的灵活性和可延展性。TensorFlow一大亮点是支持异构设备分布式计算,它能够在各个平台上自动运行模型,从电话、单个CPU/GPU到成百上千GPU卡组成的分布式系统。
从目前的文档看,TensorFlow支持CNN、RNN和LSTM算法,这都是目前在Image,Speech和NLP最流行的深度神经网络模型。
而且从JeffDean的论文来看,它肯定是支持集群上的训练的。
在论文里的例子来看,这个架构有点像或者Dryad等图计算模型。就像写Map-reduce代码一样,我们从高层的角度来定义我们的业务逻辑,然后这个架构帮我们调度和分配计算资源(甚至容错,比如某个计算节点挂了或者太慢)。目前开源的实现分布式Deeplearning的GraphLab就是GAS的架构,我们必须按照它的抽象来编写DeepLearing代码(或者其它分布式代码,如果PageRank),而Deeplearning4j直接使用了Spark。
Map-Reduce的思想非常简单,但是要写出一个稳定可用的工业级产品来就不容易了。而支持分布式机器学习尤其是深度学习的产品就更难了,Google的TensorFlow应该是一种抽象方式,可惜现在开源的部分并没有这些内容。有点像Google开源了一个单机版的,可以用这种抽象(Map-reduce)来简化,但是实际应用肯定就大大受限制了。
深度学习能解决所有问题吗?
至少目前来看,深度学习只是在Speech和Image这种比较&浅层&的智能问题上效果是比较明显的,而对于语言理解和推理这些问题效果就不那么好了,也许未来的深度神经网络能解决更&智能&的问题,但只是目前还不行。
Google开源TensorFlow的意义
这一次的Google开源深度学习系统TensorFlow在很多地方可以应用,如语音识别,自然语言理解,计算机视觉,广告等等。但是,基于以上论点,我们也不能过分夸大TensorFlow这种通用深度学习框架在一个工业界机器学习系统里的作用。在一个完整的工业界语音识别系统里,除了深度学习算法外,还有很多工作是专业领域相关的算法,以及海量数据收集和工程系统架构的搭建。
不过总的来说,这次谷歌的开源很有意义,尤其是对于中国的很多公司来说,他们大都没有能力理解并开发一个与国际同步的深度学习系统,所以TensorFlow会大大降低深度学习在各个行业中的应用难度。研究生方向选择:量化投资,深度学习,区块链。? - 知乎420被浏览<strong class="NumberBoard-itemValue" title="4分享邀请回答245 条评论分享收藏感谢收起2632 条评论分享收藏感谢收起一文读懂机器学习、数据科学、人工智能、深度学习和统计学之间的区别
选自datascience central
作者: Vincent Granville
机器之心编译
参与:吴攀 、李亚洲
在这篇文章中,数据科学家与分析师 Vincent Granville 明晰了数据科学家所具有的不同角色,以及数据科学与机器学习、深度学习、人工智能、统计学等领域的区别。这些概念的区别也一直是人工智能领域热烈讨论的一个话题,Quora、多个技术博客都曾有过解答。机器之心之前编译的一篇文章《》也对此问题进行了探讨,但似乎业内还未能给出一个权威的、令所有人信服的回答。如果对这篇文章中的观点不认同,欢迎大家留言讨论。
在这篇文章中,数据科学家与分析师 Vincent Granville 明晰了数据科学家所具有的不同角色,以及数据科学与机器学习、深度学习、人工智能、统计学、物联网、运筹学和应用数学等相关领域的比较和重叠。Granville 介绍说,由于数据科学是一个范围很广的学科,所以他首先介绍了在业务环境中可能会遇到的数据科学家的类型:你甚至可能会发现你自己原来也是某种数据科学家。和其它任何科学学科一样,数据科学也可能会从其它相关学科借用技术;当然,我们也已经开发出了自己的技术库,尤其是让我们可以以自动化的方式(甚至完全无需人类干预)处理非常大规模的非结构化数据集的技术和算法,进而实时执行交易或进行预测。
1. 数据科学家具有哪些不同类型?
要更详细地了解数据科学家的类型,可参阅文章:http://suo.im/28rlX1 和 http://suo.im/3NNUpd。更多有用的信息可参阅:
数据科学家与数据架构师:http://suo.im/4bRkRG
数据科学家与数据工程师:http://suo.im/3mpo6E
数据科学家与统计学家:http://suo.im/2GGtfG
数据科学家与业务分析师:http://suo.im/3h0hkX
而在最近,数据科学家 Ajit Jaokar 则又讨论了 A 型数据科学家(分析师)和 B 型数据科学家(建造者)之间的区别:
A 型数据科学家能够很好地编写操作数据的代码,但并不一定是一个专家。A 型数据科学家可能是一个实验设计、预测、建模、统计推理或统计学方面的事情的专家。然而总体而言,一个数据科学家的工作产品并不是「P 值和置信区间」——就像学术界的统计学有时候建议的那样(而且这常常是为传统的制药等等行业工作的)。在谷歌,A 型数据科学家被称为统计学家、定量分析师、决策支持工程开发分析师,也有一些被称为数据科学家。
B 型数据科学家:这里的 B 是指 Building。B 型数据科学家和 A 型数据科学家具有相同的背景,但他们还是很强的程序员、甚至经验丰富的软件工程师。B 型数据科学家主要关注在生产环境中使用数据。他们构建能与用户进行交互的模型,通常是提供推荐(产品、可能认识的人、广告、电影、搜索结果等)。
而对于业务处理优化,我也有自己的看法,我将其分成了 ABCD 四个方向,其中 A 表示分析科学(analytics science),B 表示业务科学(business science),C 表示计算机科学(computer science),D 则表示数据科学(data science)。数据科学可能会涉及到编程或数学实践,但也可能不会涉及到。你可以参考 http://suo.im/11bR7o 这篇文章了解高端和低端的数据科学的差异。在一家创业公司,数据科学家通常要做很多类型的工作,其扮演的工作角色可能包括:执行、数据挖掘师、数据工程师或架构师、研究员、统计学家、建模师(做预测建模等等)和开发人员。
虽然数据科学家常常被看作是经验丰富的 R、Python、SQL、Hadoop 程序员,而且精通统计学,但这不只不过是冰山一角而已——人们对于数据科学家的这些看法不过是来自于重在教授数据科学的部分元素的数据培训项目而已。但正如一位实验室技术人员也可以称自己为物理学家一样,真正的物理学家远不止于此,而且他们的专业领域也是非常多样化的:天文学、数学物理、核物理、力学、电气工程、信号处理(这也是数据科学的一个领域)等等许多。数据科学也是一样,包含的领域有:生物信息学、信息技术、模拟和量化控制、计算金融、流行病学、工业工程、甚至数论。
对我而言,在过去的十年里,我专注于机器到机器和设备到设备的通信、开发能自动处理大型数据集的系统、执行自动化交易(比如购买网络流量或自动生成内容)。这意味着需要开发能够处理非结构化数据的算法,这也是人工智能、物联网和数据科学的交叉领域,也可被称为深度数据科学(deep data science)。其对数学的需求相对较少,也只涉及到较少的编程(大部分是调用 API),但其却是相当数据密集型的(包括构建数据系统),并且基于专门为此背景而设计的全新统计技术。
在此之前,我的工作是实时的信用卡欺诈检测。在我事业的早期阶段(大约 1990 年),我开发过图像远程感知技术,其中包括识别卫星图像的模式(形状和特征,比如湖泊)和执行图像分割:那段时间我的研究工作被称为是计算统计学,但在我的母校,隔壁的计算机科学系也在做着几乎完全一样的事情,但他们把自己的工作叫做是人工智能。
今天,这项工作被称作数据科学或人工智能,其子领域包括信号处理、用于物联网的计算机视觉等。
另外,数据科学家也可以在各种各样的数据科学项目中出现,比如数据收集阶段或数据探索阶段一直到统计建模和已有系统维护。
2. 机器学习对比深度学习
在深入探讨数据学习与机器学习之间的区别前,我们先简单讨论下机器学习与深度学习的区别。机器学习一系列在数据集上进行训练的算法,来做出预测或采取形同从而对系统进行优化。例如,基于历史数据,监督分类算法就被用来分类潜在的客户或贷款意向。根据给定任务的不同(例如,监督式聚类),用到的技术也不同:朴素贝叶斯、支持向量机、神经网络、ensembles、关联规则、决策树、逻辑回归或多种方法之间的结合。
这些都是数据科学的分支。当这些算法被用于自动化的时候,就像在自动飞行或无人驾驶汽车中,它被称为人工智能,更具体的细说,就是深度学习。如果数据收集自传感器,通过互联网进行传输,那就是机器学习或数据科学或深度学习应用到了 IoT 上。
有些人对深度学习有不同的定义。他们认为深度学习是带有更多层的神经网络(神经网络是一种机器学习技术)。深度学习与机器学习的区别这一问题在 Quora 上也被问到过,下面对此有详细的解释:
人工智能是计算机科学的一个子领域,创造于 20 世纪 60 年代,它涉及到解决对人类而言简单却对计算机很难的任务。详细来说,所谓的强人工智能系统应该是能做人类所能做的任何事。这是相当通用的,包含所有的任务,比如规划、到处移动、识别物体与声音、说话、翻译、完成社会或商业事务、创造性的工作(绘画、作诗)等。
自然语言处理只是人工智能与语言有关的一部分。
机器学习被认为是人工智能的一方面:给定一些可用离散术语(例如,在一些行为中,那个行为是正确的)描述的人工智能问题,并给出关于这个世界的大量信息,在没有程序员进行编程的情况下弄清楚「正确」的行为。典型的是,需要一些外部流程判断行为是否正确。在数学术语中,也就是函数:馈入输入,产生正确的输出。所以整个问题就是以自动化的方式建立该数学函数的模型。在二者进行区分时:如果我写出的程序聪明到表现出人类行为,它就是人工智能。但如果它的参数不是自动从数据进行学习,它就不是机器学习。
深度学习是如今非常流行的一种机器学习。它涉及到一种特殊类型的数学模型,可认为它是特定类型的简单模块的结合(函数结合),这些模块可被调整从而更好的预测最终输出。
3.机器学习与统计学之间的区别
《Machine Learning Vs. Statistics》这篇文章试图解答这个问题。这篇文章的作者认为统计学是带有置信区间(confidence intervals)的机器学习,是为了预测或估计数量。但我不同意,我曾建立过不需要任何数学或统计知识的工程友好的置信区间。
4. 数据科学对比机器学习
机器学习和统计学都是数据科学的一部分。机器学习中的学习一词表示算法依赖于一些数据(被用作训练集),来调整模型或算法的参数。这包含了许多的技术,比如回归、朴素贝叶斯或监督聚类。但不是所有的技术都适合机器学习。例如有一种统计和数据科学技术就不适合——无监督聚类,该技术是在没有任何先验知识或训练集的情况下检测 cluster 和 cluster 结构,从而帮助分类算法。这种情况需要人来标记 cluster。一些技术是混合的,比如半监督分类。一些模式检测或密度评估技术适合机器学习。
数据科学要比机器学习广泛。数据科学中的数据可能并非来自机器或机器处理(调查数据可能就是手动收集,临床试验涉及到专业类型的小数据),就像我刚才所说的,它可能与「学习」没有任何关系。但主要的区别在于数据科学覆盖整个数据处理,并非只是算法的或统计类分支。细说之,数据科学也包括:
数据集成(data integration)
分布式架构(distributed architecture)
自动机器学习(automating machine learning)
数据可视化(data visualization)
dashboards 和 BI
数据工程(data engineering)
产品模式中的部署(deployment in production mode)
自动的、数据驱动的决策(automated, data-driven decisions)
当然,在许多公司内数据科学家只专注这些流程中的一个。
对于这篇文章,技术顾问 Suresh Babu 给出了一个评论,机器之心将其编译整合到了下面:
这篇文章说明了解使用机器/计算机来处理类似人类决策的任务的统计学习的基本术语是件很麻烦的事。
但文章中「当这些算法被用于自动化的时候,就像在自动飞行或无人驾驶汽车中,它被称为人工智能,更具体的细说,就是深度学习。」这样的说话看起来却有些随意任性。
当过去计算机/机器还不够友好,没有得到广泛使用的时候,统计学家和数据科学家的工作和现在这个领域的工作有很大的不同。比如说,当制造业开始使用计算机辅助后,生产速度和量都发生了巨大的变化——但它仍然是制造业。用制造机器来做原本人类做的程序化工作的想法最早来自 19 世纪初 Jacquard 和 Bouchon 等人。而 Jacquard 织布机的工作方式和现在计算机控制的织布机的工作方式基本相同。
现在的数据科学是一个知识体系,囊括了统计学和计算方法等等(而且在不同的具体领域不同学科的比例也不一样)。
机器学习(或使用了其它的术语,比如深度学习、认知计算)是让机器像人类一样思考和推理,基本上而言是指通过人工的方法(所以也叫人工智能)来代替人类天生的自然智能——涉及到的任务从简单到复杂都有。比如,无人驾驶汽车(目前)正在模仿人类的驾驶,驾驶条件也是人类在自然情况下会遇到的——我说「目前」是因为也许未来人类将很少能够直接驾驶机器,「驾驶(drive)」这个词本身都可能会改变含义。
这个领域里面也有些滑稽可笑的事情,比如一些基本的东西(比如一个下国际象棋或围棋的算法)被认为可以解释人脑的工作方式。就我们目前的知识水平而言,光是解释鸟或鱼的大脑的工作方式就已经非常困难了——这说明我们还没有真正理解学习的机制。为什么果蝇只需几百个神经元就能做到这么多事情?这还是神经科学的一个未解之谜。而认知是什么以及其在自然环境下是如何工作的也是一个数据科学傲慢地认为自己能解决的重大难题。(不管怎样,降维是一种无监督学习的方法。)
在很多方面,工具以及我们使用工具所做的事情自人类诞生以来就在引导着人类的学习。但这就扯远了。
原文链接:http://www.datasciencecentral.com/profiles/blogs/difference-between-machine-learning-data-science-ai-deep-learning
(C)本文为机器之心编译,转载请联系本公众号获得授权。
?------------------------------------------------
加入机器之心(全职记者/实习生):
投稿或寻求报道:
广告&商务合作:
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点51CTO旗下网站
人工智能、机器学习、深度学习的区别在哪?
有人说,人工智能(Artificial Intelligence)是未来。人工智能是科幻小说。人工智能已经是我们日常生活的一部分。所有这些陈述都 ok,这主要取决于你所设想的人工智能是哪一类。
作者:hang编辑来源:| 14:47
有人说,人工智能(Artificial Intelligence)是未来。人工智能是科幻小说。人工智能已经是我们日常生活的一部分。所有这些陈述都
ok,这主要取决于你所设想的人工智能是哪一类。
例如,今年早些时候,Google DeepMind 的 Alphago
程序击败了韩国围棋大师李世h九段。人工智能、机器学习和深度学习这些词成为媒体热词,用来描述 DeepMind 是如何获得成功的。尽管三者都是 AlphaGo
击败李世h的因素,但它们不是同一概念。
区别三者最简单的方法:想象同心圆,人工智能(AI)是半径最大的同心圆,向内是机器学习(Machine Learning),最内是深入学习(Deep
Learning)。
从概念的而提出到繁荣
自从几位计算机科学家在 1956
年的达特茅斯会议上提到这个词以后,人工智能就萦绕在实验研究者们心中,不断酝酿。在此后的几十年里,人工智能被标榜为成就人类文明美好未来的关键。
在过去的几年里,特别是 2015 以来,人工智能开始大爆发。这在很大程度上提高了 GPU
的广泛可用性,使得并行处理速度越来越快,使用更便宜,而且功能更强大。整个大数据运动拥有无限的存储和大量的数据:图像,文本,交易,映射数据等等。
人工智能&&机器所赋予的人的智能
年夏天的会议上,人工智能先驱者的梦想是建立一个由新兴计算机启用的复杂的机器,具有与人的智能相似的特征。这是我们认为的「强人工智能」(General
AI),而神话般的机器则会拥有我们所有的感知,甚至更多,并且像人类一样思考。你已经在电影中见过这些机器无休止地运动,像朋友如
C-3PO,或者敌人如终结者。一般的人工智能机器仍然只是出现在电影和科幻小说中。
我们目前可以实现的还是局限于「弱人工智能」(Narrow AI)。这些技术能够像人类一样执行特定的任务,或者比人类做的更好。像 Pinterest
上的图像分类,Facebook 上的人脸识别等。
这些都是弱人工智能实践中的例子。这些技术展示了人类智力的一些方面。但如何展示?这些智力是从哪里来的?这些问题促使我们进入到下一个阶段,机器学习。
机器学习&&一种实现人工智能的方法
机器学习最根本的点在于使用算法来分析数据的实践、学习,然后对真实的事件作出决定或预测。而不是用一组特定的指令生成的硬编码软件程序来解决特定任务,机器是通过使用大量的数据和算法来「训练」,这样就给了它学习如何执行任务的能力。
机器学习是早期人工智能人群思考的产物,多年来形成的算法包括决策树学习、归纳逻辑编程、聚类、强化学习、贝叶斯网络等等。正如我们所知,所有这些都没有实现强人工智能的最终目标,而早期的机器学习方法甚至连弱人工智能都没有触及到。
事实证明,多年来机器学习的最佳应用领域之一是计算机视觉,尽管仍然需要大量的手工编码来完成这项工作。人们会去写手工编码分类器,如边缘检测滤波器,以便程序可以识别一个目标的启动和停止;进行形状检测以确定它是否有八个侧面;同时确保分类器能够识别字母「s-t-o-p.」从那些手工编码分类器中,机器就会开发算法使得图像和「学习」更有意义,用来确定这是否是一个停止标志。
结果还算不错,但这还不够。特别是在雾天当标志不那么清晰,或有一棵树掩盖了标志的一部分时,就难以成功了。还有一个原因,计算机视觉和图像检测还不能与人类相媲美,它太脆弱,太容易受到周围环境的影响。
随着时间的推移,学习算法改变了这一切。
深度学习&&一种实现机器学习的技术
放猫(Herding Cats):YouTube 视频抓拍的猫的形象是深度学习的第一次突破性展示
在过去的几十年中,早期机器学习的另一种算法是人工神经网络。神经网络的灵感来自于我们对人类大脑生物学的理解:所有这些神经元之间的相互联系。在一定的物理距离内,生物大脑中的任何神经元可以连接到其他神经元,而人工神经网络有离散的层、连接和数据传播的方向。
例如,你可以把一个图像分割成很多部分,这些可以输入到神经网络的第一层。在第一层中的单个神经元,然后将数据传递到第二层。第二层神经元做它的任务,等等,直到最后一层,那么最终结果就产生了。
每个神经元都为其输入分配权重,分配的权重正确与否与执行的任务相关。结果,最终的输出由所有的权重所决定。这样,还是以「停止」标志牌为例。将「停止」标志牌图像的元素抽离分析,然后由神经元「检查」:其八边形的外形,消防车火红的颜色,鲜明的字母,交通标志的大小,处于运动或静止的状态。神经网络主要任务是总结是否是个停止标志。随即,基于权重、经过深思熟虑「概率向量」的概念出现。该案例中,该系统中
86% 的可能是停止标志,7% 的可能是速度限制标志,5% 的可能性是挂在树上的风筝等等。这样,网络结构便会告知神经网络是否正确。
但这个例子还是非常超前。因为直到最近,神经网络还是被人工智能研究所忽略。实际上,在人工智能出现之初,神经网络就已经显现了,在「智能」方面还是产生很小的价值。问题是甚至最基本的神经网络都是靠大量的运算。不过,多伦多大学的
Geoffrey Hinton 领导的一个研究小组始终专注于其中,最终实现以超算为目标的并行算法的运算且概念的证明,但直到 GPU
得到广泛利用,这些承诺才得以实现。
回到之前「停止」标志的例子。神经网络是被调制或「训练」出来的,并且不时遇到错误的应答。它所需要的就是训练。需要呈现成百上千甚至上百万的图像,直到神经元输入的权重被准确调制,那么实际上每次都能得到正确的信息,无论是否有雾,无论晴天还是雨天。只有在那一点,神经网络才学会一个停止标志是什么样的,Facebook
上你妈妈的脸是什么样,又或者是吴恩达(Andrew Ng)教授 2012 年在 Google 上学习到的猫的样子。
吴恩达的突破在于将这些神经网络显著增大,增加了层数和神经元,并通过系统的训练运行大量的数据。在吴教授所举案例中,数据就是 YouTube 视频中 1000
万张图像。他将深度学习中添加了「深度」,也就是这些神经网络中的所有层。
通过在某些场景中深度学习,机器训练的图像识别要比人做得好:从猫到辨别血液中癌症的指标,再到核磁共振成像中肿瘤。Google 的 AlphaGo
先是学会了如何下棋,然后它与自己下棋训练。通过不断地与自己下棋,反复练习,以此训练自己的神经网络。
深度学习,赋予人工智能光明的未来
深度学习使得许多机器学习应用得以实现,并拓展了人工智能的整个领域。深度学习一一实现了各种任务,并使得所有的机器辅助变成可能。无人驾驶汽车、预防性医疗保健、甚至的更好的电影推荐,都触手可及或即将成为现实。人工智能就在现在,也在未来。有了深度学习,人工智能可能甚至达到像我们畅想的科幻小说一样效果。我拿走了你的
C-3PO,当然,你有《终结者》就行。【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条头条热点热点热点
24H热文一周话题本月最赞
讲师:305186人学习过
讲师:17562人学习过
讲师:12981人学习过
精选博文论坛热帖下载排行
本书是程序员面试宝典系列中的一册,也是上一本《程序员面试宝典》的姊妹书。本书对程序设计面试中Java常见的题型和常用解答技巧进行了介绍...
订阅51CTO邮刊}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信