ひようら王の強さの秘密

「ひようら王は何故駒得のみの評価関数の将棋ソフトとして世界最強なのですか?」

という話を今回はします。

普通、駒得のみの評価関数にすると、序盤では早々駒得になる変化は出てこないので探索の末端の局面での評価値は0になります。どこまで探索しても0。0と0とは比較しても大小関係はありませんので、局面の優劣がつけられません。

ゆえに、指し手が支離滅裂になるのは無理もありません。

ところが、駒得のみの評価関数なのに、ひようら王はR2400程度あります。(最新のPCで走らせた場合)

これには一つだけカラクリがありました。

その通り!手駒のときだけ心持ち加点しておくのです。そうすると飛車先の歩など、どんどん歩を交換して手駒にしようとします。自分の駒を手駒化することを中間目標として局面が進んでいきます。また、敵の飛車先の歩の交換を阻止しようとするようになるので、飛車先を突いてこられたときは歩の交換を阻止するために自然と角道をあけます。

これらは序盤の戦略としてそれほど悪くはないので、これによりR200~400ぐらいの底上げが出来るのです。

どうすれば駒得のみの評価関数で、コンピュータに飛車先の歩を交換させることが出来るか?と考えた結果がこれでした。


ひようら王の強さの秘密” への12件のコメント

  1. ひようら王はプロ棋士の棋譜で学習してないのかな、、、と思ったら、「何故私は駒得のみの評価関数の将棋に魅せられるのか」にちゃんと説明がありました。

    ・・・
    駒得のみということは、評価関数の学習のために人間の棋譜を用いていないし、評価関数もあってないようなもので、純粋に探索のみでどれだけの強さになるのかという指標としての意味がある。

    「質問も記事をよく読んでから・・・」ということですね、ハイ。

  2. うさぴょんの池さんの「コンピュータ将棋のアルゴリズム」が公開されています。
    http://homepage1.nifty.com/Ike/ComShogi/index.html
    ここでは、
    「それぞれの駒が持ち駒になった時の価値は、元の価値の5%増しくらいにしておく。同じ価値だとチャンスがあるまで持ち駒に持っていればいいのに、どんどん盤面に打ってしまうという現象が起きる。」
    との事です。

    25% 増しと5%増しの違いがありますね。大きい方が、なかなか駒を打たない棋風になるのでしょうか。

    • 昔の将棋ソフトは評価関数を手でチューニングしていたので、手駒に加点するというのは常識ではあったわけですが、駒割りのみの評価関数のソフトで手駒に加点するというのは、そのへん原点回帰の意味はありますね。

      25%は盛りすぎなのですが他の評価指針がないのでそれくらい足しておいてもいいだろう、みたいな考えです。

  3. アドレスふざけたから消されました!?申し訳ない。

    ひようら王同士の棋譜で機械学習すれば、人間の介入しない強いコンピュータ将棋が作れると思ったのですが、やってみましたか?

    • コメント欄は1度目だけ承認制なのです。2度目以降はそのメアドでサイト管理者の承認なしに投稿できます。

      > ひようら王同士の棋譜で機械学習すれば

      終盤の読み切りの局面からの指し手は正確なはずなので、そこから学習させて、またその学習させたもので対戦させてと、徐々に序盤の方向まで学習させていけば、原理的にはプロの棋譜なしで学習できるはずで、それが「ひまうら王」プロジェクトなのですが、次元下げをきちんとやらないとうまく学習できないような気がしてまだ試してません。確か、「ひまわり」の作者も同じような方法でのアプローチを考えておられたような。

      • 横入り失礼します。

        将棋の始まりの駒配列は一つに決まっていますが、「>終盤の読み切りの局面」というのは有限ではありましょうが膨大な数になるように思われます。

        それで、「後ろから逆に攻略する、、、」のは手順としてはよさそうなのですが、この話は解析をスタートする局面が多すぎて事実上は手に負えないような気がするのですが、そのあたりはどのようにお考えなのでありましょうや?

        • まずは、駒得のみの評価関数のソフトの自己対戦棋譜の終盤の指し手(詰みまで読みきっているならば100%正解と言える指し手)のみから学習させると理解してください。

          このとき、終盤の正解手(居玉よりは48や68玉のほうが得だとか、玉の周りに金がいたほうがいいだとか)は、序中盤の好手でもあることが多いので、終盤の正解手からその位置関係に対する評価因子に加点できれば、その評価因子の点数は序中盤でも生きます。

          そうして学習させたソフトは駒得のみの評価関数のソフトよりは明らかに強いので、そのソフトで自己対戦させて、その棋譜から…という手順を繰り返すことでそこそこ強いソフトが出来るのではないかということです。

          • ご説明ありがとうございます。

            それで重ねての確認になるのですが、自己対戦を100回やると100個の棋譜が得られます。
            それで、その100局すべての終盤の棋譜をつかって学習させる、、、という理解でよいのでしょうか?
            それとも100局の中から何らかの基準で「良いと思われる棋譜のみを選んで使う」のでありましょうか?

          • > その100局すべての終盤の棋譜をつかって学習させる

            はい、そうです。その程度の棋譜の数ですと棋譜の質よか、量のほうが大切なので棋譜を選別するよりは量を増やしたほうがいいですね。

      • なるほど、なるほど。

        「ひまうら王」プロジェクト、早期の着手に期待しております。

コメントを残す

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