CNN-LSTMは
- CNN(パターン抽出)
- LSTM(時間関係の理解)
を組み合わせたモデルです。
役割は次の通りです。
| モデル | 役割 |
|---|---|
| CNN | データの形(パターン)を抽出 |
| LSTM | 時間の流れを理解 |
例えばFXでは
- CNN → チャート形状(上昇・レンジなど)
- LSTM → その形の時間的な変化
を学習します。
CNN-LSTMの主なパラメーター
CNN側
| パラメーター | 意味 |
|---|---|
| filters | 検出するパターン数 |
| kernel_size | 一度に見る時間幅 |
| stride | スライド幅 |
| padding | 端の処理 |
| dropout | 過学習防止 |
例
Conv1D(filters=64, kernel_size=5)
LSTM側
| パラメーター | 意味 |
|---|---|
| units | 記憶セル数 |
| return_sequences | 次の層へシーケンスを渡す |
| dropout | 過学習防止 |
| recurrent_dropout | 再帰部分のドロップアウト |
例
LSTM(units=64)
CNN-LSTMの使用例(FX以外)
CNN-LSTMは多くの時系列分析で使われています。
主な用途
| 分野 | 用途 |
|---|---|
| 音声認識 | 音声波形の解析 |
| 外気温分析 | 天候予測 |
| 電力需要予測 | 消費量予測 |
| 心電図分析 | 不整脈検出 |
| センサー監視 | 異常検知 |
特徴は
波形や時系列パターンを学習することです。
外気温分析とFXの対応
CNN-LSTMの構造は多くの時系列で共通しています。
| 項目 | 外気温分析 | FX予測 |
|---|---|---|
| 特徴量 | 気温・湿度・気圧 | OHLC・指標 |
| 目的変数 | 次の1時間の天気 | 次の足の上昇 / 下降 |
| シーケンス長 | 過去24時間 | 過去24本 |
| データ構造 | (24, features) | (24, features) |
つまり
過去データ → 次の状態
という同じ問題です。
CNN-LSTMのデータ構造
時系列データは次の形になります。
例
| データ | 構造(シーケンス長, 特徴量) |
|---|---|
| 気温 | (24,1) |
| OHLC | (100,4) |
| 指標含む | (100,20) |
データ量とパラメーターの目安
CNN-LSTMでは
データ量に応じてパラメーターを増やします。
小規模データ
例
sequence = 24
features = 1〜4
推奨
| 層 | 設定例 |
|---|---|
| CNN filters | 16〜32 |
| kernel | 3 |
| LSTM units | 16〜32 |
中規模データ
例
sequence = 60〜120
features = 4〜20
推奨
| 層 | 設定例 |
|---|---|
| CNN filters | 32〜64 |
| kernel | 3〜5 |
| LSTM units | 32〜64 |
大規模データ
例
sequence = 200以上
features = 20以上
推奨
| 層 | 設定例 |
|---|---|
| CNN filters | 64〜128 |
| kernel | 5〜10 |
| LSTM units | 64〜128 |
CNN-LSTMの基本構成例
例
Conv1D(filters=64, kernel_size=5)
MaxPooling1D(2)LSTM(64)Dense(2)
役割
- CNN → チャートパターン抽出
- LSTM → 時系列の流れ理解
- Dense → 最終予測
まとめ
CNN-LSTMは
パターン検出(CNN)
+
時間理解(LSTM)
を組み合わせたモデルです。
FXでは
チャート形状 + 時間の流れ
を同時に学習できるため
時系列予測でよく使われています。