第一章
为什么使用深度学习进行模式识别?
深度学习被用来开发可以在数据中找到模式的模型;然而,它并不是唯一能够做到这一点的方法。本章探讨了选择深度学习而不是其他方法的一些原因。
一旦对模型进行了训练,就可以输入未标记的数据,并且模型将根据训练时学习到的信息应用最可能的标签。
这些非深度学习方法的好处在于其逻辑更易于理解,并且使用的相对简单的数据数量更少。当你训练一个深度神经网络时,解释它工作的原因可能很困难,而且这个网络需要更多高质量的标记数据来进行训练。考虑到这一点,为什么有人会选择深度学习而不是其他方法呢?一个原因是,深度学习非常适合在大型解决方案空间中寻找真正复杂的模式。
例如,您可能希望在图像中找到并标记特定的对象以进行对象跟踪和定位,或者您可能希望通过视觉检查硬件的缺陷和材料损坏
在这些例子中,图案是像素的特定组合,代表行人或碎裂的混凝土。这些是复杂的模式,不同的实例可能有很大的不同,或者它们可能以微妙的方式不同,与其他模式几乎没有区别。因此,您所选择的算法不仅需要对这些复杂的模式进行分类,而且还必须在一个非常大的解决方案空间中进行分类。
复杂模式也存在于非图像数据中。在音频信号中,您可能需要识别口语单词或从几秒钟的片段中识别一首歌曲。
在时间序列信号中也存在复杂的模式,如预测性维护应用程序和生物医学行业中的模式。
在所有这些情况下,解决方案存在的复杂性和范围可能使人们很难提出基于规则的方法,在这种方法中,人类必须自己设计和管理逻辑。在这方面,深度学习可以成为更好的方法。
注:电子书中的例子着重于分类,其中离散标签应用于数据。然而回归,其中,模型的输出是一个连续值而不是一个离散标签,这也可能与深度学习。了解如何训练卷积神经网络(CNN)进行回归。
深度学习使用深度神经网络来建模输入数据和输出分类之间的关系。神经网络的细节超出了本章的范围;但是,可以用一种简单的方式将网络看作一系列层,每个层对数据执行特定的操作。早期图层倾向于查找较大图案中存在的较小特征,然后后期图层查看这些特征的组合,以确定数据的最可能标签。
如果你知道所有的定义特征
您可以从寻找一个简单的基于规则的方法来解决这个问题开始。一个解决方案可能是使用一个已知的击掌轮廓,你可以与来自传感器的连续加速度测量流进行模式匹配。例如,一个函数可以查看两个信号之间的标准偏差,当偏差低于某个阈值时,可以声称有一个击掌。
然而,这种方法的困难在于,每一个high five都不一样。有些人可能会更快或更慢地移动他们的手,在大耳光之前暂停,或者只是以一种奇怪的方式击掌。即使你能想出一个有代表性的轮廓,或一组轮廓,像这样的方法可能不会对它以前从未见过的高五度运动有鲁棒性。另外,如果您添加了太多的配置文件或提高了标准偏差阈值以确保捕获每一个high five,那么您就有可能将动作错误标记为high five。
一个更聪明的方法可能是认识到,不要把模式作为一个整体来看待,因为它可能有很大的变化,而是可以找到一组更小的特性,每个击掌都有共同之处。
您可以声称慢-慢-快加速是一个击掌,即使你观察到一个新的击掌,你没有明确地收集数据。例如,这些击掌看起来不同,但它们表现出相同的慢-慢-快加速特性。
通过查找较小的特征,并查看它们出现的时间和顺序,您可以设计一个比简单的全模式匹配算法更好的基于规则的分类器。
像这样基于规则的分类器的困难在于,您需要非常熟悉所寻找的模式,以确保您定义了正确分类所需的最佳特性。你还需要确信你已经处理了所有的变化,这样你就不会无意中把你的算法偏向于矮小的人、害羞的人、其他文化等等。对于非常复杂的模式,这可能需要花费时间,甚至不可能手动完成。
如果你不知道所有的定义特征
深度学习可以帮助解决这个问题。模式的特征,即使是非直觉的特征,都是自动学习的,无需设计师明确定义它们。因此,如果您试图对数据中的复杂模式进行分类,而又无法定义将该模式与其他模式区分开来的所有规则,那么深度学习可能是一个很好的选择。
请记住,深度学习有它自己的一套要求。您需要大量有质量标记的数据,需要正确的网络架构,还需要确保网络可以部署到目标处理器,并在分配给它的时间内执行。本电子书的以下章节将阐述这些要求。