関東弁護士会連合会は,関東甲信越の各県と静岡県にある13の弁護士会によって構成されている連合体です。

「関弁連がゆく」(「わたしと司法」改め)

従前「わたしと司法」と題しインタビュー記事を掲載しておりましたが,このたび司法の枠にとらわれず,様々な分野で活躍される方の人となり,お考え等を伺うために,会報広報委員会が色々な場所へ出向くという新企画「関弁連がゆく」を始めることとなりました。

写真

プログラマー,弁護士
杉村 達也さん

とき
2020年10月15日
ところ
リモートインタビュー
インタビュアー
会報広報委員会副委員長 山浦能央

今回の「関弁連がゆく」は,プログラマーで弁護士(千葉県弁護士会)の杉村達也さんです。今やコンピュータ将棋はプロ棋士をも遥かに凌ぐ実力を備えていますが,杉村さんは弁護士業務の傍ら将棋ソフト「水匠(すいしょう)」を開発され,2019年の世界コンピュータ将棋選手権(以下「WCSC」といいます。)では初参加ながら7位に入賞されました。そして,翌2020年には「水匠2」で大会に臨まれ,わずか参加2回目にして優勝するという快挙を成し遂げられました。インタビューではコンピュータ将棋にまつわる色々なお話を伺いました。

最近メディアに登場されたり,ニュース記事でコメントされていることをよく見かけるのですが,取材などでお忙しいのではないですか。

杉村さん 藤井聡太二冠がタイトルに挑戦している辺りは,毎日のようにインタビューを受けていましたが貴重な体験でした。最近は徐々にブームが収まりつつあって取材も減ってきていますので全然大丈夫ですね。

プログラミングはいつ頃から始められたのですか。

杉村さん 小学4,5年生の頃だったと思います。家族がWindows95のPCを持っていたので,それを使って,BASIC(※プログラミング言語の一つ)などで見様見真似でゲームを作ったりしたのが始まりだと思います。でも趣味として続けていたという程度ですね。

どうしてプログラマーにならずに弁護士になられたのでしょうか。

杉村さん もちろんプログラミングには小中学生のころから興味はありました。でも,それ以上に弁護士になって役に立ちたいという気持ちもありましたし,難しい旧司法試験に挑戦してみたいという気持ちもありました。それで趣味は理系なんですけど,進学ではずっと文系でした。

将棋ソフトを開発されたきっかけは何でしょうか。

杉村さん コンピュータ将棋自体は電王戦(※プロ棋士と将棋ソフトとの非公式棋戦)など観ていたので元々興味があったんです。2017年ころから,いろいろなソフトが公開されはじめて,どういう仕組みで動いているのか,どう使えば強くなるのかということを勉強していくうちに,もしかしたら自分なら今の将棋ソフトよりも少しだけ強くできるのではないかと思いました。そう思った時期がちょうど弁護士の仕事が徐々に落ち着き始めた頃だったので,実際にソフトの開発をやってみたんです。これがやり始めると結構面白くて,それでWCSCにも出てみようと思いました。

そうすると将棋ソフトの開発を始められたのはいつからになりますか。

杉村さん 2017年からです。

ええ!2020年に優勝されていますけど,始めてからそんなに短期間で優勝されたんですか!凄い才能ですね!

杉村さん いえいえ(笑)。私の才能ではなくて,将棋ソフトの色々な工夫がオープンソース化(※ソフトウエアのソースコードが公開されていて誰もが改良や機能追加ができること)されていましたので,私はそれを利用させていただいたんです。あと,私は工夫して検証するという作業が結構好きでしたので,そういった作業を地道に繰り返すうちに徐々に強くなっていったという感じです。

でも,オープンソース化されているソフトに工夫を加えるということは,他の多くのプログラマーもされていることで条件は同じですよね。同じ条件の中で,どうしてそんなに短期間で結果を出すことができたのでしょうか。

