ここ10年程でコンピュータ囲碁のレベルが飛躍的に向上。依田九段によると強いAIはアマチュア6~7段格だとか。そんなにも強くなった理由...皆さんはご存知でしょうか?つい10年前までは北朝鮮の企業が開発した「銀星囲碁」が一番強く、(アルゴリズムは非公開のため推測になりますが)パターンマッチングやαβ法を基盤としたAIだったのに対し、「モンテカルロ法」を基盤とした思考アルゴリズムが2005年頃に登場。1~2年に1段のペースで棋力が上昇。アマチュアが楽しむには十分と言ってよいくらいに強い囲碁ソフトが作れるようになりました。今回は大学・大学院時代にコンピュータ囲碁の研究を行っていた元開発者の自分が、モンテカルロ囲碁の特徴と共に、オススメの囲碁ソフトを紹介してみようと思います。(画像:トリップアドバイザー提供)現在発売されている強い囲碁ソフト。以下の3ソフトがここ数年は人気です。昔は銀星囲碁の一強でしたが今はこの3つやね。コンピュータ囲碁大会時のプログラム名は以下の通り。天頂の囲碁:Zen最強の囲碁:CrazyStoneZenやCrazyStoneはモンテカルロ法を使った囲碁プログラムとしてとても有名なのでご存知の方も多いでしょう。2015年のコンピュータ囲碁大会「第八回UEC杯」にて優勝したCrazyStoneは3子にて『趙治勲』大先生と対局です。関連記事:第3回電聖戦・趙治勲vsコンピュータ囲碁解説ちなみに銀星囲碁の思考エンジンであるKCC囲碁に関しては、2009年UEC杯時点で「モンテカルロ法を思考エンジンに一部取り入れた」と大会インタビュー時に発言されてました。こいつもモンテカルロ法を使ってるわけですね。要するに...現在「強い」と言われていて人気の囲碁ソフト3本はいずれも「モンテカルロ法」を用いた『モンテカルロ囲碁』なのです。名前の由来はカジノで有名なモナコのモンテカルロより。近似解を求めるためのシミュレーション手法の一つ。正確な命名理由は分かりません...が。モンテカルロ法とは乱数を使ったアルゴリズム(別名:ランダム法)であり、シミュレーション毎に答えが異なることから、ギャンブルやカジノっぽい???ということで命名されたのではないかと勝手に想像してます。簡単なモンテカルロ法の例はコチラを参考に。参考:モンテカルロ法についてモンテカルロ囲碁の着手イメージ慣用句の一つに「三人寄れば文殊の知恵」があります。モンテカルロ囲碁はそれを再現したようなアルゴリズム。以下のようなイメージの着手決定方法です。大量の初心者でも寄りあえば良い案が生まれるというアルゴリズムです。※ちなみに初心者を沢山用意する理由は※コンピュータの計算量的に速いからです。囲碁の初手を考えてみましょう。仮にこの5つから選ぶとしますね。この5つの手を囲碁のルールは知ってるけど初級くらいの人「1000人」で協力して選ぶよ。作戦1:前半500人を均一に割り振るまずは5つの手を初手としてそれぞれ100人ずつに一人二役(一人で黒白両方担当)で終局まで打ってもらいます。もって勝ち負けの統計を取ります。初手-星:50/100(勝率50%)初手-小目:60/100(勝率60%)初手-高目:46/100(勝率46%)初手-目はずし:64/100(勝率64%)初手-天元:40/100(勝率40%)上記の結果から何となく「小目or目はずし」が良いかもしれない!?...という統計結果が得られました。逆に天元はイマイチか。この結果に従って次の作戦を考えます。作戦2:後半500人を細かく割り振る小目と目外しをそれぞれ150人・星と高目を80人・天元を40人に一人二役で終局まで打ってもらいます。その結果、以下のような統計が取れたとします。初手-星:93/180(勝率52%)初手-小目:155/250(勝率62%)初手-高目:88/180(勝率49%)初手-目はずし:150/250(勝率60%)初手-天元:55/140(勝率39%)上記結果に基づいて最も勝率の高かった「小目」を打つことに決めます。作戦2の意味は「より勝率の高そうな手の調査回数を増やし、勝率の精度を高める」という目的があります。今回は適当に割り振りましたが、本当は「多椀バンディットアルゴリズム」の考えに基づいて割り振ります。感覚的には「1000枚のコインを持った状態で、5台並んだスロットマシンの報酬を最大化する作戦」と同じになります。コンピュータ囲碁界においては「UCB値」という値を用いてこの割り振りを決めます。上記作戦は1手読みの例になりますが、実際はこれを木構造にしたUCT探索という方法を用いて着手を決定します。※ここ数年の論文を読んでないので間違ってたらスイマセン...たぶん変わってないと思う...UCT探索は今回は割愛。Treesの略オススメの囲碁ソフト現在市販されている強い囲碁ソフトは上記のようなアルゴリズムによって着手を決定しています。何となくでも理解していただけたなら幸い。要は勝率をベースに着手の決定を行っているので、ピンチになると1%でも勝てる可能性のある無謀な手を打ち、余裕が出てくると確実に勝つための緩い手を打ちます。ちなみにプログラムごとの着手の差異に関しては、勝率の統計を取るために対局を行う「初級ロボット」の強さの違いや割り振り方などによって生まれます。強さの指標となる絶対的理由が二つあります。「最強の囲碁」はフランス人プログラマーのレミが開発したCrazyStoneのAIを採用。プロとの公式戦(電聖戦)において4子局で2戦2勝しております。く、7段くらいあるんじゃないか?...との評価を受けました。強さを求めるなら最強の囲碁が現時点では一番強い。ソフト名に恥じぬ強さを兼ね備えていると言えます。楽天まとめKCC囲碁のAIを積んだ銀星囲碁、ZenのAIを積んだ天頂の囲碁も強さ的には6段はあるんじゃないか?...といった高いレベル。いずれも大差はありませんが、現時点で一番強いのをお望みであれば『最強の囲碁』がオススメと言えるでしょう。ちなみにモンテカルロ囲碁を購入する利点を言うと、シミュレーション回数(上記で説明した勝率を計算する為の初級プレイヤーの数)を調整することによって強さを割と自由に調整する点です。同じプログラムでも強さの容易が用意なので常に互先を楽しむことができます。モンテカルロ囲碁は攻撃的で「力碁」な所があります。互先でねじ伏せられるようになればそれだけでも相当な力になるはず。皆さんの棋力アップに囲碁ソフトを利用してみるのも良いのではないでしょうか。去年末、大学の先輩の結婚式に参加してきました。人工知能研究の一分野にコンピュータ将棋のAI開発がある。テレビゲームもいいけれど...たまには囲碁などいかがかな?こんにちは。コンピュータ囲碁とプロ棋士との対局。第3回電聖戦が3月17日に開催されました。