観る碁のための囲碁入門25

AlphaGoは布石の天才だった

Google DeepMind チャレンジマッチ」はAlphaGoの4勝1敗で幕を下ろしました。
第4局の感動に2日経った今でもしびれています。皆さんはいかがだったでしょうか?
李世乭さん、DeepMind開発チームの皆さん、関係各位、素晴らしいイベントを見せてくれて本当にありがとうございました。


AlphaGoはモンテカルロ木探索を採用していて、その欠点と言われていた通り、深い読みが苦手でした。複雑な局面を乗り切ることができない一面を第4局で見せました。
それ故に、私は大いなる希望に包まれています。


李世乭選手は、全盛期を若干過ぎつつあるとは言え、今も勝てる人は数人しかいない伝説の棋士です。その棋士を相手にAlphaGoは、3局完勝、最終局も序盤失敗があってもあっという間に布石で抜き去った。

現代の伝説の棋士、李世乭を大局観だけで凌駕できる


誰がこんなことを想像したでしょうか。

では第1局から振り返ってみましょう。

第1局

李世乭選手の先番(黒)、AlphaGo白です。



プロ棋士の解説で、白10はAlphaGoが間違えたと評判でした。
一間トビを先に打つのが定石だからです。



実戦は黒15と右辺を大きく囲えています。
ところが、後の進行を見ると黒が芳しくないことから、白10は、白を強くし、黒7の働きを悪くする好手だったのかと評価されるようになったのです。




黒は周りの白を壊そうと一度は戦おうとしましたが、誤算があったのか黒43と手が戻り、そのまま押し切られた感じです。
(見所はずっと先の右辺にあります。)

第2局

AlphaGoの先番(黒)、李世乭選手白です。



黒13まで、見たことがない布石で斬新です。後の対局でもわかりますが、AlphaGoは右下の黒のカケツギの石をとても軽く(場合によって捨ててもいいと)考えているのですね。感動しました。
もし今のプロ棋士が打つなら(勝手な想像ですが)



カケツがずに黒1だと思います。そうせずにカケツギと一間を交わしたところに布石の天才性がある。正しいかどうかなんてわかりません。今のプロの棋譜とは違う明確な問題提起をしている。


そして話題になったカタツキ。



この手の専門的な意味は私はわかりません。でも、私には「この碁の布石は私が成功しました。右辺の白が大きくならず、下辺の黒が攻められなければ私の勝ちです」とAlphaGoが言っているように見えました。

第3局

李世乭選手の先番(黒)、AlphaGo白です。



黒15が敗着だったというのは酷じゃないでしょうか。でも白32の妙手でその後黒に勝ち目はなかったという評判です。
李世乭選手に32手で勝てる棋士なんて存在しませんでした。

第4局

AlphaGoの先番(黒)、李世乭選手白です。



白は黒23の奇手を悪手にし、その後耐える展開です。ですが白52には驚きました。



正直な気持ちでした。でも違いました。李世乭さんは虎視眈々と勝負の時を迎えるべく耐えていたんですね。



白64の動き出しから手順を尽くして、白78!


この手は成立しなかったという解説があります。AlphaGoが正しく打っていたら白は潰れていた。そうだったのかもしれません。でもそう簡単に済ませることもできません。トッププロの対局もそういうものですから。


勝負手を放つ。
勝負手を全力で受け止める。


間違いが起これば、起こした方が力が及ばなかったというのが勝負の世界です。この局面での間違いをコンピュータのバグ、不具合なんて言うことは絶対できません。
白78の後、AlphaGoは数手を1分ほどの考慮時間で打ち続けました。まるで読み切っているかのように。実際には黒79が間違いだった。
李世乭選手は局後の会見で白78について聞かれ、答えています。

「そこしか打つところがなかった」

思えば一人、成立しないことを読み切っていたのかもしれません。


こうしてAlphaGoは、李世乭という天性の勝負師から公式戦初めての敗北を味わいました。

白78はAlphaGoにとって1万分の1以下の確率の予想手だったそうです。文字通り「万一」の手で深く読んでいかなったのです。