杉村さん 私が将棋ソフトの開発を始めた時期と,将棋ソフトの技術が停滞していた時期とが重なっていたということもあったのかもしれないですね。2017年のWCSCで優勝した「elmo」というソフトや,優勝はしていないですけど次の年の「The end of genesis T.N.K.evolution turbo type D」(以下「tanuki-」といいます。)というソフトには素晴らしい工夫があって,高く評価されているんですけど,「elmo」や「tanuki-」以降,コンピュータ将棋に凄い工夫というものは出てこなかったように思います。その中で私は,「水匠」を若干強くすることができたので,運よく優勝できたという感じですね。

将棋ソフトの仕組みについて伺います。実は評価関数(※ゲームの局面の状態を静的に評価し数値に変換する関数のこと)について詳しく伺いたいと思って,自分なりに勉強したんですが,難しすぎて全く理解できませんでした(笑)。評価関数を凄く簡単に言うと,「将棋の局面の良し悪しを数字(評価値)で表すための計算方法」で,人間でいうところの「大局観」と言われるもの,というような理解でよろしいでしょうか。

杉村さん そうですね。その通りです。

そうすると,将棋ソフトが指す手っていうのは一生懸命,探索(※先の手を読むこと)した結果,将来一番いい評価値になる手を選んで指している,というような理解でよろしいのでしょうか。

杉村さん ほぼそうですね。でも基本的には読み(探索)とは言っても全通りを読んでいる訳では全くないんです。将棋は一つの局面で平均するとだいたい90通り位の指し手の候補があります。全局面を読もうとすると一手先で90通り,2手先で8100通り,その次は90の3乗通り・・・といったように爆発的に増えていきますので,6手先の局面ですら全通り読もうとすると1兆手くらい読まないといけなくなります。ですので,全通り読もうとすると,あまりにも探索する局面が増えてしまいますので,深い先読みが全然できなくなってしまうんです。

そうするとどうやって局面を探索したり,指し手を決めているのでしょうか。

杉村さん 評価値の値を参考にして,不必要な探索は途中で打ち切るようにしています。例えば,「評価値がこの値を超えたら探索を打ち切る」という仕組みにしておいて,読む局面を省いているんです。つまり大局観と読みは両輪で動いていて,探索した手を後から評価関数で評価しているのではなく,評価関数と探索部の2つが合わさって,評価値も参照しつつ読みを深めていっているという感じなんです。そして,探索する場合,自分の手番では評価値が最大となる手(自分に最も有利な手)を読むのは当然ですが,自分勝手な読みにならないように,相手の手番では,評価値が最小となる手(自分に最も不利,相手にとって最も有利な手)が指されると想定して,読みを進めていくんです。そうやって読み進めた結果,最も自分に有利になる手を指しています。

なるほど。イメージが掴めました。ところで杉村先生は,開発された「水匠」などの将棋ソフトを無料で公開されていますが,どうしてでしょうか。

杉村さん 公開されているものを利用させていただいて自分のソフトが強くなったので自分も公開するのは当然だと思っています。あとは色々な人に使って遊んでいただきたいという気持ちもあります。

WCSCに参加した「水匠」以外にも「水匠U」という「駒落ち」(※棋力に差があるときにハンデのため上位者が駒の一部を取り除く(落とす)こと)に特化したソフトも開発されていますが,それはどうしてでしょうか。

杉村さん 駒落ちでどれぐらい強くできるのか,ということに昔から興味がありました。将棋ソフトは,飛車落ち,角落ち位まではまずまず強いんですが,「二枚落ち」(※飛車と角を落とすハンデのこと)になると急に弱くなる傾向があったんです。でも工夫をしたら二枚落ちでも強く出来るんじゃないかなと思ったのが開発の動機です。

動画投稿サイトに,現役の奨励会(※プロ棋士養成機関)の三段(※四段に昇段するとプロ棋士になれるので,棋力はプロ棋士に近い)の方が,「水匠U」と二枚落ちで対局して,三段の方が負けた時の動画が投稿されて話題になっています。その動画はご覧になりましたか。

