Deep Learning vs Machine Learning
机器学习和深度学习
机器学习
Tom Mitchell 广泛引用的机器学习定义就很好的解释了机器学习。这就是它所说的:“据说计算机程序可以从经验 E 中学习某些类型的任务 T 和用来测试的 P,它在 T 中的任务中的表现(由 P 测试)会随着经验 E 的提高而提高”
案例 1 - 机器学习 - 根据高度预测权重
假设现在需要创建一个系统,该系统根据人的身高来显示预测的体重。可能有几个原因会让人对这个系统感兴趣。因为我们可以使用它来过滤掉任何可能的欺诈或者获取数据的错误。首先要做的第一件事就是收集数据。
假设我们现在的数据是这样子的:
图表上的每个点代表一个数据点。首先可以画一条简单的线来预测基于身高的体重。
举一个简单的例子:
体重(kg)=身高(cm) - 100
这样可以帮助做出预测。虽然这条预测线做得不错,但我们需要了解它的表现。希望减少预测值和实际值之间的差异。这就是衡量绩效的方法。
此外收集的数据点越多(经验),模型就越好。还可以通过添加更多变量(例如性别)并为它们创建不同的预测线来改进模型。
案例 2 - 风暴预测系统
复杂一点的例子。假设现在需要构建一个风暴预测系统。通过过去发生的所有风暴的数据,以及这些风暴发生前三个月的天气状况。
首先必须检查所有的数据,并找到这些数据中的模式。任务是寻找导致风暴的条件。
可以模拟这样的条件,如果温度大于 40 摄氏度,湿度在 80 到 100 之间等等。然后手动将这些’条件’输入到系统。或者可以让系统在数据中了解到这些特征的适当值。
现在要找到这些值,需要浏览所有之前的数据,并尝试预测是否会有风暴。根据系统设置的特征值,评估系统的性能,就是系统正确预测风暴发生的次数。可以对上述步骤进一步多次迭代,将性能作为反馈给系统。
采用正式定义来尝试定义我们的风暴预测系统:任务“T”是找出引发风暴的大气条件。
性能“P”是在提供给系统的所有条件中,正确预测风暴的次数。经验’E’是我们系统的重复模拟。
什么是深度学习?
“深度学习是一种特殊的机器学习,它通过学习将世界表示为嵌套的概念层次结构来实现强大的功能和灵活性,每个概念都是根据更简单的概念进行定义的,而更抽象的表示则用不那么抽象的概念计算出来。 ”
案例 1 - 形状检测
从一个简单的例子开始,它解释了在概念层面上事情是如何发生的。让我们试着理解如何识别其他形状的正方形。
眼睛做的第一件事就是检查是否有 4 条线与一个图形相关联的简单概念。如果我们找到 4 条线,我们进一步检查它们是否连接,闭合,垂直以及它们是否相等(概念的嵌套层次结构)。
因此,我们采取了一项复杂的任务(确定一个正方形)并将其分解为简单的、不那么抽象的东西。深度学习在很大程度上就是这么做的
案例 2 - 猫还是狗
举一个动物识别器的例子,系统必须识别给的图片是猫还是狗。
如果将此作为一个典型的机器学习问题的话,我们必须定义一些特征,诸如动物是否有胡须,是否有耳朵如果有耳朵,那么耳朵是尖的还是稍微圆一点的。简单点说,我们要定义面部特征,让系统识别哪些特征在对特定动物进行分类时比较重要。
深度学习就比机器学习领先一步。深度学习会自动找出对分类很重要的特征,在机器学习中必须手动提供这些特征。深度学习的工作原理如下:
首先确定那些特征与分辨出是猫还是狗最有相关性;
然后以层次结构为基础,找到可以找到的特征的组合。例如,是否存在胡须,或是否存在耳朵等;
在对复杂概念进行连续层次识别之后,它决定通过哪个特征负责来找到答案。
机器学习与深度学习的比较
数据依赖
深度学习与传统机器学习之间最重要的区别会随着数据规模的增大而表现出来。当数据很小时,深度学习算法表现不佳。这是因为深度学习算法需要大量数据才能完美理解它。另一方面,传统的机器学习算法及其手工制作的规则在这种情况下占据优势。
硬件依赖性
深度学习算法在很大程度上依赖于高端机器,这与传统的机器学习算法相反,后者可以在低端机器上运行。这是因为深度学习算法的要求包括 GPU,因为 GPU 是其工作中不可或缺的组成部分。深度学习算法本质上是做大量的矩阵乘法运算,而使用 GPU 可以有效的优化这些操作,而这就是使用 GPU 的目的。
特征工程
特征工程是将领域知识放入特征提取器的创建过程,用来降低数据的复杂性并使特征对于学习算法更加可见。就时间和专业知识而言,这个过程是困难而又昂贵的。在机器学习中,大多数应用的特征需要由专家识别,然后根据领域和数据类型进行手动编码。
例如,特征可以是像素值,形状,纹理,位置和方向。大多数机器学习算法的性能取决于特征识别和特征提取的准确程度。
深度学习算法尝试从数据中学习高级特征。这是深度学习一个非常独特的部分,也是超越传统机器学习的重要部分。因此,深度学习减少了为每个问题开发新的特征提取器的任务。就像,卷积神经网络将尝试先学习底层特征,例如早期图层中的边缘和线条,然后是人脸的部分面部,最后是高级的面部识别。
问题解决方法
当使用传统的机器学习算法解决问题时,通常建议将问题分解为不同的部分,分别解开这些问题,然后将它们组合起来得到结果。相反,深度学习主张从头到尾的解决问题。
假设现在有一个多个对象检测的任务。任务是确定对象是什么以及它在图像中的位置。
在典型的机器学习方法中,可以将问题分为两个步骤:对象检测和对象识别。首先,将使用像 grabcut 这样的边界框检测算法来浏览图像并查找所有可能的对象。然后,在所有已识别的对象中将使用对象识别算法(如带有 HOG 的 SVM)来识别相关对象。
相反,在深度学习方法中,只需要从头到尾的完成这个过程。例如,在 YOLO net(这是一种深度学习算法)中,传入这张图像,它将给出对象存在的位置以及对象的名称。
执行时间
通常,深度学习算法需要很长时间来训练。这是因为深度学习算法中有很多的参数,所以训练它们需要更长的时间。最先进的深度学习算法 ResNet 需要大约两周时间才能完全从 0 开始的训练。相比之下,机器学习的训练时间要短得多,从几秒钟到几小时不等。
测试时间完全颠倒了。在测试时,深度学习算法运行的时间要少得多。然而,如果把它与 k 近邻(一种机器学习算法)进行比较,则测试时间会随着数据的增加而增加。虽然这不适用于所有机器学习算法,因为有些算法的测试时间也会很短。
可解释性
最后一点但并非不重要的是,将可解释性作为比较机器学习和深度学习的一个因素。这个因素是深度学习在用于行业之前仍被反复思考的主要原因。
假设我们使用深度学习自动为论文打评分。它在打分方面的表现的非常出色,接近人类的表现。但有一个问题。它没有透露出为什么它给出了这个分数。事实上,你可以通过数学方法找出深层神经网络的哪些节点被激活,但我们不知道这些神经元是怎么建模的,以及这些神经元做了什么。所以我们无法解释结果。
另一方面,像决策树这样的机器学习算法提供了清晰的规则,解释了为什么要选择这个内容,因此特别容易理解其背后的原理。因此,像决策树和线性/逻辑回归等算法主要用于行业中就是因为其结果的可解释性。
机器学习和深度学习现在在哪里应用?
维基文章概述了应用机器学习的所有领域。这些包括:
计算机视觉:适用于车牌识别和面部识别等应用;
信息检索:适用于搜索引擎,文本搜索和图像搜索等应用程序;
营销:用于自动化的电子邮件营销,目标识别等应用;
医疗诊断:用于癌症鉴定,异常检测等应用;
自然语言处理:用于情感分析,照片标记等应用;
在线广告等
文章翻译自:Deep Learning vs. Machine Learning – the essential differences you need to know!
文章原链接:https://www.analyticsvidhya.com/blog/2017/04/comparison-between-deep-learning-machine-learning/






