机器学习与深度学习

数据挖掘 机器学习 深度学习
2021-10-13 04:04:52

我对“机器学习”和“深度学习”这两个术语之间的区别感到有些困惑。我已经谷歌了它并阅读了很多文章,但对我来说仍然不是很清楚。

Tom Mitchell 对机器学习的一个已知定义是:

如果计算机程序在任务T中的性能(由P衡量)随着经验E而提高,则可以说计算机程序从经验E中学习某类任务T和性能度量P。

如果我将狗和猫分类的图像分类问题作为我的任务T,从这个定义我理解如果我给 ML 算法提供一堆狗和猫的图像(经验E),ML 算法可以学习如何将新图像区分为狗或猫(前提是性能度量P定义明确)。

然后是深度学习。我了解深度学习是机器学习的一部分,并且上述定义成立。任务T的性能随着经验E的增加而提高。到目前为止一切都很好。

该博客指出机器学习和深度学习之间存在差异。根据 Adil 的不同,在(传统)机器学习中,特征必须是手工制作的,而在深度学习中,特征是学习的。以下数字澄清了他的说法。

在此处输入图像描述

我对(传统)机器学习中的特征必须手工制作这一事实感到困惑。根据 Tom Mitchell 的上述定义,我认为这些特征将从经验E和性能P中学习。在机器学习中可以学到什么?

在深度学习中,我了解到从经验中您可以学习特征以及它们如何相互关联以提高性能。我是否可以得出结论,在机器学习中,特征必须是手工制作的,而学到的是特征的组合?还是我错过了其他东西?

4个回答

作为一个研究领域,深度学习实际上只是机器学习的一个子领域,因为机器学习是人工智能的一个子领域。

1)无监督特征学习

从概念上讲,“传统”(或“浅层”)机器学习和深度学习之间的第一个主要区别是无监督特征学习。

如您所知,只有在适当的预处理和明智的特征提取以从数据中选择有意义的信息之后,才能成功训练“传统”机器学习模型(例如:SVM、XGBoost ...) 。也就是说,好的特征向量包含具有不同标签的数据点之间的特征,以及具有相同标签的数据点之间的一致特征。因此,特征工程是专家手动选择特征的过程。这是一个非常重要但乏味的任务!

无监督特征学习是模型本身通过训练自动选择特征的过程。以相互连接的层组织的神经网络的拓扑结构具有将数据的低级表示映射到高级表示的良好特性。通过训练,网络可以“决定”数据的哪些部分重要,哪些数据不重要。这在计算机视觉或自然语言处理中特别有趣,因为手动选择或设计强大的功能非常困难。

无监督特征学习,学分:Tony Beltramelli (图片来源:托尼·贝尔特拉梅利)

例如,假设我们要对猫图片进行分类。使用深度神经网络,我们可以输入将由第一层映射到一组权重的原始像素值,然后这些权重将由第二层映射到其他权重,直到最后一层允许一些权重映射到代表您的问题的数字。(例如:在这种情况下,图片包含猫的概率)

尽管深度神经网络可以执行无监督特征学习,但它并不妨碍您自己进行特征工程以更好地表示您的问题。无监督特征学习、特征提取和特征工程并不相互排斥!

资料来源:

2) 线性可分性

深度神经网络可以通过弯曲特征空间使特征变为线性可分来解决一些非线性可分问题。再一次,这要归功于分层组织的网络拓扑,将输入映射到数据的新表示。

隐藏层学习一个表示,以便数据是线性可分的,学分:Christopher Olah (图片来源:克里斯托弗·奥拉)

资料来源: http ://colah.github.io/posts/2014-03-NN-Manifolds-Topology/

3) 统计不变性

最后,深度神经网络在某些领域正在超越传统的机器学习算法,因为一些架构展示了统计不变性(例如:卷积神经网络的空间统计不变性和递归神经网络的时间统计不变性)

查看此 Udacity 视频了解更多详情: https ://www.youtube.com/watch?v=5PH2Vot-tD4

除了 Himanshu Rai 所说的,深度学习是一个涉及使用神经网络的子领域。这些神经网络试图通过修改层之间的权重来学习底层分布。现在,考虑使用深度学习进行图像识别的情况:神经网络模型被划分为层,这些层通过称为权重的链接连接,随着训练过程的开始,这些层调整权重,使得每一层都尝试检测某些特征并帮助下一层进行处理。要注意的关键点是,我们没有明确告诉该层学习检测边缘、眼睛、鼻子或面部。模型自己学会了做这件事。与经典的机器学习模型不同。

受到爱因斯坦的启发,“如果你不能向一个六岁的孩子解释它,你自己就不会理解它。”

上述所有答案都得到了很好的解释,但如果有人正在寻找一个易于记忆的抽象差异,这里是我所知道的最好的一个:

关键区别在于机器学习只消化数据,而深度学习可以生成和增强数据。它不仅具有预测性,而且具有生成性。

来源。当然,它还有更多内容,但对于初学者来说,它可能会变得过于混乱。

好吧,就这样想吧。在机器学习算法中,例如线性回归或随机森林,你给算法一组特征和目标,然后它试图最小化成本函数,所以它不会学习任何新特征,它只是学习权重。现在,当您谈到深度学习时,您至少有一个(几乎总是更多)具有一定数量单元的隐藏层,这些是正在讨论的特征。因此,深度学习算法不只是学习权重集,在这个过程中,它还学习隐藏单元的值,这些隐藏单元是您给出的琐碎数据的复杂高级特征。因此,在练习普通机器学习时,很多专业知识在于你设计特征的能力,因为算法本身并没有学习任何东西。我希望我回答了你的问题。