競馬AIを理解する|作り方・指数・特徴量・検証・運用までまとめて整理

自分を理解する様子 AI開発ログ

「競馬AI」と聞くと、どんなものを想像するでしょうか。

過去データを読み込んで、勝ち馬を自動で当ててくれるもの。

大量のデータを分析して、人間には見つけられない穴馬を発見してくれるもの。

あるいは最近の生成AIのように、

「次のレースはこの馬です」

と答えてくれるもの。

いろいろなイメージがあると思います。

このブログでも「競馬AI」という言葉をかなり使ってきました。

AI指数。

p_win。

特徴量。

学習。

再学習。

LightGBM。

市場との乖離。

指数差。

気付けば、競馬AIを初めて知った人にとっては、

「そもそも何をしているの?」

という記事がかなり増えてきました。

そこでこのページでは、これまで書いてきた競馬AI関連の記事を、

競馬AIとは何か → どう作るのか → 何を学習しているのか → 指数をどう読むのか → どう検証・運用するのか

という順番で整理してみます。

競馬AIについて最初から理解したい人。

自分でも作ってみたい人。

すでにAI予想を使っているけれど、数字の意味がよく分からない人。

そんな人向けの入口として使ってもらえればと思います。

そもそも、このブログでいう「競馬AI」とは何なのか

わかりません。

まず最初に整理しておきたいのが、

AI=何でも考えてくれる存在

ではないということです。

このブログで運用している競馬AIは、過去の競馬データから一定のパターンを学習し、それぞれの馬について勝つ確率を推定する仕組みです。

例えば、

馬の過去成績。

距離。

競馬場。

騎手。

馬場。

枠。

近走内容。

さまざまな情報を数値としてモデルへ渡します。

そして、

A馬 p_win 0.24
B馬 p_win 0.18
C馬 p_win 0.14

のように勝率を推定します。

この仕組みそのものを最初から追いたい場合は、ブログ初期に書いた「【AI研究メモ】AI誕生ストーリー」から読むと、なぜ競馬AIを作ることになったのかが分かりやすいと思います。

また、このブログ自体の立ち位置については、「なぜAIは競馬を理解しようとしているのか|当てるだけでは見えないもの」でも整理しています。

競馬AIの目的は、

「絶対に勝つ馬を教える」

というより、

競馬という複雑な現象をデータから少しずつ理解していくこと

です。

AI指数とは何なのか

競馬AIの記事を読むと頻繁に出てくるのが、

「指数」

です。

AI指数1位。

指数上位5頭。

指数差。

ただ、この「指数」という言葉自体がかなり曖昧です。

新聞にも指数があります。

競馬サイトにも指数があります。

独自予想家にも指数があります。

このブログでは、AIが推定した勝率などをもとに各馬を比較しています。

指数について最初に読むなら、「【AI研究メモ】競馬の『指数』とは何なのか」と「【AI指数観察ログ】AI指数の見方を整理してみる」がおすすめです。

重要なのは、

指数1位=必ず勝つ馬

ではないことです。

例えばp_win 0.25なら、推定勝率は25%。

逆に言えば75%は勝たないということになります。

ランキングにすると必ず1位ができますが、1位が突出しているレースと、無理やり1位を決めているだけの混戦では意味がかなり違います。

AI指数は「予言」ではなく判断材料

競馬AIを使い始めると、どうしても、

「今日のAI本命は?」

と見たくなります。

しかし個人的には、AI指数をそのように使うだけでは少しもったいないと思っています。

AI指数は、

未来の結果を言い当てる予言

というより、

馬同士を同じ基準で比較する材料

として見る方が面白いです。

この考え方については、「競馬AIを馬券に活かすための考え方|指数を『予言』ではなく『判断材料』に変える」で詳しく整理しています。

AI1位だった。

だから買う。

ではありません。

AI1位。

推定勝率25%。

2位との差は大きい。

市場では6番人気。

単勝オッズも高い。

ここまで見て初めて、

「これは面白いかもしれない」

となります。

競馬AIはどうやって作るのか

カラフルなおもちゃが組みあがる

ここから少し開発側へ進みます。

競馬AIを作ると聞くと、

高度な数学。

難しいプログラミング。

大量のGPU。

などを想像するかもしれません。

もちろん突き詰めればいくらでも高度になります。

ただ、基本的な仕組みだけなら、

データを用意する。

予測したい答えを決める。

特徴量を作る。

モデルへ学習させる。

未来データで予測する。

結果を検証する。

という流れです。

