HOME/ AINOW編集部 /【Microsoftリサーチ公式ブログ記事】チェス用AIの人間的な側面
2021.02.19

【Microsoftリサーチ公式ブログ記事】チェス用AIの人間的な側面

最終更新日:

Microsoftリサーチ部門公式ブログで公開された記事『チェス用AIの人間的な側面』では、人間のようにチェスをプレイするAIの開発とその開発から得られた知見が解説されています。

チェスは古くからAIの研究テーマとして採り上げられており、現在では人間のトッププロを凌駕するチェスエンジンが多数存在します。こうしたなか、カナダ・トロント大学の准教授やMicrosoft所属の研究員から成る研究チームは、人間のようにプレイするチェスエンジンの開発を試みました。
「人間のようにプレイするチェスエンジン」とは、「さまざまなチェススキルの人間プレイヤーの指し手を予測できるチェスエンジン」と定義できます。この定義にしたがい、研究チームはさまざまなチェスレーティングの人間プレイヤーの指し手を学習データとして集めて、このデータを使ってチェスエンジンを訓練しました。こうして開発されたヒューマンライクなチェスエンジン「Maia」は、さまざまなチェスレーティングの人間プレイヤーの指し手を50%以上の精度で予測することに成功しました。
研究チームは、Maiaを使って個々の人間プレイヤーの指し手の予測も試みました。この試みは、チェスレーティングごとに学習データを集めて訓練したMaiaを個々の人間プレイヤーのプレイデータを使ってファインチューニングする、というアプローチを行って実現しました。こうして完成した「パーソラナイズされたMaia」はパーソラナイズされていないものより高精度の予測を実現しました。
以上のようなMaiaは、人間のチェスプレイヤーのレーティングやプレイスタイルに合わせてチェスを指導するティーチング用チェスAIに応用できると考えられます。さらにはMaiaの根幹をなす「ヒューマンライクな」もしくは「人間中心的な」開発思想は、今後AIが日常生活のあらゆるシーンに活用されるようになるにつれて重要となるでしょう。

なお、Maiaには公式サイトがあり、こちらからプレイできます。

以下の翻訳記事の理解と解釈は、翻訳者およびAINOW編集部の責任において行われたものです。また、翻訳記事の内容は特定の国や地域を代表するものではなく、翻訳者およびAINOW編集部の主義主張を表明したものでもありません。

序論

2020年11月30日発行

Reid McIlroy-Young(トロント大学博士課程在学)、 Ashton Anderson(トロント大学准教授)、Jon Kleinberg(コーネル大学教授)、Siddhartha Sen(Microsoft主任研究員)

人工知能は急速な進歩を続けており、ますます多くのタスク領域のベンチマークにおいて人間と同等かそれを上回る性能を持つようになっている。それゆえ、この分野の研究者は両者が活動する領域での人間とAIの相互作用に注力している。チェスがAI開発の歴史のなかで多くの中心的な問題に関する主要な指標として機能してきたように、このゲームは人間がAIとどのように協力したり、AIから学んだりするかを研究するためのモデルシステムとして位置づけられる。

2005年以降、AIを搭載したチェスエンジンは一貫して人間プレイヤーに勝利してきたが、2008年にはヒューリスティックをベースにしたStockfishエンジン、2017年には深層強化学習をベースにしたAlphaZeroエンジンが登場するなど、チェスの世界はさらに変化を遂げている。この進化の影響は計り知れないものがある。AI自体のチェスプレイ能力が向上し続けているにもかかわらず、記録的な数の人々がチェスをプレイするようになった。このような変化は、人間とAIの相互作用を研究するためのユニークな実験台となっている。恐るべきAIのチェス能力とこのゲームへの人間の関心が大きく高まっていることが相まって、さまざまなプレイスタイルやプレイヤーのスキルレベルが生まれるにいたった。

