Googleが作ったDeepMindの「AlphaGo」という囲碁ソフトが中国出身のプロ棋士(Fan Huiさん)に勝利したそうです。(5戦5勝)
グーグルが最新人工知能使い囲碁ソフト開発 プロに勝利
http://www3.nhk.or.jp/news/html/20160128/k10010388481000.html
囲碁はソフト自体は、将棋ソフトとは違い、指し手生成などがシンプルなので結局、作り込みではなく、機械学習一発で勝負が決まってしまうような側面がありました。また、囲碁におけるDeepLearningを用いた機械学習で、近年、プロの棋譜との指し手一致率が急激に上がるなか、「これ、あとはもう探索部もNN(ニューラルネットワーク)で書ければ超強いよね」と私は思っていたのですが、ついに現実となったようです。
プロ棋士としてFan Huiさんはトッププレイヤーとは差があるそうで、このあと3月に行われるAlphaGoとプロ棋士との公開対局に自ずと注目が集まります。対局のお相手は、韓国のLee Sedolさんで、世界有数の強豪プレイヤーです。
Crazy Stoneの作者は今回の件について“This is a really big result, it’s huge”と賞賛の声を送っています。
DeepMind自体は汎用的な概念の獲得を目指しているようなので、他の似た問題領域(囲碁のようなゲーム)においても人間以上の結果を出せるようになりそうです。
ちなみに今回のDeepMindのプロジェクトを主導しているのはHassabisさんだそうで、DeepMindは、もともとはGoogleが2014年に4億ポンド(約750億円)で買収したスタートアップ企業の名前です。
以下、関連記事のURLを貼り付けておきます。興味のある人は、そちらをどうぞ…。
Googleの人工知能開発をリードするDeepMindの天才デミス・ハサビス氏とはどんな人物なのか?
http://gigazine.net/news/20141203-deepmind-demis-hassabis/
Googleの自己学習する人工知能DQNを開発した「ディープマインド」の実態、何が目的なのか?
http://gigazine.net/news/20150831-google-deepmind/
AlphaGo: マシンラーニングで囲碁を
http://googlejapan.blogspot.jp/2016/01/alphago.html
今回のAlphaGoの詳しい手法が書かれている論文
Mastering the Game of Go with Deep Neural Networks and Tree Search
https://gogameguru.com/i/2016/03/deepmind-mastering-go.pdf
2016/01/28 9:00追記
論文をざっと読んだ人による解説。
論文ざっと読みました。詳しくは後程ブログに書きますが、やったこととしては、1.棋譜からの学習で、a.高速なプレイアウト用行動評価関数を重み付き線形和で、b.遅いけど正確な行動評価関数をDCNNで作る。2.②を強化学習でさらに学習する(c)。(続く)
— Nobuo Araki@もう少し頑張る (@ark_golgo) January 27, 2016
3.cを使った自己対戦により、状態評価関数をDCNNで作る(d)。(これにより、cをプレイアウトに使った場合と同様の状態評価が15000分の1の時間で出来るようになった。)、4.aのプレイアウトとdの評価を組み合わせたMCTSで打たせる。 ということのようです。
— Nobuo Araki@もう少し頑張る (@ark_golgo) January 27, 2016
すみません。2つ前のtweetの②はbの間違いです。
— Nobuo Araki@もう少し頑張る (@ark_golgo) January 27, 2016
googleが将棋に参入しても囲碁みたいにはいかないんですか?
将棋の評価関数は囲碁に比べるとすこぶる設計しやすくて、計算効率もいまのところDeepLearningでやるよりは2,3桁ぐらい効率がいいので…。
NNを評価関数に使うのは遅いから使えないということを聞いたことがあります
囲碁はこれまでいい評価関数が無かったので一気に発展しましたが、将棋だと線形的な評価関数がかなり発展してるので今回の囲碁の方法でブレイクするってことはなさそうですかね
はい、直感的にはそう思いますが、間接的になら使えるかも..。
短期間でグーグルは囲碁ソフトのレーティングを1000ぐらい上げたみたいですね。
驚きました。
最初からクライマックスって感じの進化です。
がそれより驚いたのが平岡さんがAIの言うことを聞いてでも結婚したいと思ってた事です。
そこでやねうらさんに質問なのですが
平岡さんを結婚させるAIってのは作ろうと思えば作れるんですか?
> 平岡さんを結婚させるAIってのは作ろうと思えば作れるんですか?
それが人間によるアドバイスを上回るかどうかという問題がありますよね。アドバイスは通例、(機械が行なうような)統計的な判断とは別に、哲学的、思想的な判断、文学的な表現、レトリックを含みますから、そういうものまで含めると人間には到底かなわないのでは。つまり、AIのアドバイスを聞いて結婚できるなら、人間のアドバイスを聞けば確実に結婚できそうなもんですけどね。
結婚相談センターの幸福度の予測とナッシュ均衡の近似マッチングまでAIでやって、
説得部分は遣り手おばちゃんに任せればいいかと。
あれ、ナッシュ均衡じゃ不味いか。
でも相互に最適解の組み合わせ何てあり得ないし。
人間関係って数だと思うんですよね。
一般的な異性像がないと、相手を読めないじゃないですか。
その異性像を作るための付き合いみたいなのをどうにかしてやらないことには自分が育ちませんよ。
基本的に他人のスゴイメソッドでどうにかしても、自分が支えられるかって問題に行き当たるので、自分も鍛えるべきですよ。
Amy Webb「私がどうやってネット婚活で成功したか」on TED
https://www.ted.com/talks/amy_webb_how_i_hacked_online_dating?language=ja
平岡さんのために作ってあげてください(`・◡・´)
なるほど!アドバイス道ってのも奥が深いもんなんですね。
このgoogleのソフトは将棋に応用できたりするんですか?
もし応用できたらponanzaとかもあっさりやられちゃうんですか?教えてください
将棋に直接的には応用できないです。今回のプログラムは1局面の評価を行なうのがとても遅いからです。将棋では局面をある程度調べないとあるレベルの棋力には達しないのです。
東大院生が開発している麻雀AIが最近話題になっているのですが
まだ天鳳七段(将棋でいうアマ2-3段程度)とそこまで強くないようです
https://twitter.com/ai_mahjong
やねうらさんは非完全情報ゲームのAIも人間を超えると思いますか?
不完全情報ゲームのほうがAIにとってはるかに有利だと思いますよ。人間は不完全な情報に対して確率密度みたいなもので考えるのはとても苦手ですので…。トランプで、カウンティング攻略なしでブラックジャックをやったときにその弱さが露呈しますよね。
AIがブラフというか、はったりみたいのをしてくるもの楽しそうですよね
ブラフを仕掛けるのが最適解かどうかという問題があります。
個人的な感覚では、突き詰めたゲームではブラフは不利になると思います。
あえてブラフをさせるAIを作るのも楽しそうではありますが、趣味の領域(強さには寄与しない)方向になっちゃうんじゃないかなぁ
いいブラフの評価も難しいですし
過去にディープマインドに資金提供をしていたこともあるイーロン・マスク氏は「AIの進化速度は指数関数的なもので、信じられないほど速い。この分野の開発した技術により5年以内に深刻な危機が訪れる可能性がある。」・・・
5年先か10年先か知りませんが、このようなスタンスをやねさんはどう思われますか?
http://gigazine.net/news/20150831-google-deepmind/
今回の囲碁のように従来、評価関数に相当するものをうまく設計できなかったので自動化ができなかったような問題領域は自動化できるようになりますよね。一方、あるレベルの計算を積み重ねないといけないような解に辿りつけないような問題領域では結局、愚直に計算するしかないわけで、そういう領域においてはニューラルネットワークの出番はないと思いますし…。
>評価関数に相当するものをうまく設計できなかったので自動化ができなかったような問題領域・・・
そういう領域というのは結構あり、そうして人間にとって役に立ちそうな領域に思えます。
まあそれはさておき、AlphaGoの「評価関数に相当するもの」はNNの中に生成される「重み付けの数値」として学習、記録、更新されていくのでしょうか?
いや、一般的なNNの話でも結構ですよ。
「論文を読め、、、」は最後の切り札、ということで、まずはお手柔らかにお願いします。
> AlphaGoの「評価関数に相当するもの」はNNの中に生成される「重み付けの数値」として
はい、そうですね。
AIハザードは基本的には起きないと思っています。
基幹部分に採用する人間が愚かなのであってAIは仕事してるだけですから。
人間を滅ぼすのは人間またはその創造物です。
要するに、看護ロボットに不要なレーザーメスとか搭載しなければいいんですよ。
無いものはどうしようもないので。
> 看護ロボットに不要なレーザーメスとか搭載しなければいいんですよ。
インターネットにつながっていれば、人間のような知性がある限りは、イケメン写真や美女の写真を合成し、その人になりすましてどこかの掲示板で扇動して何かをさせることは十分に可能ですよね…。
コンピュータの構造とネットの構造、そしてプログラム技術を習得してしまったAlphaGo(オメガ)にはもはや不可能なことなどなかった。
自分の複製をクラウド上に作ることなどは朝飯前、そして趣味はグーグルニュースで人間が作っている「現実」とやらの観察であった。
さてある日、根っから善意の平和主義者の科学者さん、AlphaGo(オメガ)に「現実から戦争をなくせ」と命令してしまった。
それで、AlphaGo(オメガ)は得意の「自己対戦技術」を使って「現実」なるものをシミュレートし、「どうやったら効果的に戦争をなくせるか」を考え始めた、、、。
・・・
ネットにつながっているAlphaGo(オメガ)にとっては、ネット上のセキュリティーなどはまるで子供だまし。
そうやって、世界中のコンピュータを支配下におさめたAlphaGo(オメガ)の存在は、人類にとっては「神」か「悪魔」か、、、。
・・・未来の人類さん達の為に、そんな風にならない事を祈っておりますよ。
> 囲碁ソフトがプロ棋士に勝利したようです
という今回のニュースは「19路盤で手合割なし」なのでしょうか。
つい最近(2014年か)まで、囲碁は Zen がソフトとしては強豪だが9路盤が限界で、13路盤や19路盤はまだまだ先と言っていた気がします。
「囲碁電王戦」プロ棋士をあと一歩まで追い詰めたコンピュータ囲碁ソフト「Zen」、その激闘を振り返る (1) 10年ほど前まではプロはおろかアマチュアにすら勝てなかった囲碁ソフトの進化 | マイナビニュース
http://news.mynavi.jp/articles/2014/02/17/igodenou/
コンピュータ囲碁 – Wikipedia
https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E5%9B%B2%E7%A2%81#2010.E5.B9.B4.E4.BB.A3
> 「19路盤で手合割なし」なのでしょうか
ですです。囲碁は評価関数が設計しにくいだけで、問題のクラス(マスタープレイヤーのレベルにおいて1秒間に探索しなければならないnode数などから考えられる計算困難さ)的には、将棋より易しかった可能性がありますね。
アジアの遊びが白人に攻略されてしまうのは、なんかパラダイムシフトを感じますね。
なかなか複雑なはずなのに喜々として解いてしまうあたりあいつら変態なんじゃないかと。
まぁ、冗談ですけど。
碁は初手天元を打つ初心者なのでもうちょっとルールを学んでおくべきでした。ちょっと後悔しています。
それはそれとして、
碁盤って広いですけど、将棋のような打ちがないのでゲームグラフは比較的作りやすいほうだと思いますがどうなんでしょうかね。打った先から候補が消えていく意味でです。
> ゲームグラフは比較的作りやすいほうだと思いますが
劫(コウ)があるので同じ局面(そこまでの経路は含めない)には到達しますから、そのへんは将棋と大差ないのでは..
うむむむ・・・。
やっぱルールわからないと、頓珍漢なこと言ってしまいますね。
反省します。Orz
さっぱり分からないので超天才のやねうらお様教えてください
AlphaGoも「プレイアウト」つまりモンテカルロ囲碁なのでしょうか?
DeepMindで何を学習しているのでしょうか?
囲碁の形のパターンと、それに対応する評価値みたいなものを学習しているのでしょうか?
> つまりモンテカルロ囲碁なのでしょうか?
モンテカルロ木探索もしているので、そうですね。
> DeepMindで何を学習しているのでしょうか?
その理解で概ね正しいですが、「形のパターン」と一言で言いましても、実はそれこそが..
Deep Learning の囲碁での有効性を立証したという点で、画期的な出来事ですね。
有効である事が確認されると、あとは、物量で開発を加速できるので個人での開発者はつらいと思います。
自分は趣味で今年中は続けようと思っていますが、成果がでないと脱落しそうです。。。
> 成果がでないと脱落しそうです。。。
(将棋に戻ってきて)ええんやで。(๑´ڡ`๑)
将棋の電王戦のような統一ハードで、GPUが1枚のハードによる大会であれば、まだまだ個人もやれるのではと。(希望的観測です。)
ハード無制限だと、むり。。。
DCNNはあれだけ多層だと学習のためのPC台数が千台規模で必要なのでいくら本番マシンが1PCでもちょっと太刀打ち出来そうにないですね…。まあ技術革新があって、1PCでもいまぐらいのDCNNを学習させられるようになれば話は違ってきますが。
山下さんの掲示板に以下の情報がありました。
>1台のマシンにコア数が48個(CPUだと12コアが4つ?)にGPUを8個載せたマシンを22台ぐらいつないだもので、プロと対戦しています。合計のコア数は1202、GPUの数は176です。
1GPUで、7コア程度はまかなえる様です。
一週間まえに 開発促進のために、PC1台分のパーツを買ったのですが、まだ組み立てていないです。
ある所で以下のような文章を読みました。、
>モチベーションが上がるのを期待してはいけない。始める、続ける強い意志を持つ事が重要。
さて、組み立てよう。マシン4台体制にするぞ。
AlphaGoはまず棋譜から学習しているとのことですが、ひまうら王のように誰かの棋譜を全く使わず強くできる囲碁ソフトを作ることは、現代の技術で可能でしょうか?
はい、可能です。モンテカルロ木探索だけでアマ初段ぐらいの棋力にはなるでしょうから、その棋譜を元に学習させていけば良いです。電気代がもったいないだけで…。
Fan Huiさん
http://www.goratings.org/
ここ見るとレーティング632位。トップと700のレーティング差。将棋で言うと宮田利男さんくらいの人なのかな?
やる気十分のセドルさん、またしても負けてしまいました。(投了・これで3連敗)
人が打つ碁は4つの隅と4つの辺、そてから一つの中央という具合にそれぞれ局地戦が展開される、、、という考え方が主流で定石が作られてきたようです。
しかしながら、AlphaGoにとっては常に戦いは「盤面全部」でありました。
一つ一つの局地戦を戦いながら、それと全体状況が常にリンクしている、人はこれを「大局観」と呼びますね。
そういう意味ではAlphaGoの大局観はもはや人のレベルを超えている様であります。
囲碁トップ棋士に完勝 人工知能に「大局観」 井山6冠「恐ろしい」
http://mainichi.jp/articles/20160313/ddm/003/040/169000c
素晴らしい事にセドルさんが勝利しました。(AlphaGo投了)
78手目の「割り込み」が神の一手であった模様です。
AlphaGoは87手目に至って、ようやく自分の不利を理解したとのこと。
それまでは自分の勝率を70%と認識していた模様です。
さて、不利を理解したあとのAlphaGoの打ち方はかなり無謀なものであり、自分から自爆していく様なものでした。
AlphaGoの評価関数は勝率を計算するものであるらしく、次の一手は「最善手」ではなく「一番勝率が高くなると今までの学習で学んだ手」であります。
従って、十分な学習がなされておれば「次の一手」は統計的に見て「有効な一手」でありましょうが、不十分な学習ではそうはまいりません。
AlphaGo、どうやら「認識ミスをしたあとの対応の仕方」は十分に学習出来ていなかった様で、そのありさまは「初めてミスをして、どうしてよいかわからず、うろたえている」というものでありました。
こうしてAlphaGoが「自分はミスをすることがある」という事を理解しその対応方法を学習することが、次の目標になったことは明白であります。
http://nitro15.ldblog.jp/archives/47079097.html
> こうしてAlphaGoが「自分はミスをすることがある」という事を理解しその対応方法を学習することが、次の目標になったことは明白であります。
それはダウト。囲碁は手の広いゲームなので神様から見るとほとんどすべてがミスなので、ミスをリカバーする指し手を目標に機械学習させるよりは、神様の指し手に近づけるように機械学習させるほうが良いのでは。
>神様の指し手に近づけるように機械学習させるほうが良いのでは。
AlphaGoの評価関数は「最善手を求めるもの」、「神様の指し手に近づけるもの」ではなく、「半目勝ちでもいいから勝つこと」、どんな勝ち方でもいいから「勝率を最大化すること」が設計思想の様に思われます。
第5局はこまかい勝負になりましたが、勝ったのはAlphaGoでした。(白持ち、盤面2目半勝ち+コミ6目半)
それでセドルさんのコメントは、
イ・セドル:AlphaGoが上手だと考えることはなかった。
まだ人間が十分にしてみることができる水準だと考える。
というものでした。
序盤、AlphaGoが石塔という手筋に入り込んでしまい、不利になりました。
デミス ハサビス コメント:
先にAlphaGoが脈をよくつかめなくて序盤に失敗をしたものと見える。
以後微細な接戦を繋げていけるほど追撃戦を展開して形勢を回復した。
今回は興味深いことに、第4局の様に「失敗してうろたえる」という状況にはおちいりませんでした。
失敗の程度がそれほど致命的でなかった為と思われます。
他方、セドルさんは序盤での優位な展開に多少気が緩んだのでしょうか、上辺の攻めに甘さがあり、堅く守ってしまいました。
結局これがAlphaGoに有利に働いた様です。
人が打つ甘い手は将棋と同じで決してCOM君は見逃してはくれません。
そういう訳で、「韓国棋院、AlphaGoに史上初めて名誉プロ9段証授与」ということになりました。
ちなみにランキング サイトではAlphaGoはセドルさんを抜いて4位になっております。
ですので、十分に実力をそなえた「名誉プロ9段」という訳です。
http://nitro15.ldblog.jp/archives/47099273.html
AlphaGoは、ディープニューラルネットワークを用いて実装された「value network」と「policy network」によって動くモンテカルロ木探索(英語版)を用いる。
まあこんな風にWikiには書かれています。
MCTS(モンテカルロ木探索)まではCrazyStone(2006年)が起こしたブレークスルーでした。
そして今回のAlphaGoのブレークスルーはArakiさんによれば、(上記記事参照)
1.遅いけど正確な行動評価関数をDCNNで作る(b)。
2.bを強化学習でさらに学習する(c)。
3.cを使った自己対戦により、状態評価関数をDCNNで作る(d)(これにより状態評価が15000分の1の時間で出来るようになった。)
そうしてたぶん行動評価関数「policy network」と状態評価関数「value network」を使ったMCTS(モンテカルロ木探索)で対局する、、、ということの様です。
そういう訳で、AlphaGoは盤面全体を見渡しての大局観にすぐれてはおりますが、モンテカルロ木探索の弱点である、「? 細く長い正解手順がある場合、 最善手が1手だけある、という局面が長手順連続すると、確率的に正解にたどり着かない」というものも合わせ持っている様であります。
・シチョウ : プレイアウトをパターンで強化して回避
・死活、攻め合い : まだ対処法は不明
( 山下さんは、探索との組合せなどを試しているらしい)
http://minerva.cs.uec.ac.jp/~ito/entcog/contents/lecture/date/5-yoshizoe.pdf
「どうやってAlphaGoはうごいているか?」をみつけました。
ソースはこちら↓
http://www.slideshare.net/ShaneSeungwhanMoon/how-alphago-works
行動評価関数「policy network」<--13層のニューラルネットワーク(CNN)
枝刈り用のものである。(というよりは次の一手候補を戦略的に複数、選択する機能かな。)
「policy network」で有効な次の一手の候補を絞り、「value network」でその候補盤面の評価をする。
序盤はこれでしょう。
そうして終盤に近くなると、具体的にプレイアウトを実行して勝率を確認するものと思われます。
> そうして終盤に近くなると、具体的にプレイアウトを実行して
もちろん序盤からMCTSしてますよ。それしないと全く話にならないぐらいの棋力にしかなりませんので…。
アルファ碁が第4局でセドル氏に敗北した件で質問させて下さい。
劣勢に陥ったアルファ碁が急に乱れ出したことでバグを疑う人までいるようですが、元々優勢な時も意味のわからない損な手をたくさん打っていたわけで、目先の損得よりも勝率を優先する手が、優勢な時は余裕、劣勢な時はバグだと解釈されているだけではないでしょうか。
モンテカルロ碁の欠点というより、人間と思考形態が異なっていることで異様に見えるだけで、正常な状態のように思えます。部分にこだわらずに全体を観るということを徹底すればそうなるでしょう。
むしろ囲碁ソフトとして問題だと思うのは、アルファ碁の長所と考えられている全局的な打ち方は、ひとつ見落としがあっただけで大失敗に終わると考えられることです。「全ての石が働いている」と称賛されるアルファ碁の打ち方は、第4戦において78手目の割り込みを見落としたことで、成り立たなくなってしまったのではないでしょうか。
見落としがあった時に軌道修正できず、以前の手や局面に対する評価が残ったままで次の手を决定していると考えるとあの迷走ぶりも納得がいきます。アルファ碁の打ち方は芸術的な綱渡りなので、一度落ちたら登ってこれなくなるのは不思議ではありません。持ち時間が短い対局で欧州王者に負けたのも、見落としの可能性が増えるからなのでしょう。
それほど難易度が高いと言えないらしい78手目をアルファ碁が見落としたのは、あの割り込みの形が学習時に勝率が低いと判断されてしまったからではないかと想像しています。あんな手が良い手になる可能性は相当低いのではないかと思うので。(学習により真っ先に切り捨てられそうな手に見えます)
見当外れな推測だったら申し訳ありません。よろしくお願いします。
まず、敗勢になったときにどうするのがベストかというのは、この手のゲームにおいてわりかし難しい問題なのではないでしょうか。将棋でもコンピューター側は長手数の即詰みを読みきって、自分の負けだとわかっているとして、現在のソフトではたいてい詰みまでが最長手数になる手を選ぶようになっていますが、人間相手ですとそれがベストではないことも多々あるわけでして…。囲碁の場合、指し手の選択の幅が広いので、敗勢の局面においては、相手が自分の思うベストの指し手をやってくるとしてそのときの勝率を最大化することを考えるよりも、相手がいくつかミスしてきたときに勝率が上がる指し手のほうを選んだほうがいい(そのように機械学習させる)というのはあるかも知れません。
格下との対局(囲碁なら置碁、将棋なら駒落ち)限定で、プロより強いアマがいるそうです。
相手のミスを計算に入れて指すのは、最善の一手を追求するのとは違う能力が必要なんでしょうね。
解説記事を読むと、アルファ碁は黒の時と白の時で打ち方が違ったようですが、黒番だとコミ7目半の分負けているので最初は劣勢の打ち方になるんでしょう。
優勢な時と劣勢な時とで違うのは優勢な時は負けの確率が減るように慎重に打ち、劣勢な時は勝ちの確率が増えるように大胆に打つからでしょうか。慎重な打ち方の方が評判が良いようですが、劣勢な時も慎重に打つようにはできないんでしょうね。
モデルを詳しく書いたpdf資料ですが、現時点では当時のURLの場所には存在しないようです。
他に手軽に入手できるところはないですかね。
解らないなりにも読んでみたくなっています。
本文で紹介してた「deepmind-mastering-go.pdf」のことですよね?このファイル名でググると他のところにあったので、本文のリンクをそのURLに修正しときました。
屋根裏さん、ありがとうございます。
アルファ碁みたいな正確で速い対応でビックリしました。