技巧強すぎワロエナイ

技巧の作者とは何者なのかについては以下の記事をご覧ください。

電王トーナメントに「技巧」という強すぎるソフト現る。参考文献に多くの棋書、人間に近いタイプの可能性
http://shogi1.com/denou-tournament3-gikou/

技巧、floodgateでPonanzaと初対決し勝利。Ponanzaの独創的序盤に振り飛車穴熊で対抗
http://shogi1.com/gikou-vs-ponanza-in-fg/

いくつか上の記事を補足しておきます。

5五将棋の「技巧ミニ」は、将棋の棋譜なしに自力学習ですね。

これは、適当に局面を生成し、N手詰みの局面から1手詰みの局面までは最善手のはずなので、それを教師とし、それ以外のところは自力で探索してその指し手に一致するようにするということですね。半教師付き学習に分類されます。

私が「ひまうら王」として棋譜なしでどこまで自力学習できるかを試そうと思っていましたが、それと同じアプローチです。ただ、本将棋のほうは適当に局面を生成しても詰みのある局面にはなかなかなりにくいのでそのへんの調整が必要になりますね。詰むように盤上に駒を足していく、的な。

まあ、本将棋でやった場合、終盤に関係する特徴ばかり学習して、序盤に関係する特徴は学習しない可能性もあります。よくわかりませんが、実験としては楽しそうです。

さて、技巧はWCSC22にも出場していたようです。

WCSC22 技巧 アピール文書 [PDF閲覧注意]
http://www.computer-shogi.org/wcsc22/appeal/Shogicraft/appeal.pdf

以下は、技巧が採用する主要アルゴリズム等についての簡単な説明です。
2 将棋盤
 Redundant Bitboard[1]
各種高速化の工夫
C++ のテンプレートの活用により、実行時の条件分岐を可能な限り排除しています
Rotated Bitboard, Magic Bitboard の不使用
飛び駒のブロックパターンを計算で求めると、レジスタ上で演算されるため少しだけ速いと思
います。
指手の逐次生成

Rotated BitboardとMagic Bitboardを使わずに飛び利きをどうやって計算するのでしょうか。とても不思議なことがこのアピール文書には書かれています。何かspecial hackがあるのでしょう。どう見ても天才です。この1行だけで技巧の作者が天才ということが私にはわかります。

※ ちなみに当時の技巧の作者の出村さんの肩書は、「東京大学大学院法学政治学研究科」となっています。文系なのにプログラミングも数学も相当なレベルだと思います。

そして、極めつけは、Redundant Bitboard(通称、RBB)を採用しているということ。

RBBはその発明者もソースコードがくちゃくちゃになるので持て余す代物で、いまや自分の将棋ソフトには採用していないといういわくつきの代物です。もちろん、発明者以外の将棋ソフトで採用されている例など聞いたこともありません。それを採用してC++のtemplateテクニックで凌ぎきるとは相当なプログラミング技術の持ち主です。

ああ、言うまでもなくRBBの発明者とは私のことですが。

(読者「なんや?これは、勝ち馬に乗って、全部、自分の手柄みたいに話すパターンのやつか…」)

まあ、冗談はさておき、floodgateの結果からだいたい全体的なレーティングが見えてきました。

Ponanzaと技巧がまあ互角ぐらいとして、そこからR200ぐらいの差でApery(大樹の枝)、Apery(WCSC25)がそこからR100強ぐらい(正確なことは私は知りません)、昨年の電王トーナメントバージョンのAperyがそこからR100強ぐらいの差。

Ponanzaは他のソフト(2位〜4位ぐらいのソフト)より一年分ほど(R200ほど)前に行っているだけで、圧倒的にリードしているわけではなさそうですね。

Ponanza・技巧 <— R200 —> Apery(大樹の枝) <— R100 —> Apery(WCSC25) ≒ 超やねうら王 <—- R100 -—> Apery(2014) ≒ やねうら王(2014) <— R300 —-> Bonanza6.0 ≒ やねうら王(2013)

ハードウェアがほとんど進歩していない近年において、毎年、上位の開発者はソフトの改良だけでR200ずつぐらい伸ばすというミラクルを達成し続けているのが何とも凄いところだと思いますが。

では来年は上位のソフトはすべて今年の技巧・Ponanzaレベルになるのでしょうか?

私はそれは極めて難しいと思います。