さまざまな人間のスキルレベルにAIのチェスプレイを一致させようとする研究が多く行われているが、多くの場合、AIがそのスキルレベルの人間のプレイヤーとは異なる判断をしたり、駒の動かし方をしたりする結果となった。我々の研究の目標は、AIと人間のチェスプレイ能力のギャップを埋めることである。AIとその学習能力に対する疑問は、「AIは特定のスキルレベルで人間と細部においても同じような判断を下すことができるか」ということだ。この疑問は、チェスにおけるAIと人間の行動を一致させるための良い出発点となる。

トロント大学、Microsoftリサーチ、コーネル大学から成る我々の研究チームは、さまざまな人間のスキルレベルにAIをより良く一致させ、さらには特定のプレイヤーのプレイスタイルにAIモデルをパーソナライズする方法の調査を開始した。我々の研究は「超人的なAIと人間の行動を一致させる:モデルシステムとしてのチェス」と「チェスにおける人間行動のパーソナライズされた動作の学習」という2つの論文と、人間がプレイするゲームで訓練され、より人間のプレイに近いものになるようにしたMaiaと呼ばれる新しいチェスエンジンから構成されている。我々の研究成果は、個人レベルであっても、さまざまなスキルレベルにおける人間の意思決定がAIによって実際に予測できることを示している。この成果は、チェスにおける人間の意思決定のモデル化において一歩前進したことを示しており、人間とAIのあいだのコラボレーションや学習の新たな可能性も切り開いている。

AlphaZeroは、学習に関する情報を得るために指し手のライブラリや過去のゲームの情報に大きく依存していた以前のモデルとは異なり、ルールの知識だけで自分自身と対戦して練習することで(「セルフプレイ」)、AIがゲームをプレイする方法を変えた。我々のモデルであるMaiaは、Leela Chess Zero(AlphaZeroのオープンソース実装)をカスタマイズしたバージョンだ。最適な手を指すことを目的としたセルフプレイゲームで訓練するのではなく、最も人間らしい手を打つことを目的として人間がプレイしたゲームでMaiaを訓練した。さまざまなスキルレベルでの人間のチェスプレイを特徴づけるために、我々は9つのMaiaを開発した。それらはEloレーティング1100から1900のあいだの9つのスキルレベルに相当する(Eloレーティングとは、チェスのようなゲームにおけるプレイヤーの相対的なスキルを評価するシステム)。以下に示すように、Maiaはこれまでに作成されたどのチェスエンジンよりも、人間のプレイとより密接に一致している。

興味があれば、人気のあるオープンソースのオンラインチェスプラットフォームであるLichess上で、いくつかのバージョンのMaiaと対戦することができる。Lichess上にある我々のボットはmaia1, maia5, maia9と名付けられており、それぞれEloレーティング1100, 1500, 1900に相当する人間のゲームで訓練した。これらのボットやその他のリソースは、GitHubのレポジトリからダウンロードできる。

人間のプレイを測定する

チェスエンジンが人間のプレイに一致するとはどういうことだろうか。我々の研究目的のために、次のような単純な指標を設定した。実際の人間がプレイしたゲームで発生した駒の配置が与えられている状況で、人間の指し手をチェスエンジンが指す確率はどのくらいだろうか。

この定義に沿って人間のプレイに一致するチェスエンジンを作るのは難しい作業である。可能な駒配置の数は天文学的であるため、実際のゲームで見られる駒配置の大部分は一度しか起こらないからだ。各プレイヤーがわずか4手指すだけで、潜在的な駒配置数は数千億にもなる。さらにはだいたい同じスキルレベルであっても、人間プレイヤーは非常に多様なプレイスタイルを持っている。また、まったく同じプレイヤーであっても、同じ駒配置でも2度目には違う手を指すかも知れない!

データセットの作成

