您现在的位置:首页 > >

人工智能、机器学*、深度学*简介及相互关系

发布时间:



文章目录
人工智能机器学*历史机器学*的要素机器学*的技术定义常见机器学*算法概率建模核方法决策树类算法


深度学*深度学*要素深度学*已经取得的进展深度学*和机器学*方法的比较不要把深度学*作为锤子




人工智能

人工智能诞生于20 世纪50 年代,当时计算机科学这一新兴领域的少数先驱开始提出疑问:计算机是否能够“思考”?我们今天仍在探索这一问题的答案。


人工智能的简洁定义如下:努力将通常由人类完成的智力任务自动化。因此,人工智能是一个综合性的领域,不仅包括机器学*与深度学*,还包括更多不涉及学*的方法。


例如,早期的国际象棋程序仅包含程序员精心编写的硬编码规则,并不属于机器学*。在相当长的时间内,许多专家相信,只要程序员精心编写足够多的明确规则来处理知识,就可以实现与人类水*相当的人工智能。这一方法被称为符号主义人工智能(symbolic AI),从20 世纪50 年代到80 年代末是人工智能的主流范式。在20 世纪80 年代的专家系统(expert system)热潮中,这一方法的热度达到了顶峰。


虽然符号主义人工智能适合用来解决定义明确的逻辑问题,比如下国际象棋,但它难以给出明确的规则来解决更加复杂、模糊的问题,比如图像分类、语音识别和语言翻译。于是出现了一种新的方法来替代符号主义人工智能,这就是机器学*(machine learning)。


机器学*
历史

查尔斯? 巴贝奇发明了分析机,它的用途仅仅是利用机械操作将数学分析领域的某些计算自动化。


随后,人工智能先驱阿兰? 图灵在其1950 年发表的论文“计算机器和智能” 中介绍了图灵测试以及日后人工智能所包含的重要概念。图灵还思考了这样一个问题:对于计算机而言,如果没有程序员精心编写的数据处理规则,计算机能否通过观察数据自动学会这些规则?


图灵的这个问题引出了一种新的编程范式。在经典的程序设计(即符号主义人工智能的范式)中,人们输入的是规则(即程序)和需要根据这些规则进行处理的数据,系统输出的是答案。利用机器学*,人们输入的是数据和从这些数据中预期得到的答案,系统输出的是规则。这些规则随后可应用于新的数据,并使计算机自主生成答案。


机器学*(尤其是深度学*)呈现出相对较少的数学理论,并且是以工程为导向的。这是一门需要上手实践的学科,想法更多地是靠实践来证明,而不是靠理论推导。


机器学*的要素

给定包含预期结果的示例,机器学*将会发现执行一项数据处理任务的规则。因此,我们需要以下三个要素来进行机器学*。


输入数据点。例如,你的任务是语音识别,那么这些数据点可能是记录人们说话的声音文件。如果你的任务是为图像添加标签,那么这些数据点可能是图像。预期输出的示例。对于语音识别任务来说,这些示例可能是人们根据声音文件整理生成的文本。对于图像标记任务来说,预期输出可能是“狗”“猫”之类的标签。衡量算法效果好坏的方法。这一衡量方法是为了计算算法的当前输出与预期输出的差距。衡量结果是一种反馈信号,用于调节算法的工作方式。这个调节步骤就是我们所说的学*。
机器学*的技术定义

机器学*模型将输入数据变换为有意义的输出,这是一个从已知的输入和输出示例中进行“学*”的过程。因此,机器学*和深度学*的核心问题在于有意义地变换数据,换句话说,在于学*输入数据的有用表示??这种表示可以让数据更接*预期输出。机器学*中的学*指的是,寻找更好数据表示的自动搜索过程。


所有机器学*算法都包括自动寻找这样一种变换:这种变换可以根据任务将数据转化为更加有用的表示。这些操作可能是前面提到的坐标变换,也可能是线性投影(可能会破坏信息)、*移、非线性操作(比如“选择所有x>0 的点”),等等。机器学*算法在寻找这些变换时通常没有什么创造性,而仅仅是遍历一组预先定义好的操作,这组操作叫作假设空间。


这就是机器学*的技术定义:在预先定义好的可能性空间中,利用反馈信号的指引来寻找输入数据的有用表示


常见机器学*算法
概率建模

概率建模(probabilistic modeling)是统计学原理在数据分析中的应用。它是最早的机器学*形式之一,至今仍在广泛使用。


朴素贝叶斯算法:其中最有名的算法之一。朴素贝叶斯是一类基于应用贝叶斯定理的机器学*分类器,它假设输入数据的特征都是独立的。这是一个很强的假设,或者说“朴素的”假设,其名称正来源于此。这种数据分析方法比计算机出现得还要早。logistic 回归:它有时被认为是现代机器学*的“hello world”。logreg 是一种分类算法,而不是回归算法。与朴素贝叶斯类似,logreg 的出现也比计算机早很长时间,但由于它既简单又通用,至今仍然很有用。面对一个数据集,数据科学家通常会首先尝试使用这个算法,以便初步熟悉手头的分类任务。
核方法

核方法是一组分类算法。


