精华内容
下载资源
问答
  • 深度学习进行时间序列模式识别

    万次阅读 2016-03-13 19:56:55
    思路:将时间序列转化为图像类似的格式,然后进行CNN识别。 http://danielnouri.org/notes/2014/01/10/using-deep-learning-to-listen-for-whales/ Using deep learning to listen for whales January 10, ...


    思路:将时间序列转化为图像类似的格式,然后进行CNN识别。


    深度学习在流量识别中的应用

    http://wenku.baidu.com/link?url=5MHAlbaAFX8g9uCnWyR6RGEsWdka7suaR3bFLanZ-ZOlsPgmEvErHApDslC1HI73zrmTLAyEQQGMzCVU799gyS4opj-pjeXyP4KYsuQRZnC


    http://danielnouri.org/notes/2014/01/10/using-deep-learning-to-listen-for-whales/

    Using deep learning to listen for whales

    January 10, 2014 | categories: PythonBiologyProgrammingBioacousticsMachine Learning | 31 Comments

    Since recent breakthroughs in the field of speech recognition and computer vision, neural networks have gotten a lot of attention again. Particularly impressive were Krizhevsky et al.'s seminal results at the ILSVRC 2012 workshop, which showed that neural nets are able to outperform conventional image recognition systems by a large margin; results that shook up the entire field. [1]

    Krizhevsky's winning model is a convolutional neural network (convnet), which is a type of neural net that exploits spatial correlations in 2-d input. Convnets can have hundreds of thousands of neurons (activation units) and millions of connections between them, many more than could be learned effectively previously. This is possible because convnets share weights between connections, and thus vastly reduce the number of parameters that need to be learned; they essentially learn a number of layers of convolution matrices that they apply to their input in order to find high-level, discriminative features.

    http://danielnouri.org/media/deep-learning-whales-krizhevsky-lsvrc-2012-predictions.jpg

    Figure 1: Example predictions of ILSVRC 2012 winner; eight images with their true label and the net's top five predictions below. (source)

    Many papers have since followed up on Krizhevsky's work and some were able to improve upon the original results. But while most attention went into the problem of using convnets to do image recognition, in this article I will describe how I was able to successfully apply convnets to a rather different domain, namely that of underwater bioacoustics, where sounds of different animal species are detected and classified.

    My work on this topic began with last year's Kaggle Whale Detection Challenge, which asked competitors to classify two-second audio recordings, some of which had a certain call of a specific whale on them, and others didn't. The whale in question was the North Atlantic Right Whale (NARW), which is a whale species that's sadly nearly extinct, with less than 400 individuals estimated to still exist. Believing that this could be a very interesting and meaningful way to test my freshly acquired knowledge around convolutional neural networks, I entered the challenge early, and was able to reach a pretty remarkable Area Under Curve (AUC) score of roughly 97% after only two days into the competition. [2]

    http://danielnouri.org/media/deep-learning-whales-leaderboard.png

    Figure 2: The Kaggle leaderboard after two days into the competition.

    The trick to my early success was that I framed the problem of finding the whale sound patterns as an image reconition problem, by turning the two-second sound clips each into spectrograms. Spectrograms are essentially 2-d arrays with amplitude as a function of time and frequency. This allowed me to use standard convnet architectures quite similar to those Krizhevsky had used when working with the CIFAR-10 image dataset. With one of few differences in architecture stemming from the fact that CIFAR-10 uses RGB images as input, while my spectrograms have one real number value per pixel,not unlike gray-scale images.

    http://danielnouri.org/media/deep-learning-whales-spectrogram.jpg

    Figure 3: Spectrogram containing a right whale up-call.

    Spurred by my success, I registered for the International Workshop on Detection, Classification, Localization, and Density Estimation (DCLDE) of Marine Mammals using Passive Acousticsin St Andrews. A world-wide community of scientists meets every two years at this workshop to discuss the latest developments in using passive acoustics (listening for sounds) to detect and track marine mammals.

    That there was such a breadth of research around this topic was entirely new to me, and it was fascinating to learn about it. Another thing that I've since learned is that this breadth is sadly dwarfed by the amounts of massive underwater noise that humans produce today, through shipping, oil exploration, and military sonar. And this noise severely affects the lives of animals for which "listening is as important as seeing is for humans – they communicate, locate food, and navigate using sound."

    The talk that I gave at the DCLDE 2013 workshop was well received. In it, I elaborated how my method relied on little to no problem-specific human engineering, and therefore could be easily adapted to detect and classify all sorts of marine mammal sounds, not just right whale up-calls.

    At DCLDE, the execution speed of detection algorithms was frequently quoted as being x times faster than real-time, with x often being a fairly low number around 1 to 10. My GPU-powered implementation turned out to be on the faster side here: on my workstation, it detects and classifies sounds 700x faster than real-time, which means it runs detections on one year of audio recordings in roughly twelve hours, using only a single NVIDIA GTX 580 graphics card.

    In terms of accuracy, it was somewhat hard to get an idea of which of the algorithms presented really worked better than others. This had two reasons: the inconsistent use of reliable metrics such as AUC and use of cross-validation, and a lack of standard datasets that everyone could test their algorithms against. [3]

    However, it should be mentioned that good datasets are a bit tricky to come by in this field. The nature of hydrophone recordings is that the signal you're listening for could be generated a few meters away, or many kilometers, and therefore be very faint. Plus, recordings often contain a lot of ambient noise coming from cargo ships, offshore drilling, hydrophone cable flutter, and the like. With the effect that often it's hard even for a human expert to tell if the particular sound they're listening to is a vocalization of the mammal they're looking for, or just noise. Thus, analysts will often label segments as unsure, and two analysts will sometimes even give conflicting labels to the same sound.

    width="420" height="315" src="http://www.youtube-nocookie.com/embed/1WFnX4zO9GU?rel=0" frameborder="0" allowfullscreen="" style="box-sizing: border-box;">

    Four NARW up-calls that are easy to detect.
    (Here's a much messier example. And some more fascinating recordings of marine mammals.)

    This leads to a situation where people tend to ignore noisy sounds altogether, since if you consider them, predictions become difficult to verify manually, and good training examples harder to collect. But more importantly, when you ignore sounds with a bad signal-to-noise ratio (SNR), your algorithms will have an easier time learning the right patterns, too, and they will make fewer mistakes. As it turns out, noise is often more of a problem for algorithms than it is for human specialists.

    The approach of ignoring sounds with a bad SNR seems fine until you're in a situation where you've put a lot of effort into collecting recordings, and then they turn out to be unusually noisy, and trying to adjust your model's detection threshold yields either way too many false positives detections, or too many calls are missed.

    One of the very nice people I met at DCLDE was Holger Klinck from Oregon State University. He wanted to try out my convnet with one of his lab's "very messy" recordings. Some material that his group at OSU had collected at five sites near Iceland and Greenland in 2007 and 2008 had unusually high levels of noise in them, and their detection algorithms had maybe worked less than optimal there.

    http://danielnouri.org/media/deep-learning-whales-osu-iceland-detections.png

    Figure 4: "Locations of passive acoustic moorings near Iceland and southern Greenland (black spots), and the number of right whale upcalls detected per day in late 2007 at the five sites." Taken from [4]. Note the very low number of calls detected at the CE and SE sites.

    I was rather amazed when a few weeks later I had a hard disk from OSU in my hands containing in total many years of hydrophone recordings from two sites near Iceland and four locations on the Scotian Shelf. I dusted off the model that I had used for the Kaggle Whale Detection Challenge and quite confidently started running detections on the recordings. Which is when I was in for a surprise: the predictions my shiny 97% model made were all really lousy! Very many obvious non-whale noises were detected wrongly. How was it possible?

    To solve this puzzle, I had to understand that the Kaggle Whale Detection Challenge's train and test datasets had a strong selection bias in them. The tens of thousands of examples that I had used to train my model for the challenge were unrepresentative of all whale, and particularly, a lot of similar-sounding non-whale sounds out there. That's because the Kaggle challenge's examples were collected by use of a two-stage pipeline, where an automated detector would first pick out likely candidates from the recording, only after which a human analyst would label them with true or false. I realized that what we were building in the Kaggle challenge was a classifier that worked well only if it had a certain detector running in front of it that would take care of the initial pass of detection. My neural net had thus never seen during training anything like the sounds that it mistook for whale calls now.

    If I wanted my convnet to be usable by itself, on continuous audio recordings, and independently of this other detector, I would have to train it with a more balanced training set. And so I ditched most of the training examples I had, and started out with only a few hundred, and trained a new model with them. As was expected, training with only few examples left me with a pretty weak model that would overfit and make lots of obvious mistakes. But this allowed me to pick up the worst mistakes, label them correctly, and feed them back into the system as training examples. And then repeat that. (A process that Olivier Grisel later told me amounts to active learning.)

    Many (quite enjoyable) hours of listening to underwater sounds later, I had collected some 2000 training examples this way, some of which were already pretty tricky to verify. And luckily, the newly trained model started to make pretty good predictions. When I sent my results back to Holger, he said that, yes, the patterns I'd found were very similar to those that his group had found for the Scotian Shelf sites!

    http://danielnouri.org/media/deep-learning-whales-my-scotian-shelf-detections.png

    Figure 5: Number of right whale up-call detections per hour at two sites on the Scotian Shelf, detected by the convnet. The numbers and seasonal pattern match with what Mellinger et al. reported in [5].

    The OSU team had used a three-stage detection process to produce their numbers. Humans verified in phases two (broadly) and three (in more detail) the detections that the algorithm came up with in phase one. Whereas my detection results came straight out of the algorithm.

    A case-by-case comparison still needs to happen, but the similarities of the overall call patterns suggests that the convnet reaches comparable performance, but without the need for human analysts to be part of the detection pipeline, making it potentially much more time-efficient to use in practice.

    What's even more exciting is that the neural net was able to find right whale up-calls at the problematic SE site near Iceland, where previously no up-calls could be detected due to high noise levels.

    http://danielnouri.org/media/deep-learning-whales-my-iceland-detections.png

    Figure 6: NRW up-call detections per day at sites SW and SE near Iceland, detected by the convnet. The patterns at the SW site match roughly with what was reported in [4], while no calls could be identified previously at the SE site (cf. Figure 4).

    Another thing we're currently looking into is wheter or not the relatively small but constant number of calls that the convnet detected during Winter season are real, or if they're false positives. Right whales are not known to hang around so high up North during that time of the year, so proving that would constitute significant news for people studying the migration routes of these whales.

    (Comments also on Hacker News.)

    [1]For a more detailed history and recent developments around neural nets, see this article in Nature: "Computer science: The learning machines".
    [2]See the mention of my results in this Wired article: "Wanted: Right Whale Caller ID".
    [3]For a comparison of machine learning algorithms in use, see: Mellinger DK, et al. 2007. An overview of fixed passive acoustic observation methods for cetaceans. Oceanography 20:36–45.
    [4](12) Mellinger DK, et al. 2011. Confirmation of right whales near a historic whaling ground east of Southern Greenland. Biol Lett 7:411−413
    [5]Mellinger DK, et al. 2007. Seasonal occurrence of North Atlantic right whale (Eubalaena glacialis) vocalizations at two sites on the Scotian Shelf. Mar. Mamm. Sci. 23, 856–867.

    展开全文
  • 依照某AR模型生成一段数据(1000),同时...1)依赖于这1200个数据的前800个数据,识别这段数据背后的AR模型。 2)在1)的基础上对新数据进行预测,并通过后续的400个数据进行判别(数据模型是否匹配)或者模型的修正。
  • 基于时间序列分析的人体运动行为模式识别研究; 行为识别;时间序列分析;小波阈值降噪;长短时记忆;隐马尔科夫模型
  • 为了对局部放电进行识别,建立并使用电脉冲...利用径向基(RBF)神经网络对相间局部放电(PRPD)和局部放电的混沌分析(CAPD)方法分别作了模式识别的效果验证和比较,表明两者的识别结果良好且各有优势.综合选取PRPD模式的统
  • 一文了解时间序列异常检测

    千次阅读 2020-12-08 20:19:36
    背景介绍 「时间序列」是指某一个指标按照时间的统计或者观测而成...「异常检测」是指对反常的、和历史不同的行为模式识别。如某台一直空闲的机器,CPU使用率突然飙升至100%、某系统在本应业务繁忙的时间段请求数量降.

    转载自 https://mp.weixin.qq.com/s/g6xwiRYhNyulwLlBYLh-4Q?scene=25
    仅仅用于学习方面,如有侵权,请联系 root@smileyan.cn

    背景介绍

    「时间序列」是指某一个指标按照时间的统计或者观测而成的数列。比如,在运维的领域中,某主机每秒的CPU使用率、某业务每分钟的请求数量等,都可以形成一条时间序列;「异常检测」是指对反常的、和历史不同的行为模式识别。如某台一直空闲的机器,CPU使用率突然飙升至100%、某系统在本应业务繁忙的时间段请求数量降为0等等。

    由于时间序列可视化成本低、含义明确、规律明显,因此经常被用于运维领域中监控系统的运行状态。由于系统的逐渐庞大,单纯的人力已经不能满足日益增长的监控需求,于是大家开始使用基于规则的异常检测手段,通过机器帮助人判断系统的健康程度。随着场景的继续深入以及相关算法的研究发明,更多的算法被应用于这一领域中,本文将从数据场景、实际场景中面临的挑战、常用的算法三个方面来进行介绍。

    数据场景

    「时间序列」是一个很宽泛的集合,不同领域与监控对象的时间序列可能会表现出完全不同的形态,根据监控对象的不同常分为:业务指标、机器指标、网络指标等等。

    一般情况下,当我们对业务进行监控时,会按照某种粒度(如每分钟)来统计几个指标,包括:

    • 交易量(请求数):一共有多少请求数量
    • 平均响应时间(平均耗时):所有请求的平均响应时间
    • 响应率(系统成功率):占比多少的请求获得一个响应
    • 成功率(业务成功率):占比多少的请求是业务成功的
    • ……

    这些指标形态各异,且相同含义的指标在不同行业(如银行某业务的交易量和券商某服务的请求数)的指标特点也不尽相同。

    例如,下图即为不同业务的交易量指标,呈现出很强的周期性,而根据实际业务情况的不同,二者形态上会有一些区别。

    在这里插入图片描述
    下图为某系统的响应时间指标,夜间由于交易较少,呈现出较大波动的特性。
    在这里插入图片描述
    运维领域中,我们经常会对机器指标进行监控,来反映机器是否健康运行,下图为不同监控对象的内存指标。
    在这里插入图片描述
    时间序列在各个领域都很常见,下图是物联网领域中某电机的电流大小指标。
    在这里插入图片描述

    实际场景中面临的挑战

    数据形态各异

    正如上文关于数据场景的介绍,不同指标、甚至不同领域的相同含义的指标,形态也都有较大的差别,难以用一套经验、一种算法来去进行异常检测。

    缺少标注

    由于数据量大、异常情况较多,导致模型训练需要进行大量的数据标注,而真实生产环境中有经验的运维人员日常工作是十分繁重和忙碌的,很难完成统一的系统标注。

    实际场景问题

    实际场景中,会遇到很多现实的问题,如

    • 节假日、活动日的数据表现和平时可能有较大差异
    • 监控目标存在变更或者切换导致指标发生较大的模式改变
    • 数据每天存在一个固定的尖峰(如跑批的压测等),以及发生时间可能有一定的偏差
    • 数据在固定时间存在缺失,或由于数据采集等问题导致数据缺失较长时间
    • 数据有一定的周期特性,但是每个周期的数据绝对值上有一定的差距

    效率问题

    有些算法训练效率较低、或者检测效率较低,难以适应大规模数据量的检测。

    常用算法

    某些情况下,固定阈值可以成为一个比较好的监控方式,如CPU使用率不能长时间超过90%、稳定的系统响应率不能低于99%等等,但是正如上文所述,由于我们实际场景中有各种各样复杂的问题,导致固定阈值的适用范围较小,同时会产生不小比例的误报和漏报。

    统计方法

    最常用的方法就是基于k-sigma的同比算法,这是一个快速而且有效的算法。简单来说,即当前数据点的状态由之前不同周期的相同位置数据(比如上周或者前一天的同一时刻)决定,通过历史同期的数据分布来确定当前数据的合理波动范围。它的初始假设,是局部数据符合正态分布,所以超出均值±3*标准差的数据是极有可能异常的。

    这个算法有效利用了历史同期的数据,避免了全局使用唯一的固定阈值来衡量是否异常,同时还具有算法计算快速、原理易懂可解释的优点。

    在实际场景中,很多数据是不符合这种正态分布的假设的,具体使用的标准差倍数仍然是需要设置且很难全局统一的,实际场景中绝不是简单的3倍就可以的。比如某交易量指标在每天业务开始的时候急速上升,导致附近的数据标准差极大;比如数据在每个周期同样的位置有一个尖刺,那么就会显著拉大附近数据的标准差,导致其他位置的数据合理范围变得更宽泛。同时,数据绝不是平稳的、每个周期完全一样的, 很难用单一的统计方式来解决。

    预测方法

    预测方法是异常检测中最常用的方法,基本思路是通过比较预测值和真实值的差异,判定是否异常。它包括传统的时序预测模型ARIMA、渐进梯度回归树GBRT、长短时记忆网络LSTM以及Facebook开源算法Prophet等等。

    篇幅原因,这里我们仅针对每个算法的适用范围和局限进行讨论,不再介绍其原理。

    • ARIMA:适合用于平稳的,较少突增/突降的数据的预测。ARIMA算法使用前一段数据来预测下一个时间点的数据,因此会导致预测有一定的滞后性,易受到异常值的影响;同时需要进行大量的平稳性检验、参数估计等工作。ARIMA共有7个参数,如何选取到合适的参数本身就是一个难题,而考虑季节性因素的升级版SARIMA由于训练开销大,导致自动选取参数极为困难,一般情况下的做法是预设一组参数。

    • GBRT:适用于形态较稳定,有周期特性的数据。为了使GBRT展现更好的算法效果,需要一定的人工经验提取到有效特征。而由于单棵回归树生成的不确定性,导致每次训练后的模型可能产生较大差别,检测结果不稳定同时可解释性也较弱。

    • LSTM:适用于高频、形态不限的数据。LSTM同样是使用前一段数据来预测下一个时间点的数据,也有着类似的局限。另外,我们日常所见的数据时序属性较弱,统计属性更强(比如1,2后面跟着的不一定是3,更可能是1,因为上周期同位置是1),不太适合LSTM来发挥效果。

    • Prophet:适用于形态较稳定,有周期特性的数据,同时考虑了节假日的特性。由于Prophet采用傅里叶级数来处理周期性因子,导致一般夜间(波动较小)的数据情况较难预测准确;它更关注整体的波动状态,对一些局部信息的捕捉较差。

    姑且不谈实际场景下要实现准确预测确实是一件很难的事情(上述算法并没有某个单一算法能够适应我们日常中所接触到的各类数据),所有基于预测的方法都面临一个问题:“偏离预测值多少才算异常?”我们一般会采用训练集误差的某个百分位数或误差的均值+k倍的标准差等方法,其实很难做到特别准确。而在面对每个时间段数据绝对数值不同的情况时,更是如此。

    有监督学习方法

    有监督的算法有很多,如基于树模型的随机森林、lightGBM,神经网络MLP等等,其整体思路是提取各种各样的统计特征(如前几个数据点的原始值,最近一段时间的均值、标准差、偏度等等),直接丢给模型去训练,算法会根据标注自动选择最有效的特征用以建模。有监督算法往往可以获得更高的算法准确度,但缺点也是十分明显的——最大的问题就是,我们需要大量的人工标注,覆盖全面的数据类型和异常情况,而这在实际场景中是极难实现的。实际生产中,我们极少考虑这类算法,除非异常场景很明确且历史中存在多次相似的情况。

    深度学习生成模型

    最近几年,通过深度学习生成模型来做异常检测的算法越来越多,效果甚至可以超过一般的有监督学习方法,常见模型有生成对抗网络GAN、变分自编码器VAE等。VAE的原理可以简单理解为:将高维数据压缩至某一个特定维度大小,采样后将其还原至与原始数据同样的维度。其学习的目标是尽可能缩小还原的数据与原始数据之间的差距。基于“数据正常的模式高频出现,而异常极少出现”的想法,「压缩-还原」的过程会找到主要数据模式,而不会将异常模式进行还原。这样,通过还原数据和真实数据的差值大小,可以推测数据的异常程度。

    生成模型的优势就是算法准确率高、极少人工干预,但单纯的算法仍存在一些不足。如需要长时间表现稳定的历史数据,需要较长的训练时间,且同样会面临衡量差值大小与异常的关系这类问题等等。

    必示业务指标异常检测

    根据实际场景中遇到的各种挑战,以及参考各个算法擅长的场景类型,必示异常检测的整体架构设计如下图所示:
    在这里插入图片描述
    我们知道,kpi的形态各异,而每种数据形态所适应的检测算法或应提取的特征都是不尽相同的。所以对于一条时间序列,首先在「特征描述器」部分对其特征进行表述。关注的特征包括:

    • 时间序列的周期特性
    • 时间序列的趋势特性
    • 时间序列的抖动程度
    • ……

    根据时间序列的特征,计算资源的分配以及历史数据长度,在「检测器」部分自动匹配不同模型组合与不同特征生成,进行针对性训练并生成全新模型。在这一过程中,不同模型提供的算法包括:

    • 变分自编码器

    • 渐进梯度回归树

    • 极值理论

    • 周期性尖峰消失检测

    • ……

    在「分类器」中对不同模型的结果进行组合,得到最终的预测合理范围(基带),在此基础之上进行实时的异常检测,并同时支持横向拓展检测数据。

    总结

    必示业务指标异常检测是基于真实的业务场景而生。除了使用目前业界表现突出的异常检测算法组合,还针对各种日常运维中遇到的特殊情况做了大量算法层面的优化(如跑批行为、变更行为、特殊日),可以更好地适应实际需求,减少由此带来的误报和漏报。通过对历史数据的学习,自动分析合理的动态阈值,减少人工配置「一刀切」导致的难以平衡阈值准确性与包容性的问题。

    转载自 https://mp.weixin.qq.com/s/g6xwiRYhNyulwLlBYLh-4Q?scene=25
    仅仅用于学习方面,如有侵权,请联系 root@smileyan.cn

    展开全文
  • 该程序要求提供非度量数据(由类别或等级组成的数据)的时间序列,并将确定数据中是否存在重复模式。 在排名数据的情况下,用户可以定义哪些排名应该被视为单个组的一部分,或者让程序根据 Legendre 等人中描述的...
  • 财务风险识别的研究具有十分重要的意义,针对当前财务风险识别方法存在误差大、效率低等弊端,以提高财务风险识别正确率为目标,提出了模式识别技术的财务风险识别方法。对当前各种财务风险识别方法进行分析,找到...
  • 为了能有效支持识别多种相似性形变,提出涨落模式(FP)的概念,以涨落模式保存原序列的趋势变化信息,利用最长公共子序列算法计算涨落模式的相似度,消除振幅伸缩、振幅漂移和线性漂移等对相似性挖掘带来的影响,...
  • 时间序列分割方法综述,孙文远,苏晓龙,随着数据库知识发现(KDD)和模式识别等计算技术的发展,时间序列包含的数据量大,维数高,更新快。因此,时间序列的分割就显得必不�
  • 模式识别大作业K近邻算法

    热门讨论 2013-05-14 20:56:40
    模式识别大作业K近邻算法(KNN)C++实现,内有iris和wine数据测试以及其他相关资料。
  • 通过这种方式,DTW-NN能够解决时间序列识别的困难,例如在前馈结构中的时间失真和可变模式长度。结合在4个不同的数据集上的实验,证明了DTW-NN的有效性:在线手写字符、基于加速度计的活跃的日常生活活动、阿拉伯...
  • 混沌性时间序列的分析方法:EEMD+相空间重构

    千次阅读 多人点赞 2019-10-30 22:55:05
    接下来,要结合我的研究方向,在机械振动时间序列信号的基础上,做出故障的诊断和预判。 由于篇幅的限制,本文以轴承信号为例,着重讨论混沌性的判定方法。 背景 老师曾不止一次问我,为什么要用混沌做故障诊断呢...

    一.引言

    上一篇文章中,我们理解了混沌理论的发展、定义以及特点。

    接下来,要结合我的研究方向,在机械振动时间序列信号的基础上,做出故障的诊断和预判。

    时间序列也是结构化的数据,每一个时间戳下就有一个值。通常来说,研究时间序列有两个目的,那就是对时间序列进行预测或者异常检测。混沌时间序列广泛存在于自然和人工环境中,常常需要进行预测。

    混沌时间序列由混沌系统产生,具有与一般时间序列不一样的特性。其外在表现类似随机,对初始状态敏感,使其长期不可预测。但其本质上是由确定性的非线性动力系统产生的,使其短期可预测。对于混沌时间序列的预测,宜恢复混沌系统信息,充分利用其混沌特性,以取得较好的预测。

    由于篇幅的限制,本文以轴承信号为例,着重讨论利用混沌分析的背景、混沌性时间序列的分析方法。

    二.背景

    老师曾不止一次问我,为什么要用混沌做故障诊断呢?混沌特征的现实意义在哪里?

    一般来说,振动烈度、峰值因子、偏态和峭度是判断滚动轴承故障的常用特征值。但实际上,当轴承出现微弱故障时,其振动烈度不一定突然变大,很难在测量得到的振动信号中分辨提取出故障特征。

    滚动轴承故障早期,故障信号非常微弱,受到的噪声干扰大,以致信噪比低,有用信号被淹没在背景噪声中,早期故障检测即实现在强噪声背景下的微弱信号检测。传统的检测方法多采用降噪消噪的方法抑制噪声,如高阶谱分析,小波降噪分析等,但势必会对有用信号产生一定影响,从而造成诊断精度不高甚至误检`漏检。利用混沌振子的微弱信号检测方法可以无视噪声的影响,专注于微弱信号的检测。

    混沌故障诊断是振动分析法中的一个重要分支。混沌系统对初始条件的敏感依赖,是系统内在的、固有的随机性引起的,这是非线性系统在一定条件下表现出的特有现象。由于混沌系统对初始条件和参数的极度敏感,只要将被测的微弱信号加入到混沌系统中,就会导致该混沌系统的动力学行为发生本质的变化,应用这一特点可以检测噪声背景下的微弱故障信号。滚动轴承的故障信号往往是具有一定特性的微弱正弦信号,而混沌系统对特定频率的微弱正弦信号具有敏感依赖性,可以有效地判断出故障部位。

    综上所述,通过开展故障诊断技术研究及故障趋势预测技术研究,可以识别故障形式及故障程度,预知未来一定时间范围内的故障发展趋势,提前制定维修策略,避免非计划停机以及灾难性事故发生,这对保障生产安全,降低生产成本具有十分重大的意义

    三.信号噪声处理方法

    在对数据进行混沌特征分析,表明系统具有混沌特征之后。我们需要提取信号中的有效成分,就无可避免地需要考虑,对信号噪声的处理方法。从数据的角度,可以看作是,为了减小噪声干扰,对数据进行的一种预处理。

    滤波器法

    该方法通过对信号进行频谱分析,得到对应的高频分量和低频分量,人为地将低频分量和高频分量进行截断,完成信号的降噪工作。

    奇异谱分析方法

    基于主分量的奇异谱分析方法(singular-spectrum analysis,SSA) 是利用信号与噪声的能量可分性,对含噪信号进行分解的方法。该方法认为经奇异值分解后,有限个较大的特征值对应着信号的有效成分,其余较小的特征值为噪声,通过保留原信号较大的特征值分量,并去除掉较小的特征值分量,达到降噪的目的。

    小波降噪

    小波分析方法将原始信号通过伸缩和平移后,分解成一系列具有不同空间、不同频率和方向特性的子带信号,并通过在不同的时频范围内选取不同的阈值,滤除被噪声干扰的部分。

    局部投影降噪方法

    局部投影降噪方法以相空间重构为基础,在相空间邻域内对各状态向量进行正交投影,并计算所有状态向量的协方差矩阵。该方法认为该协方差矩阵较大的特征值对应纯净信号吸引子的流形方向,较小的特征值则对应噪声

    前三个方法主要依赖于对阈值的把控,而由于局部投影降噪算法不必预知非线性动力系统的特性和准确的数学模型,就可以在噪声分布频带较宽的情况下完成信号的降噪工作,所以该方法非常适合处理混沌特性明显的滚动轴承振动信号,具有一定的发展潜力。

    四、信号分析方法

    考虑完对信号噪声的处理方法,从另一个角度,我们开始思考,如何更有效的提取有用信息。常用的分析方法有

    时域统计量分析法

    时域统计量分析方法直接对滚动轴承的时域信号进行分析,常用的时域统计指标有:均值、方差、有效值、峰值、峰峰值、峭度、波形指标、裕度指标、脉冲指标等。方便提取,计算简单的特点,在一些简易诊断中得到广泛应用

    频域分析法

    滚动轴承由于故障的出现会使振动信号的频率结构发生改变,因此通过频谱分析的方法,如幅值谱分析、功率谱分析、倒谱分析和包络解调分析等,提取可以表征故障信息的特征,进行进一步的诊断工作。

    时频分析法

    许多适合处理非平稳信号的时频分析方法被提出并得到了广泛应用,如短时傅里叶变换、Gabor 变换、小波分析、自适应时频分析方法等。经验模态分解(Empirical Mode Decomposition,EMD)方法是一种适用于非线性非平稳信号的时频分析方法。可以对不同故障类型及故障程度的滚动轴承故障样本进行较好地特征提取,为后续采用人工神经网络及支持向量机等模式识别方法进行故障诊断奠定基础。

    五、EEMD的信号研究

    EEMD的引入

    EMD与常用的傅里叶变换、短时傅里叶变换和 Wavelet分析等不同,它没有固定的先验变换函数,但具有小波变换的多分辨率特点,同时克服了小波变换中小波基选取的困难,是一种本质自适应的局域波分解方法。

    EMD方法应用是广泛的,在不同领域也已经取得了巨大的成功,但由于该方法应用时存在着端点效应、模态混叠等各类问题。研究EMD存在3个固有缺陷:
    端点效应、拟合过冲、模态混叠

    通过研究模态混叠现象,其本质是分解信号获得的本征模态函数(Intrinsic Mode Function, IMF)之间产生了一定的信息耦合现象,使得 IMF 分量不能正确地反映信号的真实成份。

    为消除EMD方法出现模态混淆,集合经验模式分解通过添加白噪声消除EEMD的不足,为信号诊断预测提供了新方法,应用于电力系统故障信号检测。

    EEMD分解步骤如下:

    1向原始信号中加入白噪声序列
    2对添加白噪声的信号进行EMD分解分解得到一系列的IMF
    3.重复上述两个步骤,但要求每次加入白噪声序列是不同的。
    4.最终的分解结果是,计算每次得到的对应IMF的集成平均值。

    举一个例子
    (EMD)——IMF的物理含义

    通过这个例子的说明,我们可以得到EMD的一大特点:自适应地进行信号主要成分分析(不是PCA)。也就是说,EMD分解信号不需要事先预定或强制给定基函数,而是依赖信号本身特征而自适应地进行分解,得到本征模态分量IMFs。

    六、相空间重构

    我们经过EEMD 得到了本征模态分量IMFs,那么如何利用这些分量呢?
    一种思路是将其利用GP算法,运算后得到重构相空间,对参数然后直接丢入NN,进行训练
    另一种思路是利用GP算法,运算后得到重构相空间,以及一系列特征,放入SVM,或者其他模型中。

    无论如何,都离不开相空间重构的方法,那么,所谓的相空间重构是什么呢?

    为什么用相空间重构技术?

    为了预测混沌时间序列,最好的方法就是研究产生该时间序列的动力系统。如果我们知道原动力系统的确切形式,那么一切问题都迎刃而解,因为动力系统是确定性的,我们可以知道任意时刻的系统状态,也就得到了该混沌时间序列的在任意时刻的确切取值。

    另外,再重构像空间中,我们可以得到

    由于混沌时间序列蕴含着系统信息,一个自然的想法就是,设法从观察序列中近似恢复出原动力系统,这样就可以对混沌时间序列进行预测,这就是相空间重构的出发点与意义。

    要想利用混沌时间序列中蕴含的混沌系统信息,就要设法恢复产生它的原始混沌系统。想要精确地恢复混沌系统是不可能的,我们可以从另外的途径间接得到系统信息,那就是反映系统状态演化规律的相空间。相空间重构技术用于恢复混沌系统的相空间,相当于恢复混沌系统。在重构的相空间进行混沌时间序列预测,是目前的主流技术。

    相空间重构所做的,就是重构原始高维相空间,近似恢复出体现动力系统演化规律的混沌吸引子。由上述讨论可知,相空间重构的准确性至关重要,这将在很大程度上影响到混沌时间序列预测的性能。

    相空间重构方法是什么,关键点?

    G-P算法求取最佳嵌入维数、重构相空间、关联维数和K摘特征

    而相空间重构的关键在于确定延迟时间和嵌入维数。(写论文的时候再梳理)

    相重构模型

    相空间重构之后,有什么用途?

    相空间重构后就有嵌入维数量个的时间序列了,那你就把后一个时刻的值作为前一个时刻的值的标签来训练就可以了啊。然后训练得到的模型,输入一个时刻的值。就能得到预测的下个时刻的值了。因为你是对一个时间序列做嵌入维分解的嘛,那你预测后取出最后一个数值,就是时间序列下一个时刻的预测值了。

    如果不用NN类学习方法,换用Tree或者svm的方法,可以对MFs,利用G-P算法,重构相空间。对相空间的一些性质,例如关联维数、李雅普诺夫指数、柯尔莫哥罗夫摘等作为混纯特征,输入SVM进行训练。

    更多内容在下一篇分享中给出。

    展开全文
  • 模式识别时间序列杂想

    千次阅读 2009-05-18 11:01:00
    比如在图像识别方面,一个小孩都能在几秒内识别一张脸,而计算机却要花很长时间去计算这张脸的各个部位尺寸,人在识别的时候并没有那么做,明显和计算机的识别过程走的不是一个路子。 钱学森先生指出应该和心理学家...


    人工智能在模拟人类逻辑思维方面战功赫赫,许多方面已经远远超过人类。然而在模拟人类形象思维方面一直举步维艰。比如在图像识别方面,一个小孩都能在几秒内识别一张脸,而计算机却要花很长时间去计算这张脸的各个部位尺寸,人在识别的时候并没有那么做,明显和计算机的识别过程走的不是一个路子。
    钱学森先生指出应该和心理学家合作,可惜心理学许多东西还找不到和计算机结合的方法。许多自然科学的东西和人文科学的东西(也可以说逻辑思维和形象思维)似乎难于找到结合的方法,而是各行其是,无法进行学科交叉。

    在气象、地震、股市、彩票的预测中,神经网络(ANN)和支持向量机(SVM)等取得了一系列令人瞩目的成果。然而其准确度还远远达不到人们的预期。原因是这些数据模型拟合能力不够强大或者泛化能力不够吗?我曾经这么认为过。我甚至怀疑有些问题是不能用时间序列方法来解的,比如彩票,对其历史数据的分析未必有助于对未来的预测,因为他是完全随机的,历史并不对未来产生任何影响。
    但是我现在更倾向于说,这是因为对问题的特征提取有问题,也可以说是情景描述或者说知识表达问题,包括彩票也不是什么完全随机,只不过是一种模式识别,只要能准确描述彩票机的初始行为就能得出中奖号码。
    【修改】:彩票的预测不能用时间序列方法,因为下一次的中奖号码与历史号码并无任何联系,只和彩票摇奖机器的当前状态有关。股票也类似,主要和当前政治经济等因素有关,与历史数据关系不大。所以说股票和彩票的预测还是不能用时间序列的思路来解,当今市场上这方面的软件明显走入了死胡同(相关作者别仍臭鸡蛋,俺只是希望大家试试多种办法)。
    用神经网络或svm等方法搞这些预测是不可行的,除非输入数据是摇奖机器状态数据(对股票来说是描述当前政治经济形式的数据),很明显要得到这些数据是难如登天。

    在对骰子的预测中,就发生过许多辩论。自然科学家认为:只要能得到骰子踯出时的方向力度旋转,以及空气湿度风向等等所有因素,就能准确算出骰子的结果。可见连骰子也不是什么随机过程,这是决定论,克拉克等人为代表。那么是不是说,概率随机等玩意只是权宜之计,暂时用来解决那些难于完全把握的问题?

    蝴蝶效应同样如此,由于过程太复杂难于测出每一步每一个物理量所以无法预测,于是就把它神秘化了。

    在考察了气象、地震、股市、彩票、骰子、蝴蝶效应这些复杂的,至今困扰科学界的问题之后,发现一个问题(考察之后能找到一点结论这才是关键),就是这些问题的解决不仅仅是靠提高cup速度或者建构比神经网络更强大的工具就能解决的,知识表达才是突破口。陆汝钤院士提出的知件与硬件软件并列大概正是认识到知识表示重要性的高瞻远瞩的提议。

    上述几个问题代表了时间序列预测的难题,共同点是,对他们的描述极其困难。比如气象,气象卫星、雷达、高空气球等等手段收集到的数据量无比巨大,然而就算是这么巨大的数据量也无法保证对大气地球的完整描述。当今最大型的计算机均用于气象和地震数据分析,就是因为数据太多,且抓不到重点,不知道哪些数据更重要些,能不能给每个数据赋予权重。结果就是气象和地震预测从来没有准确过。各种预测软件在股市预测中也同样遭遇滑铁卢。这些问题都属于当今最难的问题,属于复杂巨系统的例子。中科院戴汝为院士对包括人类社会和网络虚拟社会在内的复杂巨系统研究不知有么有什么新突破。

    复杂性问题作为新兴的科学最前沿,是产生图灵奖得主最多的领域。以上几个难题之所以难于解决,我曾说过是知识表达问题,说的更本质些,我想应该是复杂性问题,他们是NP难题,过于复杂的描述使得它们的求解成为指数复杂度,ANN,SVM之类的联结解法面对庞大的数据同样无可奈何。数据挖掘又成为了一个可能的突破口。
    展开全文
  • 时间序列之重复模式

    千次阅读 2014-12-25 20:14:49
    发现时间序列中重复模式之算法与应用 前几天参加了数据挖掘的大会,听了一个有趣的讲座,很有意思(听说有上千种应用,不知道是否可以在量化金融上有用呢?) 先上图,改天详解一下~ ...
  • 什么是模式识别模式识别主要识别什么?

    万次阅读 多人点赞 2019-03-20 23:01:58
    模式识别诞生于20实际20年代,随着40年代计算机的出现,50年代人工智能的兴起,模式识别在60年代初迅速发展成为一门学科。简单点说,模式识别是根据输入的原始数据对齐进行各种分析判断,从而得到其类别属性,特征...
  • 本文介绍了人类活动识别相关领域的建模方法和理论研究。
  • Vincent S.Tseng等人提出的基于聚类和遗传算法的时间序列分割算法中,对于适应值函数的定义存在缺陷,本文对此进行了改进:用归一化处理消除子序列幅度对距离计算的影响,并引入类间距使分割结果的类间差异(模式之间的...
  • (一)人脸识别技术之人脸识别过程及识别算法简介

    万次阅读 多人点赞 2018-11-04 23:19:40
    1 人脸识别理论 2 人脸识别应用 2.1 开发环境 2.2 3总结
  • 一、前言 二、网络架构 2.1 特征序列提取 2.2. 序列标注 2.3. 转录 ...2.3.1 标签序列的概率 ...在现实世界中,稳定的视觉对象,如场景文字,手写字符和...与一般的对象识别不同,识别这样的类序列对象通常需要系...
  • 为了能有效支持识别多种相似性形变,提出涨落模式(FP)的概念,以涨落模式保存原序列的趋势变化信息,利用最长公共子序列算法计算涨落模式的相似度,消除振幅伸缩、振幅漂移和线性漂移等对相似性挖掘带来的影响,...
  • 了解识别典型收盘价模式的难度和灵活性后,我们开发了一种模式识别算法,专门用于使用基于特征的动态时间扭曲和模式规则的收盘价模式。 该算法展示了与目标金融模式非常相似的识别序列,同时结合了一些人类意义上...
  • 手势识别 技术

    万次阅读 多人点赞 2019-04-19 16:02:27
    手势识别可以分为基于可穿戴设备的识别、基于触摸技术的识别和基于计算机视觉的识别。 一、基于可穿戴设备的识别 1、在手势交互过程中,可以直接采集每根手指的弯曲姿态,通过数据归一化和平滑处理两根手指之间...
  • XGBoost和时间序列

    千次阅读 2021-03-23 09:02:51
    XGBoost是功能非常强大且用途广泛的模型。 它的应用范围非常大,并且已经成功地用于解决许多ML分类和回归问题。 尽管它最初并不是为处理...由于XGBoost非常擅长识别数据模式,因此如果您有足够的描述数据集的时间特征,
  • 针对欧几里德距离描述分段趋势的不足和各种模式距离对应分段之间距离值的离散化问题,提出一种基于形态相似距离的时间序列相似性度量方法,标准数据集上完成的识别和聚类实验表明了该方法的可行性和有效性。
  • 卷积神经网络模型(CNN)可以应用于时间序列预测。有许多类型的CNN模型可用于每种特定类型的时间序列预测问题。在本介绍了在以TF2.1为后端的Keras中如何开发用于时间序列预测的不同的CNN模型。这些模型是在比较小的...
  • 在ED方法中,我们提出了一种基于信息论的数据驱动方法,以自动识别排放时间序列中的降雨径流事件。 预测模型的最终目标是(通过概率)反映用户的是/否事件决策,并在更长的时间段内或在一致的新数据集中更轻松地重现...
  • R语言时间序列分析复杂的季节模式

    千次阅读 2018-09-11 16:30:00
    时间序列数据的频率高于季度或月度时,许多预测程序在分析季节性影响方面遇到了障碍。 澳大利亚蒙纳士大学的研究人员在美国统计协会杂志(JASA)上发表了一篇有趣的论文,以及一个R程序,以处理这种情况 - 可称为...
  • 时间序列建模教程

    万次阅读 多人点赞 2018-05-04 10:11:52
    简介 在商业应用中,时间是最重要的因素,能够提升成功率。然而绝大多数公司很难跟上时间的脚步。但是随着技术的发展,出现了很多有效的方法,能够让...有一种预测是跟时间相关的,而这种处理与时间相关数据的方...
  • 时间序列数据的频率高于季度或月度时,许多预测程序在分析季节性影响方面遇到了障碍。 澳大利亚蒙纳士大学的研究人员在美国统计协会杂志(JASA)上发表了一篇有趣的论文,以及一个R程序,以处理这种情况 - 可称为...
  • 以我们埋点数据为例,用户产生的埋点数据,根据时间排列可以得到一串埋点序列(上图中埋点1到埋点7), 而序列模式挖掘的作用,就是可以从大量用户的埋点序列中,找到其中隐藏着的模式: 埋点2->埋点4->埋点7(即大量...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,479
精华内容 34,991
关键字:

时间序列模式识别