入门级攻略:机器学习 VS. 深度学习

楔子:

     机器学习和深度学习现在很火,你会发现突然间很多人都在谈论它们。如下图所示,机器学习和深度学习的趋势对比(来自Google trend,纵轴表示搜索热度):

  本文将会以简单易懂的语言及示例为大家详细解释深度学习和机器学习的区别,并介绍相关用途。

机器学习和深度学习简介

机器学习

     Tom
Mitchell 关于机器学习的定义被广泛引用,如下所示:

对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而不断自我完善,那么我们称这个计算机程序在从经验E学习。

“A computer program is said to learn from experience E with respect to some class
of tasks T and performance measure P if its performance at tasks in T, as measured by P,
improves with experience E ”

    上面的抽象定义可能使你感到困惑,相信下面几个简单的示例会让你恍然大悟。

【例1 根据身高预测体重】

假设你要创建一个根据人的身高预测体重的系统。第一步是收集数据,收集完之后画出数据分布图如下所示。图中的每个点都代表一条数据,横坐标表示身高,纵坐标表示体重。

我们可以画一条简单的直线来根据身高预测体重,比如:

Weight (in kg) = Height (in cm) - 100

如果这条直线预测身高很准确,那怎样来衡量它的性能呢?比如以预测值和真实值之间的差值来衡量预测模型的性能。当然,源数据越多,模型效果就越好。如果效果不好,那么可以使用其他方法来提升模型性能,如增加变量(如性别)或者改变预测直线。

【例2 风暴预测系统】

    假定要构建一个风暴预测系统,你手头上有过去发生的风暴数据以及这些风暴发生前三个月的天气数据。那么怎样构建一个风暴预测系统呢?

首先要做的是清洗数据并找到数据中的隐藏模式,比如导致风暴产生的条件。我们可以对一些条件建模,比如温度是否大于40摄氏度,湿度是否介于80到100之间,然后将这些特征输入模型。

你要做的就是充分利用历史数据,然后预测是否会产生风暴。在这个例子中,评价的指标是正确预测风暴发生的次数。我们可以重复预测过程多次,然后将性能结果返回系统。

     回到最初机器学习的定义,我们将风暴预测系统定义如下:任务T是找到造成风暴的大气条件,性能P是在模型参数学习好之后,正确预测的次数,经验E是系统的迭代过程。

深度学习

深度学习其实很早之前就出现了,随着近几年的炒作,又逐渐火起来了。

深度学习是一种特殊的机器学习,它将现实世界表示为嵌套的层次概念体系(由较简单概念间的联系定义复杂概念,从一般抽象概括到高级抽象表示),从而获得强大的性能与灵活性。

Deep learning is a particular kind of machine learning that achieves
great power and flexibility by learning to represent the world as nested
hierarchy of concepts, with each concept defined in relation to simpler
concepts, and more abstract representations computed in terms of less abstract
ones.

【例1 图形检测】

   假设我们要将矩形和其他图形区别开。人眼首先是检测这个图形是否有4条边(简单概念)。如果有4条边,在检测它们是否相连,闭合且垂直,以及是否相等(嵌套层次概念)。事实上,我们将一个复杂的任务(矩形识别)分解成一些简单低抽象层次的任务。深度学习本质上是在更大的范围内做这件事。

【例2 猫还是狗】

这个案例是构建一个能够识别图片中动物是猫或者狗的系统。

如果使用机器学习解决这个问题,首先要定义一些特征,比如该动物是否有胡须、耳朵;如果有耳朵,那么耳朵是否是尖的。简单地说,我们要定义面部特征,然后让系统识别出在动物分类中哪些是重要特征。而深度学习会一次性完成这些任务,深度学习会自动找到对分类任务重要的特征,而机器学习不得不人工指定

深入学习工作流程如下:

1. 首先在图片中找到和猫或者狗最相关的边界;

2. 然后找到形状和边界的组合,如是否能找到胡须和耳朵;

3. 在复杂概念的连续分层识别后,就能够确定哪些特征对识别猫狗起重要作用。

机器学习和深度学习的对比

数据依赖

      深度学习和传统机器学习最重要的区别是它的性能随着数据量的增加而增强。如果数据很少,深度学习算法性能并不好,这是因为深度学习算法需要大量数据才能很好理解其中蕴含的模式。这种情况下,使用人工指定规则的传统机器学习占据上风。如下图所示:

硬件支持

深度学习算法严重依赖于高端机,而传统机器学习在低端机上就可以运行。因为深度学习需要进行大量矩阵乘法操作,而GPU可以有效优化这些操作,所以GPU成为其中必不可少的一部分。

特征工程

特征工程将领域知识输入特征提取器,降低数据复杂度,使数据中的模式对学习算法更加明显,得到更优秀的结果。从时间和专业性方面讲,这个过程开销很高。机器学习中,大部分使用的特征都是由专家指定或根据先验知识确定每个数据域和数据类型。比如,特征可以是像素值,形状,纹理,位置,方向。大多数机器学习方法的性能依赖于识别和抽取这些特征的准确度。


