philipperemy/keras-tcn
Keras Temporal Convolutional Network. Supports Python and R.
What it solves
Keras TCN 提供一個用於 Keras 的時間卷積網路(TCN)層,設計來處理序列建模任務。它作為遞迴架構(如 LSTM 或 GRU)的替代方案,這類模型常因長期記憶、梯度消失與序列處理瓶頸而表現不佳。
How it works
此專案實作了一個使用堆疊膨脹因果卷積層的 TCN 層。此架構讓模型在不需要過多層數的情況下,擁有彈性且大的感受野(模型能看到的歷史長度)。
主要技術元件包括:
- Causal Padding:確保模型無法「看到」未來,使其適用於即時應用。
- Dilated Convolutions:隨著深度指數式擴大感受野,讓網路能捕捉時間序列中的長距離依賴。
- Residual Blocks:使用跳躍連接,協助梯度在訓練過程中更有效傳遞。
- Non-Causal Option:支援
padding='same'或'valid',適用於未來資訊可取得且可用於預測的任務。
Who it’s for
使用 Keras/TensorFlow 的資料科學家與機器學習工程師,需對長時間序列或序列資料(如 NLP 任務或波形分析)建模,且希望相較於 LSTM 透過平行化獲得更佳效能或更快的訓練速度。
Highlights
- Longer Memory:在相同容量下,展現比遞迴網路更長的記憶力。
- Parallelism:利用卷積層比序列式 RNN 更快的處理速度。
- Stable Gradients:避免了時間反向傳播中常見的梯度消失問題。
- Flexible Configuration:高度可自訂的濾波器、核大小、膨脹率與正規化(Batch 或 Layer Norm)參數。
- Broad Compatibility:已在多個 TensorFlow 版本(2.9 至 2.19)上測試通過。