この一連の流れについては、「【AI開発ログ】競馬AIはどう作るのか?8ステップで整理してみた」で全体像をまとめています。

「競馬AIに興味はあるけれど何から始めればいいか分からない」

という場合は、まずここから読むと分かりやすいと思います。

AIは何を学習しているのか

競馬AIを作るうえで重要になる言葉が、

特徴量

です。

例えば、

前走着順。

過去3走平均。

騎手勝率。

距離実績。

枠。

斤量。

など、AIへ渡す情報を特徴量として扱います。

この考え方については、「競馬AIの重要特徴量を観察してみる」で整理しています。

ただし、

情報は多ければ多いほど良い

というわけでもありません。

役に立たないデータ。

重複した情報。

偶然だけ相関している情報。

こうしたものを大量に入れると、モデルが弱くなる可能性もあります。

その問題を考えたのが、「特徴量を増やしすぎるとAIは弱くなるのか|情報量とノイズの境界を考える」です。

競馬新聞を見ている人間にも似ています。

情報を30個見たから、5個しか見なかった人より正しいとは限りません。

AIでも、

情報量と情報価値は別

です。

学習データはどこから持ってくるのか

モデルを作るには、当然データが必要です。

競走馬。

レース結果。

騎手。

距離。

馬場。

オッズ。

過去走。

競馬AIは、こうした過去データを材料にします。

自分の運用では、JRA-VAN Data Lab.や競馬データベースを利用しながらデータを扱っています。

データを準備する部分については、「AIの学習データはどこから取るのかを観察してみる」で入口をまとめています。

実際に競馬AIを作ると、

モデルを作る時間より、

データを整える時間

の方が長いこともあります。

AIというより、

データ整理AI

を作っている気分になることもあります。

AIは人間が見落とすものを見つけられるのか

馬の影

競馬AIの面白いところの一つが、

人間と違う基準で馬を評価できることです。

人間なら、

前走15着。

12番人気。

という時点で、ほぼ見なくなる馬がいます。

しかしAIには、

人気薄だから恥ずかしい。

前走大敗だから怖い。

という感情がありません。

入力データ上で評価が高ければ上位へ出します。

この違いを考えたのが、「人間が見落とすデータをAIは拾えるのか|競馬予想で考える“気づけるもの”の違い」です。

実際、AI指数観察ログでも、市場では二桁人気だった馬をAIが上位評価するケースが何度もありました。

当たることもあります。

大外れすることもあります。

この市場とのズレこそ、競馬AIを観察していて一番面白いところかもしれません。

AIと人間はどちらが優れているのか

では、人間よりAIの方が競馬予想に向いているのでしょうか。

ここは単純ではありません。

AIは、

大量データ。

一貫した計算。

確率比較。

感情に左右されない判断。

を得意とします。

一方、人間には、

レース映像。

パドック。

直感。

文脈。

過去の経験。

などがあります。

この比較については、「AIと人間、どちらが競馬に向いているのか|得意分野を比べると見えてくる競馬予想の役割分担」で整理しています。

個人的には、

AIか人間か

という二択ではなく、

AIに得意な仕事を任せ、人間はその出力を解釈する

という形が自然だと思っています。

人間の「経験」をAIは再現できるのか

競馬歴が長い人には、

「このタイプの人気馬は危ない」

「このレース、なんとなく嫌だ」

といった経験則があります。

言葉では説明しにくい。

でも何度も競馬を見てきた結果として感じる違和感です。

これをAIは再現できるのか。

そのテーマを扱ったのが、「AIは“経験”を再現できるのか|競馬AIが考える人間との違い」です。

さらに最近では、「AIは競馬ファンの『嫌な予感』を再現できるのか|『なんか飛びそう』をデータにできる?」でも掘り下げました。

「嫌な予感」の中には、

同型馬が多い。

初条件が多い。

モデル同士の評価が割れている。

市場とのズレが極端。

など、実は数値化できる違和感も混ざっているかもしれません。

感情に左右されないのはAIの大きな特徴

強い子供

競馬では、

連敗した。

取り返したい。

買わなかった馬が勝った。

昨日勝ったから今日は強気。

など、予想以外の感情が馬券に入ってきます。

AIにはそれがありません。

10連敗しても、

「次は取り返そう」

とは考えません。

この違いについては、「AIはなぜ“感情に左右されない”のか|競馬予想で考える人間との判断の違い」で考えています。

また、実際にAIが負け続けたときにどう見るかについては、「負けが続いたとき、AIは何を考えたか|連敗を『異常』と決めつけない競馬AIの見方」へつながります。