その後のAlphaGoの乱れっぷりは級位者レベルで、形勢が悪くなった時のモンテカルロ木探索の欠点をさらけ出しました。そう、人が極限状態で弱さをさらけ出すかのように、コンピュータとは思えないほどに弱さをさらけ出したのです。


それにしても、それにしても、無敵のAlphaGoを間違えさせるような鬼手白78。
今回の5番勝負チャレンジマッチは当然3勝した方が勝ち。ですが、通常の5番勝負とは異なり、勝敗が決着した後も5番最後まで打つというルールでした。
本当に、本当にこのルールでよかった。李世乭選手の3連敗で終わっていたらと思うとぞっとします。
第4局こそ、AlphaGoの弱さ、李世乭選手の精神力、そして何より、碁の深さを示してくれたんじゃないかと思います。
私はこうも思います。伝説の棋士李世乭とか、その棋士に3連勝したAlphaGoとかも、何も囲碁をわかっていないんじゃないかと。
失礼な奴だと思われるかもしれませんが、棋譜をしっかり並べた人は同意してもらえると思っています。

第5局

李世乭選手の先番(黒)、AlphaGo白です。



右下隅、ツケヒキ定石のカケツギは軽く、捨てて打てるんですね。感動しました。AlphaGoは、今まで見たことない布石の天才だと思います。



右下は白が取られていて、AlphaGoは手が読めていないと評判でした。でも、白60と上辺を止めてきっと布石は白悪くないんだと思います。


多くの棋士は強くなろうとする過程で、感覚を排除して読みだけを頼りにしようとします。感覚は誤差が大きく、読みだけが信頼できると。人は正確無比なコンピュータになりたがっていた。
当のコンピュータのAlphaGoは違いました。直感こそが囲碁攻略のための最大の武器であり、3000万局面の学習で直感を磨き上げました。


第4局を見てわかる通り、AlphaGoは複雑な局面を読めていません。にもかかわらず、(おそらく)全局とも最強の棋士を相手に大局でリードできる。
私は、神秘がなくなった現代において奇跡を見たような気がしました。


皆さんも是非、囲碁を覚えて、この5局の棋譜を並べて、奇跡を味わってください。

観る碁のための囲碁入門24

李世乭vs.AlphaGoの対決があと1日と迫りました。
今回は番外編として、AlphaGoをご紹介します。

AlphaGoとは

Google DeepMind社が開発した、コンピュータ囲碁システムです。
Google DeepMind社は元々はイギリスのDeepMind Technologiesという人工知能のベンチャでした。
TVゲームをプレイしながら学習していく人工知能を発表して一躍有名となり、Facebookも買収に乗り出していたようですが、2014年頭にGoogleが買収に成功しました。
Googleの一員となってから、上記の人工知能DQNという名前で発表しニュースになっています。

Google Deepmind、人工知能『DQN』を開発。レトロゲームを自力で学習、人間に勝利


このGoogle DeepMind社が、2016年1月27日、科学論文誌Natureに中国のプロ棋士でヨーロッパチャンピオンの樊麾二段に5戦5勝したという実績を合わせてコンピュータ囲碁システムを発表し、同時に李世乭九段と番勝負を行うことを発表しました。


このニュースは、多少なりともコンピュータ囲碁の現状について知っている者には衝撃でした。どのくらいの衝撃かというと、おそらく、アポロ計画を知らず、地球を回る人工衛星打ち上げロケットしか知らない人が、突然、「人類が月面に降りて帰ってきました」と言われるぐらいの衝撃です。
AlphaGoが発表される前、つまり1月26日までは、コンピュータ囲碁はプロ棋士に対して石を先に3つ置いても勝てないぐらい決定的な差がありました。たいていのアマチュアには勝つぐらい強くなっていたのですが、プロに勝つにはまだ10年以上かかるだろうというのが開発関係者の印象だったのです。


AlphaGoがそもそもハードウェアの仕様が桁違いだったことは、観る碁のための囲碁入門1で触れました。
詳しい内容を知るには、Natureに載った論文のプレプリントを見ることができます。

"Mastering the Game of Go with Deep Neural Networks and Tree Search"

ちょっと論文を覗いてみましょう。


