深度学习:信号处理和时间序列分析的最终前沿?
人们几乎每天都在使用深度学习,而应用程序的“最简单”领域是计算机视觉,自然语言处理,语音和音频分析,推荐系统和预测分析。但是在机器学习方面,还有一个领域被不公平地遗忘了—信号处理(当然还有时间序列分析)。在本文中,我将简要地回顾经典方法,并继续介绍我在Mawi Solutions中将深度学习应用于生物信号分析和算法交易的经验,以显示信号或时间序列至关重要的几个领域。我已经在巴塞罗那和利沃夫进行了一些关于这个主题的演讲,但是我想使这些资料更易于访问。
我相信,不仅使用时间序列数据的人员将从本文中受益。计算机视觉专家将了解其领域专业知识与信号处理的相似程度,NLP人员将获得有关顺序建模的一些见解,其他专业人员也可以从中受益。请享用!
信号源和时间序列
首先,地球和其周围的空间物体是信号的来源-我们测量黑子的数量和强度,不同区域的温度变化,风速,小行星速度以及许多其他事物。
当然,最常见的时间序列示例是与商业和金融相关的示例:股票价格和所有可能的衍生产品,大小企业的销售,制造业,网站活动,能源生产,政治和社会学因素等。
我们也不能忘记人类是生物信号的重要来源:大脑活动(EEG),心脏活动(ECG),肌肉张力(EMG),可穿戴设备(如脉搏)的数据,基于加速度计的活动,睡眠,压力指数-所有这些重要信号今天变得非常流行,需要对其进行分析。
当然,还有其他示例,例如来自车辆的数据,但我希望您已经看到了非常广泛的应用程序。我个人非常密切地参与了生物信号分析,尤其是心电图检查(我负责Mawi Band的ML),这家公司开发了自己的医疗级便携式心电图仪,该心电图仪可测量首导ECG。
最酷的部分是ECG数据不仅可以显示您的心脏状态,还可以显示情绪状态和压力水平,身体状态,嗜睡和精力,酒精或吸烟对心脏的影响以及许多其他情况。如果您正在进行研究,并且需要收集生物医学数据以进一步分析您的假设(甚至最疯狂的假设),那么我们将启动一个平台,使数据收集和分析过程民主化。
经典方法
在机器学习和深度学习时代之前,人们正在创建用于时间序列和信号分析的数学模型和方法。以下是其中最重要的摘要:
时域分析:这就是“看”时间序列如何随时间演变的全部内容。它可以包括宽度,时间步高,统计特征和其他“视觉”特征的分析。
频域分析:更好地表示许多信号不是通过随时间的变化,而是通过信号中的振幅以及如何变化来表示。 傅里叶分析和小波就是您的选择。
最近邻分析:有时我们只需要比较两个信号或测量两个信号之间的距离,就不能使用像欧几里得这样的常规指标来做到这一点,因为信号的长度可能不同,相似性概念也有所不同。动态时间扭曲的时间序列指标的一个很好的例子。
(S)AR(I)MA(X)模型:非常流行的数学模型系列,基于时间序列内的线性自相关性(自相关),可以解释未来的波动。
分解:另一种重要的预测方法是将时间序列分解为逻辑部分,可以将这些逻辑部分相加或相乘以获得初始时间序列:趋势部分,季节性部分和残差。
非线性动力学:我们总是忘记微分方程(通常的,部分的,随机的和其他形式的)作为对实际上是信号或时间序列的动力学系统进行建模的工具。今天,这是相当不常规的,但是DE的功能对于...来说可能非常有用。
机器学习:以上所有内容都可以为我们拥有的任何机器学习模型提供功能。但是在2018年,我们不想依靠人为偏见的数学模型和功能。我们希望使用AI来完成这项工作,而AI今天是深度学习。
深度学习
深度学习很容易。从实际的角度来看,您只需要在自己喜欢的框架中堆叠图层,并注意过度拟合。但是,一切都比这复杂。四年前,伟大的研究考虑到这种堆叠层是否是最好的,我们当然不能为一般的AI所用,但至少对于信号处理而言,是不能的。四年后,我们可能会有一个答案:神经网络是我在上一节中展示的所有领域的极其强大的工具,它们赢得了Kaggle竞争,例如销售预测和网络流量预测,它们在生物信号分析方面超越了人类的准确性,它们的交易性比我们更好也一样 在本部分中,我想谈一谈可以提供最新结果的主要深度学习方法,以及它们为何如此出色。
递归
神经网络
当我们谈论神经网络(从时间序列到语言)的任何序列分析时,我们想到的第一件事就是循环神经网络。它是专门为序列创建的,具有保持其隐藏状态并随时间学习依赖关系的能力,图灵功能完善,并且能够处理任何长度的序列。但是,正如最近的研究表明的那样,我们几乎没有在实践中使用这些好处。此外,我们遇到了许多问题,这些问题使它们无法处理太长的序列(这就是我们在以高频采样率(例如500–100 Hz)进行流信号处理时所遇到的问题),有关更多详细信息,请查看读数。列出本文的结论。根据我的个人经验,只有当我们处理相当短的序列(10-100个时间步长),每个时间步长上具有多个变量(可以是多元时间序列或词嵌入)时,递归网络才是好的。在所有其他情况下,我们最好选择下一个。
卷积神经网络
CNN非常适合用于计算机视觉,因为它们能够捕获图像甚至3D体积数据中的最佳细节(局部模式)。为什么我们不将它们应用于更简单的一维数据?考虑到我们要做的所有事情,我们绝对应该这样做-采取开源的最先进的深度学习架构,例如ResNet或DenseNet,并用1D卷积代替2D卷积(不要开玩笑!)。它们表现出出色的性能,速度快,可以并行优化,在分类和回归上都可以很好地工作,因为时间序列中所有局部模式的组合就是它们的定义。我已经对它们进行了很多次基准测试,它们大多优于RNN。我只能补充一点,当我处理信号时,我有两个主要基线:逻辑回归和2到3层CNN。
CNN + RNN
RNN和CNN是您可能期望的,但让我们考虑更有趣的模型。局部模式是好的,但是如果我们仍然暗示这些模式在时间上有依赖性(但RNN超过原始信号不是最佳选择)呢?我们只应该记住,使用不同的池化技术,卷积网络在降维方面表现良好,在这些简化的表示形式下,我们已经可以运行递归神经网络,其“物理意义”将是“检查一段时间内局部模式之间的依赖性”,对于某些应用程序的意义。您可以在上方看到该概念的视觉插图。

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!