AI運用では、

負けたからモデルが壊れた。

とはすぐ判断しません。

確率的な下振れなのか。

特定条件で弱いのか。

データに問題があるのか。

を分けて考えます。

AI自身もずっと同じではいられない

競馬AIは一度完成したら終わりではありません。

毎週新しいレースが行われます。

新しい馬が走ります。

騎手成績も変わります。

市場環境も変わります。

そこで、

「どのくらいの頻度で学習し直せばいい?」

という疑問が出てきます。

これについては、「競馬AIはどれくらいの頻度で学習し直すべきか|毎週再学習すれば強くなるのか考えてみる」で整理しています。

新しいデータを入れれば入れるほど強くなる。

とは限りません。

頻繁に学習し直すことで、直近のノイズへ過剰適応する可能性もあります。

競馬AIも、

作ること

より、

育て続けること

の方が難しいのかもしれません。

数字以外の情報をAIへ読ませることはできるのか

競馬新聞見る人

競馬には数値になっていない情報も大量にあります。

代表例が陣営コメントです。

「状態はいい」

「前走以上」

「展開が向けば」

「まだ良化途上」

こうした文章を、人間は自然に読んでいます。

ではAIにも読ませられるのでしょうか。

このテーマについては、「AIは陣営コメントを読ませると賢くなるのか|『状態は良いです』を競馬AIはどう理解する?」で考えています。

生成AIを使えば、

コメントを数値化。

強気・弱気を分類。

状態変化を抽出。

ということもできます。

競馬AIは、単純な表形式データだけではなく、文章情報へ広げていく余地もあります。

AI指数を見るときは「順位」より「差」を見る

実際にAI指数が完成した後の話です。

AI1位。

AI2位。

AI3位。

どうしても順位へ目が行きます。

しかし本当に重要なのは、

どれくらい差があるか

です。

例えば、

1位 30%
2位 15%

ならかなり違います。

でも、

1位 9.0%
2位 8.9%

なら、ほとんど同じです。

この考え方については、「指数差が小さい混戦レースは見送るべきなのか|AIが迷うレースの買い方を考える」で整理しています。

指数1位というラベルより、

AIがどれくらい自信を持って1位としているか

を見る方が重要です。

上位5頭を見る意味はあるのか

このブログではAI指数上位5頭を扱うことが多いです。

でも、

なぜ5頭なのでしょうか。

3頭では少ない?

10頭では多い?

8頭立てでも18頭立てでも5頭?

そこで考えたのが、「指数上位5頭は多すぎるのか、少なすぎるのか|競馬AIの『上位5頭』を改めて考える」です。

ここでも重要なのは固定順位ではなく、

指数差。

累積p_win。

5位と6位の差。

です。

「上位5頭」という見やすい表示と、実際の馬券判断は分けて考えた方がよさそうです。

AIと市場が一致したらどうする?

的中

AI上位馬。

1番人気。

2番人気。

3番人気。

全部同じ。

この場合、

「AIも人気馬を評価しているから安心」

と思います。

しかし馬券としては妙味がない可能性があります。

このテーマについては、「指数上位馬がすべて人気馬だったとき、どう考えるか|AIと市場が一致したレースの扱い方」で考えています。

AIが市場と同じ結論を出した。

予測としては正しいかもしれません。

しかし市場より優位な情報を出せているわけではありません。

競馬AIで馬券を考えるなら、

AIが正しいかだけでなく、市場と何が違うか

も重要になります。

逆にAIと市場が大きく割れたら?

二者択一で間違える様子

個人的に一番面白いのがこちらです。

AI指数1位。

でも15番人気。

あるいは、

単勝1.3倍の1番人気をAIは上位5頭に入れていない。

こういうレースです。

AI指数観察ログでは、実際に何度もこうしたケースを観察しています。

これは、

市場が間違っている

のか、

AIが間違っている

のか。

レース前には分かりません。

だからこそ記録します。

AI指数観察ログは単なる予想記事ではなく、

AIと市場の意見がどこで違い、その後どうなったかを見る実験記録

として位置付けています。

実戦でAI指数をどう馬券に変えるのか

競馬AIを作って最後に出てくるのが、

「で、何を買うの?」

という問題です。

AI1位突出。

上位2頭拮抗。

上位5頭混戦。

市場との大幅乖離。

それぞれ同じ買い目でいいのでしょうか。