まずPonanzaはそもそも技術的なことは何も公開されていないに等しいので他のソフトが真似しようがありません。技巧のほうも、実際のところヒント以上のことはアピール文書には書かれていないので具体的に何をどうすればいいのかわからない開発者がほとんどだと思います。

つまり、AWAKEのKPE次元下げや、NDFの相対KPPのようにちょっとしたhackで達成できる種類のものではないので、探索部、評価関数を丸ごと書き直すつもりで臨まないといけないということですね。

ちなみにAWAKEの作者の巨瀬さんは、「AWAKEの探索部の調整、半年かかってR50ぐらいしか上がらなかった」とおっしゃっていました。探索部のパラメーターの調整は(自己対戦を繰り返す、などしないといけなくて)すこぶる時間がかかります。かけた労力・時間のわりにリターンが極めて少ない領域です。しかしそこをやっていかないと技巧・Ponanzaレベルにはなりません。

考えただけで気が遠くなります。超やねうら王もあと2週間あれば、まだR100ぐらいは上げられる(と思っている)のですが、R200〜300となると話は違ってきます。探索部の刷新が必要になります。(パラメーターの調整だけで半年かかるような部分を一から作りなおすとなると本当に一年がかりになってしまいます…)

生半可な覚悟ではとても出来ることではありません。

そして私も本気で勝ちたいなら、平岡さんが「(Aperyの)GitHubへのpushを大会が終わるまでサボり気味にしておこう」と考えたのと同様に、私もブログの更新をサボり気味にしておくべきです。ここに書いてしまうと他の開発者と差がつかなくなってしまうからです。まあ私の場合、喜々として書いちゃうんですけどね…。

技巧強すぎワロエナイ」への10件のフィードバック

  1. 嬉々として他の開発者の方へヒントを出し続けるやねうらおさん

    そこに痺れる!憧れるゥ!

  2. 買ったPCの 対費用効果を上げるためにも、人間一日1時間、PC23時間 開発につぎ込めば、やねさんなら 来年の優勝も可能かと。
    って、大会前に、来年の話になっている。。。

    • 毎日コツコツとか私には出来ないのですよ。いったん一つのことを考えだすと脳のリソース全部そこに行っちゃうので…。

      よくいままで生きて来れたな…。> 私

  3. 22回のWCSCのアピール文章の参考文献にやねさんが書いたbonanza完全解析ブログが載ってますのである意味やねうら王チルドレンといえるかも?

  4. > 「Ponanza・技巧に勝てるコンピューター将棋の作り方」

    応援もかねて買いますよ!
    とはいえ、1000ページですか…過去の記事をいくらか再利用しても、やねさんの(実質)時給ならまともに働いた方が早そう(汗

  5. 1年経ったので当時の予測がどの程度当たっていたか検証してみる。

    > Ponanzaと技巧がまあ互角ぐらい
    Ponanza(SDT3):R3850→R4000?(WCSC26)
    技巧(WCSC26):R3550→R3950(2億NPSクラスタ)

    PonanzaのSDT3時の強さはさすがに想定の範囲外でしたか。

    > Apery(大樹の枝) Apery(WCSC25)
    これは追試の結果正確

    >Apery(WCSC25) Bonanza6.0
    これも追試の結果正確

    > 上位の開発者はソフトの改良だけでR200ずつぐらい伸ばすというミラクルを達成し続けている
    雑巾絞りの導入によりR400以上の上昇。

    >来年は上位のソフトはすべて今年の技巧・Ponanzaレベルになるのでしょうか?
    > 私はそれは極めて難しいと思います。

    雑巾絞りにより前年のponanzaに匹敵するレベルに。
    現段階でのPonanzaとの差は1年でR100以上は詰められたと推測できる。

    > R200〜300となると話は違ってきます。探索部の刷新が必要になります。

    雑巾絞りでそれを上回る幅の口上を見せponanzaとの差を詰めたものの、結局探索部の刷新が必要になることは変わらず。

    ポジティブな意味で大きく外れた部分と、当たっている部分=変わらない課題が混在していたという感じですね。

  6. > 雑巾絞りの導入によりR400以上の上昇。

    雑巾絞りによる効果、浮かむ瀬で大樹の枝から+R200ぐらいじゃないですか?Stockfish7のfollow up movesとかあのへんで長い持ち時間において差が付きやすくなったのでその上乗せがかなりあっただけで…。

コメントを残す

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