アピール文から読み解くWCSC27の見どころ(うさぴょん2’TURBO編)

久々のシリーズ物として、WCSC27に参加しているソフトのアピール文を、私、Qhapaqの開発者が読解/解説していきたいと思います。本シリーズを通じて、皆様がコンピュータ将棋を好きになってくれれば、そして、人工知能の織りなす科学を楽しんでいただければ幸いです。

 

前回記事:アピール文から読み解くWCSC27の見どころ(読み太編) - qhapaq’s diary

 

注:以下の考察はQhapaq開発者の予想です。開発者に確認をとっているわけではありません。あくまで参考として楽しんでいただけると幸いです。

 

・伝統と独自性を両立するソフト うさぴょん

うさぴょんのアピール文:

http://www2.computer-shogi.org/wcsc27/appeal/Usapyon2'TURBO/wcsc27-usapyon.txt

うさぴょんシリーズはコンピュータ将棋ソフトの中でも古い歴史を持つソフトです。開発者の池さんはSNS書籍などでコンピュータ将棋に関する解説を行っており、開発者の多くは池さんのお世話になったことがあると言えます(かくいう私も、WCSC初参加の時は池さん(となのはさん)には大変お世話になりました)。

WCSC26では決勝リーグ進出、sdt4では決勝トーナメント進出と強力なソフトの一つでありますが、毎回挑戦的な試みをしてくれるソフトでもあります。今回は巷で話題になったryzenを使って来るそうです。

以下、うさぴょんが今季ピョンピョンできるのか、検証してみたいと思います。

 

Ryzenって結局強いの?

RyzenとはAMDから販売されたCPUの名称であり(Ryzen - Wikipedia)、早い安いを強く押し出した作品となっています。早くて安いCPUであれば低予算で強い将棋ソフトが作れると言いたくなりますが、現実はそう甘くはありません。

Ryzenベンチマークについてはいろいろな記事がありますが、個人的には(RyzenとCore i7 7700Kのベンチマーク比較 ゲーム用ならRyzen、作業用なら7700K | ITハンドブック)がよくまとまっていると思います。ざっくりいうと、動画処理などの解りやすい並列化以外の並列化の挙動が怪しい(効率的に並列化できてない)可能性が指摘されています。

LazySMPにおいて、Ryzenの並列化周りの弱さが響くかは定かではありませんが、開発者達による解析によると、いくつかの命令に地雷が含まれている気がしてなりません。池さんにはぜひ、うさぴょんのNPSがRyzen vs corei7でどうなったか教えてもらいたいところです。

 

・まさかの振り飛車

うさぴょんのアピールで目を引くのが振り飛車を指せる定跡を作るという点です。振り飛車藤井システムが綺麗にハマれば居飛車に対抗できることは示唆されてはいますが、コンピュータに特定の戦型を振り飛車で狙わせることは容易ではなく、また、少しでも定跡からずれると弱く(振り飛車の対居飛車勝率は4割程度)なるのでいろいろ地雷が多いと思います。

 

・Qhapaq的総評

ボナメソ+rootstrapで評価関数をゼロから作りなおそうとするなど、長年挑戦的な試みを続けているうさぴょんは私が最も尊敬しているソフトの一つです。sdt4ではうさぴょんの振り飛車居飛車穴熊でQhapaqが負けるという悲劇を味わったので、今度こそ居飛車の強さを魅せつけてやりたいところです。

アピール文から読み解くWCSC27の見どころ(読み太編)

久々のシリーズ物として、WCSC27に参加しているソフトのアピール文を、私、Qhapaqの開発者が読解/解説していきたいと思います。本シリーズを通じて、皆様がコンピュータ将棋を好きになってくれれば、そして、人工知能の織りなす科学を楽しんでいただければ幸いです。

 

前回記事:

アピール文から読み解くWCSC27の見どころ(NineDayFever編) - qhapaq’s diary

 

 注:以下の考察はQhapaq開発者の予想です。開発者に確認をとっているわけではありません。あくまで参考として楽しんでいただけると幸いです。

 

・気前の良いオールラウンダー 読み太

読み太のアピール文:

http://www2.computer-shogi.org/wcsc27/appeal/Yomita/appeal.txt