盤面(19x19の黒白空点情報)からニューラルネットワークを使って局面の特徴を抽出するのですが、「方針ネットワーク」と「価値ネットワーク」との2つを使って、読みの深さや広さを軽減しているようです。
ニューラルネットワークというのは人の脳の仕組みを荒っぽく真似たものです。層構造のものがよく使われていて、AlphaGoが使っているものもそれです。ニューラルネットワークニューロン(あちこち繋がっている点)のつながり具合を学習することで、入力に対して役立つ出力をするようになります。


方針ネットワークは局面から次の一手を予想するニューラルネットワークです。KGSというインターネット碁会所で高段者が打った碁の3000万局面を学習し、次の一手の57%を当てることができるようになったそうです。
さらに方針ネットワーク同士で自己対戦してより勝ちやすい手を選ぶように学習します。
方針ネットワークは、形や筋、大局観を担当しているようです。


価値ネットワークは局面を見てどちらが勝つか予想するニューラルネットワークです。
価値ネットワークは形勢判断担当ですね。


ところで、AlphaGoより前のコンピュータ囲碁プログラムはどんなことをしていたのでしょう?
実はこの部分がとても面白いのです。
2008年までコンピュータ囲碁プログラムはプロ棋士に先に9手のハンデをもらってもなかなか勝てませんでした。
ところが、2008年にCrazyStoneというコンピュータ囲碁プログラムが登場して、プロ棋士に8手のハンデで勝ったのです。これはブレイクスルーでした。
このCrazyStone、従来のコンピュータ囲碁プログラムとは全く違った方法を取りました。
従来は、次の一手をデータの中から選択して手を進め、形勢判断をして、手を選ぶという一見人にとっては当たり前の方法を取っていましたが、形勢判断の部分をプログラムにするのが非常に難しかったのです。確かに将来フリカワリをした後どっちがいいかとか人間でもかなりの棋力を要します。
CrazyStoneは形勢判断をやめて、何局もランダムに最後まで打つことにしたのです。そして勝ちやすい方が優勢だと。
「局面に差があれば、同じ棋力の人が打てば局面がいい方が勝ちやすい」という常に正しいわけではないですが、もっともらしい原理が根底にあります。


ちょっと脱線しますが、皆さんはスロットマシンをされたことがありますか?
コインの出やすさが色々違うスロットマシンがたくさんあって、出やすさはわからない時、どう賭け続けるのがいいか理論的に解明した人がいます。
全部のスロットマシンに何度も賭けてみて、一番確率のいいマシンを探し出して、残りのコインをそこに賭けるという方法が思い浮かびますが、これは確率の悪いマシンにも相当数のコインを賭けていて効率が悪いです。
とりあえず一度は賭けてみますが、次はコインが出たマシンに賭けやすくします。出やすいマシンには多めに、出にくいマシンには少なめにという戦略でできるだけ損を抑えて一番出やすいマシンを見つける賭け方が理論的にわかってしまったのです。


CrazyStoneは次の一手候補をスロットマシンのように見て、賭けていきます。そして、勝率の良さそうな手を見つけたら、その局面については一手先、つまり相手の次の一手候補についてスロットマシンのように見て賭け始めます。良さげな手ほど先へ進めるようにしたのです。
これはモンテカルロ木探索と呼ばれています。モンテカルロはカジノで有名な町ですね。「木」というのはコンピュータの専門用語で、先が別れていくようなデータ構造のことをいいます。


このようにCrazyStoneは、局面がどのくらいいいかをランダムに最後まで打った勝率で考え、手の選び方については出やすいスロットマシンを選ぶようにして選び、有力な手については先を進めて同じことをするようにして、従来のコンピュータ囲碁プログラムにはない強さを発揮したのでした。
ただし、本当にランダムに打つと候補手が多すぎて一通りやってみることができなくなるので、候補手をいかに絞るかが強さの磨くためのキーの技術となります。


AlphaGoはこのモンテカルロ木探索と方針ネットワーク、価値ネットワークを混ぜて使っています。候補手を絞るのに方針ネットワークを使い、勝率でその局面を先に進めるか決める代わりに勝率と価値ネットワークの出力で決めます。


