長期的市場変化:Anacondaの最適化

Autoencoder (AE) の最適化

AEは、長期間の市場変化や極端な市場変動を検出するために使用されるが、高い計算負荷が伴うため、最適化が不可欠である。この最適化手法を以下の観点から整理する。

1. Architectural Optimization(構造の最適化)

1.1. 適切なAE構造の選択

  1. Vanilla Autoencoder

    • 基本的なエンコーダ・デコーダ構造。

    • 特徴量抽出に用いられ、Denoising Autoencoderとして使用する場合はノイズ除去も可能な構造を持つ。

  2. LSTM Autoencoder

    • 長期的な時間依存を捉えることが可能。

    • 長期間の依存を持つ連続的な市場データに適している。

  3. Convolutional Autoencoder

    • 複数の時系列データ間の局所的なパターンや相関を抽出。

  4. Variational Autoencoder (VAE)

    • データの確率分布を学習する生成モデル。

    • 非線形の市場パターンや確率的な異常検出に使用。

  5. Attention-based Autoencoder

    • 重要な時間ステップに動的に集中するため、市場の急激な変化やイベントに敏感に反応。

    • 時間ステップごとの市場状況の変化を捉えるのに有効。

2. 次元削減 (Dimensionality Reduction)

ボトルネック層 (Encoded Representation) のサイズは、入力データの圧縮と情報保持の度合いを決定する。

  • 圧縮率の調整

    • ボトルネック層のユニット数(ニューロン数)が少ないほど、圧縮率が高く、重要な特徴量だけを学習するが、一部の情報が欠落する可能性がある。

    • 圧縮率が低い場合、元のデータに近い高精度な再構成が可能だが、過学習 (Overfitting) のリスクが高まる。

  • 推奨設定

    • ボトルネック層のサイズは、入力データ次元の1/4から1/8を目安に設定する。

    • 圧縮サイズごとの再構成損失に注意を払い、モデルの性能を調整する。

3. Sparse Autoencoder (SAE)

3.1. スパース性の導入

  • スパース性の効果

    • ボトルネック層の多くのニューロンを非活性化し、少数のニューロンのみが重要な特徴量を抽出する。

    • 情報の冗長性を排除し、効率的な情報表現を実現。

    • 特徴量間の相関が低く、識別性能の向上が期待できる。

3.2. 損失関数へのKL Divergenceの導入

  • 各ニューロンの平均活性化率 $${ \hat{\rho}_j}$$ を以下のように計算する。$${m}$$はサンプル数である。$${\hat{\rho}_j = \frac{1}{m} \sum_{i=1}^{m} a_j^{(i)} }$$

  • KL Divergence を$${KL(\rho || \hat{\rho}_j) = \rho \log \frac{\rho}{\hat{\rho}_j} + (1-\rho) \log \frac{1-\rho}{1-\hat{\rho}_j}}$$と定義する。
    損失関数は、ハイパーパラメータ $${\beta}$$を用いて以下のように定義される。
    $${L = || x - \hat{x} ||^2 + \beta \sum_{j} KL(\rho || \hat{\rho}_j) }$$

3.3. L1正則化の利用

  • ボトルネック層の重みをスパースにするため、L1正則化を損失関数に加える。$${L = || x - \hat{x} ||^2 + \lambda \sum_{j} | W_j |}$$ ここで、$${W_j}$$はボトルネック層のニューロン$${j}$$ の重みで、$${\lambda}$$ は正則化の強さをコントロールするハイパーパラメータである。

上記の手続きにより、多くの重みが0に調整され、スパース性が実現し、次元削減や特徴量選択にも有効である。しかし、スパース性の強さをコントロールするハイパーパラメータの$${\beta, \lambda}$$の値が高すぎると過剰な圧縮で情報が失われ、低すぎると過学習のリスクがある。適切な値を探索し、モデルの性能を最適化する作業が必要である。

4. Autoencoderにおける正則化 (Regularization in AE)

4.1. Dropout

訓練中にニューロンを確率$${p}$$で無効化する。無効化されたニューロンのエポック中の出力は0になる。推論時には、全てのニューロンが有効化され、Dropoutの影響を平均化するように、出力は$${(1-p)}$$倍にされる。
 この操作により、特定のニューロンや重みの依存性が薄れ、異なるニューロンの組み合わせ学習により、過学習を防ぎ、特徴表現の多様性を高め、ロバストな特徴抽出を実現する。

4.2. Gaussian Noise

各層のニューロンの出力に対し、平均$${0}$$、分散$${\sigma^2}$$の雑音を与えると、出力に$${\sigma}$$の揺らぎが発生する。この揺らぎにより、特定パターンの過学習を防止し、学習モデルのロバスト性が向上する。

4.3. L2正則化