杉村さん はい。実はあの対局は動画を撮る前に対局者の方から,連絡を頂いていました。それで私の方もフルスペックで対応して,一番最新の評価関数での勝負となりましたので,非常に興味深かったです。現役の奨励会三段の方が,「水匠U」と二枚落ちで真剣勝負していただいて,むしろ私の方がありがたかったです。

実は私も「水匠U」をダウンロードして,「六枚落ち」(※飛車,角,香2枚,桂2枚を落とすハンデのこと)で,3局対局させていただきました。2局連続で負けて,2局目は神業のような手順で入玉(※玉将が敵陣に入ること。将棋の駒は後方に進める駒が少ないため,入玉されると詰ますのが非常に困難になる)されて負けました。3局目は,六枚落ちの定跡を本で勉強して,やっと勝つことが出来ました。勝てた時は本当に嬉しかったです(笑)。

杉村さん ありがとうございます(笑)。「水匠U」は,基本的には玉が相手の方に行けば行くほど評価が上がるように学習させたんです。なので他のソフトに比べて入玉は凄く多いですね。駒落ち戦は,普通に指していたら人間の方が断然有利なので入玉を目指さないと中々勝てないんです。入玉するように学習させてから本当に実力も上がりました。

仰るとおり「水匠U」は隙あらば入玉しようとしますね。私が入玉されて負けた将棋は,「こんなところから入玉できるのか?」という局面から,針の穴に糸を通すような絶妙な手順で入玉されましたので,負けてむしろ感動しましたね。

杉村さん ありがとうございます(笑)。私も自分が開発したソフトなんですが,「四枚落ち」(※飛車,角,香2枚を落とすハンデのこと)で対戦してみて全然勝てなかったんです(笑)。「四枚落ちで,こんなに強いのか!」って思いましたし,勝てた時は嬉しかったですね。

私は六枚落ちというハンデが大きすぎて,どう指しても勝つだろうと思って,対局前は負けることが全く想像出来なかったんです。実際に負けた後も信じられない気持ちです。「水匠U」の強さには本当に驚きました。

杉村さん 分かります。皆さんもそう感じていただいたようで,動画投稿サイトで二枚落ちでの「水匠U」の実力を見ていただいて,随分と話題にしていただきました。

次に大会に参加された「水匠」について伺います。「水匠」の棋風を人間風に例えるとどのような棋風ですか。

杉村さん 人間風にいうと居飛車党で「矢倉」(※居飛車の代表的な戦法)が好きですね。他のソフトに比べて矢倉を指す確率が高いです。

一時期,プロ棋士の世界では「矢倉は終わった」とまで言われて,あまり矢倉が指されなかった時期があったと思うんですが,最近またよく見かけるようになりました。それは「水匠」の影響なんでしょうか。

杉村さん かもしれないですね。プロ棋士の先生とも何人かお話をさせていただいていますけれども,「水匠」を使って研究されている方も多いです。「水匠」は矢倉をよく指しますので,それで矢倉を研究されたプロ棋士の方も増えたのかもしれませんね。

どうしてプロ棋士の間で矢倉が復活したのか不思議に思っていたんですが,「水匠」の影響だと謎が解けて,今感動しています。

杉村さん そうだとしたら凄い影響力だと思いますけど,本当の理由はどうですかね。

いや絶対に「水匠」の影響だと思いますよ。強い将棋ソフトで指される戦形がプロ棋士の間で流行するのは今の将棋界をよく表していますね。次にWCSCの話を伺いますが,初めて参加されたのはいつですか。

杉村さん 2019年の29回大会から参加しています。29回大会では7位でした。

2回目の参加で優勝されたというのも凄いですけど,初参加でいきなり7位というのも凄い快挙ですよね。

杉村さん とても驚きましたね。「7位かあ!」みたいな感じで(笑)。

凄い人数が参加されていますし,有名なプログラマーの方も参加されていますしね。