そして大規模なハードウェアを投入することで、かつてない強さに到達しました。
下のグラフは論文に掲載されたコンピュータ囲碁のレーティングです。



AlphaGoは3100ぐらいですか。
一方の李世乭選手のレーティングは3532と推定されています。

Go Ratings


この論文はおそらく去年の10月ぐらいに書かれました。それから4ヶ月以上AlphaGoは学習し続けているはずです。
一体どのくらい強くなっているのか、見当もつきません。でも、明日午後1時からの対戦ですべては明らかに!

相互作用する質量ゼロ、スピン2の粒子は一般相対論の重力場の方程式で古典近似される

2012年7月に書き捨てた下書き、読み直したらそれなりに面白かったので公開します。


ブログのタイトルは、超弦理論の解説などでよく見かける命題です。超弦理論は相互作用する質量ゼロ、スピン2の粒子を含むから重力場を含むという文脈です。以下の書籍で元の命題はFeynmanさんの講義ノートで有名になったことを知りました。

ファインマンさんの流儀―すべてを自分で創り出した天才の物理学人生

ファインマンさんの流儀―すべてを自分で創り出した天才の物理学人生


この本、よかったです。学生時代にわくわくしながら聞きかじった理論が産み出される瞬間が生き生きと描かれています。やっぱり私にとってFeynmanさんは特別です。(そういう割に論文一本も読んだことがありませんけど…)


Feynmanさんの講義ノートは、出版され、インターネット上でコピーも出回っています。

Feynman Lectures On Gravitation (Frontiers in Physics)

Feynman Lectures On Gravitation (Frontiers in Physics)

日本語訳も出版されていますね。
ファインマン講義重力の理論

ファインマン講義重力の理論

この講義は有名な「ファインマン物理学」の講義と平行して行われたそうで、このころFeynmanさんは強烈な情熱で教育に力を注がれたようです。

原書を通して読むのは大変なので日本語訳が入手できるといいのですが、最近は貧乏性で?紙の書籍を買わなくなりました。

知ったことをメモすると、

  1. Feynmanの前にも先人は何人がいた。Feynmannの後にWeinbergが洗練された仕事をしたとのこと。
  2. Weinbergは、「重力子同士の散乱振幅の解析的特性についての非常に合理的な仮定から、相互作用する質量ゼロ、スピン2の粒子は、普遍的な強度で(自身を含む)物質と作用する場合だけLorentz不変であることが可能である」ことを示した。

Weinbergの議論は以下の通り

  1. 量子論に従えば、粒子の固有角運動量(スピン)は整数か半整数。0, 1/2, 1, 3/2, 2, ...
  2. 質量0のスピン0以外の粒子のスピン状態は、特殊相対論(Lorentz不変性)に従うとスピンの大きさに関わらず2状態。
  3. これにより、質量0のスピン0以外の粒子の場(の演算子)はLorentz不変とならない。変換すると時空微分演算子に比例する項が発生する。
  4. 物理法則がLorentz不変であると要請すると、上記場の方程式(もしくはLagrangian)は時空微分演算子に比例する項を相殺するような形でなければならない。もっと強く要請すると、場から時空微分演算子に比例する項を引いた共変成分で構成したLagrangianはLorentz不変である。
  5. 場から最も簡単な共変な場を構成すると、スピン1の場合、電磁場、スピン2の場の場合、Riemannテンソルとなる。
  6. 以上のように、フラットなMinkovski空間上で、電磁気学、一般相対論が構成できる。

スピン1について

  1. 輻射光子の運動量が非常に小さい極限においては、散乱振幅はプロパゲータのみが寄与(発散)する。このことから相互作用は物質粒子のスピンに依存しないパラメータ(電荷)に依存することがわかる。
  2. 上記から電荷は保存することがわかる。

スピン2について

  1. 同様の議論で、すべての粒子は同じ結合定数を持つことがわかる。

観る碁のための囲碁入門23

第31譜


黒95に対して白は96から105まで。取られていた7個の白石を先手で生還させました。
白106に手を戻し、どうやら黒95から白110までのやり取りで白が追いついたようです。果たして何が起こったのか。


