nodchipのブログスマートフォン用の表示で見るnodchipのブログこの広告は、90日以上更新していないブログに表示しています。2017-11-18第5回電王トーナメント参加記録この記事はnodchipが第5回電王トーナメントに参加した記録です。項目の時系列がばらばらになってしまっていますが、ご了承下さい。第5回電王トーナメント2017年11月11~12日にかけて、株式会社ドワンゴ(以下ドワンゴ)主催の『第5回電王トーナメント』に参加しました。電王トーナメントは世界コンピュータ将棋選手権に並ぶコンピューター将棋業界の大会です。世界コンピュータ将棋選手権と違い、全員が大会が提供する同じハードウェア(パソコン)を使うのが特徴です。自分が大会に電王トーナメントに参加するときに常に心がけていることが2つあります。1つは徹底的に楽しむことです。電王トーナメントは自分にとっては日頃の研究開発の成果を披露する場であり、他の開発者とお会い出来る場所であり、エンターテインメントの場です。このような素晴らしい機会を頂いているのですから、徹底的に楽しまなければ損です。トーナメント前や参加中はどうやったら最大限楽しめるかを意識しています。1つは電王トーナメントが興行として行われていることを意識するということです。ドワンゴはあくまで会社です。会社は営利目的の組織です。電王トーナメントも会社の利益のために行われているものだと考えられます。個人的には電王トーナメントはこれからも続いていって欲しいと思っています。そのためには電王トーナメントによってドワンゴが継続的に利益を得られる必要があります。電王トーナメントを通してドワンゴが利益をえるためにはプレミアム会員が増えるのが一番の近道です。プレミアム会員を増やすためには楽しいコンテンツが提供されることが重要です。そのためどうやったら視聴者にとって電王トーナメントが楽しくなるかを常に意識しています。以下、個人的に印象深かった部分について触れていきたいと思います。スタジオ・タヌキtanuki-チームの特徴は大会ごとにソフト名を変えているところです。これは見てくださっている方々にソフト名でも楽しんでいただこうと思っているためです。ソフト名を考えるのはけっこう大変です。過去のアニメ・コミック・ゲーム等を参考にしつつ、見ている方々がクスッと笑えるような物を日頃から考えています。『平成将棋合戦ぽんぽこ』の元ネタは『スタジオ・ジブリ』のアニメ映画『平成狸合戦ぽんぽこ』です。これを選んだ理由は第4回電王トーナメントで開発者インタビューを受けたとき、コメントとして流れていたのを見つけて気に入ったためです。tanuki-チームのメンバーにこのソフト名を伝えたところ、「平成と付けるなら今しかありませんよ!」と後押ししてくれました。ちなみにPR文書にはチーム名として『スタジオ・タヌキ』とあります。これはチーム名も申請するものと勘違いをして一生懸命考えていたものです。結局チーム名は必要ないということが分かり、使い所を持て余していたのでPR文書に入れておくことにしました。第28回世界コンピュータ将棋選手権と第6回電王トーナメントのソフト名も考えてあります。そちらも皆様にクスッと笑っていただければと思います。余談ですが、ボツ案を披露したいと思います。101回目のタヌキーズTANUꓘIタヌキバケーション今夜狸の片隅でfloodgate『平成将棋合戦ぽんぽこ』はトーナメント前にインターネット上の対戦サーバー『floodgate』に開発版のソフトを投入していました。投入していた時の名前は、RomuskaFerrarinKohakuKantaでした。いずれの名前もスタジオ・ジブリ作品のキャラクター名から取っています。元ネタ全部分かる方はスタジオ・ジブリ大好きな方なのだと思います。極やねうら王ライブラリとして『やねうら王』を使用している開発者の方ならご存知かもしれませんが、今回の『やねうら王』の開発コードネームは『Goku』でした。元ネタはファイナルファンタジー14のボスの接頭辞です。強いボスには『真』、もっと強いボスには『極』と付きます。これをやね師匠に伝えたところ、開発コードネームに採用していただけました。次の開発コードネームは何になるのでしょう...。『絶』になるといいなぁ...。前日準備中、スタッフの方々が1日目のリハーサルを行っていました。提供されたマシンのセットアップが終わって一段落していたところ、突然会場に演歌が鳴り響きました。驚いてステージを見ると、スタッフさんがマイクを持って歌うふりをしていました。不思議に思ってスケジュールを確認したところ、お昼休憩のときに長沢千和子女流が『千駄ヶ谷エレジー』を歌うと書いてありました。ぽか~んとしながらリハーサルの様子を見ていました。ここでふと思いつきました。開発者全員がサイリウムを振っていたら絵的に面白くね?このアイデアを盟友Qhapaq_conflatedの澤田さんに話したところ意気投合。サイリウムの入手法を調べ、ドン・キホーテで売っていることを確認し、ドン・キホーテ六本木店に2人で向かいました。2曲披露するということで曲ごとに色を変えたら更に面白くなると思い、紫とオレンジを50本ずつ、計100本購入しました。1日目の準備日に開発者全員に配布し、ライブ中に振ってもらうよう依頼したところ、みなさん快く引き受けてくださいました。1日目が終了し、平成将棋合戦ぽんぽことQhapaq_conflatedが決勝トーナメントに進出することになりました。2日目のスケジュールをいただいて読んだところ、時間的に2日目用の追加のサイリウムを買いに行く余裕が無いことが分かりました。スタッフさんにそのことを相談したところ、どうやら2日目のサイリウムはスタッフさんが用意してくださりそうな雰囲気でした。ちなみに1日目のサイリウムの代金は入賞して賞金が出たほうが全額払うということになりました。最終的に平成将棋合戦ぽんぽことQhapaq_conflatedは両方とも入賞したため、代金は折半するということになりました。ちなみに打ち上げの時に長沢千和子女流より自分とQhapaq_conflated澤田さんに直接感謝の言葉をいただきました...。ほとんど悪ノリだったのです...。感謝されるとは思っていませんでした...。時間攻め今回のトーナメントでは、『平成狸合戦ぽんぽこ』は戦略として『時間攻め』を意識しました。『時間攻め』は相手に時間を使わせ、中終盤で残り時間の面で有利に立つという戦略です。残り時間は思考時間に直結し、思考時間は棋力に直結するため、上手く行けば相手に大きなハンディキャップを負わせることができます。今回のトーナメントでは時間攻めを成功させるためのポイントが3つありました。1つ目は『まふ定跡横歩取り(改)』です。tanuki-チームは定跡開発者として名高い『まふ氏』より非公開版の定跡データベースを提供していただいておりました。開発者から見たまふ定跡の特徴は、収録されている定跡の手数が長いこと、定跡から抜けた段階で定跡を使用した側が互角以上の局面になることです。序盤をまふ定跡でノータイムで抜けられれば時間攻めが成功する確率が上がるだろうと考え、『まふ定跡横歩取り(改)』を使用させていただきました。2つ目はSlowMover設定です。SlowMoverはやねうら王の設定項目の一つで、大きくすればするほど序盤に時間を使い、小さくすればするほど中終盤に時間を残すというものです。思考時間を調整するにあたり、Qhapaq_conflatedの澤田さんより、コンピューター将棋の思考時間は持ち時間を各手に均等に使った場合に最もレーティングが上がるという仮説を聞いていました。決勝トーナメントの場合、持ち時間は1時間ですので1局平均160手と考えると1手辺りの思考時間は45秒となります。実験したところ、SlowMover=80で思考時間が約46秒、SlowMover=75で思考時間が約42秒になることが分かりました。時間制御の都合上局面の複雑さによって思考時間は上下します。時間攻めを意識する際はSlowMoverを75~80に設定しました。3つ目は評価関数です。『平成将棋合戦ぽんぽこ』の評価関数はオールラウンド中終盤特化型です。オールラウンド中終盤特化型になったのは狙ったわけではなく、いろいろな方法を試したらたまたまそうなったという感じです。『平成将棋合戦ぽんぽこ』では訓練データ生成のための自己対戦で、インターネット場で手に入るプロの棋譜とfloodgate上の棋譜を混ぜ、取捨選択をせずに、開始局面をランダムに選んでいます。このため様々な戦型の序中盤が訓練データに含まれています。自己対戦のとき、対局を途中で打ち切らず、詰みの局面まで指させて訓練データに入れています。このため中終盤の学習データが他のソフトより多く含まれています。以上の3つのを使って時間攻めを行いました。今回のトーナメントではPonanaza・やねうら王・shotgun戦の第1、第3局等で3つを使った時間攻めを行いました。Ponanzaに使った理由は、Ponanzaが十分な時間を残して勝つ対局が多かったことと、定跡が極めて早い段階で切れること、中終盤である程度時間を使うことを、1日目の対局で確認できたためです。十分に長い定跡を用い、かつSlowMoverを低めに設定すれば中終盤で優位に立てる可能性があると考えました。うら王に使った理由は、今回のやねうら王の定跡が18手目までしか作られていなかったこと、SlowMoverの設定に関する言及がなかったためです。前者についてはPonanza同様十分に長い定跡を使えば時間攻めが成立すると考えました。後者についてはSlowMoverをデフォルト値のまま使っている可能性を考えました。うら王のSlowMoverのデフォルトの設定値では持ち時間1時間の対局では1手に約60秒、最大で5分程度使用します。SlowMoverを低めに設定することで、Ponanza同様中終盤に優位に立てる可能性があると考えました。shotgun戦に使用したのは、元々shotgunが時間攻めに特化したソフトだったためです。shotgunは定跡データベースに公開版まふ定跡・floodgateの棋譜・千田定跡等をミックスしたものを使用しています。このため定跡手数が長く、かつ収録曲面数が非常に多いことが考えられました。shotgunはponderをMultiPV=5相当で探索しており、ponderhit率が8割を超えるとのことでした。時間攻めされるのを避けるため、こちらも時間攻めを行いました。第1局、第3局に使用したのは、これらが先手番だったためです。『横歩取り(改)』は後手の定跡の調整に一部問題があるという話を聞いていたため、後手番の第2局には自作の定跡を使用いたしました。結果、第2局ではshotgunの定跡にハマり中盤で劣勢になってしまいました。中終盤で巻き返せたのは評価関数が中終盤特化型になっていたためだと思います。電王トーナメントでは大会より開発者に食事やお菓子が提供されます。この食事がかなりおいしかったです。準備日の夕食はカレーでした。ハヤシカレーとキーマカレーから選べるようになっており、両方食べた開発者もいました。1日目・2日目はお弁当でした。このお弁当もまた豪華で美味しかったです。食事をとっているときは他の開発者さんとのおしゃべり楽しいタイムでもあります。他の開発者さんのソフトの工夫点等、色々なお話をさせていただきました。問題は決勝戦前の夕食です。決勝戦は並列3番勝負となるため、あらかじめ3台のPCをセットアップしなければなりません。このため夕食をとる時間がありませんでした...。決勝戦は空腹をこらえながらの観戦でした...。2日目の夕食はどんなのだったのでしょう...。ショットガン決勝戦は『shotgun』との対局でした。このとき決勝まで進んでしまったパニックで、頭が全く回っていませんでした。ショットガン」という字面をコメントで見て後から気づきました。これ...、名前で負けてね...?案の定第2局は『shotgun』の定跡にハマり劣勢になってしまいました。コメントには「狸狩り」「狸鍋」という単語が流れていたようです。ひどい言われようですが、楽しいので良しとします。その後逆転したところ、今度は「狸に化かされた」というコメントが流れていたようです。「狸」は日本人にとって馴染み深い存在です。日本語の中には「狸」を使った言葉がたくさんありますまた。昔話などで「狸」はずる賢いキャラクターとしてしばしば登場します。これらの共通認識によって、「狸」と名付けられたAIにストーリー性やキャラクター性が生まれ、見ている人が共通認識のもとに楽しめたのだと思います。コンピューター将棋ソフトに「狸」と名付けて本当に良かったと思っています。異議あり!イベントの進行を妨げる行為を行った点、この場にて再度謝罪申し上げます。Yorkie辞退の流れについてはここでは詳しく述べません。タイムシフト放送や他のブログをお読みいただければと思います。Yorkie辞退が立会人勝俣先生より伝えられた直後、怒りに震えました。Yorkieが運営から圧力をかけられたのではないかと思いました。続いて、中盤500万npsという、他のソフトに比べて10%も速い読み速度を叩き出し、予選2位という素晴らしい結果を残したYorkieが5位決定トーナメントを辞退するのはおかしいと思いました。何よりもYorkieが辞退してしまったら楽しくないと感じました。このまま進めてはいけないと本能的に思い、なにか声を上げねばならないと思いました。第一声が思いつきません。逆転裁判でした...。なんでよりによってこの言葉なのでしょう...。これがゲーム脳というものなのでしょうか...。以下、タイムシフトを見て聞き取れた部分を中心に引用していきます。文章化のため一部文言を変更したり省略している部分があります。声を上げてしまったからには続けなければなりません。たぬき「CSAライブラリとのラッパー部分を自身で書かれている。本当は「ブリッジ部分」という表現のほうが正しいと思うのですが、テンパってて言葉を間違えました。Yorkie石田さん「ラッパー部分は思考部には当たらない。」Qhapaq_conflated伊藤さん「それによりパフォーマンスが上がります。それは思考部の探索部に対する工夫ではないのですか?」Yorkie石田さん「独自性の面で...」たぬき「独自性という点においては本大会でコンソールのみでソフトを動かしているのはYorkieだけであり、十分な独自性といえるのではないか?」ここでYorkie石田さんは言葉に詰まりました。ここで運営よりマイクが渡されました。続けて良いようです...。たぬき「やねうら王ライブラリを用いKPPT評価関数を用いているソフトに対し25%の高速化に成功しています。これは探索部に対する十分な工夫に当たると考えます。」Yorkie石田さん「はい。(しかし)ルールの中に独自性やオリジナリティといった意味合いの文言がある。自分の変更をもって独自性やオリジナリティと言うのは難しいと思う。」たぬき「コンソールで動かす事は独自性には当たらないとお考えでしょうか?」Yorkie石田さんは「独自性ではあるが、本大会に出場できるほどの独自性ではないと考える」スタッフさん「コンソールで動かすことは思考部の独自性には当たらない。思考部の高速化に対する独自性を判断は難しい。」たぬき「第3回電王トーナメントにおいてtanuki-は当時公開されていたAperyを高速化しただけで出場しました。これは十分な独自性を持っていると考えております。SilverBulletの開発者もブログでそのように主張している。Yorkieも十分な独自性を持っていると考え、本大会への出場資格を持っていると考えられる。」スタッフさん「高速化等についてはソースコードの提出をお願いして確認している。Yorkieはアピール文書の中で4駒関係をアピールしているが、先程の話し合いの中で未実装だという話があった。今回Yorkie石田さんの高速化に関するソースコードを見ておらず、運営側ではどの程度の独自性があるのか判断できない。」たぬき「判断できないということは裁定の理由にはならないと思う。実はここの「裁定」という単語は選択ミスで、本当は「辞退の理由」と言うべきでした。この選択ミスのせいでこの後の議論が混乱してしまった点、申し訳なく思っています。スタッフさん「我々がYorkie石田さんを失格にしたというわけではありません。」Qhapaq_conflated伊藤さん「プロトコル変換部分を書き、2日間の大会で動かし続けるだけの安定性をもたせたことに対し、石田さんは何の自信も抱かないのか?」Yorkie石田さん「その点については上手くできたと考えている。それは独自性には当たらないと考える」たぬき「個人的な見解だが、Yorkieは500万npsを出している。これは非常に高い技術力であり、高いレベルの独自性であると考えている。このあとYorkieには是非第5位決定トーナメントに進んで欲しい。自分がいまマイクを持っているのはそれが理由である。」Yorkie石田さん「ありがとうございます。ルールの中にそれをもってプラスとする文言があれば出場したかったが、本大会関係者と共にルールを読み直したところ、出場を認められるほどの独自性ではなかったのではないかと考えている。説得材料がなくなってしまいました。しても諦められませんでした。そこで非常手段に出ました。たぬき「Yorkie石田さんのご意見は理解いたしました。不利になったら戦線を拡大すると良いらしいです。実社会で行ってもうまくいかないことが多いとのことです。自分は戦線を拡大して説得できるチャンスが回ってくるのを待ちました。ここで将棋ライターの松本さんが登場しました。松本さん「周りの開発者は裁定に納得していない。Yorkie石田さんが失格になったのは後付の理由に見える。仮にYorkieが勝ち進んでいたら失格になったのか?」Yorkie石田さん「万が一そのような順位になって、その段階になって独自性の話になるより、入賞の可能性が高くない5位決定戦の段階で関係者の方に言って頂けたのは感謝している。万が一もっと順位が上になるのが確定した段階でそのような話になった時に、より大きな問題になってしまうため今の段階で関係者の方にお話いただけたのは感謝している。松本さん「Yorkie石田さんが素晴らしい人物であることは分かった。運営の方にお聞きしたいが、このままYorkieが勝ち進んでいたら失格にしたのか?」スタッフさん「わからない。お話を聞いてこれはどうなのかという話し合いになったので、本当にわからない。個人的にはYorkie石田さんが悪意を持って4駒関係を間に合わせなかったとは思っていない。今回辞退となったのは後味が悪いと感じるかもしれないが、来年も是非参加してほしいという事はどこかのタイミングでお伝えしたかった。このまま勝ち進んでいたらどうなっていたかは分からない。松本さんは「石田さんが申告されて失格になったのはかわいそうだと思う。」スタッフさん「私もそう思います。電王トーナメントのルールは皆さんに楽しんでいただくため、性善説をもとに作っている。今回は場を壊そうとした悪意は無かった。完全に膠着状態に陥ってしまいました。ここは何らかの方法で打開しなければなりません。周囲を見渡すとあるコメントが目に止まりました。たぬき「話が平行線を辿っているように感じる。コメントにアンケートを取れば良いと書かれている。Yorkie石田さん、アンケートに任せますか?」Yorkie石田さんは「任せません。関係者に話を頂いた時に、独自性のことについてだけでなく、この次の大会にも出て欲しいという話を何人にも頂いた。このようなことを起こした自分が言うのもおかしいが、本件は流して進めて、また次の大会を順調に行えるよう、本大会をすすめて欲しい。」この発言で、これ以上の説得は難しいと感じました。人造棋士18号松下さん「自分は丁度13位だった。失格で繰り上がると面倒になると思う。ここから自分が決勝を戦うのはおかしい。Yorkieさんは強いと思っているので、失格はやめて欲しいと思っている。」Qhapaq_conflated伊藤さん「現状石田さんはそのような順位にいる。あなたは何人もの人間を蹴落としてその順位にいる。高速化を行っている私もたぬきさんも高速化により独自性を発揮していると認めている。それを石田さん自身に認めてもらえないことに対して憤りを感じている。」Yorkie石田さん「ルール上探索部の高速化も出場条件に入っていれば大手を振って参加したい。」たぬき「さっきも申し上げたが、高速化については第3回電王トーナメントにおいてtanuki-が独自性を認められている。」Ponanza山本さん「高速化はどの程度されたのか?技術的な話として気になっている。」Yorkie石田さん「4駒関係のデバッグに注力していたため、定量的な評価はしていない。ここに来て他のやねうら王ライブラリを使っている開発者に言われて気づいたというのが正直なところである。差はあると思ったが、そう言って頂けるとは思っていなかった。」Ponanza山本さん「256手のほうはご納得いただけているのか?」Yorkie石田さん「ルール上で立会人が裁定して最終的に決まるという事は出場前にルールを読んで分かっていた。今回はあり得る判定で納得している。」Qhapaq_conflated伊藤さん「高速化しているかどうか定量的に評価していないとあったが、現状対局中にnpsはどの程度出ているのか?」Yorkie石田さん「500万を超える局面が多い」Qhapaq_conflated伊藤さん「序盤は?」Yorkie石田さん「500万を少し下回る程度だと思う。」Qhapaq_conflated伊藤さん「400万台になることは少ない?」Yorkie石田さん「序盤はあるがそのあとは少ない」Apery平岡さん「高速化は関係ないのではないか?」Qhapaq_conflated伊藤さん「話を聞くと5~10%の高速化ができている。いってめちゃくちゃ速い。」Apery平岡さん「どれだけ高速化したかやそれがどの程度の独自性になるかはルールを定めた後で調べるべきだと思う。このままでは解決しないと思う。その前に256手ルールでどのように進めるかを考えるべきだと思う。」ここで謎の音声が入ります。???「やろう?ねぇ、やろうよ!」この声が誰から発せられたのか全く分かりませんでした...。千田六段「私はコメントできない。私はこれ以上騒動に巻き込まれたくない。」この後、会場では議論がストップしてしまいました。その後対局開始のBGMが流れ、対局が開始しました。自分は一瞬辞退を考えました。第3回電王トーナメントでの自分の出場の正当性が失われてしまうためです。そのことを周りの開発者さんたちに言ったところ、「辞退はやめたほうが良い。