为什么深度学习(deeplearning4j-docs)

本文翻译自Java深度学习框架deeplearning4j中deeplearning4j-docs的一篇文档,主要介绍在什么情况下选择深度学习,使用深度学习的先决条件和注意事项,利用深度学习处理相似和不同,进行特征提取,但缺乏特征的反思,以及神经网络的优点。

深度学习适合机器学习和其他优化算法吗,它可以解决哪些问题?当您选择工具来解决您遇到的任何数据问题时,这些是第一个要回答的问题。

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

那么什么是深度学习能力和无能力?深度学习可以识别模式并对其进行分类。换句话说,它可以告诉你的机器它正在看什么,听到什么,或者作为一个数字流被喂食。

在我们作出反映之前,在脑海中重现事物,那是个非常基本的功能,但对于计算机是极其复杂的任务,只有经过多次计算才能完成。面对一系列像素,没有计算机固有地就知道房子,树和猫之间的区别。深度学习相当于就是下图中拿着画笔的人。

先决条件和注意事项

为了深入学习,它需要大量数据。你应该拥有大量数据才能进行深度学习。(在处理非结构化数据时,深度学习与机器学习相比具有明显的优势。它不需要标记所有内容来发现模式。)

接下来,您需要一个您想要回答的问题。这种非结构化数据包含什么?是否有需要标签的图片?需要名字的声音?应该与书面文字相匹配的演讲?包含您要分析的多个对象的视频?或者您希望按情感或内容分组的文本?这些都是深度学习可以帮助的具体问题。如果这些符合您的问题,那么您应该选择您的算法。

简而言之:您的问题是否需要在海量的输入中识别某些对象或现象?在做出决定之前,您是否需要隔离某些事件?对这些问题回答“是”可能会导致您选择深度学习。

相似和不同

通过测量图像之间的相似性,深度学习算法可以找到一个人脸部的所有图片,并在Facebook页面上收集它们。相反,通过测量差异,它可以告诉你,如果一个未知的面孔出现在你家的入口通道中,例如晚上。它将相似之处分组,并突出显示不同之处。

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

医生每天都会在CT扫描中查找肿瘤 - 有时他们会找到它们,有时他们却找不到。医院拥有大量标记为癌症的图像,同样数量巨大的图像也不知道它是否存在。标记数据可以用作训练集,并且尚未标记的图像可以用深度学习网进行分类。

联邦储备局有足够的标记癌症病例,一个深度学习网可以开始识别更微妙的模式,医生们自己可能很难意识到这一点。

现在想象深度学习可以用相同精度的视频,声音,文本和时间序列数据进行分析。它可以识别股票移动中的面部,声音,类似文档和信号。它可能会在机场航站楼发现可疑的脸,或识别欺诈性电话的潜在音频文物。

通过按时间序列的数据和声音,它能够分析模式的开始,并填写其余部分,无论其余部分是完整的单词,还是市场中的下一个小问题。它并不关心这种模式是完全存在于现在,如面部,还是部分存在于将来,就像所说的句子一样。

特征提取

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

深度学习在没有明确告知的情况下,就可以拥有实体建立的能力,这意味着数据科学家可以通过依赖深度学习神经网络,节省数月的工作量。这也意味着数据科学家可以使用比机器学习工具更复杂的功能集。

缺乏特征反思

虽然您可以调试神经网络,但您无法将决策映射回单个功能,就像使用随机森林决策树一样。

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

在机器学习中,这些功能由工程师手动创建,他们确切地知道,他们将为算法的最终决策做出多少贡献。

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

神经网络的优点

  • 神经网络是文本的最新技术:当前部分数据在文本上很重,神经网络在自然语言处理中占主导地位。它们还提供灵活的建模选项集,同时最大限度地减少特征工程。主要的替代方案是训练相同或更复杂,例如,条件随机场或生成模型,或对文本有严重限制,例如随机森林。
  • 神经网络是图像的最新技术:现代深度学习框架,例如卷积网络,将是迄今为止处理此类数据的最佳(也许是唯一可行的)选择。
  • 神经网络可以比其他方法(例如RF或图形模型)更自然地扩展到大数据。
  • 神经网络可以利用未标记的数据:深度学习提供了各种方法,使我们能够更好地利用未标记的数据。其他方法,例如RF,不能自然地使用未标记的数据。
  • 神经网络可用于多任务学习:训练神经网络同时预测多个目标很简单。这通常可以提高性能。其他范式中的多任务学习更加有限(例如,线性模型)或困难(例如,随机森林)。
  • 神经网络学习可用于其他任务的变换数据表示:神经网络明确地学习,可以为其他任务重新利用的原始数据(隐藏层)的变换。

英文原文地址:https://github.com/deeplearning4j/deeplearning4j-docs/blob/master/why-deep-learning.md

推荐阅读
cjavapy编程之路首页