AIの学習と予測について
「AIが予想する」と言われても、中で何をしているのかが分からないと信用のしようがありません。
このページでは、AutoRaceFactorAIのAIが行っている学習と予測を、専門用語をかみくだいて説明します。
学習と予測は SNIPER-JAPAN 側で毎晩行い、お客様のソフトは配信されたAI予想を受け取って表示します。
ひとことで言うと
過去のレースで「どんな選手が上位に来たか」の傾向を数式にまとめ(学習)、その数式に今日の出走表を通して着順を見積もる(予測)。やっているのはこの2つだけです。
1. 集める
予測したい開催日の前日までの1年ぶんのレースを、出走表と結果をそろえて読み込みます。1年でおよそ7,600レース・5万6千車ぶんのデータです。
2. 学習する
「競走得点」「ハンデ」「試走タイム」「勝率」「級班」などの項目と、実際の着順との関係を、コンピュータが繰り返し計算して数式にまとめます。
3. 予測する
できあがった数式に、その日の出走表を通します。出走する選手それぞれに点数が付き、点数の高い順に ◎〇△×56… が決まります。
AIの「学習」とは何をしているのか
人がオートレースを覚えるときも、たくさんレースを見て「競走得点の高い選手は強い」「試走タイムの良い選手は調子が良い」「ハンデが重いと前に届きにくい」と法則を覚えていきます。
AIの学習はそれを、人の感覚ではなく数字の積み上げでやっているだけです。
学習に使うもの
| 用語 | かみくだくと | AutoRaceFactorAIの場合 |
|---|---|---|
| 学習データ | お手本にする過去のレース | 予測する開催日の前日までの1年ぶん。古すぎると今の勢力と合わず、短すぎると数が足りないため、1年にしています。 |
| 特徴量 (とくちょうりょう) |
判断材料。AIに見せる項目 | 競走得点とそのレース内での差・順位、ハンデ(メートル)、試走タイム(前走・前3走の平均と最速)、平均スタートタイミング、前3走の着順、走路状態(良・湿・斑)ごとの近走成績、直近4か月・90日・180日・1年の勝率や連対率、級班、予想ゴールタイム、同じレース場での成績、地元かどうか、年齢、車番、会場、レース番号、距離など。どれを使うかは SNIPER-JAPAN 側で検証して決めています。 |
| 目的変数 (もくてきへんすう) |
当てにいく「答え」 | 着順ランク/1着になったか/2連対したか/3連対したか、の4つ。4つを別々に学習します。 |
| モデル | 学習でできあがった数式のかたまり | 目的変数ごとに1つずつ、計4つ作られます。 |
| アルゴリズム | 学習のやり方 | 勾配ブースティング(LightGBM)。「はい/いいえ」の枝分かれ(決定木)を少しずつ積み重ねていく方式です。 |
学習の進み方
ざっくり言えば「予測してみる → 答え合わせ → ずれた分を直す」の繰り返しです。
まず雑に予測
最初のモデルは当たりません。全選手に似たような点を付ける程度です。
答えと比べる
実際の着順と見比べて、どの選手をどれだけ間違えたかを測ります。
間違いを直す枝を足す
間違えたレースを説明できる枝分かれを1本足します。これを何千回も繰り返します。
行き過ぎる前に止める
直しすぎると過去だけに詳しい「暗記」になるので、途中で改善が止まったらそこで打ち切ります。
| 設定 | 意味 |
|---|---|
| 学習回数 | 枝を足す回数の上限。初期値2000回。多いほど細かく覚えますが、暗記に近づきます。 |
| 早期打切り | この回数ぶん改善しなくなったら学習を止める、という歯止め。初期値50回。 |
| 学習率 | 1回ごとにどれだけ直すか。初期値0.05。小さいほど慎重に、ゆっくり学びます。 |
| 葉の数 | 1本の枝分かれの細かさ。初期値31。大きいほど複雑な条件を表せますが、暗記しやすくなります。 |
「ちゃんと学べたか」の確かめ方
学習に使ったレースで答え合わせをしても、暗記した答案を採点するようなもので意味がありません。そこで学習期間の後ろ2割は学習に使わず、答え合わせ専用に取り分けています。
| 検証 | 取り分けたレースで、1着的中率と3連対率を測ります。 |
|---|---|
| ベースライン比較 | オートレースは競走得点の高い選手が有利な競技です。そのため「常に競走得点1位を本命にする」だけの成績を必ず並べて表示します。これを上回れなければ、AIを使う意味がないからです。 |
| データの欠け | 予測する日のデータに抜けがあると精度が落ちるため、欠測の割合も確かめています。 |
AIの「予測」とは何をしているのか
学習でできたモデルに、その日の出走表を1人ずつ通すだけです。返ってくるのは順位ではなく点数で、その点数を高い順に並べたものが ◎〇△×56… になります。
4つの見方で予測する
| 予測するもの | 何が分かるか |
|---|---|
| 着順ランク | 出走選手の中での強さの序列。1位から8位までの並びを直接学習したものです。1位と2位が僅差なのか断然なのかが分かるよう、順位だけでなく元の点数も残しています。 |
| 1着確率 | その選手が1着になりやすいか。頭を決めるときの判断材料です。 |
| 2連対確率 | 2着までに入りやすいか。 |
| 3連対確率 | 3着までに入りやすいか。3連単の3着候補(△と×)を選ぶときに使います。 |
4つは別々に学習した別々のモデルです。だからこそ、4つの見方が同じ選手を指しているレースは信頼でき、バラバラのレースは危ない、という判断ができます。ソフトではこの一致の度合いを「AI同士の一致度」として点数にしています。
予測から「レース診断」へ
予測はあくまで材料です。AutoRaceFactorAIは、その材料を組み合わせて「このレースは買う価値があるか」まで判断します。
| 診断項目 | 予測から、どう計算しているか |
|---|---|
| 予測容易度 | 1位と2位の点差が大きいほど高くなります。実力差がはっきりしているレースです。 |
| AI同士の一致度 | 4つのモデルが同じ選手を上位に置いているかどうか。 |
| AI信頼度 | 一致度と、その会場・レース番号の過去データの多さから求めます。 |
| 波乱度 | 上位陣の点数が団子状態か、若手や失格点を持つ選手が多くないか、級班が混在していないか、といった荒れやすさ。 |
| 妙味 | AIの見立てと、出走表の予想印との食い違いの大きさ。 |
| 総合評価・判定 | 上の項目に重みを付けて足したものが総合評価(S〜D)。しきい値で「買い/様子見/見送り」を決めます。 |
予測から[AI診断]の6つの型へ
AIの予測から、レースごとの診断(総合スコア・ランク・判定)と買目を作ります。[AI診断]は、前日AI・直前AIの2つと、的中率特化型・バランス型・回収率特化型の3つを組み合わせた6つです。型が変わると、買うレースと買目の両方が変わります。前日AIと直前AIで決まりは同じで、もとにするAIの見込みだけが違います。全券種の買目を出し、組み合わせが無い券種は「推奨なし」と出ます。ソフトでは、詳細画面の型ごとのタブと、番組表の型ごとの列で見られます。はじめは前日AI・バランス型です。自動運転でも「AIの型」タブで型を選べます。型ごとの買目の組み合わせはマニュアルに載せています。
| 型 | 買うレース | 買目 |
|---|---|---|
| 的中率特化型 | AIの判定が BUY のうち、総合スコアが高い、堅いレースだけ買います。 | バランス型より広げます。 |
| バランス型 | AIの判定のまま、BUY のレースを買います。 | 基準の買目です。 |
| 回収率特化型 | AIの判定が WATCH(様子見)のうち、総合スコアが一定以上のレースを買います。バランス型で BUY のレースは買いません。 | バランス型より絞ります。 |
前日AIと直前AI
| AI | 何を材料に予想するか |
|---|---|
| 前日AI | 前の日までに分かっている材料で、夜のうちに学習・予想します。朝から見られます。 |
| 直前AI | 前日AIの材料に、当日発表の試走タイム・走路状況・気温・湿度・走路温度を足して予想する、別に学習したモデルです。AIMaster が予想し直して配信し、ソフトはそれを受け取って表示します(お使いのパソコンでは予想し直しません)。配信が届くまでは「直前情報待ち」と出ます。 |
レース内の偏差値と標準偏差
同じ成績でも、メンバーが強いレースと弱いレースでは意味が変わります。そこで、成績などをそのレースの出走メンバーの中での偏差値に直したものと、メンバーの実力差の大きさ(標準偏差)も学習の材料に加えました。偏差値は、ソフトの詳細画面の[偏差値]タブでもご自分の目で確かめられます。
| AIの本命の1着率 | これまでのAI | 新しいAI | 比べ方 |
|---|---|---|---|
| オートレース | 37.6% | 42.2% | 直前AI。偏差値を学習に加えただけの段階では 39.4% |
守っているルール
AIの予測は、作り方を少し間違えるだけで「過去を振り返れば当たっているのに、本番では当たらない」という状態になります。それを避けるために、次のことを徹底しています。
答えを見て学習しない
学習に使うのは、予測する開催日の前日までのレースだけです。予測する日の結果は、たとえ手元にあっても学習には混ぜません。
前日AIは当日しか分からない項目を使わない
当日の試走タイムや直前のオッズは、朝の予測時(当日の午前3時ごろ)には入りません。これを前日AIの学習に入れると、予測時だけ材料が欠けた状態になるため、前日AIの材料から外しています。試走タイムなどの直前の材料は、別に学習した直前AIだけが使います。
結果が混ざる項目を外す
「今節成績」のうち、予測したいレース自身の着順が入り込む部分は、候補から除いています。入れると成績が良く見えますが、実戦では役に立ちません。
AIにできること・できないこと
できること
何万レースぶんもの傾向を、感情や体調に左右されずに同じ基準で当てはめること。そして「このレースは条件が揃っていない」と買わない判断を淡々と出すことです。人が1日何十レースも同じ精度で見続けるのは困難です。
できないこと
結果を当てることの保証はできません。AIが出すのは確率であり、確率が高いレースでも外れます。落車・失格・走路状態の急な変化・エンジンの仕上がりなど、データに現れない要素もオートレースには多くあります。
正直にお伝えしておくこと。オートレースは競走得点の高い選手が有利な競技で、「常に競走得点1位を本命にする」だけでもかなりの的中率になります。これは非常に強いベースラインです。開発では毎回この数字と並べて検証しており、これを安定して上回ることを目標に改良を続けています。的中率や利益をうたうことはいたしません。
本ソフトは判断材料を提供するものであり、購入の判断はご利用者ご自身で行ってください。公営競技には損失の可能性があります。
用語のまとめ
| 学習 | 過去のデータから規則性を見つけて、数式(モデル)を作る作業。 |
|---|---|
| 予測 | できた数式に新しいデータを通して、結果を見積もること。 |
| 特徴量 | AIに見せる判断材料の項目。競走得点、勝率、決まり手など。 |
| 目的変数 | 当てにいく答え。着順ランク、1着確率など。 |
| モデル | 学習の成果物。特徴量を入れると点数を返す数式のかたまり。 |
| 過学習 | 過去のデータを暗記してしまい、新しいレースでは当たらなくなること。 |
| 検証 | 学習に使わなかったデータで答え合わせをすること。 |
| ベースライン | 比較の基準。ここでは「常に競走得点1位を本命にする」買い方。 |
| リーク | 本番では使えないはずの情報(答えなど)が、学習に混ざってしまうこと。 |
| 勾配ブースティング | 枝分かれの判断(決定木)を少しずつ積み重ねて精度を上げる学習方式。LightGBMはその実装のひとつ。 |
AutoRaceFactorAIの機能を見る
学習と予測のしくみが、実際の画面でどう使えるのかは製品ページでご確認いただけます。