# 为什么要深度学习？

深度学习在机器学习和其他优化算法中何处适用，以及它能解决什么样的问题？当您选择工具来解决任何数据问题时，首先要回答这些问题。

深度学习是机器学习的同义词，只是更大领域的高级子集。从技术上讲，深度学习是一组神经网络的总称，这些神经网络由三层或更多层组成，即至少一个隐藏层，以及输入和输出的可见层。

那么，什么是深度学习可做的和不可做的？深度学习可以识别模式并对其进行分类。换言之，它可以告诉你的机器它在看什么，听什么，或者作为一个数字流被输入。&#x20;

在我们有机会反思之前，在我们头脑中出现的一个非常基本的功能，是一个计算机的巨大复杂性，只有经过大量计算才能完成的任务。面对一系列像素，没有一台计算机天生就知道房子、树和猫的区别。深度学习就是这个带有画笔的人。

## **先决条件和注意事项**

要想让深度学习顺利进行，它需要大量的数据。所以首先，你应该拥有它。（在处理非结构化数据时，深度学习比机器学习具有明显的优势。它不需要你标记所有的东西来发现模式。）&#x20;

接下来，你需要一个你想回答的问题。这些非结构化数据是由什么组成的？有需要标签的图片吗？需要名字的声音？与书写的文本相匹配的演讲？包含多个要分析的对象的视频？或者你想按情感或内容分组的文本？这些都是深度学习可以帮助解决的具体问题。如果这些匹配你的问题，然后你应该选择你的算法。&#x20;

简而言之：你的问题是否需要在大量的输入中确定某个对象或现象？在你做决定之前，你需要把一些事件隔离开来吗？对这些问题回答“是”可能会引导你选择深入度学习。

## 相似，不同

通过测量图像之间的相似性，比如说，一个深度学习算法可以找到某个人脸上的所有图片，并将它们收集到一个la Facebook页面上。相反，通过测量这些差异，它也许能告诉你是否有一张不知名的脸出现，比如说，在晚上出现在你家门口。它将相似的东西分组，并突出不同的东西。

突出显示差异称为异常检测。由于深度学习最适合于文本、声音和图像等非结构化媒体，因此我们将使用视觉异常。

医生每天都在CT扫描中寻找肿瘤——有时他们会发现肿瘤，有时则不会。医院拥有大量标记为癌症的图像，在不知道肿瘤是否存在的地方，也有同样数量的图像。标记的数据可以作为训练集，尚未标记的图像可以用深度学习网络进行分类。

如果有足够多的癌症标记实例，一个深度学习网络可以开始识别更微妙的模式，而医生自己可能很难意识到这一点。

现在想象一下，深度学习能够以同样的精度分析视频、声音、文本和时间序列数据。它可以识别股票变动中的面孔、声音、类似文件和信号。它可能会在机场航站楼发现可疑的面孔，或者识别出欺诈电话的潜在音频伪造品。

有了时间序列数据和声音，它能够分析一个模式的开始，并填充其余的部分，不管其余部分是一个完整的词，还是市场上的下一个小插曲。它不关心模式是否完全存在于当下，比如一张脸，或者部分地在未来，就像一个被说的句子。

## 特征提取

与以前的神经网络和其他机器学习算法相比，深度学习的一个主要优势是它能够从训练集中包含的有限特征集合中推断出新的特征。也就是说，它将搜索并找到与已知特征相关的其他特征。它将发现在噪音中听到信号的新方法。&#x20;

深度学习在不被明确告知的情况下创建特征的能力意味着数据科学家可以通过依赖这些网络节省数月的工作。这也意味着数据科学家可以使用比机器学习工具更复杂的特征集。

## 缺乏特征内省

虽然可以调试神经网络，但不能像使用随机森林决策树那样将决策映射回单个特征。&#x20;

深度学习无法告诉你为什么它会得出某种结论。它的隐藏网络正在创建自己的特征，根据训练集中包含的手动特征进行推断。它创建的那些特征可能没有名称。&#x20;

在机器学习中，这些特征是由工程师手工创建的，他们知道这些特征对算法的最终决策有多大的贡献。&#x20;

深度学习缺乏特征自醒。如果您试图将事件分类为欺诈性或非欺诈性，并且必须记录并证明您是如何得出结论的，那么这一点很重要。如果你拒绝一个客户的订单，因为欺诈，你的老板问你为什么，她可能不喜欢回答“我不知道”

## 神经网络的优点

* 神经网络对文本处理是高性能的：当前部分数据对文本的依赖性很大，神经网络在自然语言处理中占主导地位。他们还提供了一套灵活的建模选项，同时最小化特征工程。主要的替代方案对训练来说同样或更复杂，例如。，条件随机场或生成模型，或对文本有严重限制，例如随机森林。
* 神经网络对图像处理是高性能的：现代的深度学习框架，例如卷积网络，将是迄今为止处理此类数据的最佳选择（可能是唯一可行的）。
* 神经网络比其他方法（如RFs或图形模型）更能自然地扩展到大数据。
* 神经网络可以利用未标记的数据：深度学习提供了多种方法，使我们能够更好地利用未标记的数据。其他方法，例如RFs，不能自然地使用未标记的数据。
* 神经网络可以用于多任务学习：训练一个神经网络同时预测多个目标是很简单的。这通常可以提高性能。在其他范例中，多任务学习是非常有限的（例如，线性模型），或者是困难的（例如，随机森林）。
* 神经网络学习可用于其他任务的数据的转换表示：神经网络显式学习可用于其他任务的原始数据（隐藏层）的转换。
