AIがその日のレースを自分で選ぶ?|自動選定の仕組みを作りました

ボートレースAI開発

前回は、ボートレースAIの予想処理が数秒遅れてしまった問題を修正した話を書きました。

直前情報を少し早めに取得して、正式な判定時間では最後の判定だけを行うように変更しました。

これで、決めた時間にAI予想を動かせるところまで進んできました。

そして次に取り組んだのが、

「今日はどのレースを予想するのか」

を毎回人が決めなくてもよくする仕組みです。

ここでいう「AIが選ぶ」は、予想スコアを使って一番勝てそうなレースを探すという意味ではありません。

今回は、その日のレース予定から候補を自動で絞り、1レースを選ぶ仕組みについて紹介します。

これまでは、人が対象レースを決めていた

これまでのテストでは、

「今日はこのレースで試そう」

と人が対象レースを決めていました。

AIは、指定されたレースの情報を取得して予想します。

この方法でも検証はできます。

ただ、毎日続けるとなると、

  • 当日の開催を確認する
  • レース時間を確認する
  • テストできそうなレースを探す
  • 対象レースを指定する
  • その時間に処理を動かす

という作業が必要になります。

毎朝これを人がやっていると、自動化とは言いにくいですよね。

そこで、

その日のレース予定から、対象レースを自動で決める仕組み

を作り始めました。

毎朝取得したレース予定を使う

このAIでは、毎朝6時30分に全国24場のレース予定を取得しています。

この予定には、

  • どの競艇場で開催されるか
  • 何レースあるか
  • レースの締切予定時刻

など、その日の処理に必要な情報があります。

以前は、この情報を確認してから人が対象レースを決めていました。

現在は、この予定データを使って、

システム側で候補レースを自動的に探す

ところまで作っています。

「一番勝てそうなレース」を選んでいるわけではない

ここは少し注意が必要です。

「AIがレースを選ぶ」と聞くと、

AIが一番当たりそうなレースを探している

ように思えるかもしれません。

でも、今やっていることは違います。

現在の自動選定では、

予想AIのスコアを比較してレースを選んでいるわけではありません。

見るのは、

「このレースなら、安全に決めた時間でテストできるか」

という条件です。

つまり今の段階では、

勝てそうなレース探しではなく、安全に検証できるレース探し

です。

なぜ「安全に検証できるか」が重要なのか

ボートレースAIの検証では、結果だけを見ていません。

たとえば、

  • 予定した時間に処理できるか
  • 直前情報を正しく取得できるか
  • 判定時間に間に合うか
  • 後から予想を作っていないか

といった部分も重要です。

いくら的中していても、

結果が分かったあとに作った予想では意味がありません。

また、処理が間に合わなかったレースを後からやり直せば、同じ条件での検証ではなくなってしまいます。

だからこそ、今はまず、

決めたルールで安全に処理できるレースを自動で選ぶ

ことを優先しています。

候補を絞って、1レースを選ぶ

その日の予定から条件に合うレースを探し、候補を絞ります。

現在のテストでは、候補を最大3レースまで絞り、その中から1レースを採用しています。

ここでも、予想の強さを比較しているわけではありません。

あくまで、

その日の自動テストに向いているか

という運用上の条件で選びます。

これにより、人が毎朝レース表を見て、

「今日はこれにしよう」

と決める作業を減らせます。

選んだあとは、AI予想へつなぐ

対象レースを決めたら、次はAI予想です。

選ばれたレースについて、

  • 必要な直前情報を取得
  • AIスコアを計算
  • 予想順位を決める
  • 買うか見送るか判定する

という流れへ進みます。

この「選ばれたレースをAIが予想する処理」自体は、すでに実際のレースで動作確認しています。

つまり、

「レースを選ぶ仕組み」

と

「選んだレースを予想する仕組み」

は、それぞれ動くところまで来ています。

今は、この2つを完全につなぐところ

では、全部自動になったのかというと、まだそこまでは行っていません。

現在は、

自動でレースを選ぶ処理と、自動予想を完全につなぐ最終確認

を進めています。

イメージとしては、

毎朝レース予定を取得
↓
候補レースを自動で絞る
↓
1レースを選ぶ
↓
そのレース専用の実行準備
↓
レース前に直前情報を取得
↓
AI予想
↓
買う・見送るを判定

という流れです。

人が途中でレース番号を入力しなくても、この一連の処理がつながることを目指しています。

「PURCHASE」でも舟券は自動で買わない

ここも誤解されやすいところです。

AIでは、条件を満たした場合に「PURCHASE」という判定を出します。

ただし、

PURCHASE=自動で舟券を購入する

という意味ではありません。

現段階では、

PURCHASE
↓
判定を保存
↓
停止
↓
人が確認

という形です。

実際の舟券購入まで自動化しているわけではありません。

レース結果の確認もまだ自動ではない

同じように、レース終了後の、

  • 結果取得
  • 払戻確認
  • 的中判定
  • 回収率への反映

なども、現在は完全自動ではありません。

予想を出したあとも、

人が確認してから次の処理へ進む

ようにしています。

自動化できるからといって、一気に全部つなぐのではなく、ひとつずつ確認しながら進めています。

自動化の目的は、人を完全に外すことではない

AI開発をしていると、

「最終的には全部AIに任せるの?」

と思われることがあります。

でも、今の目的は少し違います。

毎日同じことを繰り返す部分は、自動化した方が安定します。

一方で、

  • 予想結果の確認
  • 異常がなかったか
  • 本当に次へ進めていいか

といった部分は、まだ人が確認した方が安全です。

人がやる必要のない作業は減らし、判断が必要なところは人が見る。

今は、その形を作っています。

AIが賢くなったというより、運用が少し成長した

今回の開発は、AIの予想精度を直接上げたものではありません。

予想ロジックも変えていません。

変わったのは、

毎日AIを動かすための運用部分

です。

最初は、

「今日はこのレース」

と人が指定していました。

そこから少しずつ、

  • 毎朝の予定取得
  • 候補レースの抽出
  • 対象レースの選定
  • 予想開始の準備

まで自動で進められるようになってきました。

AIそのものだけでなく、

AIを毎日使える形に育てている

という感覚に近いです。

まとめ

今回は、その日のレース予定から候補を自動で絞り、対象レースを選ぶ仕組みについて紹介しました。

ただし現在の自動選定は、

AIが一番勝てそうなレースを選ぶ仕組みではありません。

あくまで、

決めた時間・条件で安全に検証できるレースを自動で選ぶ仕組み

です。

選んだレースをAIが予想する処理も、すでに動作確認できています。

現在は、この2つを完全につなげるところまで進めています。

少しずつですが、

「毎朝、人がレースを指定してAIを動かす」

ところから、

「予定を見て、対象を選び、予想まで進む」

仕組みに近づいてきました。

自動化はまだ途中です。

次は、この「自動選定」と「自動予想」を実際につなげて、人が途中で操作しなくても動くか試してみます。

うまくいったことも、失敗したことも、そのまま開発日記として残していこうと思います。

次回は、レース選びから予想まで、ついに全部つながった|ボートレースAI開発日記⑤で、レース選びから予想までをつないだ流れを紹介します。

コメント

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