読み太はWCSC26組(sdt4の決勝トーナメント生存チームでいえば、読み太、たこっと、Qhapaq、たぬきのもり)の中でも頭ひとつ強いソフトであり、所謂チルドレン世代の代表格とも言えるソフトです。読み太の強さの秘訣は諸説ありますが、私自身は、実装能力、機械学習などの数理に対する知識、人間的な将棋への理解のバランスの良さにあると思っています。

また、読み太はWCSC26の上位8チームの中では最も気前よくアピール文で技術を紹介してくれている(当社比)チームでもあります。

以下、雪辱を果たすべく読み太がどんな準備をしてきているか予想してみましょう。

 

・評価関数は安定路線?

読み太は雑巾の作り方として初手暫くをランダムで指させ、それ以降はdepth7で戦わせたものを使っているとしています。ランダムで指させる手数や雑巾生成時のdepthは地味な調整が延々と続く苦行であり、この手間を如何に減らす(数理的な予想を駆使して候補を削る、自動化して手間を減らすetc)かが勝負と言っても過言ではないのですが、読み太は割と気前よく教えてくれています。

# Qhapaqのバイナリで試した時は強くならなかったですが。既に最適化しすぎてたのかも解らぬ

また、雑巾生成時にはあまり枝を落とし過ぎないことがコツなのではないかという示唆を与えてくれています。たぬきチームなども似たような知見を得ているようです(参考)。

 

・進行度をベースとした探索部

進行度によって枝の落とし方を変えることに成功しているようです(R20程度向上)。終盤になるほど手を広く読まなければならない(詰みとかが絡んでくるので)という発想は実はQhapaqも過去に導入を検討したことがあります。Qhapaqの研究では進行度を予想することを諦め、手数や評価値で枝を切り分けた結果、あまり強くならなかったのですが、読み太は駒の並びに対して進行度の点数を割り振るなどをすることでより高精度化させたのだろうと予想しています。

 

・読み太沼は健在か?

読み太は開発者が独自に手動で入れた定跡が含まれており、横歩や角換わり系の将棋だとスゴク長い定跡に捕まる可能性があります。QhapaqはWCSC26でこれをモロに喰らってしまい(30手目ぐらいまで延々と定跡で1秒指しされた)、ほぼ互角で終盤を迎えたものの最後は持ち時間の差で押し切られてしまいました。

sdt4を経て真やねうら王型の定跡(初手38銀などの力戦型の定跡)が登場したため、読み太のような狭くて深い手動定跡がうまく機能する機会は減りましたが、真やね型の定跡外しは定跡off指しに弱く、定跡off指しは手動定跡に引っかかりやすいという三すくみの関係は健在であるため、対策を怠ってひどい目に合わされるソフトがひとつは出てくるだろうと思っています。

 

・Qhapaq的総評

WCSC26の雪辱を果たしたいところです。あと、読み太の中の人は対局中に手の意味を開設してくれたりするので戦っていて楽しいですので、WCSC27でも当たりたいところです。

アピール文から読み解くWCSC27の見どころ(NineDayFever編)

久々のシリーズ物として、WCSC27に参加しているソフトのアピール文を、私、Qhapaqの開発者が読解/解説していきたいと思います。本シリーズを通じて、皆様がコンピュータ将棋を好きになってくれれば、そして、人工知能の織りなす科学を楽しんでいただければ幸いです。

 

前回記事:アピール文から読み解くWCSC27の見どころ(Apery編、書きかけ) - qhapaq’s diary

 

 注:以下の考察はQhapaq開発者の予想です。開発者に確認をとっているわけではありません。あくまで参考として楽しんでいただけると幸いです。

 

・極北から来た侵略者:NineDayFever

NineDayFeverのアピール文:

http://www2.computer-shogi.org/wcsc27/appeal/NineDayFever/NDF-2017.txt

評価関数、KPPTの進化を語る上でNineDayFeverを抜きにすることはできません。

深い読みの評価値を浅い読みに近づけるようにする学習指針や、KPPに手番の概念を入れるといった技術発展の切欠を作ったソフトであり、NDFの解説は、WCSCのアピール文史上、最も引用されたものの一つです。

以下、NineDayFeverが今回齎すであろう"侵略"を読み解いていきたいと思います。

 

・古参らしさと新しさの共存

他ソフトと比べて特徴的と言えるのが「三駒関係の各変数を分解して共通する要素を抽出」していること「勝率をベースに定跡を選択していること」でしょう。