このテーマをまとめたのが、「競馬AIの指数結果に応じたベターな買い目は何か?|1強・上位拮抗・混戦・市場との乖離から考える」です。

例えば、

1位突出+オッズ妙味あり
→ 単勝候補。

上位拮抗
→ 順位より価格比較。

完全混戦
→ 見送り。

市場と大幅乖離
→ AI側の不確実性を確認。

というように、指数の形によって考え方を変えます。

p_winだけですべての馬券を考えていいのか

現在のAIで中心的に扱っているのは勝率です。

しかし単勝以外の馬券では、必要な確率が変わります。

複勝なら3着以内確率。

ワイドなら2頭が同時に3着以内へ入る確率。

三連複なら3頭の同時好走確率。

この問題については、「指数は単勝・複勝・ワイドのどれに向いているのか|AIの確率と馬券種の相性を考える」で整理しています。

AI指数があるから、

どんな券種にも使える

とは限りません。

モデルが何を予測しているかと、馬券の成立条件を合わせる

必要があります。

AIを作らず、他人のAIを使うのもありなのか

スマートスピーカーに驚く様子

ここまで読むと、

「大変そうだな」

と思うかもしれません。

Python。

SQL。

特徴量。

モデル。

再学習。

検証。

全部自分でやる必要があるのでしょうか。

必ずしもそうではありません。

最近はAI予想サービスもあります。

公開指数もあります。

なら、

「他人が作ったAIを使えばいいのでは?」

という考え方もあります。

このテーマについては、「結局は他人のAIに乗っかった方が早いんじゃないの?|競馬AIを『作る側』と『使う側』から考える」で整理しています。

馬券だけが目的なら、自作が最短とは限りません。

一方、

なぜAIがその馬を選んだのか。

どう改善できるのか。

を理解したいなら、自分で作る面白さがあります。

自分でも競馬AIを作ってみたい人へ

ドライバを握る会社員

ここまで読んで、

「自分でも作ってみたい」

となった場合、次に困るのが、

何を勉強すればいいのか

です。

競馬AIには、

Python。

pandas。

SQL。

統計。

機械学習。

LightGBM。

モデル評価。

運用設計。

など、複数分野が関わります。

ただし最初から全部覚える必要はありません。

自分の場合も、

作る。

困る。

調べる。

また作る。

という流れで少しずつ覚えてきました。

学習ロードマップとして使える書籍については、「競馬AIの運用構築におすすめの書籍紹介!|Python・SQL・機械学習から運用まで学べる本を選んでみる」にまとめています。

Pythonをこれから始めたい人。

LightGBMを使ってみたい人。

バックテストや過学習まで理解したい人。

それぞれ目的別に選べるようにしています。

競馬AIを「使う側」から「作る側」へ進みたいなら、まずここから必要な分野を拾ってみると分かりやすいと思います。

競馬AIを動かすために高価なPCは必要なのか

マイニング環境のイメージ

もう一つ、自分で競馬AIを作ろうとすると気になるのがPCです。

「AI」という名前から、

30万円のゲーミングPC。

高性能GPU。

巨大なデスクトップ。

が必要なように感じます。

しかし、自分が運用しているような、

Python。

pandas。

SQL。

LightGBM。

を中心とした表形式データの競馬AIなら、必ずしも巨大なGPUは必要ありません。

実際、自分は約1年前からMINISFORUM UM880 PlusというミニPCを競馬AI用PCとして利用しています。

minis forum um880plusの写真

データ処理。

モデル学習。

週末の予測。

バックテスト。

普段のPC作業。

まで、現状特に不満なく使えています。

さらに軽めの3Dゲームも普通に動かせるため、競馬AI専用機だけではなく普段使いPCとしても利用しています。

実際の使用感や、

「ミニPCで競馬AIはどこまで動かせるのか」

については、「競馬AI運用にミニPCは使える?|MINISFORUM UM880 Plusを1年間使ってみた」で詳しくまとめています。

競馬AIを始めるためにPCを買い替える必要はありません。

まず今あるPCで動かす。

その後、

処理が遅い。

メモリが足りない。

専用機が欲しい。

となった段階で考える。

それくらいで十分だと思います。

「勉強してから作る」より「作りながら勉強する」

競馬AIを理解しようとすると、

Pythonを勉強。

統計を勉強。

機械学習を勉強。

全部終わってから作る。

と考えたくなります。

でも個人的には逆でした。

まず簡単なモデルを作る。

データがうまく結合できない。

SQLを調べる。

モデルが異常に強い。

情報リークを疑う。