チェスエンジンが人間のプレイにどれだけ一致しているかを厳密に比較するためには、エンジンを評価するための良いテストセットが必要となる。そこで我々は、レーティングの狭い範囲ごとに1つずつ、合計して9つのテストセットを作成した。その方法は以下の通り。

  • まず、100ごとに区切った範囲(1200~1299点、1300~1399点など)ごとにレーティングビン(※訳註1)を作成した。
  • 各ビンには、対戦した両方のプレイヤーが同じレーティング範囲にいるすべてのゲームを含めた。
  • 各ビンからBulletとHyperBullet(※訳註2)の速度でプレイされたゲームを無視して、10,000のゲームを抽出した。これらの速度(プレイヤーごとに1分以下で指す)では、時間切れで負けないように質の低い手を指す傾向がある。
  • 各ゲーム内では各プレイヤーが最初に行った10手を捨てて、もっとも記憶に頼っている序盤の指し手を無視するようにした。
  • また、ゲームの残りの時間が30秒未満の手はすべて捨てた。こうした指し手はゲームを終わらせるためだけに指している(つまり、プレイヤーがランダムな手を打っている状況をテストセットに取り込むのを避けた)。

以上の制限にしたがって、我々は9つのテストセットを得た。各レーティング範囲のテストセットは、それぞれ約50万の駒位置を含んでいた。

「レーティングビン」の「ビン(bin)」は、第一義的には蓋の付いた(穀物等を保存する)「大型箱」なのだが、そのほかに統計用語で「値に従って対象をグループ分けして一般化や比較を行うための値の範囲」という意味がある。この記事は後者の意味で使われているので「ビン」と訳した。
「Bullet」と「HyperBullet」は早指しチェスの一種。英語版wikipedia の「早指しチェス(Fast Chess)」によると、Bullet(英語で「弾丸」の意味)では各プレイヤーに40手につき制限時間として3分未満が与えられ、一部のオンラインチェスサーバでは1分与えられる。HyperBulletでは制限時間が30秒となる。さらに「UltraBullet」も存在し、制限時間は15秒となる。

過去の試みとの差別化

何十年にもわたり、人間のプレイに正確に一致するチェスエンジン開発が試みられてきた。そうした試みがなされる理由のひとつには、ヒューマンライクなチェスエンジンは素晴らしいスパーリングパートナーになるかも知れないからだ。しかし、ゲームのたびに虫けらのように押しつぶされるのは楽しくないので、人間のプレイに一致するエンジンを作る最も人気のある試みは、強力なチェスエンジンのある種の減衰バージョンを開発することであった。減衰版のエンジンは、学習するデータ量を減らしたり、指し手を見つけるための探索の深さを制限したりして、何らかの方法でエンジンの能力を制限することで作られる。例えば、Lichessの「コンピュータとプレイする」機能には、指し手の先読み数が制限されているStockfishの一連のモデルが使われている。Chess.com、ICC、FICS、その他のプラットフォームは、どれも似たようなエンジンを持っている。これらのエンジンは、人間のプレイにどれだけ一致しているのだろうか。

Stockfish:それぞれの深度制限(例えば、深度3のStockfishは3手先までしか先読みできない)に合わせて、いくつかの減衰バージョンのStockfishを作成し、テストセットでテストした。下に示すグラフでは、エンジンが特定のスキルレベルのプレイヤーと同じように考えているかどうかを確認できるように、レーティングレベル別に精度を分けて表示した。

図1: 対戦プレイヤーのEloレーティングごとに比較したStockfishによる指し手の予測精度

グラフを見ればわかるように、そんなにうまくはいかない。減衰したバージョンのStockfishは、約35~40%しか人間の指し手に一致しない。そして同時に重要なことは、それぞれの減衰バージョンの精度が描くカーブが厳密に増加している。つまり、深度1のStockfishでも、1900レーティングの人間プレイヤーの指し手と一致させることに関して、1100のレーティングで一致させるより優れているのだ。この結果は、Stockfishがサーチできる深度を制限することでStockfishを減衰させても、低いスキルレベルでの人間のプレイを捉えることはできず、むしろ、通常のStockfishのチェスにノイズがたくさん混ざっているように見えてしまうことを意味している。

