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