まったりAI勉強記

AI(人工知能)について、特にゆかりがあるわけでもない社会人が、まったりとAIについて勉強していく勉強日記です。

【G検定】深層強化学習 その1

どうも、カタミチです。

さて、「ディープラーニングの手法」の章も終盤に差し掛かってきました。今日からは深層強化学習ですね。

深層強化学習の基本的な手法と発展

まず、深層強化学習(deep reinforcement learningは、ディープラーニング強化学習を組み合わせた手法のことです。2013年に、最も基本的な手法であるDQN(Deep Q-Network)DeepMind社から発表されました。…DQNですかー。ネットスラングかと思ってしまいました(汗)

DQNは、Atari社が開発した家庭用ゲーム機Atari2600の多様他種なゲームを、人間並み、または人間以上のスコアで攻略できることが示され、これが深層強化学習が注目を浴びるきっかけになりました。

なるほど。これまでの章でも、強化学習はゲームのイメージがありましたが、注目を浴びるきっかけはゲームだったようですね。他にもロボットの制御なんかにも使われているみたいです。お掃除ロボットのルンバとか、そのへんですね。

DQNとその拡張手法

DQNでは、ゲームや実世界の画像をそのままディープニューラルネットワークの入力とし、行動候補の価値関数や方策を出力として学習するというアプローチを取ります。このとき、画像処理のところで出てきた畳み込みニューラルネットワークを使います。

DQNで採用されている手法に、経験再生というものがあります。これは、環境を探索する過程で得た経験データをリプレイバッファと呼ばれる機構に保存し、あるタイミングでランダムに複数抜き出して学習に使う手法です。これにより、学習の安定化が図られます。

他にも、ターゲットネットワークという手法があります。これは、現在学習しているネットワークと、学習の時間的差分がある過去のネットワークに教師のような役割をさせる手法です。

DQNの登場以降、これらを工夫した拡張手法が次々と発表されました。ダブルDQN(double deep q-network)優先度付き経験再生(prioritized experience replay)デュエリングネットワーク(dueling network)カテゴリカルDQN(categorical deep q-network)ノイジーネットワーク(noisy network)。そして、これらをすべて組み合わせたRainbowと呼ばれる手法に発展しています。Rainbow…。最終奥義っぽいですね!イニシエの昔にプレイしたゲーム「貝獣物語」で、味方全員の魔法力をすべて使った最強呪文の名前がレインボーでした。きっと、この名前をつけた技術者は貝獣物語のファンに違いない…(絶対違う)

当然、Rainbow以降も改善は繰り返されています。内発的報酬(intrinsic reward)と呼ばれる報酬の工夫により、極めて難易度の高いゲームにおいても人間以上のパフォーマンスを発揮する手法が発表されています。

その他の発展的な手法

近年では、環境のモデルを作って深層強化学習を行う、モデルベース強化学習が発展しており、ベンチマークとなる57ゲームすべてで人間のスコアを超えるようになりました。いやー、ゲームエンジョイ勢ならいざしらず、ゲームガチ勢の皆さんからすると迷惑な話…なのかもしれませんね。

深層強化学習とゲームAI

これまでも見てきたとおり、深層強化学習とゲームというのは、非常に親和性が高いです。ということでここからは、ゲームAIについての話ですね。

ボードゲームにおけるゲームAI

囲碁や将棋、チェスなどのボードゲームは、行動を選択する時点で、盤面の状態や相手の持ち駒などのゲームに関する情報が全てプレイヤー側から把握できるゲームです。

加えて、一方が勝つと一方が負ける(ゼロ和性)、偶然の要素がない(確定性)なので、ゲーム木をすべて展開することで必勝法を見つけることができます。はい、これはかなり序盤の章で出てきましたね。第1次AIブームのときの探索木ってやつですね。

ただし、パターンが膨大なので非常に効率が悪いです。そのため、ゲーム木の探索を効率化する手法が必要です。

モンテカルロ木探索と呼ばれる手法は、複数回のゲーム木の展開によるランダムシミュレーション(プレイアウト)をもとに近似的に良い打ち手を決定する手法です。2000年代前半に考案されて以降、特に、囲碁AIの分野で大きな成果を残しました。

そして、2016年。これまで何度か出てきましたが、AlphaGoが世界的なトップ囲碁棋士であるイ・セドル九段に勝利し、世界に衝撃を与えたことは、人工知能が一般的にも広く知られるキッカケにもなりました。このAlphaGoは、モンテカルロ木探索に深層強化学習の手法を組み合わせたものということです。

AlphaGoの発展系に、AlphaGo Zeroがあります。これは、人間の棋譜を用いた教師あり学習を一切行わず、自己対戦を行って得たデータのみで深層強化学習を行います。一見するとAlphaGoより弱くなりそうなこの手法ですが、実際にはAlphaGoを凌ぐ強さに成ったそうです。

そして、Alpha Zero。ついにGo(碁)の文字が取れて、将棋やチェスなどの分野でも圧倒する強さを手に入れました。すごいなー、と思う反面、人間としては少し寂しい気もしますね。

その他のゲームにおけるゲームAI

さて、ゼロ和性、確定性のあるボードゲームは、もはやゲームAIの独壇場だということは分かりました。

次は、大人数のチーム戦で、リアルタイムにゲームが進行し、不完全情報ゲームであるものを対象として、トッププレイヤーを打倒するという試みです。…いきなりハードルが上がりましたね。

複数の味方エージェントと相手エージェントがいるなかでの強化学習は、これまでの強化学習とは区別して、マルチエージェント強化学習(Multi-Agent Reinforcement Learning、MARL)と呼ばれます。

OpenAI Fiveは、MOBAと呼ばれる多人数対戦型ゲームDota2において、世界トップレベルのプレイヤーで構成されるチームを打倒できるゲームAIです。学習アルゴリズム自体は既存の単純なものを使っており、特別に新しい手法が導入されたわけではありません。特筆すべきは学習に使った計算資源と学習時間。実に、5万個以上のCPUと1000個以上のGPUを使用して10ヶ月に及ぶ強化学習を行っています。いやー、変な言い方ですが、「努力家」なゲームAIだなぁ、という感じですね。自分も頑張らなきゃなぁ、と感じさせられました。

AlphaStarは、RTSと呼ばれるゲームジャンルに属する対戦型ゲーム、スタークラフト2において、グランドマスターという称号を持つトッププレイヤーを打倒できるゲームAIです。ResNet、LSTM、Pointer Network、トランスフォーマーなど、画像処理や自然言語処理の手法も多く取り入れたネットワークを使っており、いわば、人工知能技術の集大成的なアルゴリズムになっています。

ということで

いやー、今回はゲームの話ということでなかなか面白かったですね。AlphaGoについても、勉強初期に比べると理解が進んだように思います。…まぁ、アルゴリズムを完全に理解するところまでは行っていませんが…。しかし、ゲームとは何なのか?色々と考えさせられますねー。

ではまた。

勉強に使ってる書籍はこちら↓
深層学習教科書 ディープラーニング G検定(ジェネラリスト)公式テキスト 第2版