競馬AI開発

競馬AI開発① ~概要~

今回から、少しずつ競馬AI開発について記載していきたいと思います。

なぜ競馬AI開発を始めたか?

ずばり勝ちたいからです(笑)。

競馬歴自体は2021年1月時点で6年程度で、最初は競馬新聞片手に馬柱を眺めてパドックを見て、、といったオーソドックスなアナログ予想でした。

もちろん競馬自体は好きなので、その魅力にはまっていきましたが馬券の方は回収率70~80%を推移。元々データ分析系が好きなこともあり、過去のデータを集計してなんとか馬券に勝てるように努力しましたがプラス収支になるにはほど遠い日々が続いていました。。。

2017年~2018年頃、当時色々と情報を調査していくと、卍さんのようにデータを駆使して競馬で億単位の利益を手にしたり、続々とAIを利用して競馬を攻略する方々(AlphaImpact社や松風さんなど)が世に台頭しはじめたころでした。

幸いなことに私も仕事で多少AIについてかじっていたこともあり、「せっかくなので身近なテーマでAIを活用してみよう!」という意気込みで競馬AI開発をし始めました。

現在、AI実装自体のハードルも下がり様々な方が競馬AI開発にチャレンジしていますが、おそらく短期間の開発で結果を出せているのは一握りなんじゃないかな?と思っています。

正直なところ、私自身も馬券で結果をだせるようになったのはここ1年くらいです。

下記は2020年の馬券結果(中央)です。「1年だけで調子に乗るな!自慢するな!」と思われるかもしれませんが、「論より証拠」。結果を出してないよくわからないAI開発者の言うことだと個人的には説得力に欠けるかな、と感じるので一応根拠として載せます(ウマい馬券の成績についてはこちらをご覧ください)。

2020年実馬券成績_中央

最初の方はまあいろいろと失敗をしています(;^_^A 

例えば、初期の頃に「やっと第一バージョンの競馬AIできた!」と思って、馬券のシミュレーションをしてみたら軽く100%を超えており、圧倒的な優越感に浸っていましたがよくよく中身を見てみると、なぜか新馬戦の収支が高すぎる。

もう嫌な予感しかしなかったのですが、どうやら馬番のソートができておらず新馬戦だけ着順の順番でデータを入れていました。

(本来 馬番1→馬番2→馬番3→・・・ とデータを流し込む必要があるところを、 1着の馬番 → 2着の馬番 → 3着の馬番→・・・ と流し込んでいました。。。)

今振り返るととても恥ずかしいミスをしていますが、最初は「自分で競馬AIを作れた!」という嬉しさもありすぐに気づくことができませんでした。

競馬に限らず特にAI開発に関しては、まず高すぎる精度が出たら疑います。そして本当に良いAIができたかどうかは、いかに開発したAIと同程度の予測精度を実際に出すことができるか?がポイントになります。

機械学習の用語では「汎用化」することですが、それ以前に情報リークがない(本来予測時に使用できない情報をAI開発時に使用していない)ことが重要です。

偉そうなことをいっていますが、私も常に不安と戦っています。上述のように、本当に情報リークしていないかは定期的に確かめるとともに、AIモデルも必ず数カ月の頻度で更新するよう心掛けています。

そんなわけで私がこれまで競馬AIを開発してきてのノウハウや注意点など、具体例を絡めて少しずつまとめていければなーと思っています。

あくまで個人的な考えが多く、技術的な内容についても厳密でない可能性がありますのでゆるーく目を通していただければ幸いです笑

競馬AI開発のメリットとデメリット

メリット

競馬AI開発は良いことだらけです!

  • 競馬がより楽しめる

  競馬は歴史があり、自分では語るのがおこがましいほど数々のドラマが生まれ、色々な人に感動と興奮を与えます。もちろん馬券を買っていなくても、少額で買っていても、十分に楽しめます。

  ただし、どうせ馬券を買うならプラスにしたいと誰しもが思うでしょうし、実際自分も競馬AI開発をしてからは好きな馬を応援するとともに、予測がどれくらいあたっているか、そして馬券で勝つことができるか?と楽しみが増えています!(逆に、好きな馬でなく予測した本命馬に勝たれることがしばしばで複雑な心境になりますが。。。)

  • 技術と知識が身につく

  「AI開発」であるため、もちろんAI系の技術と知識(開発環境構築、機械学習手法、汎用化方法、pythonなどの言語知識など)が身に付きます。

  が正直私が考える純粋なAIという意味では競馬予測システムの20~30%くらいしか占めてないと思っています。 

  実際は、AIだけでなく様々な事柄を知っている必要があります(PC性能、GPU、データ設計・収集・加工、DB管理、SQL、ファイル入出力、エクセル自動操作、プログラムの実行管理・バッチ処理、プログラムのコーディング知識・検証、、、などたくさん)。

  言っておきますが、私は仕事でプログラムを書いてはいますが、プログラムやパソコン(ハード・ソフト共に)・WEBなどどれもエキスパートとはいえませんし、上記の事柄もいまだに付け焼刃的な知識もあります。

  ただしやっぱり何ごとにもモチベーションは大事だなと思っています。

 「強い競馬AIを作ろう!」と思うからこそ、自分で色々調べて、頑張れます

 実際、ハードウェアは特に興味がありませんでしたが、ただただ性能を強化したいという気持ちから、自分でCPUやグラフィックボード・メモリなど取り替えました。

 昔の自分だったら絶対しないと思います笑

 さらに競馬がうれしいのは、毎週開催してるため結果がすぐに確認できることですね。

 逆に悪い結果だと落ち込むことがありますが、それを原動力にまた改善したい!という気持ちになります。

  • お金が貯まる、馬券への意識が変わる

  馬券で儲けるところまでいくのは時間がかかると思いますが、間違いなく馬券の買い方は見直されるはずです。

 競馬AIを開発する中で、実際にシミュレーションをしますが、いかに馬券で勝つのが難しいか?いかに今まで自分が考えた馬券に無駄が多かったか?など気づかされます。そういったことを考えさせられるという意味で、非常にメリットがあります。

デメリット

基本的にはメリットの裏返しになりますが、

  • すぐに効果が出るわけでない

  個々の技量によるので一概には言えないですが、最初はとても時間がかかります。データ構造を設計したり、プログラムを検証したり、正直退屈で面倒なこともありますが、メリットでも記述したとおり、競馬AI開発をする中で様々な技術と知識を習得できるので、焦らずじっくり開発に取り組んでいければ良いですね。

  • 予想の醍醐味が少なくなる

  「自分の頭で考えて予想をする」という競馬の楽しみの一つの機会が減ります。しかも大方のAIは中身がブラックボックスのため、予測根拠が分かりません。

  結果がでなくてもイマイチ原因が分からなかったり、大的中しても「○○のレース条件だったら、▲▲の血統を買えばいいんだよ!」みたいな説明もできないため、若干当ててやった(ドヤ顔)的な気持ちが低くなります。。。

  ただし、ここで伝えたいのは競馬AIで予想してずるい(AIに限らずコンピュータで自動計算でも)、と思われるかもしれないですが、「楽をするために人一倍努力」しています。その分結果が出ると嬉しいものです。

 

長くなってしまいましたがそんなわけで次回から競馬AI開発について共有していきます!

次回へ

-競馬AI開発

© 2022 AISS BLOG