1. 「勝ち」と 「負け」しか おしえないと、どうなるの?
1. 教わるのは「勝ったか負けたか」だけ。それで何が学べるのか
1. 強化学習の設定 ── 正解の手は与えられず、報酬だけが届く
しょうぎを ならう ときは、先生が 「ここは この 手が いいよ」と おしえて くれます。ところが、ゲームの AIには、その 先生が いない ことが あります。
いるのは、さいごに 「勝ちだよ」「負けだよ」と だけ 言う 人です。どこが よかったのかは、言って くれません。
それでも、AIは たくさん あそんで、勝った ときの 手の 出し方を ふやして いけます。この 学び方を「強化学習」と いいます。
ただし、勝ち負けは 何手も あとに ならないと わかりません。あとから 気づく ところが、この 学び方の むずかしさで あり、おもしろさです[1]。
将棋を習うとき、先生は「ここはこの手がいい」と教えてくれます。強化学習は、それとは違います。学ぶ側は、どの手を指すべきかを教えられません。かわりに、結果に応じた点数(報酬)だけが返ってきます[1]。
だから、いろいろな手を試して、点数が高くなった手を増やしていくしかありません。もう一つの特徴は、報酬がすぐには届かないことです。ある一手が良かったかどうかは、何手も後の勝ち負けで初めて分かることがあります[1]。
目的は、できるだけ多くの報酬を得ることです。ただし実際のAIでは、ルールや盤面の情報を与えたり、囲碁のAlphaGoのように人間の棋譜も組み合わせたりすることがあります。「正解の手」を一手ずつ教わらずに強くなれるなら、最初の一手は本当に手探りのはずです。それが実際に起きた最初期の例が、1950年代のチェッカーでした。
強化学習は、学習者が「どの行動をとるべきか」を教えられず、行動の結果として返る報酬だけを手がかりに、試行錯誤で行動を探す枠組みだ。目的は、得られる報酬をできるだけ多くすることにある[1]。
正解の行動が対で与えられる教師あり学習とは、この点で区別される。しかも報酬は、行動の直後ではなく遅れて届く可能性がある[1]。そのため、勝ち負けが決まった時点で、途中のどの手が効いたのかを割り振る難しさが残る。
ただし実際の手法では、ルールや入力情報を与えたり、AlphaGoのように人間の棋譜を併用したりすることもある。以降の章では、この設定が実際のゲームで、どこまで通じたのかを見ていく。最初は、1959年のチェッカーだ。
2. 1959ねん、作った 人より 強く なった チェッカー
2. 1959年、作った本人より強くなったチェッカー
2. Samuelのチェッカー(1959)── 丸暗記と評価式の調整
1959ねんの ろんぶんを 書いたのは、アーサー・サミュエルさんです。かれの チェッカーの プログラムは、作った 人より 強く なれる、と 書かれて います[2]。
強く なる やり方は 2つ ありました。1つめは、ゲームで 出あった ばんの 形を おぼえて おく こと。次に 同じ 形が 出たら、おぼえた ところから 先を よめます。
2つめは、「この 形は どれくらい よいか」を 点数に する 式を、あそぶたびに なおして いく ことです[3]。
ろんぶんには、これが 「8〜10じかんぶんの、コンピュータの あそびの じかん」で できた、と あります[2]。でも、これは 作るのに かかった 期間では ありません。コンピュータが 対局した じかんです。
サミュエルのチェッカープログラムが使った学び方は、後の1967年の論文で、2つに整理されています[3]。
1つは、実際の対局で出会った局面と、その先の探索結果を記録しておく「丸暗記型」です。次に同じ局面が出れば、記録から先読みを深められます。もう1つは、局面の有利さを点数にする評価式の係数を、対局のたびに見直していく「一般化型」です[3]。
1959年の論文の要旨によれば、それによって、プログラムを書いた人より強いチェッカーを学習できるコンピュータが作れます。しかも、機械が対局した時間で8〜10時間という短さだったといいます[2]。これは開発に要した年月ではなく、コンピュータが対局した時間です。
Wikipediaには、プログラムが自分自身と何千局も対戦した、という記述があります[4]。丸暗記だけでは、見たことのない局面に弱いはずです。次の章は、この「自分どうしで戦う」やり方が、より大きく実った例です。
1959年のSamuelの論文は、その要旨によれば、プログラムの作者より強いチェッカーを学習する計算機が作れること、しかもそれが8〜10時間のマシン対局時間で可能だったことを述べる。8〜10時間は、機械が対局に使った時間であり、開発に要した年月ではない[2]。ここで与えられたのは、ルール、方向感覚(目標)、冗長で不完全なパラメータの一覧だけだった。
では、何を学習したのか。後年の自己解説(1967)は、初期の学習法を2つに分ける。実戦で出会った局面と探索結果を記録して先読みを深める丸暗記型(rote learning)と、評価式の係数を継続的に見直す一般化型(generalization learning)だ[3]。丸暗記は既知の局面にしか効かない。そこで、未知の局面にも対応できるよう、評価式を調整する一般化型も使われた。
Wikipediaによれば、Samuelは1949年ごろIBMでこの研究に着手し、プログラムを自分自身と何千局も対戦させたと記している[4]。自己対戦という考え方は、40年近く後に、別のゲームで再び大きな成果を出す。
3. 自分と 何ども あそんで 強く なった バックギャモン
3. 自分と何度も対戦して、人の定跡まで変えたTD-Gammon
3. TD-Gammon(1995年の報告)── 自己対戦と、勝敗だけの報酬
バックギャモンは、サイコロを ふって すすむ、ばんの ゲームです。1995ねんの ろんぶんに、この ゲームの AI「TD-Gammon(ティーディー・ギャモン)」が 出て います[5]。
ふしぎな ところは、1つの ニューラルネットワークが、あいての 分も じぶんの 分も 手を えらんで、じぶんと あそんだ ことです。さいごに 勝った か 負けたか だけを おしえました。くわしい 人の 知しきは おしえて いません[5]。
この AIは、世界チャンピオンの 級の 人と 40きょく あそび、せっせん だったと 書かれて います[5]。
もっと おどろくのは、そのあとです。バックギャモンの さいしょの 指し方の 1つ「スロット」は、ながい あいだ 人気でしたが、この けんきゅうの あと、大会から ほとんど 消えました[5]。AIの 手が、人の やり方を かえた れいです。
1995年、ジェラルド・テサウロは、バックギャモンのAI「TD-Gammon」の学習を報告しました[5]。ニューラルネットワークが、対戦する両側の手を自分で選び、自分自身と何度も対戦します。最後に届く報酬は、勝ったか負けたかという実際の結果だけでした。専門家の知識で教えたのではありません[5]。
盤面の生の情報だけを入力にした最強のネットワークは、合計20万局で学習しました。人が作った特徴を加えた版は、世界王者級のビル・ロバーティと40局を戦い、接戦だったとされます[5]。
人が驚いたのは、強さそのものより、その後でした。序盤で長年主流だった「スロット」という指し方が、この研究の後、トーナメントからほぼ消え、「分割(スプリット)」が標準になったと報告されています[5]。AIの選んだ手が、人間の定跡を変えたのです。
ところで、画面の情報だけで遊ぶAIは作れないのでしょうか。それに挑んだのが、次の章の研究です。
1995年のTesauroの報告では、TD-Gammonは、ニューラルネットワークが両側の手を自ら選んで自己対戦するように訓練された。最終的な報酬信号は、勝敗という実際の結果である。専門家の知識で手を教えたのではない[5]。
では、どれほど強かったのか。盤面の生の情報だけを入力にした最強のネットは、合計20万局で学習した。人が作った特徴量を加えた版(2.1)は、世界王者級のビル・ロバーティと40局で接戦となり、ロバーティは「強いマスター級」と評した[5]。20万局は生入力版の局数で、2.1版の学習量ではない。
もう一つの結果は、人間側の変化だ。序盤で長く主流だったスロットは、この研究の後、トーナメントからほぼ消え、分割が標準になったとされる[5]。ここまでの入力は、盤面という整理された情報だった。生の画面から、同じ方法で学べるのか。次章の問いはそこにある。
4. 画面と 点数だけで、49この ゲームを あそんだ AI
4. 画面のピクセルと得点だけで、49種のゲームを遊んだAI
4. DQN(2013・2015)── ピクセルと得点だけで49種のゲームを学ぶ
2013ねんと 2015ねんに、DeepMindと いう 会社の ろんぶんが 出ました。AIが 見る ものは、ゲームの 画面の つぶ(ピクセル)と、とくてんだけ でした[7]。
2013ねんの ろんぶんでは、7この ゲームに、同じ 作りの AIを つかいました。6この ゲームで、それまでの やり方より よく、3この ゲームでは、人の くわしい 人より よい 点を とりました[6]。
2015ねんには、49この ゲームで、同じ 学び方、同じ ネットワークの 作り、同じ きまりで、プロの ゲームテスターと 同じ くらいの 強さに なりました[7]。
ただし、ぜんぶの ゲームで 人に かったのでは ありません。29この ゲームで、人の 点の 75%より 上に なった、と いう 話です[7]。
2013年、DeepMindの研究者たちは、生のピクセルを入力にして、強化学習で操作のしかたを学ぶ深層学習モデルを報告しました。Atari 2600の7つのゲームに、構造も学習のしかたも調整せずに使い、6ゲームで従来の方法を上回り、3ゲームでは人間の専門家を上回ったと述べています[6]。
2015年のNature論文の「DQN」は、入力がピクセルとゲームの得点だけで、49のゲームにわたり、同じアルゴリズム、同じネットワーク構造、同じ設定で、プロのゲームテスターに匹敵する水準に達しました[7]。
ここで大事なのは、得点だけが先生だったことです。「この画面ではこのボタン」という正解は、1つも与えられていません。
ただし、全部のゲームで人間を超えたのではありません。49ゲーム中29ゲームで、人間のスコアの75%を超えた、というのが論文の書き方です[7]。強さにはむらがありました。むらのある中で、あるゲームでは、AIは意外な作戦を見つけました。
2013年のMnihらの論文は、生のピクセルを入力に強化学習で制御方策を学ぶ最初の深層学習モデルとして、Atari 2600の7ゲームに、構造も学習法も調整せず適用した。6ゲームで従来手法を上回り、3ゲームで人間の専門家を上回ったと報告している[6]。
その拡張が、2015年のNature論文のDQNだ。入力はピクセルとゲームの得点だけで、49ゲームにわたり、同じアルゴリズム・ネットワーク構造・ハイパーパラメータで、プロのゲームテスターに匹敵する水準に達した[7]。ゲームごとに調整しないので、教えたのは「得点を増やせ」という目的だけである。
それでも、全ゲームで人間を超えたわけではない。人間のスコアの75%を超えたのは、49ゲーム中29ゲーム(半数超)にとどまる[7]。「同じ設定で49ゲーム」という一般性の代償として、ゲームごとの出来にはむらが残った。むらの中身を、次に見る。
5. ブロックくずしの ぬけ道と、にがてな ゲーム
5. ブロック崩しの「トンネル作戦」と、AIが苦手だったゲーム
5. 発見された戦略と限界 ── BreakoutとMontezuma's Revenge
ブロックくずしは、ボールを はねかえして、かべの ブロックを こわす ゲームです。この ゲームで、AIは 人が おしえて いない やり方を 見つけた、と 書かれて います[7]。
それは、かべの はしに トンネルを ほって、ボールを かべの うらに おくりこむ やり方です。うらで ボールが はねると、ブロックが どんどん こわれます[7]。
人は、この やり方を おしえて いません。とくてんが ふえる 手を 何ども ためして いるうちに、見つけた のです。
いっぽう、にがてな ゲームも ありました。「Montezuma's Revenge(モンテスマズ・リベンジ)」のように、長い 計画が いる ゲームです。このような ゲームは、DQNを ふくむ それまでの AIにとって、大きな かだいとして のこりました[7]。
ブロック崩し(Breakout)では、DQNは、壁の端に沿ってトンネルを掘り、ボールを壁の裏側に送る作戦を見つけたと、論文に書かれています[7]。裏側に入ったボールは、ブロックを次々に崩していきます。
この作戦は、誰かが教えたものではありません。得点が増える行動を繰り返し試すうちに、プログラムが自分で行き着いたものです。教わらなかったからこそ、人間が思いつかない手が出てくる余地があります。これは、TD-Gammonの章で見た「スロットが消えた」話とも通じます。
反対に、うまくいかなかったゲームもあります。「Montezuma's Revenge」のように、長い計画が必要なゲームは、DQNを含む既存のエージェントにとって大きな課題として残りました[7]。得点が遠く、途中で手がかりの点数がなかなか入らないゲームだと、試行錯誤だけでは道が見えにくいのでしょう。
では、選択肢が桁違いに多い囲碁で、同じ考え方は通じるのでしょうか。
ブロック崩し(Breakout)で、DQNは、壁の端にトンネルを掘ってボールを裏側に送る長期的な戦略を見つけた。Nature論文はこれを、学習の成果として示している[7]。この戦略は、開発者が与えた知識ではなく、得点を最大にする試行錯誤の結果として現れた。
ところが、同じ論文は限界も挙げている。Montezuma's Revengeのように、長い計画を必要とするゲームは、DQNを含む既存のエージェントにとって大きな課題として残った[7]。なぜ難しいのかの詳しい理由は、この資料の範囲では断定できないが、報酬が遅れて届くという1章の性質が、ここで最も厳しく効くと読める(筆者の解釈)。
強化学習は、得点が頻繁に手がかりになるゲームには強く、報酬が遠いゲームには弱い。この差は、囲碁のように探索の空間が広い課題で、さらにはっきりする。
6. いごの AIも、おなじ 考え方で 強く なったの?
6. 囲碁AIも同じ考え方だったのか ── 先読みできない広さ
6. 囲碁への拡張 ── AlphaGo(2016)とAlphaGo Zero(2017)
囲碁は、1回に えらべる 場所が だいたい 250も あり、1きょくは だいたい 150手も つづきます。チェスは、35と 80くらいです。ぜんぶを 先まで しらべる ことは できません[8]。
2016ねんの AlphaGo(アルファ・ゴ)は、人の きふを 学ぶ やり方と、じぶんと あそぶ 強化学習を 組みあわせました。ヨーロッパの チャンピオンに 5たい 0で かち、それは 「少なくとも 10ねん 先の こと」と 考えられて いた できごとでした[8]。
2017ねんの AlphaGo Zeroは、ルールの ほかは 人の データを 使わず、3日ほどで 490万きょくを じぶんと あそび、それまでの AlphaGoに 100たい 0で かちました[9]。
くわしい 話は、べつの きじ「AIは どうやって 将棋や 囲碁で 人に かてるように なったのか」に あります。
囲碁は、1つの局面で選べる手がおよそ250、1局はおよそ150手続きます。チェスの約35と約80に比べて桁違いで、全部を先読みすることは不可能です(どちらも目安の値です)[8]。
2016年のAlphaGoは、人間の棋譜から学ぶ教師あり学習と、自己対戦による強化学習で、方策と価値のネットワークを訓練しました。他の囲碁プログラムに99.8%勝ち、ヨーロッパ王者に5対0で勝っています。フルサイズの盤でプロに勝つのは初めてで、少なくとも10年先と考えられていたことでした[8]。5対0は公式の対局で、非公式の対局は3勝2敗でした。
2017年のAlphaGo Zeroは、ルール以外の人間のデータや知識を使わず、強化学習だけで学びました。ランダムな動きから始め、約3日で490万局を自己対戦し、以前のAlphaGoに100勝0敗でした(対戦相手は、チャンピオンを破った版のAlphaGo)。最終的に、人間が知らない新しい定石を好むようになった、とも書かれています[9]。
囲碁AIの話は、本題からは少し外れるので、ここまでにします。AlphaGo対李世ドル戦などの詳しい経緯は、AIはどうやって将棋や囲碁で人間に勝てるようになったのかの記事にあります。
囲碁は、局面ごとの選択肢が約250、手数が約150であり、全探索は不可能だ。チェスは約35と約80である(いずれも目安)[8]。この広さのため、力ずくの探索では足りず、評価を学習する必要が出てくる。
2016年のAlphaGoは、人間の棋譜からの教師あり学習と、自己対戦の強化学習で方策・価値ネットワークを訓練した。他の囲碁プログラムに99.8%勝ち、ヨーロッパ王者に5対0で勝った。フルサイズの盤でプロに勝ったのは初めてで、それは少なくとも10年先と考えられていた。5対0は公式対局の結果で、非公式は3勝2敗だ[8]。
2017年のAlphaGo Zeroは、ルール以外の人間のデータ・指導・知識を使わず、強化学習だけで訓練された。ランダムな動きから始め、約3日で490万局の自己対戦を生成し、以前のAlphaGo(チャンピオンを破った版)に100勝0敗した。結果として、人間に知られていない新しい定石(joseki)を好むようになったという[9]。Samuelから、およそ60年たっている。
ここでは強化学習の一例として短く触れた。37手目など経緯の詳細は、AIはどうやって将棋や囲碁で人間に勝てるようになったのかで扱っている。
7. すきな ゲームの 「点数」を、自分で 決めて みよう
7. 好きなゲームの「得点」を、自分で決めてみる
7. 出口 ── 得点の設計を考える/原典を読む
○×ゲームを 1人で 考えて みましょう。ふつうは 「勝ったら 1点」だけです。
そこに 「まんなかを とったら 0.5点」と いう きまりを 足すと、どうなるでしょう。ぜんぜん 考えて いなかった 手を、さいしょに うちたく なるかも しれません。
ちがう 点数の きまりで あそんで、自分の 手が どう かわったか、かみに 書いて みて ください。「どの 手を えらんだか」より、「なぜ その 手に したか」が おもしろい ところです。
しらべた もとの じょうほう
参考にした情報源
参考にした情報源と、その使い方
出典について:Bartoの講義資料、Samuelの論文2本、Wikipedia(Arthur Samuel)、Tesauroの論文、DeepMindのMnihらの論文2本、Silverらの論文2本を使った。○×ゲームの得点の例は、筆者の提案である。
- Barto, "Reinforcement Learning, Chapter 1," UMass 講義資料。 https://people.cs.umass.edu/~barto/courses/cs687/Chapter 1.pdf (強化学習の設定について)
- Samuel, "Some Studies in Machine Learning Using the Game of Checkers," IBM Journal of Research and Development, 1959(要旨)。 https://mlanthology.org/misc/1959/samuel1959misc-some (1959年の論文の主張について)
- Samuel, "Some Studies in Machine Learning Using the Game of Checkers. II," 1967. https://www.cs.virginia.edu/evans/greatworks/samuel.pdf (初期の2つの学習法の説明について)
- "Arthur Samuel (computer scientist)," Wikipedia. https://en.wikipedia.org/wiki/Arthur_Samuel_(computer_scientist) (自己対戦の記述について。二次資料)
- Tesauro, "Temporal Difference Learning and TD-Gammon," Communications of the ACM, 1995. https://bkgm.com/articles/tesauro/tdl.html (TD-Gammonの学習のしかたと、その後の定跡の変化について)
- Mnih et al., "Playing Atari with Deep Reinforcement Learning," 2013. https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf (2013年の7ゲームの結果について)
- Mnih et al., "Human-level control through deep reinforcement learning," Nature 518, 2015. https://storage.googleapis.com/deepmind-media/dqn/DQNNaturePaper.pdf (49ゲームの結果と、限界について)
- Silver et al., "Mastering the game of Go with deep neural networks and tree search," Nature 529, 2016. https://storage.googleapis.com/deepmind-media/alphago/AlphaGoNaturePaper.pdf (囲碁の広さと、AlphaGoの結果について)
- Silver et al., "Mastering the game of Go without human knowledge," Nature 550, 2017. https://discovery.ucl.ac.uk/id/eprint/10045895/1/agz_unformatted_nature.pdf (AlphaGo Zeroの訓練と対戦成績について)
なおした ところ
更新履歴
更新履歴(改版の記録)
- 初版を公開。
このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。