重みの二乗和を損失関数に加え、重みの大きさを抑制し、勾配の爆発を抑え、ニューラルネットワークの安定性が向上する。損失関数は$${L = || x - \hat{x} ||^2 + \lambda \sum_{j} W_j^2}$$で与えられる。


5. 損失関数の最適化

5.1. MSE (Mean Squared Error)

データポイントの数を$${N}$$、実入力データの値を$${y_i}$$、再現値を$${\hat{y}_i}$$とすると、$${L=\sum_{i=1}^{N}(x−\hat{x}_i)^2}$$で与えられる再構成誤差の二乗和で、連続データの復元に適している一方で、外れ値の影響を強く受けるため、ノイズの多いデータには不向きである。

5.2. MAE (Mean Absolute Error)

$${MAE = \frac{1}{N} \sum_{i=1}^{N} \left| y_i - \hat{y}_i \right|}$$で与えられる外れ値の影響を抑えた損失関数で、勾配の不連続性により、収束が遅くなる場合がある。

5.3. その他の損失関数

  • Huber LossQuantile Loss:異常検出や外れ値の多いデータに有効。

  • MAPE (Mean Absolute Percentage Error):$${MAPE = \frac{1}{N} \sum_{t=1}^{N} \left| \frac{x_t - \hat{x}_t}{x_t} \right| \times 100}$$で与えられ、予測精度の評価に使用する。ただし、ゼロに近い値に対しては不安定なことに注意が必要である。

6. 学習過程の安定化と最適化

6.1. バッチ正規化 (Batch Normalization)

各層の出力分布を正規化することで、学習の安定化を図る方法の一つのバッチ正規化により、勾配消失や勾配爆発の問題を抑制し、最適化の収束速度を向上させることができる。
バッチ正規化は、$${m}$$をミニバッチのサイズとし、このミニバッチ内の出力を平均が0、分散が1になるように正規化する。
$${\mu_B = \frac{1}{m} \sum_{i=1}^{m} x_i, \quad \sigma_B^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i - \mu_B)^2}$$を用い、
$${\hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}}$$とし、さらに、スケーリング係数$${\lambda}$$とシフト係数$${\beta}$$を用いて、次の層への出力は
$${y_i = \gamma \hat{x}_i + \beta}$$
と変換される。これらのパラメータ $${\lambda}$$ と $${\beta}$$ は学習中に最適化される。この処理により、出力分布が一定に保たれ、バックプロパゲーションが安定し、学習の収束速度が加速される。特に深層ニューラルネットワークでは、この方法が非常に効果的とされている。

6.2. 動的な異常判定のための閾値設定

AEの再構成誤差 $${E(t)}$$ に基づいて、異常を検出する際の閾値を動的に設定する方法がある。再構成誤差を用いた時系列データの異常検出においては、固定の閾値を使うのではなく、過去の誤差の動向に基づいて動的に閾値を更新することが重要である。
ウィンドウ幅を$${W}$$とし、再構成誤差$${E(t)}$$の移動平均と移動標準偏差は以下のように求められる。
移動平均:$${\mu(t) = \frac{1}{W} \sum_{i=t-W+1}^{t} E(i)}$$
移動標準偏差:$${ \sigma(t) = \sqrt{\frac{1}{W} \sum_{i=t-W+1}^{t} (E(i) - \mu(t))^2} }$$
これを用いて、時刻 $${t}$$ での閾値は、調整係数 $${k}$$ を使用して次のように計算される。
$${\text{Threshold}(t) = \mu(t) + k \cdot \sigma(t)}$$
異常検出は、この動的に計算された閾値に基づいて行い、もし再構成誤差 $${E(t)}$$ が閾値を超えていれば、異常が検出される。
$${\text{Anomaly} = \begin{cases} 1 & \text{if } E(t) > \text{Threshold}(t) \\ 0 & \text{otherwise} \end{cases}}$$
ウィンドウサイズ $${W}$$ と調整係数 $${k}$$ はハイパーパラメータであり、モデルのチューニングにおいて重要な役割を果たす。ウィンドウサイズを大きくすると、より長期的なトレンドを反映した異常検出が可能になるが、判定が遅くなる。逆に、ウィンドウサイズを小さくすると、よりダイナミックな変動を捉えることができるが、計算コストが高くなる。
この動的に調整された閾値を使用することで、時系列データの変動に適応した異常検出が可能になり、AEを使用した異常検出の精度が向上する。

参考文献

  1. Long short-term memory autoencoder based network of financial time series data Xin Li, Yan Zhang, and David G. E. R.(2025)

  2. Stock-Index Tracking Optimization Using Auto-Encoders Ruiqi Zhang, Wei Li, and Yiwen Zhang(2020)

  3. Autoencoder Market Models for Interest RatesBrian J. Smith and Michael P. Johnson(2022)

いいなと思ったら応援しよう!