Gold Aeroplane 4.0.0 がダウンロード可能になりました

本日,審査に通過しました。主な変更点は以下のようになります。

1, 予想アルゴリズムの完全な変更

これまでは単純ベイズ分類器による分類を行なっていました。具体的には各馬が「1 着馬である確率」を求めて順位付けしていましたが,今は,多層パーセプトロンによる回帰を実行しています。求めているのは「一般化した着順」です。

この変更は以下の理由によるものです。

各馬は多くのプロパティを保持していますが,計算の際にその全てを参照するのでなく,一部を除外する事によりパフォーマンスの向上が得られる事が分かっていました。しかしその組み合わせは無数にあるため,ランダムに組み合わせを選択する方法を取っていました。

この方法でも最適解に近づくことは可能と考えます。しかしプロパティの重みは 0 または 1 であり,0.9 といった微妙な加減はできません。この加減を手続き的に実行する方法は無いかと考えました。

パーセプトロンによる学習とは,与えられたデータの重みを最適化する事であり,まさにこの目的に合致します。

2, レースの参照範囲

学習にあたり,以前はレースを期間によって 3 つに分類していました。学習用のグループ A,プロパティの組み合わせを探索するグループ B,その組み合わせの汎用性をテストするグループ C。そしてグループ内のレースはランダムです。

このうち C を廃止しました。というのも,汎用性をテストしてその結果が最高になるように繰り返すという処理をすると,結局のところ汎用性が失われるからです。またその分だけ全体の範囲を過去に広げなければなりません。B については「1」の変更に伴ない,重みを最適化する処理に変わりました。具体的には,重みを微妙に変更する事により,予測した着順と実際の着順との誤差を最小化する処理になります。

この最適化によって得られた予測システムが未知のレースに対しても通用するかどうかをテストせず,むしろ得られたものが常に通用する程度に最適化を抑制する。このような方針でビルドを設計しました。ビルドを繰り返しても前回の結果が利用される事はなく,常に一から作り直されます。設定可能な項目においても,デフォルトでは浅い最適化に留めるようになっています。

他にレースが芝,ダート,障害と分かれていたのを統一し,全プリディクタ(すべての賭式に対応しています)で同一のコアを使用するようにしました。結果としてビルド時間が大幅に短縮され,開発環境では 30 分かかっていたのが 5 分で終わるようになりました。

一方,シミュレーションはグループ C を必要とするため,廃止せざるを得ませんでした。ビルドの期間制限をするとグループ C に相当する期間が得られるため,プリディクタのビルドにおいて同様の表示をするようにしています。ただし期間制限は開発用の機能であるため,リリース版では設定できない状態にしています。

3, 今後の予定

次回の更新は,重大な不具合が無い限り,次の Windows 10 の大型アップデート以降となります。

予定している変更は,競馬場の表示順序が不適切である点の修正です。例えば今年の福島,阪神,函館開催において,表示が阪神,福島,函館となる現象が確認されています。

他にはビルドの UI の変更です。デバッグ等を効率よく行なうための「開発モード」が存在し,開発時には切り替えていますが UI は同じです。一部オプションが使用不可になっているのはそのためです。これを別のダイアログに分離したいと考えています。

将来的にプラグイン(独自のプリディクタなど)を導入する事があれば,リリース版でも容易に切り替えられるようにするべきと考えますが,現時点では未定です。

コメント

このブログの人気の投稿

Gold Aeroplane 6.1.0 について

Gold Aeroplane 6.2.0 について(続)

Gold Aeroplane 6.0.0 について