AlphaGo Zero

メモ

AlphaGo Zeroという名称は、囲碁をするにあたって人間の知識を一切必要とせず、自己対局のメカニズムだけでつくられていることから付けられた。ソフトウェアは最初にランダムな動きを複数回行う。これはどんなときに試合に勝ち、どんなときに負けるかを知るため、そして勝ちやすい手を打てるように調整するためにプログラミングされたものである。発売されたばかりの『Nature』誌の記事では、AlphaGo Zeroが2900万回もの自己対局を通じて、いかに地球上で最も手強い囲碁プレーヤーになったかが描かれている。

しかし彼が言うには、複数の起こりうる結果を検索して最善を選び続けることは、現存するAI技術の限界を示しているという。

「わたしには、ここに複雑な問題の本質があるように思えます」と、ミュラーは語る。「わたしたちは、すべての答えを知っている機能を実装することはできません。論理的思考をもち、未来のことを視野に入れて考える必要があります」

コンピューターにとって、固定されたルールで構成されるボードゲームの先読みをすることは比較的簡単だ。だがエンジニアは、日常のありふれた乱雑な工程をコンピューターに理解させるようなことは、ほとんどできていない。例えば、イケアのソファを組み立てたり、休暇の計画を立てたりと多面的な課題に取り組むとき、人間は論理的思考と抽象化を使ってゴールまでの道筋を立てる。いまのところAIは、こうした作業を認知・実行できないのだ。

ロボット・デカルト様の登場はまだまだ先のようだ.




囲碁の場合は「一度置いた石は,移動することができない.(囲んで取ることは可能だが,そこに自分の石が置けるようになるわけではない)」*1 「プレイアウトがある」*2という特徴があるが,これがランダム学習むけの性質だと思う.

たとえば将棋やチェスなら「同じ所を行って戻る」などの事実上無駄な手が無限に可能で,単にランダムな手を打つだけで枝刈り無しだと,かなり効率が悪いだろう.*3 また互いに単にランダムに打っていくだけだと,いつまでたっても勝敗が付かず,勝敗が付かないから学習も進まないということになりかねない.効率の良い学習には,「初心者」がすぐに負ける/失敗できることも重要だ.


囲碁というのは評価関数の作りにくさなどから,従来型のプログラムで作るには非常に難しかったし,それを克服したAlphaGoがすごいことに異論は無い.しかしディープラーニング主体で自己学習させるには,まだしも囲碁の方に適してる部分もあるようにも思う.


ルービックキューブ ver.2.0 【6面完成攻略書(LBL法)付属】 10x10 ルービックキューブ 10階 上級者向けパズル マジック 玩具 おもちゃ オモチャ 子育て 子供 HJXDJP- MF8マジックキューブ Megaminx magic cubeメガミンクス ABS製 正十二面体 スピードキューブ PVCステッカー ポップ防止 回転スムーズ 競技用 立体パズル (9X9X9)
たとえばルービックキューブ.ランダムに回転させてるだけでは,偶然完成することはほとんど期待できない.中間結果にもあまり意味はないから,モンテカルロ法的なランダムな試行錯誤だけでは学習は進まない.

ハノイの塔 Tower of Hanoi 9段 木製 [並行輸入品]
それとハノイの塔.普通にやってもO(2^n) なので,nが増えると単純に処理が終わらん.再帰的に考えれば,解法は自明なのだけどな.

勝ち残り頭脳大作戦
生き残り頭脳ゲーム」のような単純なゲームでも,ランダムに試行錯誤するだけでは「学習」は進まないだろう.

ミッキーマウス チクタクタウン
チクタクバンバン*4のようなゲームだと,そもそもどこまでどんな風にモデル化すればいいのやら.すくなくとも各プレートの画像を与えただけで,その機能まで類推してくれるわけではない.またゲームオーバーはあってもゲームクリアの概念はないから,「最終的に勝った方が良い」のような評価基準も使えない.「次の一手を生き残る」ことを優先する手もあるが,それだけでは「先の先を読む」ことをどうやって教えれば良いのだろう?

