PR

【AI FX】FXのAIモデルにLightGBM回帰を使う理由と、MAEなどの誤差関数の正しい選び方

AI

— ONNX出力の注意点・平均回帰問題・スタッキングの落とし穴まで —

FXの値動きをAIで予測するとき、
よく使われるモデルのひとつが LightGBM(LGBM) です。

本記事では、
・回帰モデルの誤差関数(MAEなど)の違い
・平均回帰問題と対策
・スタッキングに回帰を使うときの注意点
・MQL5でLightGBMモデルを使うためのONNX化のコツ

をまとめて解説します。

WAN
WAN

CNN-LSTMをも凌駕するLGBMを使いこなそう(‘ω’)


1. MQL5でLightGBMを使うなら、ONNX出力が必須

LightGBMで学習したモデルを、
MetaTrader5(MQL5)でそのまま読み込むことはできません。

そのため一般的には、

→ ONNX形式に変換してからMQL5で読み込む

という流れになります。

しかし、ここで ひとつ重要なポイント があります。


■ ONNXの出力形状は必ず [1, 1] に ReShape する

LightGBMの回帰モデルは、そのままONNXに変換すると
出力形状が [1][None] のように扱われることがあり、
MQL5 の OnnxRun ではエラーになることがあります。

以下の記事を参考にしてください👇
https://wonderfulfxlife.com/onnxcatboostregressor/

この記事の内容と同じように、
最終出力を [1,1] に ReShape しておく必要があります。

◆ ReShapeする理由

MQL5 の OnnxRun は
(バッチサイズ, 出力次元)
の2次元を前提にしているためです。


2. MAEを中心とした誤差関数の関係図(メリット → 問題 → 改善)

ここからが本題です。

回帰モデルの誤差関数にはいろいろありますが、
最初に考えるべきなのは MAE(平均絶対誤差) です。

ここでは、
MAE → Huber → Quantile
の流れで「なぜこれらが存在するのか」をつなげて説明します。


3. MAE(平均絶対誤差)

◆ MAEとは

「予測がどれくらい外れたか」を
絶対値 で平均したものです。MAE=mean(yy^)MAE = \text{mean}(|y – \hat{y}|)

◆ MAEのメリット

  • 外れ値(急激な価格変動)に強い
  • RMSEよりもシンプルで直感的
  • 過剰なペナルティを与えない

◆ MAEのデメリット

  • 勾配が一定のため、学習が遅くなりやすい
  • 外れ値に強すぎる=動きが小さくまとまりやすい
  • 平均回帰を起こしやすい

ここがFXでは特に問題になります。

★ MAE は「無難な中心付近」を予測しやすい

価格の変化量はほとんどが小さいため、
MAEで学習すると、
“とりあえず0付近にしておけば平均的に損をしない”
という方向に学習が進みます。

つまり、

MAE → 平均回帰しやすい(予測が弱くなる)


4. Huber損失(MAEの弱点をやわらげたもの)

◆ Huberとは

MAEの「学習の遅さ」と
RMSEの「外れ値に弱すぎる」
を折り合わせた損失関数です。

誤差が小さいときはRMSE、
誤差が大きいときはMAEになる

というハイブリッド型。

◆ メリット

  • MAEより学習が安定しやすい
  • RMSEより外れ値に強い
  • 平均回帰の発生を少し減らせる

◆ デメリット

  • まだ「中央値」に引っ張られやすく、
    FXでは まだ平均回帰が残りやすい

→ これをさらに改善するためにあるのが「Quantile」です。


5. Quantile損失(分位点回帰)

◆ Quantileとは

ターゲットの 分布の特定位置(分位点) を予測する損失。

たとえば 0.7 を指定すると、
70%の位置の値を予測するモデルになります。

◆ メリット

  • 中央値(0.5)の固定ではなく、
    0.3・0.7・0.9 など好きな位置を予測できる
  • 平均回帰の回避に使いやすい
  • ボラティリティ推定に使える

◆ デメリット

  • 少し難しく、調整が必要
  • 目的がはっきりしていないと逆に精度が下がる
WAN
WAN

Quantileでも平均回帰問題が解決しない時は特徴量・目的変数を改善させよう!


6. 平均回帰問題とは?FXでは特に深刻

FXは短期予測の値動きの9割が「ほぼ横ばい」です。
そのため、一般的な次の足を予測する回帰モデルは

■ とりあえず中央値(平均付近)を出しておけば

最も安全(損失最小)

という結論になりやすい。

これが 平均回帰問題(Mean Reversion Problem) です。

◆ 平均回帰の結果

  • 上昇トレンドなのに動きが小さすぎる
  • 下落トレンドでも予測の伸びが弱い
  • 実際の値動きよりも予測が「フラット」

つまり 価格予測AIなのに全然強くならない


7. 平均回帰の対策

以下の方法が効果的です。


■① 目的変数を工夫する

  • ATRで正規化
  • ATRのlog(ATRLog)
  • ターゲットの中長期化
  • 価格差ではなく「方向性+確率」形式

■② 損失関数をMAE → Huber → Quantileに進化させる

  • MAE:中央値に寄りやすい
  • Huber:MAEほど弱くない
  • Quantile:中央値から脱出

■③ ベースモデルは分類にして方向性のみを学習

回帰より「分類」のほうが、
平均回帰の影響を受けません。


8. スタッキングと平均回帰問題の関係

(重要ポイント)

一般的には、

■ ベースモデル:回帰

■ メタモデル:分類

とするのがセオリーです。

理由は、

  • 回帰モデルは情報量が多い
  • メタモデルが方向性だけを学習して効率が良い

とされているためです。


◆ しかし、FXでは平均回帰問題があるため

ベースを回帰にしても、その出力が「弱い」ままでは意味がありません。

ベースモデルが

  • 平均に張り付く
  • ボラティリティを捉えない
  • ノイズに綺麗に負ける

状態だと、
メタモデルに渡す情報も弱くなり、
スタッキングは成立しません。

▼ スタッキングについての調査結果はこちら
https://wonderfulfxlife.com/stacking_deepresearch/


9. FXのスタッキングで大事なのは「ベースの強さ」

まとめると、

■ MAE → 平均回帰を起こしやすい


■ Huber → 少し改善

■ Quantile → 平均回帰を回避しやすい

■ 回帰ターゲットを工夫(ATRLogなど)

■ ベースモデルの情報量が増える

■ そこで初めてスタッキングが成立する

という順番です。


まとめ

本記事では

  • LightGBM回帰 × MAE × 平均回帰問題
  • Huber・Quantileとの関係
  • スタッキングの落とし穴
  • MQL5に使うためのONNXの ReShape([1,1])問題

をまとめました。

FXのAIモデルを強くするには、
目的変数・損失関数・出力形状・スタッキング構造
すべてがつながっています。

「MAEで学習させればいい」という単純な話ではなく、
FX特有の“平均回帰”を避ける工夫が重要です。

オンラインコミュニティ

こちらのコミュニティで、AIや機械学習をトレードに活かすために日々探求しています。
興味のある方は覗いてみてください。

タイトルとURLをコピーしました