SVM:其中最有名的就是支持向量机。SVM 的目标是通过在属于两个不同类别的两组数据点之间找到良好决策边界来解决分类问题。决策边界可以看作一条直线或一个*面,将训练数据划分为两块空间,分别对应于两个类别。对于新数据点的分类,你只需判断它位于决策边界的哪一侧。SVM 刚刚出现时,在简单的分类问题上表现出了最好的性能。但是,SVM 很难扩展到大型数据集,并且在图像分类等感知问题上的效果也不好。
决策树类算法
决策树:决策树(decision tree)是类似于流程图的结构,可以对输入数据点进行分类或根据给定输入来预测输出值。随机森林:它引入了一种健壮且实用的决策树学*方法,即首先构建许多决策树,然后将它们的输出集成在一起。随机森林适用于各种各样的问题??对于任何浅层的机器学*任务来说,它几乎总是第二好的算法。梯度提升机:也是将弱预测模型(通常是决策树)集成的机器学*技术。它使用了梯度提升方法,通过迭代地训练新模型来专门解决之前模型的弱点,从而改进任何机器学*模型的效果。将梯度提升技术应用于决策树时,得到的模型与随机森林具有相似的性质,但在绝大多数情况下效果都比随机森林要好。它可能是目前处理非感知数据最好的算法之一。
深度学*

深度学*是机器学*的一个分支领域:它是从数据中学*表示的一种新方法,强调从连续的层(layer)中进行学*,这些层对应于越来越有意义的表示。“深度学*”中的“深度”指的并不是利用这种方法所获取的更深层次的理解,而是指一系列连续的表示层。数据模型中包含多少层,这被称为模型的深度(depth)。


其他机器学*方法的重点往往是仅仅学*一两层的数据表示,因此有时也被称为浅层学*(shallow learning)。


在深度学*中,这些分层表示几乎总是通过叫作神经网络(neural network)的模型来学*得到的。


深度学*要素
权重:神经网络中每层对输入数据所做的具体操作保存在该层的权重(weight)中,其本质是一串数字。用术语来说,每层实现的变换由其权重来参数化(parameterize,见图1-7)。权重有时也被称为该层的参数(parameter)。损失函数:想要控制神经网络的输出,就需要能够衡量该输出与预期值之间的距离。这是神经网络损失函数(loss function)的任务,该函数也叫目标函数(objective function)。损失函数的输入是网络预测值与真实目标值(即你希望网络输出的结果),然后计算一个距离值,衡量该网络在这个示例上的效果好坏。优化器:深度学*的基本技巧是利用这个距离值作为反馈信号来对权重值进行微调,以降低当前示例对应的损失值(见图1-9)。这种调节由优化器(optimizer)来完成,它实现了所谓的反向传播(backpropagation)算法,这是深度学*的核心算法。
深度学*已经取得的进展

深度学*在21 世纪前十年才崛起。在随后的几年里,它在实践中取得了革命性进展,在视觉和听觉等感知问题上取得了令人瞩目的成果,而这些问题所涉及的技术,在人类看来是非常自然、非常直观的,但长期以来却一直是机器难以解决的。特别要强调的是,深度学*已经取得了以下突破,它们都是机器学*历史上非常困难的领域:


接*人类水*的图像分类接*人类水*的语音识别接*人类水*的手写文字转录更好的机器翻译更好的文本到语音转换数字助理,比如谷歌即时(Google Now)和亚马逊 Alexa接*人类水*的自动驾驶更好的广告定向投放,Google、百度、必应都在使用更好的网络搜索结果能够回答用自然语言提出的问题在围棋上战胜人类
深度学*和机器学*方法的比较

效果好


自2012 年以来,深度卷积神经网络(convnet)已成为所有计算机视觉任务的首选算法。更一般地说,它在所有感知任务上都有效。与此同时,深度学*也在许多其他类型的问题上得到应用,比如自然语言处理。它已经在大量应用中完全取代了SVM 与决策树。


深度学*从数据中进行学*时有两个基本特征:第一,通过渐进的、逐层的方式形成越来越复杂的表示;第二,对中间这些渐进的表示共同进行学*,每一层的变化都需要同时考虑上下两层的需要。总之,这两个特征使得深度学*比先前的机器学*方法更加成功。


简单


深度学*让解决问题变得更加简单,因为它将特征工程完全自动化,而这曾经是机器学*工作流程中最关键的一步。


先前的机器学*技术(浅层学*)仅包含将输入数据变换到一两个连续的表示空间,通常使用简单的变换,比如高维非线性投影(SVM)或决策树。但这些技术通常无法得到复杂问题所需要的精确表示。因此,人们必须竭尽全力让初始输入数据更适合用这些方法处理,也必须手动为数据设计好的表示层。这叫作特征工程。


与此相反,深度学*完全将这个步骤自动化:利用深度学*,你可以一次性学*所有特征,而无须自己手动设计。这极大地简化了机器学*工作流程,通常将复杂的多阶段流程替换为一个简单的、端到端的深度学*模型。


不要把深度学*作为锤子

不过,当前工业界所使用的绝大部分机器学*算法都不是深度学*算法。深度学*不一定总是解决问题的正确工具:有时没有足够的数据,深度学*不适用;有时用其他算法可以更好地解决问题。


在2016 年和2017 年,Kaggle 上主要有两大方法:梯度提升机和深度学*。具体而言,梯度提升机用于处理结构化数据的问题,而深度学*则用于图像分类等感知问题。使用前一种方法的人几乎都使用优秀的XGBoost 库,它同时支持数据科学最流行的两种语言:Python 和R。使用深度学*的Kaggle 参赛者则大多使用Keras 库,因为它易于使用,非常灵活,并且支持Python。


热文推荐
猜你喜欢
友情链接: 医学资料大全 农林牧渔 幼儿教育心得 小学教育 中学 高中 职业教育 成人教育 大学资料 求职职场 职场文档 总结汇报