杉村さん そうですね。それこそ「Apery」のような有名なソフトも参加されていて「Aperyと対局できるのかぁ」と感慨深かったです。決勝リーグには8名しか行けないんですけど,決勝リーグに残れたのは本当に奇跡的でした。3日目に決勝リーグまでたどり着いた時には本当に嬉しかったです。

「水匠」が他のソフトと対戦している時はどんな気持ちで見ているんですか。

杉村さん 正直「水匠」の指し手の良し悪しは自分では分からないので,評価値の推移を見ています。評価値は0点から始まって先手が良くなればプラス,後手が良くなればマイナスになるという仕組みで,1000点を超えると勝つことが多いんですけれど,たまにどんどんプラスになって勝てそうだなと思っていても,読み抜けがあってマイナスにガクンと下がることもあるんです。ですので,FXのチャートを見ているような感じですかね(笑)。どんどん上がっていいなぁと思っていても,急に大暴落して「ああぁ!」みたいな(笑)。

なるほど(笑)。WCSCで印象に残っている対局はありますか。

杉村さん 29回大会でいうと2日目の「やねうら王」戦ですね。「やねうら王」というソフトに勝たないと決勝には残れない状況になったんですが,「やねうら王」には1日目でも負けていましたし,正直自信はなかったです。でも1日目と2日目の間に「やねうら王」の戦形を研究してプログラムを変更したら,その工夫がずばり当たったんです。それで勝つことができて決勝リーグに行くことが出来ました。その大会は「やねうら王」が優勝したんですけど,「やねうら王」が負け越したのは「水匠」にだけなんです。

2020年のWCSC自体は,新型コロナウイルスの影響で中止になりましたが,代替開催のオンライン大会で「水匠2」が見事優勝しました。優勝された時のお気持ちはいかがでしたか。

杉村さん 驚きました。一応強くなっているなとは思っていたんですけども,それで優勝できたのは驚きでしたし,嬉しかったです。あと,オンライン大会が終わってから有志の方が何百何千対局させて,どのソフトが一番強いのかを統計学的にも測ってくれたんですけど,それでも1位になれたんです。大会で優勝できただけではなくて,統計上も「水匠2」が一番強いことが証明されたので,それも嬉しかったですね。

優勝という大きな結果が出せた今,杉村先生のこれからの目標についてお聞かせください。

杉村さん これまではオープンソースソフトを使って工夫を加えるということをやっていたんですが,1から自分で全部コードを書いてソフトを作って,コンピュータ将棋の理解をもっと深めたいと思っています。また強くするための工夫をもっともっと見つけて,さらにソフトを強くしたいと思っています。あと,将棋ソフトを使って研究されているプロ棋士の先生が多いので,将棋ソフトの使い方をもっと研究して,プログラマー側から提案することによって,どれだけ教育効果が上がるのか,どれだけプロ棋士の先生にお役に立てるのかを試してみたいという目標もあります。

コンピュータ将棋の未来ですが,将棋ソフトはどこまで強くなると思われますか。

杉村さん 今私が開発している「水匠」が,その前の「水匠」に6割くらい勝つんですね。だからこれからもどんどん強くなっていくのは間違いないと思っています。でもずっと自動的に強くなっているのではなくて,だれかの工夫が生きて強くなっているので,どこまで強くなるかと言われるとちょっと分からないですね。

将来的にはトッププロが,将棋ソフトに二枚落ちでも勝てないという時代が来るのでしょうか。

杉村さん それはないでしょうね。二枚落ちはハンデが大きすぎてプロ棋士が負ける日は絶対来ないと思います。ただ,飛車落ちとか角落ちだったら今でもいい勝負をするかもしれないです。もしかしたら飛車落ちでプロ棋士が勝てなくなる時代が来るかもしれないですね。

本日はお忙しい中,楽しいお話を聞かせていただいてありがとうございました。私も四枚落ちで「水匠U」に勝てるように頑張りたいと思います。(笑)。

PAGE TOP