ゲームをする人工知能、チェスから囲碁、ポーカーからRTSまでプレイできるように

協力する人工知能

Starcraft IIをクリアできる人工知能を研究するもうひとつの意義は、協調して行動できるAIを作り出すことです。

Starcraft IIでは、性質の違う複数のユニットの集団を操作し、敵を倒していくことが求められます。人工知能がStarcraft IIをクリアしようとすれば、全体の目的と状況との兼ね合いから判断し、個々のユニットのチームワークを計算に入れた戦法を学習できなければならないのです。

集団行動を学習する人工知能は、人工知能が制御する個体ごとの一番得な行動はなにかという情報を共有し、それをもとに「全体としての得の総和」を計算して各個体の行動を変えていくものといえます。

アリのふるまいを例にとってみましょう。
巣を出た一匹のアリが北に向かい、大量のエサを見つけたとします。この時アリは一匹で運べるだけのエサを取り、道にフェロモンを残しながら巣に戻っていきます。一匹のアリがエサを見つけることは個体にとっての得であり、集団にとっても得になるできごとです。

エサを見つけたアリのフェロモンは匂いを発し、巣の仲間はそれをたどって北に歩いて行きます。これは「得になるものがある」という情報の共有であるといえます。

一匹目のアリのつけたフェロモンをたどって、さらに三匹のアリがエサを持ち帰ったとしましょう。これで全体の得の総和はさらにプラスされます。そして三匹のアリもフェロモンを発しながら帰るので、「北に行けば得だ」という情報の影響力が増していき、より多くのアリが北に向かうのです。

この例はまさに、エサを集めるという目標を達成するために集団が協調していくことを学ぶ過程と言っていいでしょう。
このような集団の協調行動はアリだけでなく、人間の活動においても重要な役割を果たしてきました。集団を作り、分業を行うことで生産性を向上させてきた人間の歴史を鑑みると、協調行動の習得は知的存在にとって大きな強みになると言えます。人工知能にとっても同じことでしょう。

ゲームでこのような協調行動の実践を学習する人工知能に関しては、アリババドットコムが興味深い成果を上げています。

Starcraft IIの前作にあたるStarcraftにおいて、人工知能が制御する各ユニットからの情報共有と行動決定にBiCNetというネットワーク技術を使うことで、人間のプレーヤーが駆使するレベルの集団戦法を学習させることに成功したのです。

これはStarcraftの集団戦術を学習した人工知能が、実際にゲーム内のさまざまな状況で戦闘を行う動画です。

動画内の説明は最小限ですが、ユニット同士ぶつからないよう移動させるという操作のセオリーのほか、複数ユニットでの一撃離脱戦法やオトリ戦法などを駆使する様子が見られます。学習は人間が関与せず、人工知能がトライアンドエラーを通じて行ったのというのですから驚きですね。

人工知能とゲームというトピックでは、人工知能か人間かという優位性の話題に向かいがちです。しかし、不完全情報ゲームへの進出や協調性の学習という技術的挑戦に目を向けると、より広い展望が見えてきます。

人工知能がゲームをプレイするというのは、単なる人間の勝ち負けという話にとどまりません。
困難な状況での意思決定、またチームワークの学習というステップは、現実世界の問題解決に対応できる人工知能、そして汎用人工知能開発のために重要となるのです。
一見実用性とはほど遠いゲームという舞台で、人工知能のブレークスルーが起きつつあると言えるでしょう。