接著上次的【學習資源】時間序列數據分析方法(1)-CSDN博客,本次介紹mWDN和AutoEncoder 解決時序數據分類的方法。介紹模型原理、應用場景和參考代碼。也從模型性能、訓練效率、模型復雜度、計算復雜度、可解釋性、適應性和泛化能力、健壯性、數據需求等方面介紹模型的優點和缺點。
1 mWDN
1.1 原理
mWDN是指 Multilevel Wavelet Decomposition Network for Interpretable Time Series Analysis ,分析時序數據的頻域特征,將小波分析與深度學習融合。
參考來源:https://arxiv.org/abs/1806.08946 ?arXiv:1806.08946?[cs.LG]
論文摘要
近年來,幾乎所有學術和工業領域的時間序列都出現了前所未有的增長。各種深度神經網絡模型已被引入時間序列分析,但重要的頻率信息仍然缺乏有效的建模。鑒于此,本文提出了一種基于小波的神經網絡結構,稱為多級小波分解網絡(mWDN),用于構建時間序列分析的頻率感知深度學習模型。mWDN保留了多級離散小波分解在頻率學習中的優勢,同時可以在深度神經網絡框架下對所有參數進行微調。基于mWDN,我們進一步提出了兩個深度學習模型,分別稱為殘差分類流(Residual Classification Flow,RCF)和多頻率長短期記憶(multi-frequecy Long Short-Term Memory,mLSTM),用于時間序列分類和預測。這兩個模型將不同頻率的所有或部分mWDN分解子序列作為輸入,并采用反向傳播算法全局學習所有參數,從而將基于小波的頻率分析無縫嵌入到深度學習框架中。在40個UCR數據集和一個真實用戶數據集上進行的廣泛實驗表明,我們基于mWDN的時間序列模型具有卓越的性能。特別是,我們為基于mWDN的模型提出了一種重要性分析方法,該方法能夠成功識別出對時間序列分析至關重要的那些時間序列元素和mWDN層。這確實表明了mWDN的可解釋性優勢,可以被視為對可解釋深度學習的深入探索。
代碼使用模型說明:https://timeseriesai.github.io/tsai/models.mwdn.html
代碼來源
https://github.com/JacobWang95/mWDN
關于小波分析,可參考【工程數學】筆記3:數字信號處理_brick-wall filter-CSDN博客
1.2 優點和缺點
表1 mWDN的優點和缺點
優點 | 缺點 | |
模型性能 | 在處理非平穩時序數據時表現優越,因其通過小波變換捕捉多頻率特征,提升了模型的準確性。 | 性能可能依賴于參數選擇的準確性,例如小波函數類型和分解層數。 |
訓練效率 | 在處理具有良好結構的時序數據時,可能較傳統方法更快達到理想性能。 | 由于多級小波分解和神經網絡的結合,訓練時間可能較長,尤其在資源有限的情況下。 |
模型復雜度 | 多層結構允許更細致的特征提取,適合復雜數據分析。 | 高度復雜的模型結構可能導致理解和調試的難度增加。 |
計算復雜度 | 有效處理高維度數據,保持了較高的信息完整性。 | 高計算需求,尤其在大規模數據處理時,需要更多硬件資源支持。 |
可解釋性 | 小波變換的多層次分解提供了比傳統神經網絡更高的可解釋性。 | 盡管比黑箱模型更好,整體可解釋性仍然有待提高,尤其在面對非技術用戶時。 |
適應性和泛化能力 | 能夠在不同特征頻率的時序數據上保持良好性能,體現出較強的泛化能力。 | 若參數未優化好,可能導致在某些特定場景下的適應性不足。 |
健壯性 | 對噪聲數據具有較好的魯棒性,能夠提取有價值的信號。 | 如果噪聲特征與真實信號頻率接近,可能難以分辨。 |
數據需求 | 能夠在較小數據集上啟動有效的學習過程,但需要較大數據集以獲得最佳性能。 | 仍然需要大量標注數據以充分訓練模型,尤其在多樣性高的數據集中。 |
1.3 應用場景
適用于非平穩時序數據分析、復雜信號處理、高解釋性的應用、噪聲健壯性需求以及動態環境下的實時分析。
1.4?參考代碼
[TPS-Apr] Let's go over the wall - mWDN | Kaggle
【演示】用mWDN分類時序數據UCR LSST
使用數據集數據集:UCR LSST,此案例CPU運行時間可以忍耐,可以不用GPU
https://github.com/bettermorn/IAICourse/blob/main/Code/TSAI/16_CPU_Jump_Time_Series_Classification_with_mWDN.ipynb
2 AutoEncoder
2.1 原理
AutoEncoder是一個有點歷史的概念了,Hinton2006年提出了AutoEncoder,參考論文
Hinton, Geoffrey E., and Ruslan R. Salakhutdinov. "Reducing the dimensionality of
data with neural networks." Science 313.5786 (2006): 504-507
圖片來源:
Hinton, Geoffrey E., and Ruslan R. Salakhutdinov. "Reducing the dimensionality of
data with neural networks." Science 313.5786 (2006): 504-507
自編碼器分編碼器和解碼器兩個部分,編碼器通過降維的方法抓住輸入對象最本質的特征,也即內部表示,而解碼器根據本質特征再還原出原始輸入對象。自編碼器類似于識別主要模式的檢測器。對異常輸入對象來說,在編碼器的環節無法發現與正常值相同的本質特征,所以解碼器在還原出原始輸入對象就會比較困難,這樣,異常值就顯現出來了。這種設計很巧妙。
自編碼器的本質是無監督學習。
相比使用線性代數轉換降維的PCA,自編碼器技術可以通過其非線性激活函數和多層結構進行非線性轉換。用自編碼器訓練多層結構比用PCA訓練一個巨大的轉換結構更有效。因此,當數據問題復雜且具有非線性性質時,自編碼器技術就顯示出其優勢。
2.2?優點和缺點
優點如下
輕松處理高維數據。
非線性特點,可以找到復雜的模式。
缺點如下
成本較高。
優點 | 缺點 | |
模型性能 | 自編碼器能夠有效地對數據進行特征提取和降維,在保留主要信息的同時去除冗余。 | 對于復雜的高維數據,重構的精確性可能較差。 |
訓練效率 | 結構相對簡單的自編碼器通常收斂較快,適合快速特征提取任務。 | 需要大量數據進行訓練,以保證模型的泛化能力和穩定性。 |
模型復雜度 | 具有靈活的結構設計,可以調整層數和節點數以適應不同的任務需求。 | 如果設計不當,可能導致模型復雜度過高,增加計算和存儲開銷。 |
計算復雜度 | 相比于其他深度模型,基本的自編碼器計算復雜度較低。 | 增加模型深度和卷積層等復雜結構時,計算需求會顯著增加。 |
可解釋性 | 通過學習緊湊的低維表示,可以在一定程度上解釋特征的主要變化方向。 | 作為黑箱模型,輸出編碼通常不具備良好的可解釋性。 |
適應性和泛化能力 | 對新數據的適應能力強,尤其適用于無監督學習場景。 | 如未進行適當的正則化,可能導致過擬合,影響泛化能力。 |
健壯性 | 去噪自編碼器(Denoising AutoEncoder)在處理有噪聲的數據時表現較好。 | 對極端噪聲和異常值的敏感度較高,可能影響重構質量。 |
數據需求 | 在處理特定任務時,通常可以在無標簽數據上訓練。 | 對于復雜任務,需要大規模數據集來捕捉全面的特征信息。 |
2.3 應用場景
圖像去噪:利用降溫的特點獲取主要特征。
異常檢測:分析重構誤差,可識別異常。
數據壓縮:符合降維的本質。
特征生成與提取:降維的本質就是獲取主要特征。
圖像生成,例如
- 變分自編碼器(Variational AutoEncoder, VAE)可用于生成與輸入相似的圖像數據。
舉例來說,如果要用AutoEncoder處理異常,過程如下
- 在正常數據子集上訓練自編碼器。
- 比較自編碼器在正常數據子集和異常數據子集上的判據。
- 定義一個閾值,以便我們安全地將數據分類為異常或正常。
其中第三步比較難,如果我們對問題理解不深入,沒有使用正確的工具,可能無法得出較好的結果。
訓練自編碼器的過程和其他多層感知器組成的神經網絡類似,包括以下內容:
-
ReLU 激活層用于提高自編碼器學習非線性表征的能力。
-
使用堆疊線性層(a stack of linear layers)可以增加網絡的深度,而且收斂速度更快。
-
編碼器會逐步將輸入數據壓縮為更小的內部表示。這是為了使自編碼器通過丟棄不必要的信息來學習有意義的數據表示。
訓練自編碼器,需要設定標準或損失函數以及優化策略。對時間序列數據,使用基于殘差(每個時間步的目標值與輸出值相減得到的誤差值)的損失函數(可使用平均絕對誤差或 L1 損失)和性能穩健的Adam優化器。
2.4?參考代碼
GitHub - vincrichard/LSTM-AutoEncoder-Unsupervised-Anomaly-Detection: University Project for Anomaly Detection on Time Series data
Time Series ECG Anomaly Detection w Autoencoders | Kaggle
如前所述,因為AutoEncoder涉及到兩個神經網絡的訓練,必須要用GPU。
參考視頻
【演示】用AutoEncoder檢測心電圖ECG異常
本次介紹了mWDN和AutoEncoder,下次再來介紹一些解決時序數據相關問題的模型。