将棋ソフトに高速化は本当に必要なのか?

昨日の記事でZobrist Hashのことについて書いたのですが、競技プログラミング界隈の人の間で話題になっている(?)ようです。

まず、Zobrist Hashをxorからaddに変更したときに偏りが出るか等については大変長くなるのでまた別の機会に詳しく書きます。

それでコンピューター将棋開発で本当にそんな細かい速度を競っているのかについては、平岡さんはmerom686さんは次のツイートを挙げておきます。

強い将棋ソフトを作ろうと思ったときに、まず第一に評価関数です。評価関数の学習方法の改良や、評価因子の追加等の少しの改良でR50や100上がるというのは決して珍しくありません。そののちに探索です。探索部のパラメーターの調整にはすごく長い開発期間がかかりますが、調整するのとしないのとではR100ぐらい変わってきます。

一方、速度的なチューニングというのは、丸一年ぐらいかけてSSEとかAVXを使ってチューニングしまくってもいまのAperyからは30%も速くならないでしょうし、レーティングで言うとR50も上がればいいほうです。まして、Zobrist Hashをaddにしたところで0.01%の速度向上も得られるか怪しく、レーティングで言うとR0.01とか、計測できないレベルの向上でしかないと思われます。

ゆえに、そんなところでは棋力の差はつかないというのが実際のところですが、平岡さんが言うように長年いじっているとそういう細かい部分は自然と洗練されてきて、無駄のない形に到達するというのが一つの真理だと思います。焼きなまし法にも似てますね。

また私は、評価関数や探索部のチューニング自体はそこはそこでベストを尽くすので、他の部分(指し手生成等)でもベストを尽くすという考えです。そうして初めて最強の将棋プログラムになるのだという確信と信念に基いて行動をしています。

残念ながら、まだやねうら王は最強と言える状態には至っていないので現段階ではこのような信念は宗教じみたものに過ぎませんが…。

まあ、このような信念こそが正しいのだということを来年の電王トーナメントで証明するしかありませんね。(その前に私は長手数の詰将棋が解ける詰将棋エンジン作りたいのだけど…)

将棋ソフトに高速化は本当に必要なのか?」への5件のフィードバック

  1. まあ、これは何時もの勝手な外野の希望ではありますが、ここはひとつ、何としてもPonanza越えを達成していただきたいものです。
    それも出来ますれば技術的なブレークスルーを伴いながら、、、。

  2. ポナンザには常に一等星であってほしいですね。
    そこを目指すからみんな強くなれる。
    屋根さんはそれを超えて超新星に!
    あれ?なんか違うような・・・。

    • 冗談は置いといて、
      ものづくりの極意に魂は細部に宿るというのがあるので、ぜい肉を落とす最終局面において細部をいじるときはなんであれいつかは来るもんなんでしょうね。

  3. dfpnって玉(猫)の逃げ方が少ないかどうかの評価関数(猫逃げ評価関数)を自作して、玉(猫)の逃げ方が小さいものから優先して探索する(証明数/反証明数)。それとStockfish的に投機的探索をするみたいなイメージだが良くは知らない。

    きっと猫好きの大御所が答えてくれるでしょう

Yakitori へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です