ジェンガ ウルティメイト

ジェンガ ウルティメイト

ジェンガだと,まずは重力とかバランス感覚から教えないと無理だろう.


結局は事前に人間が適切にモデル化してアルゴリズムを記述してやる必用がある.だがそこまでするならディープラーニングなんか使わず,普通にプログラムを書けばいいだけの話だ.

未来の二つの顔 (創元SF文庫)

未来の二つの顔 (創元SF文庫)

「平衡システムを制御するために開発されたプログラムには,電気力学的および力学的に独立した系としてのヤヌスの,相対的な挙動を記述するための各種の複雑な数式が含まれていた.それらのプログラムは,ここにあるこのコンピューターに入っているが,このコンピューターは今ではシステムに接続していないんだ.」

スパルタクスにはただの機械の一つとしか見えず,遊んでいるものとばかり思って徴発したこのコンピューターが,振動を止めようとする自分の仕事に何か関係があるとは,思いもよらなかったと言うことだな.必用なルーチンがこの中にあることを知らないわけだ.」
「そのとおり」「機械にとっての問題は,空間内に存在する総体としてのヤヌスという認識が十分にないことだ.つい最近までは,自分の内部で進行することが,知識の全てだったんだからな.だが平衡の方程式を正しく計算するには総体としてのヤヌスをもっと知らなければならんのだ

ねとらぼ「人間VSコンピュータオセロ 衝撃の6戦全敗から20年、元世界チャンピオン村上健さんに聞いた「負けた後に見えてきたもの」」

http://nlab.itmedia.co.jp/nl/articles/1710/06/news013.html

オセロは最初の10手だけでも500万通り以上の変化があります。その中で人間は経験による先入観からまず打たない手がありますが、ロジステロには先入観がなく、全ての変化を自分同士で24時間試し、何十万局というデータベースを作っています。人間の世界では全く知られていなかったような手なども駆使して序盤から人間をリードするので、序盤で差をつけるのは相当難しいです。

 さらに中盤でロジステロに読み勝つのは非常に困難。私は囲碁を二段程度打ちますが、囲碁は1手で新しい石が1つ加わるだけなので、10手先の局面を頭に浮かべるのは比較的容易です。

 しかしオセロは1手で複数の方向に複数の石がひっくり返る(最大8方向、最大18石)。そのため10手先すら高段者でも正確に読むのは難しいです。かなり読めて10手先、多くの場合はせいぜい5手先ぐらい。それに対して、ロジステロは中盤になったら14手先までの全ての変化手順を見ます。さらに有力な手は22手先までチェックします。

 そして試合が34手目まで進んだ後、ロジステロは残りの26手を最後まで完全に読み切ります。なので34手目までに人間がリードしていないと、絶対に勝てない。

1982年の「新宿オセロ順位戦」という、日本トップレベルのオセラーが集まった大会です。全日本選手権の2位と3位も参加し、後の世界チャンピオンになった選手もいた大会に、「森田オセロ」(※)というソフトがゲスト参加しました。

※森田オセロ:「森田将棋」などでも知られる著名なゲームプログラマー・森田和郎氏が開発したコンピュータオセロソフト。

オセロゲームの頃からの有名人だが,AlphaGoを見ること無く逝ってしまったのか.


コンピュータ将棋―あなたも挑戦してみませんか (Information & Computing)

コンピュータ将棋―あなたも挑戦してみませんか (Information & Computing)

森田将棋

森田将棋

森田将棋Final ver.Lite

森田将棋Final ver.Lite

*1:newとゴミ集めはできるけど,生成後の変更は原則不可という点で不変オブジェクト的.

*2:有限手で終了することが保証されている.

*3:そういう枝刈りルーチンなどを人間が組み込んでやれば別だけど,それでは「ディープラーニング主体で自己学習させる」という目的からは遠ざかることになる.

*4:最近でもチクタクタウン,チクタクパニックなど,別名の派生品で売られているようだ.