Leela Chess Zero:減衰したStockfishは、特定のレベルにおける人間のプレイの特徴を抽出できていない。セルフプレイゲームと深層強化学習によってチェスを学習するAlphaZeroのオープンソース実装であるLeela Chess Zeroはどうだろうか。Stockfishとは異なり、Leelaはその設計に人間の知識を一切取り入れていない。しかし、それにもかかわらず、Leelaがより人間のプレイヤーに近いプレイをしているように見えることに、チェスコミュニティは非常に興奮した。

図2:対戦プレイヤーのEloレーティングごとに比較したLeelaによる指し手の予測精度

上記の分析では、いくつかの世代が異なるLeelaのバージョンを調査したうえで、その相対的なスキルを評価した(※訳註3)(初期世代のLeelaが特に人間に似たプレイをしていたと指摘されていた)。LeelaのベストバージョンはStockfishよりも人間の手に一致することが多いという点では、衆目の意見は正しかった。しかし、Leelaはさまざまなスキルレベルでの人間のプレイを捉えているわけではない。各バージョンとも人間のスキルレベルが上がると、必ず一致精度が良くなるか悪くなるのだ。特定のレベルでの人間のプレイを特徴づけるには、別のアプローチが必要である。

(※訳註3)Maiaを解説した論文「超人的なAIと人間の行動を一致させる:モデルシステムとしてのチェス」によると、Leela Chess Zeroが人間プレイヤーの指し手を予測する精度を計測する際に、第5世代の同モデルから8つのバージョンを作成し、もっとも精度が高いものを選出して測定した、と述べている。

Maia:人間のスキルレベルと一致させるためのより良いソリューション

Maiaは、特定のスキルレベルで人間のようにプレイするように設計されたチェスエンジンである。人間の指し手との一致を実現するために、AlphaZero/Leela Chessのフレームワークを人間のゲームから学ぶように改造した。そして、1100-1199から1900-1999までのレーティング範囲ごとに9つの異なるバージョンを作成した。上述のテストデータセットを作成したのと同じ方法で9つの訓練データセットを作成したところ、それぞれの訓練セデータセットには1200万のゲームが含まれた。次に、レーティングビンごとに個別のMaiaモデルを訓練し、Maia 1100からMaia 1900までの9つのバージョンを作成した。

図3:対戦プレイヤーのEloレーティングごとに比較したMaiaによる指し手の予測精度

上のグラフを見たらわかるように、Maiaの結果はStockfishや Leelaとは質的に異なる。第一に、指し手の一致性能が格段に高くなっている。Maiaの最も低い精度は、レーティング1900のプレイヤーの指し手を学習した後、レーティング1100のプレイヤーの指し手を予測した場合の46%であり、この精度はStockfishやLeelaのモデルですべての人間のスキルレベルをテストした時に達成した最高の性能と同じくらい高い。Maiaの最高精度は52%以上だ。Maia 1900が予測する指し手の半分以上は、レーティング1900の人間プレイヤーが実際のゲームで指した指し手と一致する。

図4:対戦プレイヤーのEloレーティングごとに比較したすべての手法による指し手の予測精度

重要なのは、レーティングの異なるMaiaのすべてのバージョンを合わせると、特定のスキルレベルの人間のプレイを独自に把握していることだ。というのも、Maiaのそれぞれのバージョンが示す精度のカーブは、さまざまな人間のレーティングにおいて最高精度を達成しているからだ。Maia 1100でさえ、1100レーティングの手を予測する際に50%以上の精度を達成しており、この精度は1900レーティングのプレイヤーの指し手を予測した時のそれよりはるかに優れている。

