第33回世界コンピュータ将棋選手権に参加してきました
ソフトの概要
今年もponkotsuというソフト名で出場しました. 今年はネットワーク構造にDenseNetという機械学習モデルを採用したらどこまで強くなるのか検証することをテーマにしていました. 手法や学習データについてはアピール文書に書いていますのでこちらをご覧ください. 大会で使用した評価関数と定跡はこちらからダウンロードできます(利用規約を必ずお守りください).
今年の成績
今年は一次予選を6勝2敗の3位という成績で二次予選に進出することができました. 二次予選では5勝4敗の11位という成績で、決勝進出とはならなかったものの来年の二次予選シードを獲得することができました. 順位表はこちらをご覧ください.
二次予選は5勝4敗で11位となりました!
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月4日
当初の目標であったシード入り達成です!!
応援ありがとうございました!#wcsc33 pic.twitter.com/EiAbAz3NGM
一次予選の様子とか
1日目は評価値をちゃんと送れていないのでponkotsuの評価値はないです.
1回戦(爆裂駒拾太郎戦)
初戦から早速初対戦の相手でした. 詰将棋の局面を教師に学習させたソフトで, もともと爆裂駒捨太郎という名前のソフトだったのですが, 一文字変わって爆裂駒拾太郎になっていて驚きました.
将棋は序盤早々にリードを取ることができ, 終始リードを保ったまま白星を上げることができました.
棋譜はこちらです.
2回戦(いちびん戦)
2回戦で早速強豪と当てられました. いちびんは前回大会では二次予選シードで出ていたソフトです.
将棋はいちびんの矢倉に対しponkotsuの雁木となりました. 80手くらい互角でしたが, 途中でなんとかリードを奪うことに成功し, 連勝を決めることができました.
棋譜はこちらです.
3回戦(まったりゆうちゃん戦)
3回戦は古豪との対戦となりました. まったりゆうちゃんは東京農工大学の小谷研究室で開発が続けられているソフトらしいです(今は小谷先生が退官されて研究室はないらしいですが…)
将棋は角交換三間飛車となり, 居飛車のponkotsuが序盤で銀・香・桂を確保し, 一方的な展開となり56手という短手数での勝利となりました.
棋譜はこちらです
4回戦(HoneyWaffle戦)
4回戦は再び強豪との対戦になりました. HoneyWaffleは振り飛車を指すソフトとして有名です. 6年前には決勝進出を果たしただけでなくDL系への路線変更を行った後には昨年末から年初に行われた, 電竜戦ハードウェア統一戦への出場も果たしています.
幸運にも本局は先手を取ることができ, 先手の利を生かしながら勝利を収めることができました. 開発者個人の感想としてponkotsuは対振り飛車が苦手だと思っていたので, ここで振り飛車ソフトの強豪に勝てたのは非常に嬉しかったです.
棋譜はこちらです.
HoneWaffleに勝ちました!!!!!!!!!!
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月3日
でかああああああああい!!!!!!!
4連勝!!!!!!!! #wcsc33
ponkotsuさんが全然ポンコツではない件
— 渡辺光彦 Honey🍯Waffle (@shiroi_gohanP) 2023年5月3日
5回戦(ねね将棋戦)
5回戦は全勝同士の対戦となりました. ねね将棋はiPadで動かしているソフトで, 前回大会では二次予選シードだった強豪です. 今年はNNUEとDLの合議を行っていたそうです.
将棋は途中までponkotsuがわずかにリードを奪ったかに見えたのですがそこからうまく指されて負けとなりました.
棋譜はこちらです.
6回戦(将スタ君戦)
6回戦は2敗勢との対戦となりました. 将スタ君は十六式いろは煌を開発しているすえよしさんがpython-dlshogi2をベースとして初心者でも手軽にDL系のソフトを開発できるように作られた, 将スタ -将棋ソフトスタジオ-をベースに開発されたソフトです. 本家の差分として, 定跡を搭載できるようにしたらしいです.
将棋は相雁木のような形となりました. 序盤から中盤の入り口にかけてponkotsuがリードを奪うことに成功し, 5勝目を挙げることができました.
棋譜はこちらです.
7回戦(技巧戦)
7回戦では強豪ソフトとの対戦となりました. 技巧は2017年の大会で準優勝しているソフトで, 今年久しぶりの出場でした. DL系に舵を切っており, 既存の技巧とは全く別のバージョンになっているようです.
将棋は後手のponkotsuが横歩取りにしました. 途中まで形勢不明でしたが42手目あたりで技巧がこちらに何度も手を渡すようになってから徐々にこちらに形成が傾き, 6勝目を挙げることができました.
棋譜はこちらです.
1手10秒で解析させてみた
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月3日
18手目の△8六飛を指した瞬間後手160点になって、件の△3四飛で後手700点らしい
ただ水匠は2四飛を読んでた#wcsc33 https://t.co/ChCy5NFpWp
プロの将棋でこの前例あったかどうかがめちゃくちゃ気になってる#wcsc33 https://t.co/4zQ7v5YasI
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月3日
この対局での勝利によって最終戦の結果を待たずに初の二次予選進出が決定しました.
一次予選通過確定しました!!!!!!!! #wcsc33 pic.twitter.com/amsh6zuJSg
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月3日
心がぴょんぴょんするんじゃああああああああああ!!!!!!!!#wcsc33 https://t.co/ubUZvsHmj7
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月3日
8回戦(アストラ将棋戦)
最終戦はここまで全勝のアストラ将棋との対戦となりました.
将棋としては相矢倉となり, 互角の展開だったのですがなんとここでponkotsuがクラッシュしてしまい, 負けとなりました…
棋譜はこちらです.
ponkotsu、クラッシュしました… #wcsc33
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月3日
ということで一次予選は3位という結果になりました.
ということで一次予選は3位フィニッシュでした
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月3日
明日もがんばるぞい!!#wcsc33 pic.twitter.com/RnW19zPDOo
ぴょんぴょん跳ねて喜ぶ開発者ですhttps://t.co/zlwNBvgWAS#wcsc33 pic.twitter.com/jIEA90xtk1
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月3日
祝勝会なう#wcsc33 pic.twitter.com/5QBdgzL8LZ
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月3日
二次予選の様子とか
二次予選ではうまく評価値と読み筋を送れるようになったのであります.
1回戦(ティー⚪︎の振り飛車気持ちよすぎだろ戦)
完全にあれを彷彿とさせるソフト名ですが, 去年は決勝リーグ入りをしている強豪振り飛車ソフトです. 対抗系の将棋になるかと思われましたが3手目に相手が▲2六歩としたことで振り飛車の可能性がゼロになり, 呆気に取られていました.
序盤早々に飛車を取り合う激しい展開となりましたがなんとか勝つことができました.
棋譜はこちらです.
2回戦(HoneyWaffle戦)
2回戦では一次予選の再戦となりました. 一次予選とは違い今度はponkotsuが後手番となりました.
将棋は相入玉となり, ponkotsuの宣言勝ちが濃厚になってきたのですが, ちゃんと宣言できるのか分からず慌てていたらなぜか詰まして勝ちました…
棋譜はこちらです.
この局面から詰むとは思わんやん、普通 pic.twitter.com/Tb4c7AXlHF
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月4日
computer-shogi-live.cocolog-nifty.com
二次予選からはYouTubeで配信されている公式中継でプロ棋士の方が解説をしてくださっているのですが, そちらで取り上げていただきました.
3回戦(やねうら王戦)
3回戦は過去に優勝経験もある超強豪ソフトとの対戦となりました.
角換わりの将棋となり, 千日手模様となったのですが, こちらから打開しに行ったのが良くなかったらしく, 負けとなりました.
棋譜はこちらです.
こちらも解説で取り上げていただきました.
4回戦(いちびん戦)
2勝1敗で迎えた4回戦は再び一次予選で当たった相手との対戦となりました. いちびんの方は昨日使用したマシンよりスペックの高いものを用意しており, 苦戦することが予想されていました.
将棋は互いに中住まいっぽい形で進行していました. 終盤は互いの玉が中段にいる激しい展開となり, 最後まで勝負は分からなかったのですが, 207手目の△4五龍と龍を切る派手な手から詰ましきることができました.
棋譜はこちらです.
この対局を見ていたCSAの理事の方からいいものを見せてもらったとお昼ご飯を奢ってもらいました!!!
昼食情報 #wcsc33 pic.twitter.com/ZOgwwSBsGb
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月4日
5回戦(名人コブラ戦)
5回戦はまたまた強豪ソフトとの対戦となりました. 名人コブラは昨年決勝に進出しているソフトです. 実は前日のテスト対局で当たっており, そのときには負けていたので正直勝てないと思っていました.
案の定というべきか力を出させてもらえないまま負けとなりました.
棋譜はこちらです.
6回戦(LightWeight戦)
6回戦も強豪ソフトとの対戦となりました. LightWeightはDL系のソフトでネットワーク構造にEfficientNetを使用しているのが大きな特徴です. 昨年には決勝に進出しています.
DenseNetの優位性を示したかったのですが, ずるずると形勢を広げられ負けとなりました.
棋譜はこちらです. live4.computer-shogi.org
7回戦(koron戦)
7回戦も強豪ソフトとの対戦となりました. koronは2年前が初出場で, そこから毎年二次予選シードを獲得しています.
将棋は角換わりとなり, 互角の展開だったのですが相手にトラブルがあったようで反則勝ちとなりました.
棋譜はこちらです.
8回戦(大将軍戦)
8回戦も強豪ソフトとの対戦となりました. 大将軍は2年前に決勝進出を果たしています.
かなりの苦戦が予想されたのですが, 序盤から大将軍にやりたいことをやらせないまま押し切り, 金星を上げることができました.
棋譜はこちらです.
こちらは解説で取り上げていただきました.
また, この勝利で初の二次予選で初の勝ち越しを決め, めちゃくちゃ喜んでいたら公式の中継ブログに記事にされました.
computer-shogi-live.cocolog-nifty.com
9回戦(二番絞り戦)
勝てば決勝進出の最終9回戦は昨年準優勝の超強豪との対戦となりました. 角換わりの将棋となったのですが序盤でなんとponkotsuがクラッシュしてしまい, 負けとなりました.
棋譜はこちらです.
ponkotsu、また最終戦でクラッシュしました… #wcsc33
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月4日
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月4日
また, この対局を最後に使用していたマシンが壊れました…
お亡くなりになりました
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月4日
使ってたマシン、もともと排熱性能がよろしくなく、メモリが長時間高熱にさらされた結果死亡したくさい https://t.co/YvwESTJq5J
結果5勝4敗で11位という結果で今年のWCSCは終了となりました.
二次予選は5勝4敗で11位となりました!
— JJ1GUJ@WCSC33 11位 (@jj1guj) 2023年5月4日
当初の目標であったシード入り達成です!!
応援ありがとうございました!#wcsc33 pic.twitter.com/EiAbAz3NGM
課題
今年は昨年と比べて大躍進だったものの, ハード面・ソフト面双方の課題が浮き彫りとなりました.
まず, ハード面に関してはまず長時間フルスロットルで安定して動かし続けることの重要性を実感しました. 特に排熱性能の重要性を実感しました. 昨年まではソフト自体の性能があまり良くなく, マシンリソースをフルに使うことがなかったのですが, 今年は一転してGPUは常時使用率100%, CPUも50~100%の使用率となっていました. その結果パーツが長時間熱にさらされて普段とは比べ物にならないほどのダメージを与えていました. 今回研究室のマシンを借りて出場していたのですが, そのマシンのケースが比較的小さく, 排熱性能が良くなく熱がこもりやすくなっていました.
また, 二次予選進出ソフトの中ではスペックはあまり高い方ではなく(それでもRTX3090を積んでいるので一般的にはとても良いのですが), マシンスペックの差が浮き彫りになった気がします. 特に二次予選シード勢はほとんどがクラウドを借りているかハイエンドGPUを複数枚積んでいました. 対局中や大会終了後, もっといいスペックのマシンを使用していればより大きい機械学習モデルを使えるのになあと考えていました. 大会前はこれでも十分なスペックだと思っていたのですが, 大会を通じて決勝進出や決勝で勝っていくことを考えると十分ではないのかもしれないと思いました.
次にソフト面ですが, 修論提出後から始めたこともあり時間がなく, 試したいことを試しきれませんでした. 特に定跡の整備や探索パラメータの最適化は十分ではなかったと考えています. また, 過度にNPSが低下することを恐れており, 機械学習モデルのレイヤ数を増やすことができませんでした. 一般にレイヤ数が増えれば識別精度は向上する傾向にあるので試してみてもよかったのかもしれません.
今後の展望とか感想とか
今大会では目標としていた二次予選シード入りを果たすことができ, 十分な成果を得られました. しかしマシントラブルにより決勝進出のチャンスを逃したのが非常に痛かったです. 今回の反省を活かし, さらなる識別精度の向上や排熱性能の良いマシンの錬成, そしてクラウド利用に手を出してみようと思います.
また, 今回良い成績を収めることができたため, やったことをGPWで発表しようと思います.
大会後でモチベーションが上がっているためやる気があるうちに進めるところまでやろうと思います.
今年もponkotsuを応援してくださりありがとうございました. 来年は決勝進出を目標に頑張りたいと思います.