philipperemy/keras-tcn

Keras Temporal Convolutional Network. Supports Python and R.

What it solves

Keras TCN は Keras 用の Temporal Convolutional Network(TCN)レイヤーを提供し、シーケンスモデリングタスクに対応します。LSTM や GRU のような再帰型アーキテクチャは、長期記憶や勾配消失、シーケンシャル処理のボトルネックに苦しむことが多いですが、TCN はそれらの代替となります。

How it works

本プロジェクトは、膨張因果畳み込み層のスタックを使用した TCN レイヤーを実装しています。このアーキテクチャにより、過剰な層数を必要とせずに柔軟で大きな受容野(モデルが参照できる履歴の長さ)を実現できます。

主な技術要素は次のとおりです:

  • Causal Padding:モデルが未来を見ることができないようにし、リアルタイムアプリケーションに適しています。
  • Dilated Convolutions:深さに応じて受容野を指数的に拡大し、時系列データの長距離依存関係を捉えます。
  • Residual Blocks:スキップ接続を使用し、学習時の勾配伝搬を改善します。
  • Non-Causal Optionpadding='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 までの複数バージョンでテスト済みです。