以上の結果は、チェスに関する深い意味を持つ。「1100レーティングのスタイル」のようなものがあることを意味するのだ。さらに、そうしたプレイスタイルは機械学習モデルによって把握できる。この事実は我々にとって意外なことだった。人間のプレイには良手とランダムな悪手が混在しており、1100レーティングのプレイヤーはより頻繁に悪手を指し、1900レーティングのプレイヤーはあまり頻繁に悪手を指さない可能性があるだろう。そうなると、ランダムな悪手は予測不可能なので、1100レーティング相当のプレイスタイルを捉えることは不可能だったと考えられた。しかし、人間のプレイを異なるレベルで予測できるのだから、ある人間のスキルレベルと隣接するレーティングのそれのあいだには、信頼性が高くて予測可能な、もしかしたらアルゴリズム的に教えられるような違いがあるのではないだろうか。

Maiaの予測

詳細は論文の中に掲載されているが、Maiaの最もエキサイティングな点のひとつは、ミスを予測できることである(※訳註4)。例えば、クィーンを「吊るす」―ほかの言葉で言えば、対戦者がクィーンを自由に取れるようにする― ような明白な失策を人間プレイヤーが犯した場合でも、Maiaは25%以上の精度でその失策を予測する。こうしたMaiaの成果は、自分のゲームを改善しようとしている平均的なプレイヤーにとって、本当に価値のあるものとなるだろう。Maiaはあなたのゲームを見て、どのミスが予測可能なもので、どのミスがランダムなものかを教えてくれる。もしあなたのミスが予測可能なものであれば、次のレベルに到達するために何に取り組むべきかわかるだろう。

図5:ゲームにおいて指された指し手の質の計測を目的とした指し手との一致に関する予測精度

この記事で予測しているミスは、再現性のない一回性のミスを対象としている。Maiaを解説した論文では、多数の人間プレイヤーが陥る再現性のあるミスの予測についても論じている。
同論文において再現性のあるミスとは、「ある駒位置に直面した場合、10%以上の人間プレイヤーが陥る悪手」と定義し、こうした悪手を集団的失態(Collective Blunder)と呼んでいる。集団的失態に関するデータを集めて予測したところ、再現性のないミスより高精度となった。
(※訳註5)上の図は、縦軸を人間プレイヤーの指し手との一致精度、横軸を勝利につながる良手と予測する指し手の相対的評価、図中の実線がMaiaのレーティングごとのバージョン、図中の点線がLeela Chess Zeroのレーティングごとのバージョンを表している。横軸は、右側の「0.00」が良手と一致する指し手を意味し、左側にプロットされるほど悪手と考えられる指し手となる。
以上の図から言えるのは、(1)すべてのレーティング範囲においてMaiaの予測がLeelaのそれを凌駕する、(2)MaiaとLeelaの両方で悪手より良手を予測することが容易、ということだ。

Maiaを使って個々のプレイヤーのスタイルをモデリングする

以上の研究を通して、人間のチェスプレイのモデリングを次のレベルに押し上げていこう。個々の人間のプレイヤーが指した指し手を予測することができるだろうか。

Maiaをパーソナライズすることで最大のパフォーマンス向上が得られることがわかった。ベースのMaiaが人間の動きを50%程度予測するのに対し、パーソナライズされたモデルのなかには、個人の動きを最大75%の精度で予測できるものがある。

我々は、Maiaをファインチューニングすることで以上の結果を得た。ベースとなるMaia、例えばMaia 1900から始めて、個々のプレイヤーのゲームで訓練を続けることでモデルを更新したのだ。下の図を見ると、個々のプレイヤーの指し手の予測に関して、パーソナライズされたモデルはすべて、非パーソナライズされたモデルよりも大きな改善を示していることがわかる。この改善は非常に大きく,パーソナライズされたモデルはパーソナライズされていないそれとほとんど重ならないほどである。最も予測しにくいプレイヤーのパーソナライズされたモデルであっても60%近くの精度を得ており、 パーソナライズされていないモデルはもっとも予測しやすいプレイヤーであっても精度60%を達成していない。

