Home > banu, 計算機 > 計算機は囲碁で人間の名人に勝てるのか

計算機は囲碁で人間の名人に勝てるのか

2009年4月11日 banu

banuです. 久しぶりな感じです.

でるかコンピューター名人 囲碁に確率重視の「モンテカルロ法」

http://www.asahi.com/igo/topics/TKY200904080214.html

という朝日新聞のニュースを見て思うところを書こうかなと.素人向けだからしょうがないけど,この分野の専門家ではない俺でもなんか変な記事だなと感じたので.万人向けの記事はどうしても正確さを犠牲にしなくてはならんので当然といえば当然なんだけど,そういうのって誰にとっても意味がないと思うのよね.

まず,冒頭からあれれと思ったんだけど

人間に勝つのは、はるか未来の話と思われてきたコンピューター囲碁の世界が、画期的なプログラムの登場で大変革期を迎えている。確率(勝率)を重視した 「モンテカルロ法」の採用で棋力が急上昇。「将棋よりも先に、囲碁の名人がコンピューターに敗れるかも」と大胆な予想をするプログラマーもいる。

モンテカルロ法によって強くなったというのは正確ではない...はず

たしか囲碁にモンテカルロ法を使ったというのは90年代からあった..と聞いた記憶がある.しかも,それは大して強くなくて特に注目されなかったらしい.囲碁とか将棋とかのゲームを計算機で解くときに問題となるのは,評価関数(どの手がどれだけ強いかを計算する)の作り方とか,探索空間の狭め方(糞手は選択しないなど)とかなので,それらをモンテカルロ法をうまく使って実装したというのが本当のところかな.(去年あたりの輪講でUCTだとかいう方法で探索木を作るという話を聞いたような気が.)

モンテカルロ法ってのは,ランダムにあり得る状態を生成して,その中で特定の条件を満たす確率を計算するという方法なんだけど,これって精度を上げるためには結構計算が必要だったりする(その代わり,時間をかけただけ精度はどんどんよくなる,これは乱択ではない近似アルゴリズムでは実現できない精度も達成できるという意味では優れている).特に,取り得る状態が膨大な数になると,かなり難しい.たとえば,明日自分が死亡する確率を計算するとしよう.その場合,「アメリカで射殺」とか,「インドでテロに巻き込まれる」といった状態は(通常の意味で)あり得ないので計算しなくてもいいけど,「朝起きてのどが渇いたのでコーラを買うためにコンビニに行ったが売ってなかったので遠くの自販機まで買いに行く途中で車にひかれそうになったが特に何事もなく1日が終わった」とかいう状態はあり得るので計算しなくてはならない.これは実質的に無限の要素の組み合わせとなるので,どれだけ計算しても意味のある確率は得られない.(末期的な病気で入院している場合などは影響しそうな事象が限定されるのである程度は意味のある値が出るかもしれないけど.)

囲碁も探索空間が非常に大きいので,本質的に同様の問題を孕んでいる.だから,単純にモンテカルロ法を使いましたってだけではうまくいかないよねってこと.まあこれは重箱の隅みたいなもんなので,あまり気にすることではないのかも.

でも,

コンピューター将棋は現在アマ六段クラスとされ、昨年、アマのタイトル者に勝った。一流棋士に勝つのは2014~15年との調査結果があるが、「モンテカ ルロ法によって、もしかしたら将棋よりも先に、囲碁の名人がコンピューターに敗れるかもしれない」と山下さん。チェスとオセロは97年に世界王者がコン ピューターに敗れている。

ってのは簡単には受け入れられない.だってさー,オセロはともかくチェスでカスパロフに勝った「ディープブルー」って

スーパーコンピューターな上に専用機じゃん

ディープブルーがどれくらい速いかっていうと,汎用プロセッサ自体は当時の並のスーパーコンピューターなので,今のハイエンドPCよりは遅いけど,「チェス専用プロセッサ」を積んでるんで,地球シミュレータに計算させるより速いくらいだと思う.IBMの論文(ieeeの論文なので読めないかもしれませんが,アブストラクトにも書いてあります.)によると,

Deep Blue was comparable to a general-purpose supercomputer with processing speed of up to 40 Tera operations/sec

40テラ(兆)演算/秒ということなので,LINPACKで40テラいかないくらいの(昔の)地球シミュレータでは勝負にならないでしょう.

なにが言いたいかというと,ちょっと前に将棋で渡辺明竜王とやったボナンザは,普通のパソコンで計算されていたわけで,インテルの Xeon X5355が二つのってるマシンだったみたいだけど,せいぜい100G(0.1T)演算/秒も出ればおめでとうといった感じでしょ?どうして計算に使用するマシンが問題にならないのかね?ということ.もしもっと速い計算機(専用機でもいいし,たくさんのPCをつないだクラスタでもいい)を使えれば,いまでも将棋は名人級のプロに勝てるんじゃないかと思う.ディープブルーと同じくらいの性能があれば,ボナンザももっと強いでしょ.少なくとも40倍の計算能力があれば,Xeon X535二つで400万局面/秒なら,1億6000万局面/秒くらいにはなるはずで,それってかなりの進歩だと思うんだよね.だから,その辺の議論をなしに

モンテカ ルロ法によって、もしかしたら将棋よりも先に、囲碁の名人がコンピューターに敗れるかもしれない

というのはいかがなものかと.2008年にスーパーコンピューター使っても人間に負けている囲碁が,将棋より先に名人に勝てるとは思えない.どういう根拠があってこういう結論に至るのか全く分からない.ソフトウェアの性能はハードウェアの性能に強く依存するのに,そういったことを無視するのはどーなのよ.

とか考えているときにまた変なものが目に入ってきた.

LoiLoScopeという動画編集ソフトがあるんだけど,GPUの計算能力をつかって高速に処理できるのが売りらしい.それ自体はすばらしいことで,CUDAの実力が生かされていると思う.が,

CUDA™エンコーダを利用した動画の書き出しでは、同じパソコンでもCPUだけを使った場合の約10倍の速度を記録しました。(当社比)

ってのは,宣伝文句として10倍になるように設定したんだと思うけど,へぼいCPUとハイエンドのGPUを使って比較するのはなんとなくずるい.ハイエンドのCPUでもたぶん勝てるだろうけど,3~4倍にしかならんのでそうしてるんだろう.でも1世代前の2コアCPUであるCore2Duo E8200 2.66GHzよりは,最新の4コアCPUであるCore i7 960 3.2GHzをつかって比較してほしいなあ,NVIDIAの最高クラスのGPUであるGTX280をつかってるんだから.GPGPUソフトとしては優秀なんだから,もっと自信を持ってもいいんじゃないのかね.

ながくなったのでこのへんでやめる.

それではまた.

banu, 計算機

  1. No comments yet.
  1. No trackbacks yet.