見出し画像

世界最強オセロソフトを作りました

にゃにゃんです。

オセロAI世界1位になってから4ヶ月、さらに強くしたオセロAIを搭載したオセロソフトを開発しました!

「もう気になるからとりあえず詳細を教えてくれ」という方は以下の特設サイトをご覧ください!

「詳細とかどうでもいいからとりあえずダウンロードしたい!」という方はダウンロードページをご覧ください!

アプリ搭載バージョンより弱いですが、ブラウザ上で遊べるバージョンもあります。


世界1位のオセロAI、実はそんなに強くなかった

私が2021年11月に作って世界1位になったオセロAIは、実は世間的には限定的な強さでした。これには2点理由があります。

  • コード長制限が厳しすぎて、評価関数になかなか工夫を詰め込みにくい

  • コンテストサイトがシングルスレッドでの計算に限っていた

1つ目は、プログラムの長さを100000文字以内に収めないといけないという制限についてです。これが強いオセロAIを作ろうとすると結構厳しいです。私の場合、特に評価関数と定石は特殊な圧縮をかけて文字数を減らしました。

2つ目については、まず世の中の(コンテスト内に限らない)強いオセロAIはほぼ必ずマルチスレッドで計算していることが前提です。しかし、コンテストではコンテスト自体の制約としてそのようなことができませんでした。そのため、マルチスレッド計算をするオセロAIと比べると段違いに遅かったのです。

とは言え、これは現状世界最強だと思われるオセロAI、特に名前を出せば"Edax"と呼ばれるAIと比べての話です。普通の人間と比べれば世界1位バージョン(Webバージョン)もはるかに強いでしょう。作者の私は4手読みにすら一切勝てません。

余談ですがWebバージョンはコンポスという定石に弱いみたいです。戦う場合はコンポスを打ってみてください。


本気でオセロAIを作った

もうコンテストは1位になったことですし、今度はコンテストの制約をなくして完全に自由な土俵でオセロAIを作り、前述した現状世界最強と思われるEdaxに勝ちたいと思ったのです。

4ヶ月かけて自分の知識を総動員して完成したのがEgaroucid5というオセロAIです。


本気の評価関数

これまでは評価関数を作るのに深層学習を使っていました。しかし、深層学習では強さに限界を感じました。

深層学習は、少ない学習データ数でかなり良い性能を叩き出せるのですが、データ数が十分にある場合は別の手法と比べてパッとしない性能になってしまうようです(まあ十分強いのですが)。

深層学習を使わないで評価関数を作る(学習する)方法は、既存の強豪オセロAIに広く使われている、「最急降下法による直接的なパラメータ調整」です。詳しくは今後「オセロAIの教科書」に追記する予定です。

総データ数は73万局、局面数で言えば2900万のデータを使って評価関数を調整しました。


本気の探索

探索部分も改善しました。

前述の通り、コンテストはシングルスレッドですが、そんな制約は取っ払いました。マルチスレッドで計算したときにどれだけ高速化できるかを突き詰めました。

Egaroucid5では、YBWC(Young Brothers Wait Concept)という手法を使って効率的に計算しました。


性能はいかに

評価と探索の2つの軸で性能を評価しました。なお、ここでは結果の概要だけ解説しますが、詳しい結果は以下のページに書いてあります。

評価関数の性能

これらのアップデートの後、世界最強と名高いEdaxと戦わせてみました。その結果、

Edaxよりも強い評価関数を持っていると確信できました!

具体的には、11手読みのときに最大勝率が57%でした。一般的には55%程度の勝率であれば明らかな差があろうと言われるようです。

探索の性能

探索性能(スピード)については、Edaxに及びませんでした。とは言え、これまでの私のオセロAIよりは格段に高速になり、24手程度の完全読みであれば1秒未満で安定して可能になりました。実用上はそれほど問題のない速さです。


今後のアップデート

今はMac版のリリースがあまりきちんと(不具合なく)できていないので、Mac版を不具合なくリリースしたいです。

そして、ゆっくりと時間をかけて探索を高速化します。Edaxなんて20年もかけて開発されているオセロAIです。これに勝つのは簡単なことではありません。私も足りない知識を補充しながらじっくりとアップデートします。

評価関数についても、アイデアがあればアップデートして強化しようと考えています。

今後のアップデートにもご期待ください!


展示会に出します

私が今年度採択されているクマ財団で展示会があり、そこで私のオセロAI関係の作品も展示します!

日程: 3/18-4/10(私の展示は4/1-4/10のみ)
場所: ANB TOKYO / HOLLYWOOD HALL (私の展示はANB TOKYO)
入場料: 無料、要予約

詳細はこちら!


関連リンク

オセロソフト"Egaroucid5"

オセロソフトEgaroucid5のダウンロードページ

Qiitaでバズった、私のオセロAI開発の歩みをまとめた記事

記事集「オセロAIの教科書」

ブラウザで遊べるオセロAI"Egaroucid5 Light"

私が世界1位になったオセロAIコンテスト


いいなと思ったら応援しよう!

コメント

4
ムルジム
ムルジム

mac版のリリースを2年程待っているのですが、その後いかがでしょうか?

にゃにゃん(山名琢翔)
にゃにゃん(山名琢翔)

コメントくださりありがとうございます!Mac版ですが、私自身がMacを持っていない等の問題でリリースの目処が立っておりません。申し訳ありません。Macでビルドできるようにコードを変更してくださった方がいらっしゃって、最新版のコードにはそのコードも含まれるため、Macでもビルドできるはずです。ただ、私はやり方がわかりません…

ムルジム
ムルジム

ご丁寧にご説明いただき、ありがとうございます。
目処が立たないとのこと、承知しました。

GitHub等でコードは公開されているのてましょうか?

にゃにゃん(山名琢翔)
にゃにゃん(山名琢翔)

GitHubで公開してあります。リリースからソースコードをダウンロードするとおそらくビルドできると思います
https://github.com/Nyanyan/Egaroucid

コメントするには、 ログイン または 会員登録 をお願いします。
ものづくりとものづくりが好きな人が好きな人 情報処理学会2023年度山下記念研究賞 オセロAI世界1位 クマ財団5,6,7期 IPA未踏2018スパクリ
世界最強オセロソフトを作りました|にゃにゃん(山名琢翔)
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1