この碁は李世乭選手による自戦解説番組がありました。韓国語なので内容がわからないのですが^^;この辺りを詳しく検討していました。
韓国語がわかる方、碁がわかる方、是非見て内容教えて下さい!

【ニコニコ動画】2012三星火災杯 李世ドル自戦解説

終局図

この碁は306手でゲームが終わりました。結果は白の李世乭選手の0.5点勝ち。
以前に説明しましたが、囲碁は先に打つ方が有利なので、その有利さを消すためにハンデをつけます。ハンデは6.5点。つまり黒は白より7個以上多く盤上に石を置けたら勝ち、6個以下だったら負けです。0.5というのは引き分けをなくすための工夫です。ハンデの大きさをコミと呼びます。
0.5点差だったということはギリギリの点差で李世乭選手が勝った、石が1個足りなかったら結果は逆だったということです。



この図がゲームが終わった時の図です。
まだ随分スカスカして打てる場所がいっぱい空いています。対局者には、空いている場所が、交互に打てば結果が変わらない場所か、打っても相手に取られてしまう場所かわかっているのでここでゲームの終了を対局者同士で確認します。
確認したら境界をはっきりさせる手続きをします。やってみましょう。



黒1は白石をアタリにした手なので取られないためには白2と黒石を取る必要があることに注意してください。
以下黒9まで境界がはっきりしました。これで「地」を数えることができるので勝敗を確認することができます。

締まりのないエンディング

念のため、地ではなく石をたくさん置いた方が勝ちルールでの確認もしてみましょう。



黒石178個+6個の空き地=184点、白石173個+4個の空き地=177点。差は7点です。コミを加味すると黒の0.5点勝ちです。合わないですね?


ルールの説明をした時に石を多く置いた方が勝ちと説明しましたが、実は石だけでなく囲んで取られないように最後に埋めずに置く空き地も陣地として数えます。
黒石178個+6個の空き地=184点、白石173個+4個の空き地=177点。差は7点です。コミを加味すると黒の0.5点勝ちになってしまいました。

これは境界をはっきりさせるために石を置いた時に黒9と最後に黒が置いたために起こりました。「地」を数えるのと「石数と空き地」を数えるのでは境界を最後にどちらが打ったかで結果が違ってきます。


実は(実はが多くてすいません^^;)囲碁にはそういう微妙な違いで、中国ルールと呼ばれるものと日本ルールと呼ばれるものがあります。
中国ルールは「石数と空き地」を数えて勝敗を決め、日本ルールは「地」を数えて勝敗を決めます。本局は日本ルールで打たれたので、地を数えた結果(最後に置いた黒9の価値が0なので)、白の0.5点勝ちとなったのでした。


以上で、連載「観る碁のための囲碁入門」は終了です。
お付き合いいただきありがとうございました。
ハッピー囲碁観戦!

観る碁のための囲碁入門22

第29譜


白74とちょっと離れた所に打ちました。この手は次にAと右下の白を助ける手と、B辺りで中央の白が右辺の白と連絡して中央の黒への攻めを継続する手を見ています。
黒は右下の白が生還しても打てると判断して黒75。白を助けられた時の下辺の黒の生きを先手で確保しようとしています。

第30譜


黒は81のキキで下辺の生きを確保し、上辺の白×を取って中央の黒も安全にしました。
白は見返りに90と右下の一団が生還します。

第30譜


黒91と先手で上辺を削って、黒95と右下を生きます。
上辺はどうなっているのでしょう?

観る碁のための囲碁入門21

実戦に戻りましょう。

第26譜


黒は45と弱い石を手厚く構えます。中央を攻められずに、右辺か上辺のどちらかを荒らせば勝ちと見ているのだと思います。
白は46, 47を交換して中央への攻めを見つつ、白48から50。右辺と上辺両方陣地にするぞという勝負手です。
白50のような手をキリチガイと呼びます。キリチガイには面白い特徴があり、色々な目的で打たれます。
面白い特徴とは次に色々な方向からアテを打つことができるということです。アテに手を抜くのは石を取られて得にならないことが多いので相手は何か受けるのですが、ということは好きな方向を先手で打つことができるということです。先手で打つことができる場所をキキと呼びます。
相手が強く自分が弱いところではキキがたくさんできる形にすると、欲しい方向に自分の石を増やすことができて自分を強くすることができます。これは碁の大切な考え方です。

