当連載は競馬AIの作者を、単行本『AI競馬 人工知能は馬券を制することができるか?』の著者・城崎哲氏と元『競馬王』編集長・柿原氏がインタビューし、城崎氏が対談形式にまとめたものです。
なお、インタビューに登場する赤兎馬氏のAIコンテンツは『競馬放送局』にて公開中です。
ディープラーニングの最新のライブラリを使って大幅な成績向上に成功した赤兎馬だが、単行本を読み直すと、1年半前に思い描いていた青写真をそのまま実行したのだとわかる。さすが工学系の秀才!
その一方で、さまざまな試行錯誤を経て、競馬を始めた当初に作った指数系の特徴量に原点回帰していた。
指数系の特徴量に部分的に回帰する
城崎(以下、J):「使っている特徴量は以前から大きく変わりましたか?」
赤兎馬(以下、赤):「中心は以前からあまり変わってないです。いろいろ新しい特徴量を入れてみたりもしましたけど、目に見えるような効果はありませんでした。結局、昔作った特徴量で学習させたものがいちばん成績いいことがわかって……」
J:「昔作った特徴量というと?」
赤:「競馬を初めたばかりの頃に作ったスピード指数みたいなものです。それを使った従来型の指数も最近調子いいし、時計系の指数の有効性にあらためて気づきました」
J:「といってもスピード指数だけで勝っている人はいないといいますが……?」
赤:「ただ最近、馬の個々の数値に加えて、そのレースの特徴を表すような特徴量を追加しました」
柿原(以下、K):「なんかそれ面白そうですね」
どう作れば“未来がぼんやり見えるような特徴量”になるか?
赤:「基本ぼくはデータを入力するとき、馬1頭1頭で学習させてるんですけど、でも、実際の競馬って複数の馬が競走した結果じゃないですか。そこで、レースに出走する他の馬の情報ができるだけ入るような特徴量を工夫するようにしています。
たとえば、4コーナー通過順位の平均が5番手以内の馬が何頭いるかとか、脚質の構成とか。そういう、レース全体がぼんやり見えるような特徴量をできるだけ考えるようにしています」
K:「4コーナー5番手以内っていうのは、過去のレースでそうだった馬がどれくらいいるか……みたいなことですか?」
赤:「そうです。要するに出馬表の脚質構成の図みたいなものを特徴量にして入れているイメージですね。また、レースという相手関係の中でどう走るかが重要だと考えると、指数も絶対値ではなく相対値として見るほうが意味をもたせやすいことになります。
なので、最大指数の馬とのギャップがいくらかとか、指数の平均からのギャップはいくらかとか、指数のレース内偏差値はどうかとか、そういうレース内の自分の立場、立ち位置を相対的に見れるような特徴量を取り入れています」
K:「これから行われるレースがどういうレースになるかを予測しようとしているわけですね」
赤:「さまざまな方向から相手関係を見ていくことで、レースのおおまかな未来図が垣間見れるかもしれないと期待しているわけです。たとえば逃げ馬が多いレースで、今の自分の指数だったらどうなるか、みたいに予測してくれるんじゃないかと思います」
K:「それを、じゃあ後はディープラーニングさんお願いします、というふうに渡すわけですね?」
CNNを使わなくても相手関係は見れる
J:「どうしてCNN(※1)でやらないんですか?」
赤:「CNNは使ってないですね。競馬のデータを画像系に近いやり方に落としてる人もいるようですけど、ぼくはテーブル形式が基本の入力で、全結合でやってます」
J:「DNN(※2)ってやつですよね」
赤:「そうです。もちろんCNNを検討してみたことはあるんですが、相手関係を含めてCNNで真正直に学習させようとするとめちゃくちゃデータが増えるんですね。
やり方にもよりますが、今回の予測対象の馬はこの馬で相手はこの馬とこの馬……とやっていくのであれば、1レースに18頭出ていたら18頭×17頭分の予測対象データが要ります。他にも馬柱全体を入力としてそのレースの勝ち馬を予測するような方法も考えられますが、出走頭数にばらつきがあるので工夫が必要です。
それにCNNの畳み込みって、隣接した複数の特徴量をまとめてピってくっつけるイメージなんですけど、馬番、距離、トラックみたいな特徴量をくっつける意味があるかどうか。だからCNNでやる代わりに、レースの他の出走馬の情報ができるだけ入るような特徴量を作って代用としているわけです」
※次回(12/8更新)に続く
(※1)CNN
(Convolutional Neural Network 畳み込みニューラルネットワーク)
二次元のデータを取り扱うためのディープラーニング技術で、主に画像処理に使われる。ネットワーク内部に畳み込みとプーリングの層を持つという特徴がある。
(※2)DNN
(Deep Neural Network ディープニューラルネットワーク)
従来のニューラルネットワークでは、基本的に、1つの入力層、1つの隠れ層、1つの出力層、の3層で構成されていた。それに対して4層以上に層を深くしたものをディープラーニングまたはDNNと呼ぶ。したがってCNNやRNNもDNNに含まれるが、シンプルな初期型の方法をDNNと呼んで、とくに区別することがある。
▼赤兎馬プロフィール
2015年東京大学大学院情報理工学系研究科修了。2017年夏の競馬観戦をきっかけに競馬にのめり込む。2017年冬より独自指数の開発をはじめ、その後着順予測AIを開発しTwitterやnoteなどのSNSで活動中。
競馬AIを特集した競馬王2020年7月号や業界初の競馬AI単行本、城崎哲著『AI競馬』(ガイドワークス)に登場。ロボットAIエンジニアとして日々最新技術に触れ、それらを取り入れた独自の競馬AIは日々進化中。