三駒の変数の分解は、恐らくは、駒の平行移動の考慮(角の頭に歩を打たれるような局面は玉の位置や角の位置によらず辛かろうetc)であると思われます。これは大樹の枝時代のaperyには実装されていましたが、sdt4以降の雑巾絞り時代には使われる機会が減った技術です。

というのも、ボナメソのように棋譜が少ない場合は、こうした工夫で教師データを増やすことが有意義である一方、雑巾絞りのように大量に教師を作れる学習法では、こうした水増しは必須ではないからです。むしろ、不必要な平行移動を加えることで学習の精度が落ちる危険すらあります。

NDFがこうした技術を使うのであれば、新しい工夫をしている可能性が高いです。私個人は教師データの読みの深さを高めている(高精度な少数データで学習をさせている)か、平行移動以外の抽出方法を開発しているのではないかと考えています。

定跡に勝率を用いるのは、拙作の量子ガシャでも用いられているメソッドです。自己対戦の勝率を基準に定跡を作ると、実は変な変化に引っかかってしまうのですが、NDFはそれを回避できているでしょうか...(それを検証出来るだけ数戦えないのですが orz)

 

・Qhapaq的総評

NDFはこれまでも様々な技術を生み出してきた先駆者であるため、いきなりレートが急上昇したとしても驚きではありません。アピール文にはsdt4前後で認知された技術を導入する以外のことはあまり書いていませんので、目新しい変化がなければsdt4勢が有利な気もしますが...

WCSC26では当たることができず、開発者ともほとんど面識がないので、本大会でいろいろ教えてもらいたいところです。

アピール文から読み解くWCSC27の見どころ(Apery編、書きかけ)

久々のシリーズ物として、WCSC27に参加しているソフトのアピール文を、私、Qhapaqの開発者が読解/解説していきたいと思います。本シリーズを通じて、皆様がコンピュータ将棋を好きになってくれれば、そして、人工知能の織りなす科学を楽しんでいただければ幸いです。

前回記事:アピール文から読み解くWCSC27の見どころ(大将軍編) - qhapaq’s diary

 

 注:以下の考察はQhapaq開発者の予想です。開発者に確認をとっているわけではありません。あくまで参考として楽しんでいただけると幸いです。

 

・コンピュータ将棋界の正統派ヒーロー Apery

Aperyのアピール文:http://www2.computer-shogi.org/wcsc27/appeal/Apery/appeal_wcsc27.html

電王トーナメントシーズンがもし少年漫画だったら、間違いなくaperyが主人公でしょう。WCSCでの優勝、bonanza以来の強豪ソフトのオープンソース化、チャリティーオークションによる命名権販売、ボランティアを募っての教師データ生成と、多くの歴史を作ってきたソフトでもあります。

WCSCにおけるaperyの現状は「半年前の成果はライブラリとして公開しているので、今の所アドバンテージがゼロですので、今から何かしら改良して勝とうと思います。(既に3月31日)」(原文ママ)。ライブラリの提供元だからこそ言える(ライブラリ勢がこれ言ったらリジェクトされそう)ことですね。

以下、電王トーナメントでaperyがどういう進化を遂げたのか、復習を兼ねて見ていくことにしましょう。

折角有名なソフトの解説をするというのに、やたらとマニアックな記事になっています。まあ、このブログ自体が極めてマニアックなので今更ですか。

 