第27譜


黒は白からの53のアテを拒否するために、黒51,53と打ち、黒55と白50を抱えました。白は56と打って、右辺を丈夫にしました。右辺を陣地にするというよりは中央の白の弱さを補うためのようです。
黒は57と上辺を荒らす。白は上辺を陣地にするか中央への攻めを継続するか選択を迫られました。勝負所です。

第28譜


白は58で中央の黒への攻めにすべてを賭けます。
白64では、



白1とツケるのが筋で黒の古力選手もこれが嫌だったようです。白の李世乭選手は黒10まで中央の黒を捨てられる図を読んで、これで白いいのか形勢判断ができなかったとのこと。白は既に秒読みに入っていました。この図は白も打てるようで、古力選手はこうは打たないという感想でした。
ということは、実戦白64黒65の交換は打つ必要がなかったわけで、これが大変な悪手になったようです。

秒読みというのは持ち時間を使い切ってからの猶予時間です。この大会(三星杯)の場合、1手1分未満で打ち続ければよいルールになっています。


黒は73と中央の白への攻めを見ながら生きを図ろうとしています。
再び、難しい戦いが始まりました。さあどうなる?

観る碁のための囲碁入門20

局面が一段落したので、今回は、紹介中の対局の李世乭選手の対戦相手、古力選手をご紹介します。



古力選手も李世乭選手と同じ1983年生まれ、現在33歳。中国のプロ棋士です。名前はグリと読みます。


19歳で国内タイトル天元を奪取、以後6連覇。2006年にLG杯世界棋王戦優勝、2009年には、トヨタ&デンソー杯、LG杯、BCカード杯の世界戦3冠。昨年にも春蘭杯(世界戦)優勝。国内タイトル獲得数30、世界戦タイトル獲得数8、まさに李世乭選手のライバルです。


二人とも現在30代ですが、今、棋士の全盛期年齢は20代と言われています。


遡ること50年前、45歳の坂田栄男名人が23歳の林海峰挑戦者を迎え撃つ際「20代の名人などありえない」と豪語しました。この頃の棋士の打ち盛りは40代。囲碁は円熟した、誰もわからない局面でその人なりの価値観を競うゲームでした。
23歳の林海峰選手が名人を獲得し、世に衝撃を与えたのと同時に囲碁界の若手にも強い刺激となりました。ところがこの若手選手たちが集団で活躍し続け、40代打ち盛りに戻ります。将棋の今の羽生世代と同じですね。木谷門下時代とでも言いましょうか。


次の流れは韓国で起こりました。当時16歳だった李昌鎬(イチャンホ)選手が世界戦優勝を果たし、次々と世界戦を制覇していきます。その刺激で韓国中国で若手が急成長しました。


今の世界のトップを支える力は芸というよりは読みのようです。世界戦が持ち時間3時間以内の「短い」棋戦中心だからということもあるかと思います。
3時間で短い?ええ、日本のタイトル戦には今も2日かけて戦うものがあり、持ち時間は8時間です。そもそも持ち時間が導入されたのは昭和に入ってから。それ以前は無制限で勝負していました。


持ち時間3時間以内では全盛期は20代なのか。李世乭、古力の二人はその定説に真っ向から挑戦中と言えると思います。


藤沢秀行というすごい人(どうすごいかはまたの機会に)のおかげで、昭和の頃、日本囲碁界は中国囲碁界と交流がありました。そのためか、韓国が李世乭選手中心に日本とは違う独特の囲碁観を創り出したのに対して、中国の棋士には今でも日本の碁の香りがする気がします。古力選手も盤全体を使った構想や厚みから攻めの流れなど、木谷門下時代を感じます

木谷門下時代の日本のトップ(事実上世界のトップ)と今の世界のトップが戦ったらどうなるのでしょう?
こういう歴史の「たられば」に答えはありませんが、もしかしたら近い将来コンピュータ囲碁がある種の示唆を示してくれるかもしれません。