カテゴリー
CUDA

囲碁AI「DeepZenGO」の特徴と課題

日本最強の囲碁AI「DeepZenGO」と趙治勲名人の3番勝負は趙治勲名人の2勝1敗で終わった。私は趙治勲名人が圧勝すると予想したが、「DeepZenGO」も1勝し、よく健闘したと思う。この対戦を通して「DeepZenGO」について感じたことを記載する。

布石や大局観は優秀

布石は強いと趙治勲名人も認めていた。これはある意味で当然のことである。布石のようにある程度打つところが決まっている段階では過去の棋譜が勝敗結果と共に残っており、それらの棋譜を研究することによって、ある程度、どの布石が効果的だったか判断できるからである。但し、今まで打たれなかった布石を採用するとコンピュータは戸惑うだろうな。
「DeepZenGO」に期待するのは、今後、天元に打つなど決してプロが打つことのないような手についても模擬対局を重ね、その手の良し悪しを判断してほしいことである。そのように過去にない手が集積されれば、コンピュータとの対局は面白くなる。
厚みを築くなど大局観も優れていると感じた。特に地合い計算で厚みも何らかの方法で考慮していることについては感心した。この点についてはプロ棋士の方が地になる可能が高くなるまで、正確には計算しないようであり、判断を誤る可能性が高いと思う。「DeepZenGO」がいろいろ碁形を加味して計算の精度を高めれば更に強くなると思う。

まだ評価性能が甘い

対局中、「DeepZenGO」は自分の思っている局面の評価値を示していた。プロ棋士の解説者がまだ両者互角と評価していた時点でも常に6割近く自分が優勢と評価していた。これはある意味、自分が優勢になると判断して着手しているので理解できないこともないが、それでもあまりプロ棋士と判断の差が大きいと現状認識が甘いのでないかと疑いたくなる。第一局、第三局は最終的には趙治勲名人が勝ったので、評価判断が間違っていた可能性が高く、改良すべきである。

死活判断が甘い

コンピュータは範囲が限定された死活問題などは得意なはずであるが、今回見ていた対戦で、プロ棋士が明らかに損な手であると指摘したところが数か所あった。まだ、「DeepZenGO」は正確に読み切れていないのであろう。まあ、時間の制限があるので仕方がない面もあるが、読む範囲が限定されれば、着手可能な手順をすべて調べても今回使用したコンピュータ性能をもってすれば可能と思われるので、この点だけは間違えることのないように改良すべきである。時間がなければ、おおよそ形が定まった部分は相手の考えている時間にでも読ませておけばよい。ソフトを工夫すべきである。

中盤の読みが必要な場面では弱い

コンピュータ囲碁の特性から考えて、コンピュータ囲碁の最大の問題点は布石も終わり、中盤にさしかかった段階である。候補手が多く、あらゆる手を調べるには膨大な時間が必要で、どのようなスーパーコンピュータでも不可能である。この段階は大局観で判断していると思われる。しかし、その中でも、石の死活に絡らむような正確な読みが必要なったとき、コンピュータはまだ正確に読めていないのないかと危惧する。

以前からコンピュータは劫が弱いと言われているが、これも対応を省略したときどの程度の被害が及ぶのか、他の劫材との関係など複雑な読みを必要とするから判断を誤るのであろう。この点については経験から石の碁形パターン(認識)で読む手を制限してしまうプロ棋士の方が勝っている。

「DeepZenGO」の強さを再認識

いろいろと「DeepZenGO」の弱点を指摘したが、強い囲碁ソフトを作成するのは大変難しいことで、趙治勲名人に勝つたことは非常に驚いた。如何に高性能なコンピュータでもソフト(コンピュータに作業させる手順書)がなければただの箱である。誰かが対局の仕方の手順書を書かなけ動かないのである。囲碁の場合この手順書を作るのが大変に難しいのである。
今回の対局を分かり易く例えれば、囲碁を全く知らない人達を多く集め、膨大な過去の棋譜と定石などの囲碁の参考書を与え。これを参考に詳細な戦い方の手順書を書いて、趙治勲名人と戦わせたのと同じことである。まあ、一手打つ毎に調べる時間はコンピュータの性能を考慮すると無制限と同じであるが、それでもよく趙治勲名人を負かせる手順書が書けたものでだと関心する。

現在、主流となっている手順書では勉強させた内容をもとにコンピュータにその後の展開の想定図を何千、何万と作らせ、その中で最も良さそうだと判断した手を採用させている。これも素人が作る想定図だからどの程度正しいかは疑問である。
アルファ碁ではディープラーニング手法を用いているので、囲碁の戦い方の手順書というよりは、人間の脳の仕組みを研究して、コンピュータに人間のように勉強させる手順書を作ったと考えた方がよい。これに膨大な過去の棋譜を与え勉強させ、どのような手が有力なのかを学ばせたのであろう。これも凄いことだと関心する。この学習が正しいかったと判断できれば、碁以外にも応用できる可能性ができる。
開発チームの加藤さんは今回の対局後「序盤を優位に進めるディープラーニングよりも、思考時間などプログラム面が課題と感じる。どこを直せばよいか、得ることの多かった三番勝負だった」とコメントしている。
コンピュータ囲碁はディープラーニング手法を取り入れれば、コンピュータ同士で対戦でき、どのような手が有力か経験を積めるので、今後更に期待できる。