ソースコードから見るaperyの雑巾絞り

 sdt4でのapery(浮かむ瀬)は雑巾絞り勢(除 ponanza)の中で最もうまく雑巾を絞ることが出来たソフトと言えます。ソースコード(https://github.com/HiraokaTakuya/apery/blob/master/src/usi.cpp )を見る限り、apery式の雑巾絞りは以下の手順に要約できそうです(間違ってたらご指摘いただけると幸いです)。

 

---雑巾生成部---

1.自己対戦(?)などの棋譜で初期状態を指定

2.初期状態からランダム(単純なランダムムーブに加え、玉を周囲25マスに動かす措置あり。また、ランダムで手を選ぶ確率は1手ごとに下げる)で手を動かし雑巾局面を作る(この実装はやねうら王と大きく異なる)

3.depth6で手を読む(6手先まで通常探索させる)

4.depth6で読んだ評価値とbestmoveを保持する

---雑巾学習部---

1.雑巾局面でqsearch

2.qsearchと教師(depth6で読んだ値)の差を縮めるようにKPPTを発展させる

3.このとき、教師データの次元下げを行う

4.100ステップごとぐらいに、過去100ステップの結果を重みつけ平均させたものに評価関数をすげ替える

 

やねうら王の学習部とは雑巾の作り方、学ばせ方で幾つかの違いがあります。やねうら王と特に違うのは既存の棋譜をスタートに教師を作っていることと次元下げの有無でしょう。気になるところは幾つかありますが、この辺のチューニングは開発チームによって十分されているだろうことを考えると、レートを上げる際には「これは既に十分検討された」程度の理解でもいいかも知れません...

 

・雑巾絞りの性質とソフトの棋風の関連性

雑巾絞りによってコンピュータ将棋が攻めの棋風になるか否かで嘗て平岡さんとディスカッション(on twitter)したのですが、あまりに書くことがない折角なので、もう少し細かく踏み込んでみたいと思います。

 

1.ランダムムーブが含まれる将棋では攻め将棋が勝ちやすい

xxする一手という展開が受け側に多いから。統計的なソースはありませんが、これについては正しいと仮定しておきます。

2.KPPT評価関数は駒の並びの線形和なので、ある形の静的評価値(evaluateの値)が大きくなれば、似たような形の評価値も高くなる

3.本来無理攻めな局面が受側の悪手で攻めが通ってしまうと、無理攻めの局面の評価値も上がってしまう。結果、攻めを優先して読むソフトになるのではないか(私の仮説)

4.雑巾絞りは浅く読んだ値(≒evaluate)と深く読んだ値の差を使って評価値を変えるのだから、無理攻めが通る棋譜が多くても、evaluateの値が攻めに偏った上昇を起こすことはないのでは(平岡さんのご指摘を私が意訳したもの)

 

結論から言うと平岡さんのご指摘は正しいと思います。故に、3の理論を成り立たせるには、2に加え「2+.攻めが通るような局面では深く読むほど評価値が良くなる確率が高い」という仮説が成り立つ必要があります。

ただ、2+の仮説もあながち間違ってはおらず、やはり雑巾絞りをやると棋風が攻めになるのではないかと私は思っています。

さらに言えば、特定の戦型(例えば後手番四間飛車)で相手の悪手の確率がより高くなるように雑巾を作れば、特定の戦型に特化した評価関数も作れるのではと期待しています。

 

・魔女との比較で見るaperyの探索(執筆中)

 # done is better than nothingの精神だ...

 

・Qhapaq的総評

aperyが3月時点のままであれば、sdt4からライブラリを強化したであろう多くのソフトがaperyを上回ることができるはずです。しかし、これまで多くの手法を開発してきたaperyチームを以てすれば、ライブラリ勢全てを上回るような成果を1ヶ月で出せてもおかしくはありません。

半年間全力で開発すれば、大会の上位争いにも参加できるようにしたい、というのがapery公開思想だった気がする(twitterでそんな意図のことを仰ってた気がしますが、元ツイを見つけられなかったので勘違いかも知れません)ので、本大会ではキッチリ巨人の肩の上から巨人を倒したいところです。

 

以下余談:

WCSCでponanza_chainerが引くほど強かった場合、外チームの開発者は一致団結してDNN将棋を開発するぐらいの覚悟を決めないと、そろそろponanzaの勝ち過ぎがコンピュータ将棋界の危機(興行的な面での)につながりかねません。ジャパリaperyパーク(*)を出て暫く立ちますが、パークの危機にはチルドレンの一人として私も馳せ参ずる所存です。余裕があったらディープ平岡さんも連れてきます...

(*) 狸、兎、鯨、コブラ、蛸あたりが居ると言われていますが、コブラと蛸はソフト名を動物から取ってるわけではないとのことです...

アピール文から読み解くWCSC27の見どころ(大将軍編)

久々のシリーズ物として、WCSC27に参加しているソフトのアピール文を、私、Qhapaqの開発者が読解/解説していきたいと思います。本シリーズを通じて、皆様がコンピュータ将棋を好きになってくれれば、そして、人工知能の織りなす科学を楽しんでいただければ幸いです。

 

前回記事:アピール文から読み解くWCSC27の見どころ(技巧編) - qhapaq’s diary

 

注:以下の考察はQhapaq開発者の予想です。開発者に確認をとっているわけではありません。あくまで参考として楽しんでいただけると幸いです。

 

機械学習の一流トラブルシューター 大将軍

 大将軍(たいしょうぐん)のアピール文:

http://www2.computer-shogi.org/wcsc27/appeal/taishogun/appeal.txt

sdt4のアピール文:

http://denou.jp/tournament2016/img/PR/Daishogun.pdf

# 運営さーん、DaishogunじゃなくてTaishogunですよー

 

大将軍はWCSC26では3位、sdt4では5位と非常に強いソフトの一つですが、そこに至るまでには多くの苦杯をなめたソフトでもあります。四駒を用いた盤面評価など、独自性豊かな挑戦にも取り組んできたソフトであり、大将軍が結果を残し優れたソフトとして評価されることは大変喜ばしいことであります。

 

http://denou.jp/tournament2016/img/img_result_02_after.png

こうして見直すと、大将軍 vs Qhapaq(たいしょうぐん ばーさす かぱっく)なんて、初見じゃ誰も正しく読めないんじゃないか...

 

以下、私怨をできるだけ抑えながら、将軍の名を冠するほどに挑戦的な大将軍の今回の試みを読み解いていきたいと思います。

 

・kkpt を用いた評価関数

注:幸運なことにもQhapaqの敗戦後、和服を畳んでいたら遅めの休憩を取りに来た大将軍チームと一緒になりました。折角だからと開発の手法などについてディスカッションさせていただきました。以下の考察には横内さんから教えていただいた情報も含まれていますが、あくまで私の記憶が元であることをご承知おきください。

今回の大将軍の最大の試みはなんと言ってもkpptからkkptに評価関数を切り替えたことでしょう。玉以外の2駒の並びを使わずに盤面を評価するのは流石に厳しい(駒の取れる取られるの関係を直接扱えなくなる)ので、3駒についてはkkpt + kppで盤面を評価するという意味なのではないかと予想しています。

aperyややねうら王が用いている、NineDayFever式のkpptでは、kppの素の値に手番ボーナスを加えることでkpptを計算していきます。Qhapaqの手元の実験ではkppの手番ボーナスには全部で(1局面で出てくるkpptのボーナスの総和で)100-200点程度の値が付いており、これを0にしてしまうことで盤面評価の質が落ちる危険性は十分にあります。高速化の割に合うかは謎です。

また、大将軍のsdt4のアピール文には少し詳しく書かれていますが、大将軍は3駒に加え「利きをまとめて学習」、「駒の位置関係の相対位置による評価」(原文ママ)がなされているようです。盤面評価に効きを使っているのか、学習時に効きを加味した計算を行っているのかは定かではないですが、効きの計算はコストが高いこと(参考:魔女をめぐる冒険 | やねうら王 公式サイト)、sdt4で大将軍のNPSがQhapaqより高かったこと、そして、sdt4のアピール文のviewer(pp-5)を見る感じでは、sdt4までは純粋なkpptを評価に用いており、効きは学習用のパラメタとしてのみ用いているのだと予想しています。

大将軍の評価関数においてもうひとつ特徴的なのが、今なおプロの棋譜から学習をさせていることでしょう。3駒のような広大なパラメタを最適化するにはプロの棋譜は圧倒的に数が少ないのですが、駒の相対位置などを駆使して少ないデータから情報を抽出する、評価関数を可視化することで過学習を避けるなどをしているのだと思います(あと、やねうら王ライブラリの雑巾絞りは使ってるとのこと)。

# 昨年のWCSCではponanzaの棋譜から学ばせたら強くなるんじゃないか仮説を立てて、Qhapaqも色々試してみたのですが、駒の相対位置の学習の実装は想像以上にしんどく、また、ノートPCでは相対位置の計算に死ぬほど時間がかかることが発覚したので諦めました

 

・大将軍の弱点?

大将軍は非常に強いソフトですが、序盤運用には若干の難があると思います。sdt4の棋譜だけではサンプル不足は否めませんが、定跡が終わった時点で、消費時間、評価値において大将軍が有利をとっているケースは少ないです。また、大将軍は角道を塞ぐことが多いようですが、これはプロ棋士棋譜はコンピュータに比べて矢倉率が高い(*,**)のが影響しているかも知れません。または、定跡はプロ棋士棋譜を評価し、評価値が悪くないものを用いているかだと思います。

やねうら王ライブラリを用いているなら、やねうら王定跡にシフトすることは可能ですが、公開されている定跡は狙撃されるリスクが高く、序盤の安定化は課題が多いです。

 

(*) 最近は矢倉率は減ってきていると言います。NHKで勝又先生が非常に解りやすい解説をしてくれたのですが、残念ながら手元に資料は残っていません。

(**) 最近の棋譜を集中的に使えば矢倉率は減りますが、そうなると今度は棋譜の数が足りなくなると思います。

 

・Qhapaq的総評

評価関数の可視化や、kkptへの移行による評価関数の作り直し(やねうら王を改造するのも面倒だし、それ以上に学習をちゃんと回すのが大変)など、大将軍は挑戦的な試みを続けているソフトであり、その開発技術はもっと評価されるべきだと思います。

Qhapaq的には死ぬまでに一度は倒さねばならないソフトです。大将軍側は評価関数の作りなおしにリソースを割いている以上、特に序盤には付け入る隙があると思っているのですが、有志による定跡開発も進んでますし、最終的には評価関数の質勝負になるでしょう。河童絞りがうまく行くよう、今からお祈りしておかねば。

 

将棋電王トーナメントPonanzaが連覇。コンピューター将棋界の進化が止まらない - Engadget 日本版 より。5位決定トーナメントの貴重な資料......?

http://o.aolcdn.com/hss/storage/midas/ee2484231c177f463a5f3197a0241bd/204437913/IMG_0972.jpg

余談ですが、大将軍はaperyの1期後輩でNDFと同期(旧名はN4) だそうです。

アピール文から読み解くWCSC27の見どころ(技巧編)

久々のシリーズ物として、WCSC27に参加しているソフトのアピール文を、私、Qhapaqの開発者が読解/解説していきたいと思います。本シリーズを通じて、皆様がコンピュータ将棋を好きになってくれれば、そして、人工知能の織りなす科学を楽しんでいただければ幸いです。

 

前回記事:アピール文から読み解くWCSC27の見どころ(ponanza_chainer編)

 

注:以下の考察はQhapaq開発者の予想です。開発者に確認をとっているわけではありません。あくまで参考として楽しんでいただけると幸いです。

 

・新境地を切り開く孤高のマイスター 技巧

技巧のアピール文:

http://www2.computer-shogi.org/wcsc27/appeal/Gikou/gikou_appeal_wcsc27.pdf

floodgateに彗星の如く現れ、ponanzaを四間飛車で倒すという鮮烈なデビューを果たした技巧。その伝説は、当時(2017年時点では今も)最もメジャーだった3駒ではなく、2駒と効きを使った評価関数を編み出したこと、突然(?)オープンソース化されたことなど枚挙に暇がありません。技巧が切り開いた将棋は、開発者のみならず、将棋界全体に多大な利益をもたらしています。

以下、技巧がどれだけ偉大であるかをできるだけ解りやすく(?)解説していきたいと思います。

 

・2駒と効きを用いた評価関数

注:幸運なことにもsdt4でのQhapaqのテスト対局の相手は技巧でした(結果は途中終了)。ソフトが無事に稼働するかを眺める間、やることがないので開発者の出村さんと色々ディスカッションをさせていただきました。以下の考察には出村さんから教えていただいた情報も含まれていますが、あくまで私の記憶が元であることをご承知おきください。

技巧を語る上で欠かせない特徴は、評価関数が2駒と効きで表されていることでしょう。効きを評価に組み入れたのは「数の攻めによる突破」や、「玉は包み込むようにして寄せる」といった人間的な将棋の考え方を将棋に取り入れたかったからだと聞いています。

例えば、矢倉の86の地点は歩と銀が効いており、これを突破するには3つ以上の駒で攻める(棒銀なら飛銀歩)必要があります。従来の3駒の評価関数では、関与する駒が4個以上ある形を直接扱うことが出来ないため、実際に駒を動かして検証する他ありませんが、効きを使えば静止探索でもある程度正確に評価できるという寸法です。

こうした特徴から、技巧は駒がぶつかってからが強いと予想することが出来ます。手前味噌の解析で恐縮ですが、技巧 vs silentmajority(浮かむ瀬のバイナリが8月頃のものであり、勝率はほぼイーブン)でのソフトごとの評価値と勝率の分布も似たような現象を示唆(技巧のほうが評価値がより正確に勝率を示している)しています。

jtapi-public-4.appspot.com

 

イデアとしては割と人間的なものである一方、それをゼロから実装するとなると地獄が待っています。技巧のソースコードは非常に解りやすく、美しく書かれていますが、読んでいると段々と怖くなってくることがままあります。

 

・技巧の抱える幾つかのアキレス腱

技巧は特に中終盤の盤面を正確に表せる一方、序盤で形勢を損ねがち(特に6月技巧は)という弱点を抱えているようです(sdt4でのQhapaq vs 技巧も50手目ぐらいで終わったけど、その時点ではQhapaqが少し有利をとっていました)。これは、囲いを評価するときには3駒関係が便利だからではないかと私は予想しています。

例えば、横歩で玉を52においた場合、61金+72銀型や、62銀+72金型などが囲いの候補になります。3駒関係を使えば、これら玉形の点数を変数一つで決められますが、2駒+効きではこうした囲いを評価するのに複数の変数が必要になります。

また、技巧は他のKPPT型のソフトとは評価軸が異なるため、良くも悪くも力にブレが生じがちです。sdt4で技巧は真やねうら王に勝ち、白美神に負けていますが、他のKPPT型ソフトがだいたいレート通りの勝敗をする中で、技巧だけはレートの特異点的な振る舞いをしています。

 

・今回技巧がやって来そうなこと

技巧のアピール文で特に目が行くのは前年度比4倍のXeon軍団です(技巧の技術力を買ってスポンサーが付いたのだと思いたい)。6月技巧のクラスタは短い持ち時間で読んだ良手の候補を、1ノードに1手ずつ割り振るという手法でしたが、64台もあると64位の手はめったに仕事をしないと思うので、1つの手に2つ以上のノードを割り振って楽観合議制にしてくるのかなと予想しています。

学習部について、技巧は実現確率(棋譜から出やすい手筋を学習させているようです。学習部のための学習部は6月技巧でも公開されており、初めて読んだ時は思わず「oh、クレイジー...」とツブヤキました。)を使っていると書いてますが、multipvなどを駆使した実現確率もどきの雑巾ではQhapaqは強くならなかったので、それ以上の工夫を仕掛けてきてると予想しています。ポーカーの論文で話題のQ-learningとかは技巧が組み入れてきそうです。

あと、出村さんがこの記事を読んでいる可能性は低いと思いますが、勝率は自己対戦ではなく浮かむ瀬ややねうら王の勝率ベースでチューニングしたほうがいいと思います。本大会も大半はKPPT勢のようなので。

 

・Qhapaq的総評

独自技術を貫くと、ユーザが多い技術の数の攻めに苦しむことが多々あります。技巧は優れたソフトである一方、独自性に由来した苦戦(前回みたいにponanza以外には全勝とはならない)もすると予想しています。

ただ、ponanzaを倒せる確率が最も高いソフトも技巧だと思います。アンチ雑巾絞りを掲げるライブラリ勢のQhapaq如きが言っていい言葉だかは知りませんが、理論やくざ仲間として技巧のことは応援しています!

前回のWCSCでは当たることが出来なかったので、今回はぜひ戦ってみたい(できれば2次予選の突破を確定させた後で)です。

 

 

アピール文から読み解くWCSC27の見どころ(ponanza_chainer編)

コンピュータ将棋選手権(WCSC27)まであと半月。最年少棋士の躍進によってすっかり忘れられがち(当社比)なコンピュータ将棋ですが、今年も実に面白い独自性を発揮したソフトがWCSCに参加しています。そこで、久々のシリーズ物として、WCSC27に参加しているソフトのアピール文を、私、Qhapaqの開発者が読解/解説していきたいと思います。

 

本シリーズを通じて、皆様がコンピュータ将棋を好きになってくれれば、そして、人工知能の織りなす科学を楽しんでいただければ幸いです。

 

注:以下の考察はQhapaq開発者の予想です。開発者に確認をとっているわけではありません。あくまで参考として楽しんでいただけると幸いです。

 

・コンピュータ将棋業界の絶対王者 ponanza

ponanza_chainerのアピール文:

http://www2.computer-shogi.org/wcsc27/appeal/Ponanza_Chainer/Ponanza_Chainer.pdf

sdt、WCSCを連覇し続ける絶対王者ponanza。その後につく恐るべきchainerの文字。そう、彼らは遂にディープラーニングを将棋に取り入れてきました。ponanza開発陣、PFNの精鋭、超高火力ハード。一つだけでも即死級のヤバさですが、そんなのが3つも4つもくっついています。そこまでしなくても勝てるのに。独創賞まで狙ってこなくてもいいのに。

以下、怨嗟の声をぐっとこらえて、ponanza_chainerのアピール文を読み解いていきます。

 

ディープラーニングを用いた完全情報ゲーム

ディープラーニングを使って完全情報ゲーム(将棋、チェス、囲碁etc)の盤面を評価させる際には、まず最初に、局面をネットワーク(以下DNN)に入れた時に「その局面の点数を出力する」か「指すべき手の確率分布を出力する」かに注目する必要があります。

例えば、DNNを用いたチェスの研究では、局面をinputにして評価値をoutputにする学習がなされています(web上のチェスの棋譜と勝ち負けの結果を教師に作っているようです)。

https://erikbern.com/2014/11/29/deep-learning-for-chess.html

DNN自体は悪くない精度で局面を評価できるようですが、計算コストが割に合っていないらしく、既存ソフト(sunfish。どのぐらい強いかは知りません)に勝ち越すことはできていないようです。

チェスや将棋のように駒得が勝敗に強く響くゲームでは、ある駒が別の駒を取れるという位置関係がとても重要で、逆に、それさえ抑えればある程度の精度で盤面を表せる(KPPTとかはそういった発想から来ています)ため、DNNにしたときの計算コストが割に合わないことが多いというわけです(ゲームによってはこれでも割に合うとは思いますが)。

 

一方、alpha goなどでは、局面をinputに評価値ではなく指すべき手の分布を出力してくれます。こうすることで、局面毎に合法手全ての分岐を扱う必要がなくなるので探索の効率がぐっと上がります。

AlphaGo の論文をざっくり紹介 - technocrat ←有志による読みやすい解説

アピール分などの言い回しから推理するに、今回、ponanza_chainerが成功させたDNNによる局面評価もalpha go型(局面をinputに指すべき手の分布を出すタイプ)であると考えられます。

注:DNNの学習方法については私個人の知識+集められる情報だけでは判断できませんでした。alpha goのような棋譜の再現率を上げる→その後にTD学習、または、ポーカーの論文のようなreinforcement learningである可能性は高いと思ってますが...

しかし、DNNが高精度な局面判定ができる(アピール文によると54%当たるらしい)としても、将棋によくある長い変化手順を静止局面判定だけで扱える見込みは低いです。故に、開発者的にはどうやってDNNを使って深く読むかが気になります。

 

・alpha goの方法 + ponanzaによる補正と予想

DNNを使った探索方法。私は基本的にはalpha goの方法(木探索モンテカルロ法。良さ気な手を実際に指させてみて、勝率が一番高い手を採択する)を使ってくると予想しています。

合法手の読む順番を決める(良い手を先に読んだほうが探索効率が上がる。既存ソフトでは相手の駒を取る手などが優先的に読まれる)のにDNNを使うなど、既存の探索に組み込むのもアリですが、枝狩りとDNN双方で新しいアルゴリズムを使うと、仮に強くならなかった時にその原因が枝狩りにあるのかDNNにあるのかが解らず、開発の難易度が指数関数的に上昇するからです(業界用語で次元の呪いと言います)。

また、ponanza_chainerが用意しているという高火力ハードは特にgpuが強い(知人からの又聞きですが)らしく、並列性の高い木探索モンテカルロ法と相性がよいのもポイントです。

さて、DNN+モンテカルロベースの探索には、不利を認識すると良く解らない手を指す(alpha goもセドル戦4戦目で引っかかった)などの弱点がありますが、ponanza_chainerの場合、こうした弱点をponanzaで埋めあわせてくる可能性があると思っています。

例えば、開始局面で浅く読ませることで局面の有利さを大雑把に見積もる。終局まで指させず、50手ぐらいでponanzaの評価値を参照し、有利な方を勝ちとするなどは比較的実装が容易なのではないでしょうか。

ponana_chainerはponanzaによるダブルチェックが使える分、alpha go以上に隙がない作りになっていると予想しています。

 

・Qhapaq的総評

今回もponanzaが優勝候補なのは間違いないでしょう。普通に戦ってきても優勝候補なのに、DNNという新しい概念を持ちだしてくれたことには尊敬の念を抱かずにはいられません。

ただ、KPPT型の評価関数と評価軸(読み筋)が変わるのであれば、その分付け入る隙もあると思っています。浮かむ瀬ややねうら王を相手にそのへんの穴も埋めてるとは思いますが、諦めずに挑戦していきたいところです。

 

ちなみに、Qhapaqは昨年のWCSCでもponanzaにあたっていますが、多分誰も覚えていないのではないかと思います。