パーソナライズされたモデルは非常に正確で、わずか数ゲームを与えられただけで、どのプレイヤーがそのゲームをプレイしたのかを見分けられるのだ!個人のプレイスタイルを認識することを目的としたこの計量文献学的な課題では、さまざまなスキルレベルの400人のプレイヤーに関してパーソナライズされたモデルを訓練し、各プレイヤーがプレイした4つのゲームから抽出した指し手を各モデルに予測させた。テストした4ゲームセットの96%において、最も高い精度(つまり、プレイヤーの実際の手を最も頻繁に予測する)を達成したのは、予測するゲームをプレイしたプレイヤーの指し手で訓練したパーソナライズされたモデルであった。わずか4ゲームのデータで、400人のプレイヤーのセットから誰がプレイしたかを特定できるのだ。パーソナライズされたモデルは、個々のチェスのプレイスタイルを高精度に捉えている。

AIを使って人間のチェスプレイを改善する

我々は特定のスキルレベルで人間の手を予測するチェスエンジンとしてMaiaを設計したが、それは個々のプレイヤーがプレイしたゲームを識別できるパーソナライズされたエンジンへと発展した。この成果は人間のチェスプレイを理解するうえでエキサイティングな一歩であり、人間の上達を助けるAIチェスティーチングツールを作るという我々の目標に近づいた。優れたチェス教師がもつ多くの能力のうちのふたつとは、さまざまなスキルレベルの生徒がどのようにプレイするかを理解することと、個々の生徒のプレイスタイルを認識することである。Maiaは、これらの能力がAIを使って実現可能であることを示している。

公開されている個々のプレイヤーのデータからパーソナライズされたチェスエンジンを作成する能力は、この技術の可能な用途(と誤用)についての興味深い議論を引き起こす。この議論は私たちの論文で始めているが(※訳註6)、以上に示した一連の研究がもつ完全な可能性と含意を理解するには長い道のりがある。これまでずっとそうだったように、チェスはこうした議論の舞台となるAIシステムを構築する際のひとつのゲームモデルとなるだろう。

(※訳註6)Maiaを解説した論文の結論部において、さらに考察すべき課題として、(1)Maiaが強力なチェスエンジンの劣化バージョンより人間プレイヤーの指し手を予測できる理由の特定、(2)Maiaを使った人間プレイヤーが上達するために必要なチェス戦術の特徴付け、を挙げている。
また、Maiaのような「あるドメインにおける人間の行動を高精度に予測するAI」の応用が期待されるドメインとして、(1)高額なギャンブル、(2)オンライン環境、(3)現実世界との相互作用、を挙げている。(2)のドメインの応用事例としては「人間プレイヤーのようにビデオゲームをプレイするAI」が想定される。(3)の応用事例は、「人間のように振舞うロボットを制御するAI」が考えられるだろう。

謝辞

我々が訓練に使った人間のゲームを提供してくれ、Maiaモデルを対戦できるようにホストしてくれたことLichess.orgに謝意を述べたい。Ashton Anderson准教授はNSERCの助成金、Microsoft Researchの恩恵、CFIの助成金の一部を受けている。Jon Kleinberg教授はSimons Investigator Award、Vannevar Bush Faculty Fellowship、MURI助成金、MacArthur Foundation助成金からの支援を受けている。


原文
『The human side of AI for chess』

著者
Reid McIlroy-Young(トロント大学博士課程在学)、 Ashton Anderson(トロント大学准教授)、Jon Kleinberg(コーネル大学教授)、Siddhartha Sen(Microsoft主任研究員)

翻訳
吉本幸記(フリーライター、JDLA Deep Learning for GENERAL 2019 #1取得)

編集
おざけん

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する

あなたにおすすめの記事

生成AIで“ウラから”イノベーションを|学生起業家が描く、AIを活用した未来

特許技術×AIでFAQを次のステージへ|Helpfeel

GPUの革新からAI時代の主役へ|NVIDIA

あなたにおすすめの記事

生成AIで“ウラから”イノベーションを|学生起業家が描く、AIを活用した未来

特許技術×AIでFAQを次のステージへ|Helpfeel

GPUの革新からAI時代の主役へ|NVIDIA