カテゴリー
CUDA

囲碁AI「DeepZenGO」、趙治勲名人と対局の大胆予想

ドワンゴが日本最強の囲碁AI「DeepZenGO」と趙治勲名人の3番勝負を企画した。また、対戦されていないが趙治勲名人が圧勝すると予想する。

予想の根拠

1)囲碁用AI「AlphaGo」の対局では高額の賞金金額であったため、イ・セドル九段が固くなり、実力が発揮できなかったと想像する。イ・セドル九段と趙治勲名人は両者プロ、棋力には大きな差はない。「DeepZenGO」と趙治勲名人との対戦では趙治勲名人の方が気楽に対戦でき実力を発揮してくれるような気がする。
2)マシン性能では囲碁用AI「AlphaGo」の方が「DeepZenGO」の方より格段に優れている。
「AlphaGo」はデータを蓄積する段階でGoogle Cloud Platformのコンピュータ資源(CPU1202個、GPU176基)と大規模なコンピュータ資源を使って学習させている。但し、対局用にはもう少し性能の劣るマシンが使用されているようである。これに較べ今回発表されたマシン性能は個人でも無理をすれば購入できる程度の規模のマシンである。
3)「AlphaGo」の使用しているディープラーニングの手法は正直なろころよく分からないが、人間のようにいろいろ学んだ経験を元に判断する能力だと想像する。イ・セドル九段との対局にあたっては、膨大な数の棋譜をコンピュータに学習させ、更に、自分自身で何億回と対戦させて、そこで学んだ膨大な記憶が基礎になって得た実力だと判断する。
このに対し「DeepZenGO」は囲碁の経験者が開発しているため、開発者の判断が多分に入った着手になっているのでないかと想像する。過去の囲碁経験に基づいた常識的な着手が多くなれば趙治勲名人は打ち易くなるだろう。ディープラーニングの手法も取り入れられているようであるが、どの程度の成果が出ているか疑問である。

DeepZenGoとマシン性能について

DeepZenGOは、米Googleの囲碁用AI「AlphaGo」を上回る性能を目指し、2016年3月から開発されてきたAI囲碁ソフト。
・囲碁ソフト「Zen」開発チームのチーフプログラマー・尾島陽児さんが開発のメイン
・東京大学・松尾研究室がAIの研究で協力
・ドワンゴがハードウェアや開発スペースを提供
・日本棋院がプロ棋士との対戦機会を設けるなどのサポート
囲碁ソフトも従来のモンテカルロ技法から一部「AlphaGo」と同様にディープラーニングの手法を取り入れられている。モンテカルロ法は複数個の候補手を実際に着手させて対戦していって、結果的に一番有効であった思われる手を選択する手法。すべての手を試みるのは大規模なコンピュータでも不可能なので、何らかの人間の判断で候補手が選択されていると想像する。

マシン性能

「DeepZenGO」の開発に際してドワンゴがディープラーニング専用GPUサーバファーム「紅莉栖(くりす)」を提供するとのこと。但し、「紅莉栖(くりす)」はノード数が100と表記されていたが、今回のマシン性能との関係が不明。
発表された今回のマシン性能は以下の通り。
・CPU:E5-2699v4×2ソケット(44コア 88スレッド 2.20GHz)
・GPU:はNVIDIA TITAN X(Pascal世代 3584コア)×4
・ディスク:128GB SSD(OS起動用)+480GB SSD×2
・メモリ:128GB

「AlphaGo」のマシンスペックを見た時は何台ものコンピュータが接続された普通には使用できない凄いパワーのマシンシステムを持ってきた印象であったが、今回の「DeepZenGo」のマシンスペックは筐体は一つに収まり、数百万程度で組み立てられるのでないかと思えるスペックであり、凄さはない。

個人が使用するマシンと比較すると。

個人が普通に使用するマシン性能

・CPU:2コア、4スレッド
・GPU:なし
・ディスク:128GBSSD+1TB HHD
・メモリー:8GB

ゲーム用のマシン性能

ゲームマシンはダイナミックに動く画面を制御するためGPUが使用される。
・CPU:4コア、8スレッド( 4GHz)
・GPU:1000コア
・ディスク:256GB SSD + 2TG HDD
・メモリ:12GB
程度である。

「DeepZenGo」の性能は個人で使用するゲームマシンの感覚的には10倍程度のマシンス性能である。

性能の意味

CPUの44コア 88スレッド 2.20GHzの意味は2.2GHzのテンポ(速度)で44の仕事が部分的には88の仕事が分担して処理できる性能。コンピュータもテンポに合わせて演算処理等を行うがG(百万)と超猛烈な速度で44のコンピュータが同期を取りながら演奏していることになる。実際には一つの業務で仕事を分割するのは大変であり、マシン性能の何割程度しか活用できない。
GPUの3584コア×4の意味は単純な演算処理なら3584×4を同時にできる性能。これもCPUと同様に超猛烈な速度で計算しており、大量に計算するだけならCPUの何百倍という能力を発揮する。但し、複雑な判断や処理が伴う仕事はCPUで行わなければならないので、大量のアルバイト雇い、単純作業をさせている感覚である。今回使用される「NVIDIA TITAN X」はゲームマニアの強者なら使用しているGPU。

