5.3 1D CNN Time Series
時間序列也可以用卷積處理。Conv1D 會沿著時間軸掃過序列,擷取局部 pattern,例如短暫尖峰、波形片段或某種固定形狀的訊號。本篇用 1D CNN 做序列分類,示範它和 RNN 類模型不同的思考方式。
1. 學習目標
本篇聚焦以局部形狀為主的時間序列分類。例如偵測某種波形片段、設備短暫異常、使用者操作手勢或局部訊號模式。若類別主要由局部 pattern 決定,1D CNN 通常會是簡潔且訓練快速的 baseline。
2. 範例資料
Notebook 會產生三類序列,每類都有不同局部形狀:
- bump:中間有平滑凸起。
- dip:中間有下凹。
- double_peak:出現兩個局部高峰。
這些類別不需要長期記憶才能辨識,適合用 Conv1D 示範局部 pattern 擷取。
3. Conv1D 如何看時間序列?
Conv1D 的 kernel 會在時間軸上滑動。它不像 LSTM/GRU 一步一步讀取序列,而是直接學習局部窗口中的形狀。搭配 MaxPooling1D 或 GlobalAveragePooling1D 後,可以把局部特徵整理成分類向量。
4. 實作流程
Notebook 會產生固定長度序列,切分資料、標準化後,建立 Conv1D -> MaxPooling1D -> Conv1D -> GlobalAveragePooling1D -> Dense 的模型。最後用 confusion matrix 與 classification report 檢查各類 pattern 是否被正確辨識。
5. 如何套用自己的資料?
若你的任務重點是局部形狀,例如短暫異常、峰值、谷值或特定波形,優先嘗試 1D CNN。輸入仍是 (samples, timesteps, features)。如果有多個感測器欄位,features 就是感測器數量。
6. 小結
1D CNN 是時間序列任務中常被低估的 baseline。它不一定取代 LSTM/GRU,但在局部 pattern 明確、資料量不大或需要快速訓練時,很值得先試。