【機械学習】iPhoneアプリで機械学習を用いたオセロAIを作成する

導入

オセロが強い人って、私たちが何回挑んでも完膚なきまでボコボコにされてしまいますよね。
今回はそんな強い人を超える、オセロAIを作成してオセロが強い人を返り討ちにしてやろうと言う魂胆です。

今回はiPhoneアプリとして開発を行うが、動作確認はMacOSで動作するXcodeに搭載されているiOS Simulatorを使用して仮想的に動作を行う。


構成

  • Apple MacBook Air (M2)
  • MacOS Tahoe 26.3
  • Apple Swift
  • Xcode
  • iOS 26.2 Simulator (iPhone 17 Pro)

動作

いざシュミレーターを実行するとこのような画面が立ち上がり、実際にMacBookの中でiPhone 17 Proを操作することが可能なのである。
このシュミレータではiPhoneの機種はもちろん、iOSのバージョンや言語などさまざまな設定が可能である。

シュミレータ上で動作するiPhone 17 Pro

実際に機械学習を行ったオセロのアプリケーションを開いてみる。
今回、メモリが8GBしかない激弱MacBook Airで実行しているため、オセロシミュレーターが起動するまでに約10秒ほど時間を要した。

開いた画面は下のようになっており、見た目は簡易的なオセロの画面と最低限の設定項目があるのみである。
このアプリケーションでは自分が黒色のマス、相手が白色のオセロを使用してゲームが進行して行く。
まず先行の自分から置くマスを考え、配置を行う。

オセロシミュレーター

とりあえず、できるところまでやってみる。

何も考えることなくとにかく適当にポンポン置いて行った。
対戦中に思ったことは、AIが必要以上にとにかく四つ端を狙いにくることである。マスを多く取れるにも関わらずその選択肢を捨て、四つ端への着実な一手を好むことだ。

そんなこんなで端を先に取られ、最初の方では取得マスの個数で圧倒していたものの、中盤にかけてどんどん優勢が劣勢に変わり、ついには自分がおけるマスがなくなり、パスを繰り返し使用するしか無くなってしまった。

その結果が下の画像の通りである。

機械学習のオセロにボコボコにされる高専生

何も考えずに配置をしていた自分も悪いが、外部通信を行わずに超低容量で学習させ、低メモリと言う制限のかかりまくった環境でここまで圧倒されるとはあまり考えていなかった。

しかし、今回の目標でもある”強い人”にはこの学習量で果たして勝てるのだろうか、、
そこで、今回は強い人として我らがChatGPT大先生を召喚し、検証を行なってみよう。(AI[LLM]対AI[機械学習]と言う謎の構成になってしまったことは目を瞑っていただこう。)


vs 大規模言語モデル[LLM]

次にOpenAI社のChatGPT 5.2 Thinkingを使用してこのオセロAIへ挑む。

大規模言語モデルを利用してオセロを行うには適切にOCR処理を行える環境を整えることもしくは、配置をテキストベースに変換して処理を行う必要がある。これは大規模言語モデル等が行うOCR処理(画像から文字や要素をコンピューターが理解できるデジタルデータ変換する処理)がオセロのような細かな座標取得に向いていないためである。

いざ進めてみた結果が以下である。

vs ChatGPT GPT-5.2 Thinking

数手ですべての白色が黒色に置き換えられてしまっている。
一見ChatGPTの勝利のように見えなくもないが、実際にオセロを行うとこのような盤面になることはほとんどあり得ない。

オセロのルール上、これらの位置に黒石を置く(または裏返して黒にする)ためには、その直前まで隣接する場所に「白石」が存在していなければならない 例えば、B7に黒石が存在するには、C6やD5などに白石があり、それをサンドイッチした履歴が必要である。しかし、周囲はすべて「黒の塊」になっている。

つまり、ChatGPTとの対戦中に何らかの原因でオセロAIもしくは盤面システムを破壊してしまった可能性がある。
これは今後技術発展やChatGPTのモデル更新等でさらに高性能になった際に再度実験を行いたい。


今後の発展

オセロAIを高性能かつ、より軽量化して実用的なレベルまで開発を進めたい。

現在の段階だと開始数手でMacBook Airから爆熱を吐き出し、シミュレーターの動作が遅くなり、まれに停止してしまうことがある。
これらを軽量化し、WebUI等でも動作可能なように再度システムの設計を行いたい。


著者

Back to top