深度学习算法试图从数据中学习高层特征,这是深度学习与众不同的一部分
,同时也是超越传统机器学习的重要一步。深度学习将每个问题归结为开发新特征提取器,如卷积神经网络在底层学习如边和直线种种低层特征,然后是面部部分特征,最后是人脸的高层特征。

问题解决方案

当使用传统机器学习方法解决问题时,经常采取化整为零,分别解决,再合并结果求解的策略。而深度学习主张end-to-end模型,输入训练数据,直接输出最终结果,让网络自己学习如何提取关键特征。

比如说你要进行目标检测,需要识别出目标的类别并指出在图中的位置。

典型机器学习方法将这个问题分为两步:目标检测与目标识别。首先,使用边框检测技术,如grabcut,扫描全图找到所有可能的对象,对这些对象使用目标识别算法,如HOG/SVM,识别出相关物体。

深度学习方法按照end-to-end方式处理这个问题,比如YOLO
net通过卷积神经网络,就能够实现目标的定位与识别。也就是原始图像输入到卷积神经网络中,直接输出图像中目标的位置和类别。

执行时间

通常,深度学习需要很长时间训练,因为深度学习中很多参数都需要远超正常水平的时间训练。ResNet大概需要两周时间从零开始完成训练,而机器学习只需要从几秒到几小时不等的训练时间。测试所需要的时间就完全相反,深度学习算法运行需要很少的时间。然而,和KNN(K近邻,一种机器学习算法)相比,测试时间会随着测试数据量的增加而增加。不过并非所有的机器学习算法都需要很长时间,某些也只需要很少的测试时间。

可解释性

假定使用深度学习给文章自动评分,你会发现性能会很不错,并且接近人类评分水准。但它不能解释为什么给出这样的分数。在运行过程中,你可以发现深度神经网络的哪些节点被激活,但你不知道这些神经元是对什么进行建模以及这每层在干什么,所以无法解释结果。

另一方面,机器学习算法如决策树按照规则明确解释每一步做出选择的原因,因此像决策树和线性/逻辑斯蒂回归这类算法由于可解释性良好,在工业界应用很广泛。

机器学习和深度学习应用场景

Wiki上面介绍了一些机器学习的应用领域:

1. 计算机视觉:如车牌号识别,人脸识别;

2. 信息检索:如搜索引擎,文本检索,图像检索;

3. 营销:自动邮件营销,目标识别;

4. 医疗诊断:癌症诊断,异常检测;

5. 自然语言处理:语义分析,照片标记;

6. 在线广告,等等。

下图总结了机器学习的应用领域,总的来说应用范围十分广泛。

谷歌是业内有名的使用机器学习/深度学习的公司,如下图所示,谷歌将深度学习应用到不同的产品。

即时测试

为了评估你是否真正理解了机器学习和深度学习的区别,这里将会有一个快速测试,可以在这里提交答案。你要做的就是分别使用机器学习和深度学习解决下面的问题,并决定哪个方法更好。

【场景1】 假设你要开发一个无人驾驶汽车系统,该系统以相机拍摄的原始数据作为输入,然后预测方向盘转动的方向及角度。

【场景2】给定一个人的信用凭证和背景信息,评估是否可以给他发放贷款。

【场景3】创建一个将俄语文本翻译为印度语的系统。

未来趋势

  前面总结了机器学习和深度学习的区别,本节对二者未来趋势:

  1. 鉴于工业界使用数据科学和机器学习呈增加的趋势,在业务中使用机器学习对那些想要生存下来的公司变得越发重要。同时,了解更多的基础知识也十分有必要。

  2. 深度学习给人越来越多的惊喜,将来也会一直是这样。深度学习被证明是已有技术中最先进的最好的技术之一

  3. 深度学习和机器学习和研究还在继续,不像以前那样在学术界发展受限。目前机器学习和深度学习在工业界和学术界呈爆炸式发展。并且受到比以前更多的基金支持,很有可能成为人类发展的关键点之一。

尾声

本文将深度学习和机器学习进行了详细对比,希望能够激励大家去学到更多知识。请参考机器学习路线图深度学习路线图

【作者简介】

Faizan Shaikh, 数据科学爱好者,深度学习,醉心于人工智能。

以上为译文

文章为简译,更为详细的内容,请查看原文

时间: 2024-11-08 22:32:59

入门级攻略:机器学习 VS. 深度学习的相关文章

确定不收藏?十张机器学习和深度学习工程师必备速查表!

