競艇AI開発日記 第5話|ロジックを直す前に、理解することが必要だった

前回の記事では、

「当たった・外れた」ではなく、「どう外れたのか」を見ていこう。

そう決めたところで終わりました。

ロジックを改善するためには、まず外れ方を理解する必要があると思ったからです。

実際にその視点で検証を続けると、一つの違和感が少しずつ大きくなっていきました。

そして、この頃から私自身の考え方も少しずつ変わり始めます。

徳山では「ロジックを調整すれば改善できる」と思っていた

最初に検証した徳山では、思ったほど精度は伸びませんでした。

もちろん違和感はありました。

ただ、この時はまだ深刻には考えていません。

徳山はイン逃げが多い水面です。

当時のロジックは、その特徴に対して少し尖り過ぎているだけ。

ロジックを少し調整すれば改善できる。

そのくらいの認識でした。

だから次に検証する大村も、似たような結果になるだろうと思っていました。

大村で違和感が確信に変わった

ところが、大村では予想とは違う結果になりました。

同じイン逃げが多い水面なのに、

外れ方そのものが違ったのです。

徳山だけの問題だと思っていました。

でも大村では違いました。

「あれ?」

ロジックがおかしいことは分かる。

でも、

どこを直せばいいのか分からない。

この違和感は、多摩川を検証しても消えませんでした。

ロジックが不完全なのは分かる。

でも改善方法が見つからない。

「次は何を試せばいいんだろう。」

この頃が、一番行き止まりを感じていた時期だったと思います。

Ver1.1という小さな実験

Ver1.0を検証し始めた頃から、

スコア算出方法で気になっている部分がありました。

「いつか修正しよう。」

そう思っていた箇所です。

そこで、2・3着のヒモ抜け改善を目的に、その部分だけを修正したVer1.1を作りました。

正直、この時は他に試せることも思い浮かびませんでした。

期待は半分くらいでした。

改善してくれたら嬉しい。

でも、それ以上に、

「何か一つでも改善のヒントが見つかれば。」

そんな実験に近い感覚でした。

Ver1.1は失敗だった。でも検証は前に進んでいた

結果は失敗でした。

ヒモ抜けは改善せず、

全体の的中率まで下がってしまいました。

今振り返ると、

Ver1.1は調整不足の中途半端なロジックだったと思います。

正直、

「振り出しに戻ったかもしれない。」

そんな気持ちになりました。

それでも、この失敗で一つだけはっきりしたことがあります。

小手先の修正では改善しない。

原因が分からないままロジックを修正しても、精度は上がらない。

そのことを身をもって知りました。

検証を続けるうちに見るものが変わっていった

検証を始めた頃に気になっていたのは、

的中率と回収率でした。

「当たった。」

「外れた。」

そればかり見ていました。

でも、いつの間にか見るものが変わっていました。

「なぜ外れたんだろう。」

「このロジックは、どんなレースが得意なんだろう。」

「逆に、どんなレースが苦手なんだろう。」

そんなことばかり考えるようになったのです。

ロジックは、検証するための物差しだった

検証を続けていて気付いたことがあります。

ロジックを作ったことで、

競艇が分かるようになったわけではありません。

ロジックという基準ができたことで、競艇を理解しやすくなった。

これが一番大きな収穫でした。

人が予想すると、

どうしてもその日の印象や感覚、先入観が入ってしまいます。

でもロジックは、

毎回同じ基準で予想します。

だからこそ、

「なぜ今回は基準から外れたんだろう。」

を冷静に考えることができました。

ロジックは予想するためだけではなく、

検証するための物差しにもなっていたのです。

少しずつ競艇の解像度も上がってきた

約1か月半、

ほぼ毎日のようにレースを見続けました。

すると、

「なんとなく」

だったものが、

少しずつ

「やっぱりそうなんだ」

へ変わっていきました。

例えば徳山です。

以前からイン逃げが強い水面だとは思っていました。

でも検証を続けると、

本命決着が多く、

当たっても配当が低いことがよくありました。

その結果、

「徳山は買わない方が期待値は高いかもしれない。」

そんな考えまで出てきました。

検証を続けたことで、

競艇そのものの解像度も少しずつ上がっていったのです。

そして何より、

競艇を見ること自体が好きだったので、

検証が苦になることはありませんでした。

「何か一つでもヒントが見つかれば。」

そんな気持ちで、毎日のようにレースを見続けていました。

ロジックを直すのではなく、理解する

Ver1.1が失敗したからといって、

Ver1.0を捨てようとは思いませんでした。

むしろ逆でした。

「Ver1.0が得意なレースを判別できればいい。」

そう考えるようになったのです。

万能なロジックを目指すのではなく、

まずはロジックの得意・不得意を理解する。

そして、

得意なレースを見分ける基準を作る。

ロジックの中にすべての要素を詰め込むのではなく、

役割を分けて考える。

その発想が、

次の大きな転換点につながっていきます。

次回予告

Ver1.0を改善するのではなく、

まずは

「Ver1.0が通用するレース」を見つけたい。

そう考えて検証を続ける中で、

一つの共通点が少しずつ見えてきました。

ロジックを直す答えは、

ロジックの中にはありませんでした。

答えは、

レースのスタート直後に隠れていたのです。

次回は、現在のAI開発につながる大きな転換点となった

「スリット隊形」

について書こうと思います。

あわせて読みたい

ボートレースAI開発シリーズは、前後の記事とあわせて読むと、試行錯誤の流れがより分かりやすくなります。

競艇AI開発日記 第4話|「何かおかしい。」Ver.1.0に初めて違和感を覚えた日

ロジックを実戦投入し、「当たった・外れた」だけではなく、外れ方を観察するという考え方に至るまでを書いています。

競艇AI開発日記 第3話|Ver.1.0を実戦投入。「これ、意外といけるかも」と思った日

Ver.1.0を初めて実戦投入した記事です。第5話で振り返っているロジックの原点を知ることができます。

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