【要約】競馬AI開発記録 #21 ドメイン知識の注入とモデルの多層分離:識別能の限界突破に挑む [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が、競馬AIの識別能(Spearman相関)の停滞を打破するために新特徴量を導入した際、学習の不安定化という深刻な問題に直面した。具体的には以下の事象が発生した。
- ・多重共線性によるノイズ混入:新規のパフォーマンス系特徴量が既存指標と干渉し、識別能が急落した。
- ・勾配爆発による学習失敗:rank_xendcgの導入後、ターゲットのスケール不備によりRMSEが18兆を超える異常値を記録した。
- ・分布ドリフトによる学習停止:検証データの分布変化により、Early Stoppingが学習開始直後に作動し、モデルが定数を出力する状態に陥った。
// Approach
開発者は、モデルの目的(実力予測 vs 穴馬予測)に応じて特徴量空間を分離し、数値的安定性を確保するアプローチを採用した。以下の手法を実装した。
- ・特徴量の物理的分離:穴馬モデルから着順系指標を排除する「ranking_only_cols」を定義し、ノイズを遮断した。
- ・ターゲットの線形正規化:勾配爆発を防ぐため、ターゲットラベルを出走頭数で除算し、0から1の範囲に収めた。
- ・学習プロセスの変更:不安定なEarly Stoppingを廃止し、固定ラウンド学習と予測値の標準偏差による監視体制へ移行した。
// Result
開発者は、特徴量の分離と正規化を断行した結果、予測精度と収益性の両面で顕著な成果を得た。定量的な改善は以下の通りである。
- ・収益性の向上:全体ベタ買いROIが74.0%から86.30%へと大幅に改善した。
- ・目標の達成:2026年単年ROIが93.68%に達し、目標の90%を突破した。
- ・モデルの独立性確立:モデル間のComponent相関を0.4273から0.1704へ低減し、アンサンブル効果を高めた。
Senior Engineer Insight
> 「万能な特徴量は存在しない」という前提に基づき、目的別に特徴量空間を物理的に分離する設計は、実戦において極めて合理的だ。単一モデルの精度向上に固執せず、アンサンブルの質を高めるためにノイズを遮断する判断は、大規模システムにおける予測精度の安定化に寄与する。ただし、管理すべき特徴量セットが増えるため、パイプラインの複雑化と運用コストの増大には注意が必要である。