DeepZenGoの公式的な実力

プロ棋士の強さの指標として「elo Rating」(イロ・レーティング)があるが、DeepZenGoは約3000である。日本トップ棋士の井山裕太は約3600。現在のAlphaGoのレートも3600程度である。
DeepZenGoもディープラーニングで経験を積めば日に日に強くなってくると思うが、急激な進歩は難しいだろう。

今回の対戦の意義

「AlphaGo」がプロ棋士に勝ったが、簡単には利用できない強大なマシンパワーと特別な雰囲気によってもたらさせたもので、非現実的な特別な勝利であった。今回の対戦では一応、非常に高価ではあるが、無理をすれば個人レベルでも購入可能なマシン性能での対戦であり、コンピュータとプロ棋士が対等な土俵で戦ったと言える。これで、本当にコンピュータが勝つようなことがあれば、将棋と同様にコンピュータも棋戦に参加する可能性がある。
なお、アマチュアレベルでは既に市販されている囲碁ソフトが勝っており、並の実力では勝てないレベルに達している。私もほとんど勝つことができない。
今回の対戦は真にコンピュータの実力がプロレベルに達したか試される対戦である。

カテゴリー
CUDA

李セドル九段に勝った囲碁ソフトAlphaGoについて

現代最高の囲碁棋士と云われている韓国のプロ棋士李セドル九段とグーグルが生んだ最強囲碁ソフトAlphaGoの5番勝負が行われ、4対1でAlphaGoの勝利となった。囲碁の世界ではコンピュータがプロ棋士と互角に勝負できるのは少なくとも10年後と言われてきたが、今回の結果を受けてプロ棋士の間では衝撃が走っている。
しかし、囲碁ソフトがプロ棋士に勝ったのは事実であるが、AlphaGoの性能を見たとき、一般的にこの様な高性能のマシンを使うことは出来ないので、市販されているコンピュータの能力程度でプロ棋士に勝つのはまだまだ先と考えられる。

AlphaGoの性能

AlphaGoの性能はCPUを1202個、GPUを176枚搭載されていると報道されているが、我々が家庭で使うコンピュータはCPUが1個、数え方によっては4個程度である。GPUは一般のコンピュータでは使用されないが、ゲーム用のコンピュータでは1個搭載されていることが大半である。このGPUは同じ様な計算を何万と行う特殊な計算では化け物のような能力を発揮する。GPU1個でCPU数百台の能力を発揮することもある。GPUが176枚も搭載されている規模のコンピュータは日本では大学など数は多くないと思われる。この大規模なコンピュータとリソースが使用できるのはグーグルのようなAIの超一流企業だけである。
AlphaGoの研究者たちは約3,000万に上るトップ棋士のさまざまな打ち手を集め、AlphaGoの学習させたそうである。また、その後自分自身で対局させ、どの手が勝率に結びつくか繰返して検証されているようである。さぞかしデータ量も膨大になっていることであろう。

市販レベルのコンピュータで応用できるか

囲碁ソフトとして意味があるのは市販されているコンピュータの性能レベルで利用できることである。いくら強力な囲碁ソフトを開発しても日本に数台しかないコンピュータしか利用できないのでは意味がない。
今後の問題は今回のAlphaGoの性能をコンパクトにできるかであるが、私は10年かかっても無理と考える。AlphaGoのように物量に任せた手法ではコンパクトにできないと思われる。何か別のアイデア・手法が必要である。また、性能についても10年の間に一般に利用できるコンピュータの性能も向上するが、それでも今回使用されたマシン性能の10分の1程度の能力であろう。
今回のイベントは話題性はあったが、コンピュータの囲碁ソフトと囲碁棋士が日常的に戦うのはかなり先のことと思われる。

AlphaGoの特徴

棋譜を見て感じたこととソフトの特徴から判断してAlphaGoは以下の特徴を持っていると思われる。

大局観が優れている

3,000万のトップ棋士の棋譜を研究したようであるから、どのような場面でどこに打つのか一番勝率が高いかはすでに集計されており、回答を持っているはずである。石の配置が単純な碁では最適なところに打ってくる確立が非常に高いと想像される。今回の対戦でもAlphaGoは徐々に優位性を確保している。

不明確な碁形の碁は苦手のはず

いろいろな石が複雑に絡み合った碁は多分苦手であろう。幾ら膨大な処理量を誇るAlphaGoでも石が複雑に絡み合ってくると過去に例示がなく、その変化をすべて読みきれるものではない。このようになるとプロ棋士の直感の方が有利になるように思う。劫が苦手と言われているが、これも各劫立ての損得勘定が瞬時にはできないためである。

AlphaGoに勝つ秘訣は碁形を複雑化することである。そうすれば当面はプロ棋士が勝てるであろう。