本文讲的是十张机器学习和深度学习工程师必备速查表,对于初学者,机器学习和深度学习课程会很困难,此外各类深度学习库也十分难理解.我在Github上创建了一个本地库(https://github.com/kailashahirwar/cheatsheets-ai ),里面包含了从不同渠道收集的速查表,可以直接下载.尽管拿去用吧,同时欢迎补充完善! 1. Keras Karas是Theano和TensorFlow平台上一款强大易用的深度学习库.它为发展和训练深度学习模型提供高阶神经网络API接口. 来

机器学习实例:深度学习如何做语音识别!

文章讲的是 机器学习实例:深度学习如何做语音识别,语音识别正在「入侵」我们的生活.我们的手机.游戏主机和智能手表都内置了语音识别.他甚至在自动化我们的房子.只需50美元,你就可以买到一个Amazon Echo Dot,这是一个可以让你订外卖.收听天气预报.甚至是买垃圾袋的魔术盒,而这一切你只需要大声说出: Aleax,给我订一个pizza! Echo Dot 在2015年的圣诞假期一经推出就大受欢迎,在亚马逊上面立刻售罄. 但其实语音识别已经存在很多年了,那为什么现在才成为主流呢?因为深度识别终

简单读懂人工智能:机器学习与深度学习是什么关系

引言:随着AlphaGo战胜李世石,人工智能和深度学习这些概念已经成为一个非常火的话题.人工智能.机器学习与深度学习这几个关键词时常出现在媒体新闻中,并错误地被认为是等同的概念.本文将介绍人工智能.机器学习以及深度学习的概念,并着重解析它们之间的关系.本文将从不同领域需要解决的问题入手,依次介绍这些领域的基本概念以及解决领域内问题的主要思路. 本文选自<Tensorflow:实战Google深度学习框架>. 从计算机发明之初,人们就希望它能够帮助甚至代替人类完成重复性劳作.利用巨大的存储空间和

良心推荐!机器学习和深度学习最佳框架

文章讲的是良心推荐!机器学习和深度学习最佳框架,机器学习框架和深度学习框架之间是有区别的.本质上,机器学习框架涵盖用于分类,回归,聚类,异常检测等各种学习方法,并且其可以不包括神经网络方法.深度学习或深度神经网络(DNN)框架涵盖具有许多隐藏层的神经网络拓扑.层越多,可用于聚类和分类的特征越复杂. Caffe,CNTK,DeepLearning4j,Keras,MXNet和TensorFlow是深度学习框架.Scikit-learning和Spark MLlib是机器学习框架.而Theano跨越

机器学习和深度学习的最佳框架大比拼

在过去的一年里,咱们讨论了六个开源机器学习和/或深度学习框架:Caffe,Microsoft Cognitive Toolkit(又名CNTK 2),MXNet,Scikit-learn,Spark MLlib和TensorFlow.如果把网撒得大些,可能还会覆盖其他几个流行的框架,包括Theano(一个10年之久的Python深度学习和机器学习框架),Keras(一个Theano和TensorFlow深度学习的前端),DeepLearning4j(Java和Scala在Hadoop和Spark

《Web安全之机器学习入门》一 1.1 人工智能、机器学习与深度学习

1.1 人工智能.机器学习与深度学习 如今,人工智能.机器学习与深度学习几乎成了家喻户晓的名词,究竟这三者之间有什么联系和区别呢? 通常认为,机器学习是实现人工智能的主要方式,人类基于机器学习以及海量的数据,逐步实现人工智能,其中深度学习是机器学习的一个分支.如果用同心圆来表示三者的范围,那么人工智能是最外面的一个圆,深度学习是最里面的圆.人可以在1秒以内做出的判断,都可以用机器来实现,而且机器可以同时完成成百上千人1秒内可以做出的判断,这就是人工智能.

一篇文章搞懂人工智能、机器学习和深度学习之间的区别

概述 2015年11月9日,Google发布人工智能系统TensorFlow并宣布开源.这两年在不管在国内还是在国外,人工智能.机器学习仿佛一夜之前传遍大街小巷.机器学习作为人工智能的一种类型,可以让软件根据大量的数据来对未来的情况进行阐述或预判.如今,领先的科技巨头无不在机器学习下予以极大投入.Facebook.苹果.微软,甚至国内的百度,Google 自然也在其中. 去年早些时候 Google DeepMind 的 AlphaGo 项目在举世瞩目的围棋比赛中一举击败了韩国选手李世石,媒体就是

人工智能、机器学习、深度学习的区别在哪?

有人说,人工智能(Artificial Intelligence)是未来.人工智能是科幻小说.人工智能已经是我们日常生活的一部分.所有这些陈述都 ok,这主要取决于你所设想的人工智能是哪一类. 例如,今年早些时候,Google DeepMind 的 Alphago 程序击败了韩国围棋大师李世乭九段.人工智能.机器学习和深度学习这些词成为媒体热词,用来描述 DeepMind 是如何获得成功的.尽管三者都是 AlphaGo 击败李世乭的因素,但它们不是同一概念. 区别三者最简单的方法:想象同心圆,人

机器学习,深度学习和AI:有什么区别?

文章讲的是机器学习,深度学习和AI:有什么区别,当谈到新的数据处理技术时,我们常常会听到很多不同的术语.有人说他们正在使用机器学习,而另一个人称之为人工智能.还有一些人可能会声称自己在做深度学习,这都是什么意思? 虽然这些术语中都有相对特定的含义,但在某些方面既有重叠,也有一些区别,不过都离不开大数据.伴随在数据处理真正的突破,也势必会带来一些不可避免的炒作.而正确的理解这些术语便于我们正确的使用它们. 机器学习 在最基本的层面上,机器学习是指任何类型的计算机程序,可以自己"学习",而