うらお前回記事の続き。この連載、やねうら王の強さの秘密のすべてを曝け出している気がしなくもないのだが、こんなに赤裸々に書いてしまっていいものか悩むところではある。本日また欲しいものリストに入れていた猫砂(1個5千円もする)が4個も届いたので届いた猫砂の数だけはやねうら王のアップデートをしたり、定跡を掘って公開するなり、記事を書くなりしなければなるまい。将棋電王トーナメント/2015年)では彗星の如く『技巧』というソフトが現れた。『技巧』の開発者の出村さんは司法試験に合格して間もないころだったと思う。後に公開された『技巧』のソースコードは、Stockfishを参考にしながらも、高い技術力・理解力によって焼き直されていた。誰かが、事前情報なしに「これは5年後のStockfishだ」と『技巧』のソースコードを私に見せてきたなら、私はそれを信じたに違いない。『技巧』には従来のソフト開発者の発想にはない、いくつもの目新しい点があった。発想自体が従来の将棋ソフトとは根本的に異なっていた。開発に対する考え方、取り組み方自体が従来の将棋ソフトと一線を画するものがあった。私はそれを評して、SDT3の会場で「『技巧』というのはソフトの名前などではなく、哲学であり、思想の名前であると思う」と述べた。『技巧』は、1手0.1秒対局×数千局で探索部をチューニングしていて、探索部を改良したあと自己対局して勝率が得られるまでが自動化しているらしかった。すべての枝刈りをオフにして、一つ一つ枝刈りを有効にしながら、どの枝刈りがどれだけレーティングに寄与しているのかを確かめたと出村さんがおっしゃっていた。Stockfishも数年後にそれぞれの枝刈りがEloレーティング換算でどれくらい棋力に寄与しているのかが調査され、Stockfishの探索部のソースコードにコメントとしてそれが書かれるようになったが、そう考えると出村さんは数年先を歩いておられたのだと思う。『技巧』の、そのシステマティックな開発スタイルに私は深い感銘を受けた。この開発手法はいまのやねうら王の強さの原動力にある部分だ。私もSDT3の直後に自己対局スクリプトを書き、0.1秒で探索部のチューニングを行える体制を作った。私以外にも多くの将棋ソフト開発者が0.1秒チューニングを導入した。この1手0.1秒でチューニングした探索部が、普通の対局(8スレッド、1手10秒など)だと弱いということが後に発覚する。0.1秒チューニングのせいでその後の将棋ソフトの進歩が1年ぐらい停滞した意味もある。いう意味では、『技巧』の作者の出村さんを戦犯と呼ぶ声もないではない。将棋電王トーナメント/2016年)では私はAperyの平岡さんにこんなことを言った覚えがある。やね「技巧は多くのものをもたらしてくれた。数々の恩恵により将棋ソフト全体が3歩ぐらい前進した。あの0.1秒チューニング、あれは良くなかった。あれのせいで将棋ソフトが2歩ぐらい後退した。平岡「3歩進んで2歩さがったなら、1歩前に進んでるからええやないですか(笑)」やね「まあ、そうなんだけど(笑)」0.1秒チューニングは将棋ソフト開発者ならば必ず乗り換えなければならないハードルであったといまの私は思う。出村さんが0.1秒チューニングを提唱していなくとも、誰かが短時間でのチューニングを実施し、そして失敗し、その失敗から我々は学ぶ必要があったのだと私は思う。何をどう学ぶべきであったのだろう?1スレ0.1秒と8スレ10秒とでは探索ノード数に1000倍近い乖離がある。そりゃ事情が違って当たり前でしょと多くの人は思うかも知れない。将棋ソフトの開発者も大半がそのように考えていることだろう。その考え方は適切ではないのだ。どこの事情がどう違うのかをよく考えるべきであったのだ。1スレ0.1秒でチューニングできる探索パラメーターと8スレ10秒でないとチューニングできない探索パラメーターがあると考えるべきなのだ。そのように考える必要があるのか?探索パラメーターの値を少し変更しても棋力としてR1以下の差しか現れないことが多々ある。これをきちんと計測して探索パラメーターを調整したいわけであるが、R1以下の差を検知するためには数万局以上の自己対局が必要になる。(正確な回数が知りたい読者は二項検定で計算して求めて欲しい。実際は、計測に用いている互角局面が互角でなかったりするので、多少のマージンが必要で二項検定の結果より大きめの対局回数にする必要はある。)ちなみに実際にやねうら王では超短時間(1手0.1秒)で調整できるパラメーターに関しては30万局以上対局させて決めている。8スレ10秒で30万局の対局ができるだろうか?1局30分として1PCだと17年かかる。これを3日で終わらせようと思うと2000台のPCが必要になる。2000台のPCが用意できる石油王はそれでもいいだろうけども、10台ぐらいしかPCを用意できない人達はもっともっと知恵を絞る必要がある。「0.1秒と10秒とでは(最適な探索部のパラメーターの値が)全然違うよ」などと悠長なことを言ってる場合ではないのである。どの探索パラメーターが0.1秒でチューニングできて、どの探索パラメーターが0.1秒でチューニングできないのか?しかし、この質問に適切に答えるためには、将棋ソフトの探索部に対するもっと深い理解が必要となる。ここで原始的で単純化された探索部から考えていく必要があり、話はいったん大昔の将棋ソフトにまで時代を遡る。:持ち時間を2倍にしたときにどれだけ伸びるかというのを調べて、その伸びから(伸びが線形だとして)長い時間で強くなるようなチューニングを行うということですかね。Extensionなどの枝刈り(延長)がありまして、そういうのは短い持ち時間ではほぼ適用されておらず、それゆえ短い時間だと...。:目的地に対して回り道をしているかどうかは目的地についてから結果論としてしか語れないことがありますからね。:猫砂って何なのでしょうか?大きめホームセンターで売ってるコンクリート用の砂と違うのでしょうか?そのおっさんは、「森田将棋よえーなー。こりゃ、(森田将棋が)百万年考えても俺には及ばんなー。」とかブツクサ言いながらやっているわけである。このあたりの思考し続けて今回の記事につながっているっぽい感じ!!。:猫のトイレに入れる砂です。猫のふん尿を吸収するとその部分だけが固まるので、固まった部分をスコップで掬って捨てるのです。ふん尿の表面積に比例する分量ずつ猫砂が減っていく仕組みとなっております。:災害の停電や液状化で下水道停止時には人間も使えるという噂。