負け続ける。

確率やサンプル数を調べる。

なぜこの馬が高評価?

特徴量を調べる。

こうして、

競馬AIで起きた疑問を教材にする

方が理解しやすかったです。

書籍もPCも、それ自体が目的ではありません。

競馬AIを作り、疑問が生まれたときに使う道具です。

AI指数観察ログは「完成したAIの成績表」ではない

修行に打ち込む様子

ブログには大量のAI指数観察ログがあります。

これだけ見ると、

AI予想を毎週公開するブログ

に見えるかもしれません。

しかし自分としては、

競馬AIが何を理解できていて、何を理解できていないかを観察するログ

という意味合いの方が強いです。

AI1位が勝った。

だから成功。

AI1位が負けた。

だから失敗。

だけではありません。

なぜ人気薄を評価した?

なぜ人気馬を低評価した?

指数差はあった?

展開は想定通りだった?

モデルが拾えていなかった情報は?

こうしたものを一つずつ記録しています。

当たったレースより「AIが間違えたレース」が面白い

競馬AIを作るうえでは、

的中したレースより、

大きく外したレース

の方が学びになることがあります。

例えば、

AI上位5頭がすべて馬券圏外。

市場人気馬を極端に低評価。

成長した3歳馬を拾えなかった。

展開変化に対応できなかった。

こうしたケースです。

ブログ初期には「AIが最初に外したレース」という記事も書いています。

AIを作っていると、

「外れを隠す」

より、

なぜ外れたかを保存する

方が次の改善につながります。

競馬AIを理解すると「AIに任せれば勝てる」から離れていく

不思議なもので、競馬AIについて知れば知るほど、

「AIなら全部分かる」

という感覚から離れていきます。

AIにも苦手条件があります。

データに存在しない情報は分かりません。

初条件に弱いことがあります。

市場と大きく割れたとき、AI側が間違っていることもあります。

連敗もします。

モデルが古くなる可能性もあります。

それでも使う意味があります。

人間とは違う方法で、

大量のデータを同じ基準から眺め続けることができるからです。

最初に読むなら、この流れがおすすめ

競馬AI関連の記事はかなり増えてきました。

すべて順番に読む必要はありません。

最初に全体像をつかむなら、次の流れが分かりやすいと思います。

「【AI研究メモ】AI誕生ストーリー」

↓

「【AI開発ログ】競馬AIはどう作るのか?8ステップで整理してみた」

↓

「競馬AIの重要特徴量を観察してみる」

↓

「【AI研究メモ】競馬の『指数』とは何なのか」

↓

「競馬AIを馬券に活かすための考え方|指数を『予言』ではなく『判断材料』に変える」

↓

「指数差が小さい混戦レースは見送るべきなのか」

↓

「競馬AIの指数結果に応じたベターな買い目は何か?」

ここまで読めば、

競馬AIが何をしているのか。

指数1位が何を意味するのか。

なぜ毎回買わないのか。

という基本的な考え方はかなりつながると思います。

そこから興味に応じて、

人間とAI。

特徴量。

再学習。

陣営コメント。

AI指数観察ログ。

へ進んでもらう形が分かりやすそうです。

まとめ

理解した様子

「競馬AI」と一言でいっても、その中にはいくつもの要素があります。

競馬データを集める。

特徴量を作る。

モデルへ学習させる。

勝率を推定する。

指数として比較する。

市場オッズと比べる。

実戦で結果を見る。

外れた理由を調べる。

必要ならモデルを修正する。

この繰り返しです。

そして競馬AIを理解するうえで一番重要なのは、

AI指数1位を当て馬として見るのではなく、AIが競馬をどう理解した結果なのかを見ること

だと思っています。

なぜこの馬が高いのか。

なぜ人気馬を低く見たのか。

1位と2位に本当に差があるのか。

市場とのズレはどこにあるのか。

今回の条件をAIは十分経験しているのか。

そう考えると、指数はただのランキングではなくなります。

自分で競馬AIを作ってみたくなったら、PythonやSQL、機械学習を勉強する。

その入口として書籍を使う。

実際に運用を続けてPC環境が必要になったら、専用機を考える。

その一例として、自分は現在MINISFORUMのミニPCを競馬AI用に使っています。

最初から全部そろえる必要はありません。

AIを作る。

レースを見る。

外れる。

考える。

直す。

また試す。

その繰り返しを続けていく。

このブログではこれからも、

競馬AIが競馬をどこまで理解できるのか

を観察していきたいと思います。

コメント

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