机器学习和深度学习如今风靡一时!好像是在一瞬间,每一个人都在谈论着它们 - 不管人们是否理解二者中间的差别!如今人们不管是否关注数据科学 - 都会听到过这两个术语。算法
如今展现一下深度学习和机器学习所得到的关注度,如下是这些关键字的Google趋势:网络
若是你想了解机器学习和深度学习之间的区别,请继续阅读这篇以简单的外行语言进行详细比较机器学习和深度学习的文章。我将会详细的解释这些术语。而后比较它们并解释咱们能够在什么地方会用到它们。机器学习
让咱们从基础的知识开始开始提及 - 什么是机器学习和什么是深度学习。若是你已经知道这一点,那能够跳过这一部分,直接去看第二部分,两种学习之间的比较。性能
Tom Mitchell普遍引用的机器学习定义最好地解释了机器学习。这就是它所说的:学习
这听起来很使人费解或使人困惑对吧?那让咱们用简单的例子来分析一下。测试
示例1 - 机器学习 - 根据高度预测权重优化
假设如今须要建立一个系统,该系统根据人的身高来显示预期的体重。可能有几个缘由会让人感兴趣对这个系统感兴趣。咱们可使用它来过滤掉任何可能的欺诈或数据获取的错误。首先要作的第一件事就是收集数据。假设咱们如今的数据是这样子的:搜索引擎
图表上的每一个点表明一个数据点。首先,咱们能够画一条简单的线来预测基于身高的体重。举一个简单的例子:编码
这样能够帮助咱们作出预测。虽然这条预测线作得不错,但咱们须要了解它的表现。在这种状况下,咱们能够说咱们但愿减小预测值和实际值之间的差别。这就是衡量绩效的方法。spa
此外,咱们收集的数据点越多(经验),咱们的模型就越好。咱们还能够经过添加更多变量(例如性别)并为它们建立不一样的预测线来改进咱们的模型。
示例2 - 风暴预测系统
让咱们举一个稍微复杂一点的例子。假设如今须要构建一个风暴预测系统。经过过去发生的全部风暴的数据,以及这些风暴发生前三个月的天气情况。
考虑到这些,若是咱们要手动创建一个风暴预测系统,咱们须要作什么?
咱们首先必须检查全部的数据,并找到这些数据中的模式。咱们的任务是寻找致使风暴的条件。
咱们能够模拟这样的条件,若是温度大于40摄氏度,湿度在80到100之间等等。而后手动将这些'条件'输入到咱们的系统。
或者,咱们可让咱们的系统在数据中了解到这些特征的适当值。
如今要找到这些值,须要浏览全部以前的数据,并尝试预测是否会有风暴。根据系统设置的特征值,咱们评估系统的性能,就是系统正确预测风暴发生的次数。咱们能够对上述步骤进一步屡次迭代,将性能做为反馈给咱们的系统。
让咱们采用咱们的正式定义来尝试定义咱们的风暴预测系统:咱们的任务“T”是找出引起风暴的大气条件。性能“P”是在提供给系统的全部条件中,正确预测风暴的次数。经验'E'是咱们系统的重复模拟。
深度学习的概念并不新鲜。它已经存在好几年了。可是如今随着不断的炒做,深度学习愈来愈受到关注。正如咱们在机器学习中所作的那样,咱们先研究深度学习的正式定义,而后经过例子对深度学习分解认识。
这些概念一样会让人困惑不已。如今让咱们用简单的例子来认识它。
示例1 - 形状检测
让我从一个简单的例子开始,它解释了在概念层面上事情是如何发生的。让咱们试着理解如何识别其余形状的正方形。
咱们眼睛作的第一件事就是检查是否有4条线与一个图形相关联(简单概念)。若是咱们找到4条线,咱们进一步检查它们是否链接,闭合,垂直以及它们是否相等(概念的嵌套层次结构)。
所以,咱们采起了一项复杂的任务(肯定一个正方形)并将其分解为简单的、不那么抽象的东西。深度学习在很大程度上就是这么作的
示例2 - 猫仍是狗
让咱们举一个动物识别器的例子,咱们的系统必须识别给的图片是猫仍是狗。
若是咱们将此做为一个典型的机器学习问题的话,咱们必须定义一些特征,诸如动物是否有胡须,是否有耳朵若是有耳朵,那么耳朵是尖的仍是稍微圆一点的。简单点说,咱们要定义面部特征,让系统识别哪些特征在对特定动物进行分类时比较重要。
如今,深度学习就比机器学习领先一步。深度学习会自动找出对分类很重要的特征,在机器学习中咱们必须手动提供这些特征。深度学习的工做原理以下:
深度学习的工做原理以下:
既然如今你已经了解了机器学习和深度学习的基本概念,那咱们接下来要用一些重要的观点来比较一下这两种技术。
深度学习与传统机器学习之间最重要的区别会随着数据规模的增大而表现出来。当数据很小时,深度学习算法表现不佳。这是由于深度学习算法须要大量数据才能完美理解它。另外一方面,传统的机器学习算法及其手工制做的规则在这种状况下占据优点。下图总结了这一事实。
深度学习算法在很大程度上依赖于高端机器,这与传统的机器学习算法相反,后者能够在低端机器上运行。这是由于深度学习算法的要求包括GPU,由于GPU是其工做中不可或缺的组成部分。深度学习算法本质上是作大量的矩阵乘法运算,而使用GPU能够有效的优化这些操做,而这就是使用GPU的目的。
特征工程是将领域知识放入特征提取器的建立过程,用来下降数据的复杂性并使特征对于学习算法更加可见。就时间和专业知识而言,这个过程是困难而又昂贵的。
在机器学习中,大多数应用的特征须要由专家识别,而后根据领域和数据类型进行手动编码。
例如,特征能够是像素值,形状,纹理,位置和方向。大多数机器学习算法的性能取决于特征识别和特征提取的准确程度。
深度学习算法尝试从数据中学习高级特征。这是深度学习一个很是独特的部分,也是超越传统机器学习的重要部分。所以,深度学习减小了为每一个问题开发新的特征提取器的任务。就像,卷积神经网络将尝试先学习底层特征,例如早期图层中的边缘和线条,而后是人脸的部分面部,最后是高级的面部识别。
当使用传统的机器学习算法解决问题时,一般建议将问题分解为不一样的部分,分别解开这些问题,而后将它们组合起来获得结果。相反,深度学习主张从头至尾的解决问题。
咱们举一个例子来理解这一点。
假设如今有一个多个对象检测的任务。任务是肯定对象是什么以及它在图像中的位置。
在典型的机器学习方法中,能够将问题分为两个步骤:对象检测和对象识别。首先,您将使用像grabcut这样的边界框检测算法来浏览图像并查找全部可能的对象。而后,在全部已识别的对象中,您将使用对象识别算法(如带有HOG的SVM)来识别相关对象。
相反,在深度学习方法中,只须要从头至尾的完成这个过程。例如,在YOLO net(这是一种深度学习算法)中,传入这张图像,它将给出对象存在的位置以及对象的名称。
一般,深度学习算法须要很长时间来训练。这是由于深度学习算法中有不少的参数,因此训练它们须要更长的时间。最早进的深度学习算法ResNet须要大约两周时间才能彻底从0开始的训练。相比之下,机器学习的训练时间要短得多,从几秒钟到几小时不等。
测试时间彻底颠倒了。在测试时,深度学习算法运行的时间要少得多。然而,若是把它与k近邻(一种机器学习算法)进行比较,则测试时间会随着数据的增长而增长。虽然这不适用于全部机器学习算法,由于有些算法的测试时间也会很短。
最后一点但并不是不重要的是,咱们将可解释性做为比较机器学习和深度学习的一个因素。这个因素是深度学习在用于行业以前仍被反复思考的主要缘由。
咱们来举个例子吧。假设咱们使用深度学习自动为论文打评分。它在打分方面的表现的很是出色,接近人类的表现。但有一个问题。它没有透露出为何它给出了这个分数。事实上,你能够经过数学方法找出深层神经网络的哪些节点被激活,但咱们不知道这些神经元是怎么建模的,以及这些神经元作了什么。因此咱们没法解释结果。
另外一方面,像决策树这样的机器学习算法为咱们提供了清晰的规则,解释了为何要选择这个内容,所以特别容易理解其背后的原理。所以,像决策树和线性/逻辑回归等算法主要用于行业中就是由于其结果的可解释性。
维基文章概述了应用机器学习的全部领域。这些包括:
上面给出的图像恰当地总结了机器学习的应用领域。虽然它涵盖了更普遍的机器智能主题。
使用机器学习/深度学习的公司的一个主要例子是Google。
在上图中,您能够看到Google如何在其各类产品中应用机器学习。机器学习/深度学习的应用是无止境的,你只须要看到合适的机会!
上面的文章讲述了机器学习和深度学习以及它们之间的区别。在这部分中,我将分享一下我认为的机器学习和深度学习将来发展的观点。