
オセロAI世界1位が最弱オセロAIを作った話(読み物編)
強いオセロAIで世界1位のにゃにゃんです。以前こんな記事でバズった人です。
この記事は、強いオセロAIが作れるなら弱いオセロAI、正確には 負けることに強いオセロAI も作れるんじゃないかと思って作ってみた話です。
この記事は技術者以外の方にも読みやすく書いたものです。技術の内容を詳しく知りたい方はこちら。併せて読んでいただけると理解が深まります。
作った最弱オセロAIはこちらで公開しています。
最弱は評価関数逆転ではない
負けようと頑張るオセロAIは、強いオセロAIの評価関数(盤面を見て形勢を判定するところ)を逆転するだけでは作れません。
勝ちを目指すオセロは、実は本質的には相手の打てるところを減らすことが大事だったりします(※1)。これは色々な言い換えができて、自分の石を少なくする、だの、自分の石を相手に囲ませる、だの色々言われます。強いオセロAIは結局、この本質に重きを置いて評価しています。そうです。単純な石の数だけではないのです。
もう少しこの本質について考えてみましょう。私の理解では、相手の打てるところを減らすと 相手を思い通りに打たせやすくなる という利点があります。実際にはただ相手の打てるところを減らすだけではなくて、相手が嫌なところしか打てないように仕向けることも大事ですが、相手の打てる場所が少なければこれがやりやすいわけです。
負けを目指すオセロでは相手も負けを目指してくることが想定されるわけなので、相手に(勝ててしまうような)嫌な手を打たせたいです。そうなると、やはり負けを目指すオセロでも相手の打てる場所を減らすことは大事です。
では、勝ちを目指す評価関数を逆転、つまり符号をひっくり返したらどうなるでしょう?相手の置けるところの多くなるような手を打つようになります。これでは負けることに強いというよりは、単に相手を翻弄することが苦手な、勝つことにも負けることにも弱いだけのオセロAIになってしまいます。
では勝ちを目指す評価関数がそのまま負けを目指すオセロAIでも使えるかと言われれば無論使えません。負けを目指すオセロAIの評価関数は一から作る必要があります。
※1: 私自身そこまでオセロに長けているわけではないので反論は受け付けます。でも打てるところを減らして追い詰めるのって大切ですよね。
負けを目指すオセロ、学習データがない…!
オセロAIを作るには評価関数が必要で、さらに評価関数を作るには学習データと呼ばれる、大量のオセロの棋譜が必要になります。勝ちを目指すオセロの棋譜は人間による対戦の棋譜が簡単に手に入りますし、勝ちを目指す他のオセロAIを使って自前で生成しても良いです。しかし、負けを目指すオセロAIはあまりにもマイナーなので、インターネット上に学習データにできそうな棋譜は転がっていません(※2)。
つまり、何も手がかりのない状態から自力で評価関数を作るしかないのです!
※2: これでは負けを目指すオセロAIを作るハードルが高いと思ったので私のオセロAIによる棋譜を以下のリンクで公開しています。自由に使ってください。
強化学習的なことをしてみる
何も手がかりがない状態から何かの目標を達成する機械学習の手法に強化学習があります。今回使ったのは強化学習それ自身ではありませんが、強化学習チックなことをすることで評価関数を錬成することに成功しました。
数十時間の自己対戦と深層学習のループによって、かなり性能の良い評価関数が作れました。
アルゴリズムは勝ちを目指すものと一緒
実はオセロAIのアルゴリズムはかなり汎用性が高いもので、勝ちを目指そうが負けを目指そうが、ほとんど変更せずにそのまま流用できます。私は過去に世界最強(自分調べ)のオセロAIを作った経験があったので、そのコードを少しだけ改変して流用しました。
Webサイトとして公開した
オセロAIを作ったらWebサイトとして公開したくなりますよね(?)
ぜひ遊んでみてください!
世界最弱に!(?)
ちょっと前にとても流行って、今でも定期的に誰かが遊んでいる超有名な最弱オセロAIがありますね。
これには余裕で負けられました!
有名なやつには圧勝(圧敗)できる。#egaroucen
— にゃにゃん (@Nyanyan_Cube) April 19, 2022
最弱オセロAIに24石で負けた!!!
#AVILEN #最弱オセロ #強化学習
https://t.co/UBhIdWqh6f pic.twitter.com/HNqVHmr6SH
そして、実はこの有名なAIよりも弱い(負けることに強い)オセロAIがあります。こちらです。
これにも(結構僅差ですが)負けられます。
黒でも負けた!良さそう!
— にゃにゃん (@Nyanyan_Cube) April 20, 2022
最弱オセロAIのレベル15ヒントありに4石勝ちしました… :( https://t.co/UGBIdtM2Rw #egaroucen pic.twitter.com/3wJGL8jxQ6
この負けリバーシ以上に弱い(負けることに強い)オセロAIは見つけられていないので、多分私のEgaroucenが世界最弱です。
最後に
世界最強と世界最弱、2つのオセロAIを作りました。なんだか嬉しいです。
せっかくなので最強と最弱に戦ってもらういましょう。

黒が最弱、白が最強です。かなり大差でした!
ちなみに最強AIを搭載したパソコン向けアプリは以下のURLで無料公開しています。
では!