電王戦Finalを終えて その6

前回の続きです。間が空いてすみません。ようやく体力と気力が回復してきたので続きを書いていきます。

打ち上げの席での話で、お酒がかなり入っていたので細部は適当です。

Ponanzaは神の手にどれくらい近いのか?

Ponanzaチームの下山さんとの会話。

やね「いまの将棋ソフトって、神様の指し手にどれくらい近いのかな?」
下山「最善手にはほど遠いと思いますよ。」
やね「Ponanzaでも?」
下山「ええ。」
やね「逆にPonanzaと神様の指し手との指し手一致率ってどれくらいだと思うの?」
下山「いやー、わかりません。」
やね「(反復深化の)iteration回すときに、iterationが深くなると(ベストのスコアの)指し手が一つ前のiterationと変わる確率って下がってくじゃない?」
下山「ええ。」
やね「N回目のiterationにおいて指し手が変化する確率の関数は減衰曲線みたいなのを描くから、この曲線を積分みたいなこと(※)をすれば、iteration 30からそのあと指し手が変化しない確率を求められるんじゃない?」

※ 実際は積分ではない。あと、iteration 10で指し手A、11で指し手B、12で指し手Aのように、iterationが深くなったときに指し手が変化して、また元の指し手が選ばれるケースも考慮しなければならない。それから、電王トーナメントのように256手終局というルールがあるものとして、最大でもiteration回数は4桁までは達しないものとする。

下山「そうですね…。」
やね「それをもって神様の指し手との一致率が推定できるのでは?iteration深さごとに指し手が変化する確率って統計をとったことは?」
下山「ないですね。でも、それが減衰曲線だとして、いまのソフトで回しているiteration回数(iteration 30前後)は、減衰曲線の入り口(急勾配の部分)だと思いますよ。」
やね「まだまだ指し手は変化すると?」
下山「ええ。」
やね「将棋の戦法の可能性はまだまだあるということやね…。」

どうぶつしょうぎはソフト指しされないのか?

平岡さんと私。あと、将棋連盟の片上理事が近くに座っていて、ときどき話に参加。

やね「どうぶつしょうぎ、後退解析で必勝手順が解析されてますやんか?どうぶつしょうぎウォーズ(HEROZのアプリのどうぶつしょうぎ)、あれソフト指しとかされないんですか?」
平岡「さぁ…どうでしょう…。」
やね「どうぶつしょうぎ、ブラウザで遊べるやつ作ろうかなと思ってるんですけどね、コンピュータのほう、完全解析の結果を使うので、後手だと必勝だという…。」
平岡「やめてください!(ソフト指しする人が続出して)どうぶつしょうぎウォーズが荒れます。(笑)」
やね「そもそも、3×4が狭すぎるのがいけないんじゃないですか。さすがにコンピュータで後退解析をさせるなら3×4では盤面狭すぎるでしょう。5×5とか7×7ぐらいに広げればいいと思うんですけど。」
平岡「3三将棋って知ってはります?3×3の升に玉と銀と歩を配置する(※)んです。これが意外と変化があって初見では難しいです。」

※ 3三将棋 : http://www.nakajim.net/index.php?3%E4%B8%89%E5%B0%86%E6%A3%8B

片上「3三将棋?それ、学生時代に研究したわ。先手必勝でしょ?」
平岡「流石です…。」

平岡さんのHEROZでのお仕事は?

やね「平岡さん、会社(HEROZ)では将棋ウォーズとか将棋の思考エンジンとか作ってはるんですか?」
平岡「いえ、いま別のアプリを…」
やね「なんですか、それ?」
平岡「(社外秘なので)言えませんよ!」
やね「わかった!7×7将棋でしょ!?」
平岡「違いますって!(笑)」

つづく

電王戦Finalを終えて その6」への34件のフィードバック

  1. ボナンザで棋譜解析をやった後、不一致手を、Apery で、一手900秒で詳細な解析をやっています。

    >いまのソフトで回しているiteration回数(iteration 30前後)は、減衰曲線の入り口(急勾配の部分)だと思いますよ。

    この認識は、開発者ならではの感覚なのでしょうね。

    自分の経験では、900秒、1200秒、1800秒と思考時間を増やしていっても、指手が戻る事はあっても(A->B->A)、指してが変わる(A->B->C)事はほとんどありません。900秒程度の思考で、ほぼ飽和しているのかと思っていました。

    (飽和の意味は、現状よりも一段強くなるには、現状の延長ではなく、新たなブレークスルーが必要という意味です。)

    まだまだ鉱脈は残っているのですね。

    • > 900秒、1200秒、1800秒と思考時間を増やしていっても

      iterationが増えるごとに思考時間は指数関数的に増えますから、900秒、1800秒、3600秒、…みたいな感じで増やしていかないとそのへんは意味のある数字にならないような気も。

  2. 平岡さんって再就職されたんですか?
    PVで仕事辞めてApery作ってたって言ってましたけど。
    将棋の縁って深いですね。

    日本は多神教なので実は将棋の神様は3兄弟でアグロの神様とミッドレンジの神様とコントロールの神様が喧嘩して作ったとかないですよね。汗

  3. 新しいアプリですが、僕も勝手に考えました。ゲームアプリでよくある、経験値を増やしたりクエストを消化すると、禁止されていたキャラやスキルが解放される、という仕組みを応用するんです。始めに使える駒は玉と歩だけで、使える盤は3×3だけ。ソフト相手のクエストを消化していくと使える駒も盤も増えてきて、最終的に大将棋の29種類の駒と、15×15の盤が使えるようになります。もちろんユーザー同士の対戦もランキングもありで。利点は、駒の使い方をひとつずつ覚えられる点と、本将棋の序盤の息苦しさから解放される点です。あと、課金すれば盤駒を早く解放できるようにするとか、棋神を使えるようにするとか。

    • 「本将棋、初心者には難しいのでもっと盤面の小さいものから」というのは一理あると思うのですが、最初から全キャラ(すべての駒が)使えるところがいいような気もしなくもないです。手駒が桂四枚だけの詰将棋とか、とても難しくてやる気がしなかったりするのと同じで。

      • 桂馬と角はムツカシーので、最後の方に出す感じで。知的な欲求の強い人なら始めから全部使えたほうがいいでしょうが、そうでない人たちを引っ張り込みたいです。漢字の駒じゃなくていろんな種類の猫を使うとか、背景を草原とか城とかにするとか。

        「将棋は確定ゲームなので、負けたらプレイヤーが悪い」と言うところも、ハードゲーマーには良いでしょうが、ヌルゲーマーにはつらいでしょうから、彼らを引き込むためにはそこも何とかしたいです。

        • ぬるげーまにはアシストつければいいと思いますね。
          棋神があなたにアドバイス。いい煽りじゃないですか?
          ハードゲーマーはアシストなしでヌルゲーマー無双ポイントとかどうですか。
          ハンデをつけるほど高くなってく。負けたらゼロ。
          ヌルゲーマーは無双されたポイントで棋神を買うんです。
          どうですか?

          • 将棋ソフト育成ゲームとかどうでしょうか。パラメ-ターをいじってタップしたら勝手にソフトが対局してくれて、買ったらポイントがたまって、もっとソフトをいじれるとか…サーバーの負担が大きすぎるか…

          • >>茶田さん。
            レスのネストが4までのようなのでここに書きます。
            現状プログラムが同じである場合何が性質をきめるかというと評価関数だと思います。
            パラメータをいじるたびにその要素の評価関数を生成しているのではまずサーバーリソースが足りません。
            なので、サービスインの時点で全ての評価関数のパターンを網羅しておく必要があると思います。
            マイナーだから生成しないとかそんなこと言ってる場合じゃなくて全部です。
            変更があるたびに生成しなおしにならないように工夫する必要もあります。
            まぁ、将棋ソフトの新しい構造を考えてみたらいかがでしょうか。
            評価関数式だとどうしても学習に時間をとられてサービスのガンになりかねません。

          • まったく採算が取れなそうですね。そういえば将棋ソフトの棋譜を見て楽しめるほどの棋力を人に持たせるのがまず難しいのでした。やっぱり駒をかわいくして、かわいい動物がぴょこぴょこ動くのを見て自然に将棋に興味を持ってもらう(将棋界に金を落とす習慣を付けさせる)のがいいですかね。

          • >>茶田さん。
            まぁ、見た目にこだわるのもいいですけど、自分が強いと誤認させるほうが興味持つと思いますよ。
            無双してる最中に小さな課題を一つずつ解決させていくんです。
            それで自力をためて行って大舞台まで導いてやるパスって創出できますでしょうか。
            とりあえず、趣味というのは見返りがなくてもやるものですが、ある一つがなくなった瞬間やめてしまうようなものです。
            それを継続してもらう施策はなかなか難しいです。

      • やねさんに質問なんですが、最善候補手がなぜそうなのかっていう明示的な理由の生成って難しいですか。商売するんだったらそれくらい必要だと思いますよ。

        • 読み手順中の、決定的に悪くなる変化を自動的に言語化することは出来るでしょうね。

          例)「ひと目32金ですが、後手から角を切られて同銀に77金からの強襲が成立します。(以下、精算して即詰み) そこで…」

          ただまあ、やりだすと様々なパターンがあってキリがない意味もあって、これが商売になるレベルにするためには、恐ろしい労力を費やさないといけないんじゃないかという気はしています。

          • 一応やねさんレベルなら可能ではあるんですね。さすがです。
            あとは塩梅ですか。それは製作者の勘ですかね。

          • そだそだ。質問に答えていただいてありがとうございました。
            自分にとってできないよりできるという結果を聞くほうが励みになるので自分も精進したいと思います。追いつくまでに死んでしまいますでしょうけど。

  4. やねさんの体力と気力が回復傾向にあると伺い、安心致しました。
    まずはご自愛頂き、無理の無いペースで記事を拝見できればうれしく思います。

    さて「神の手」への道について、最善のアルゴリズムや評価関数、マシンスペックをもってしても、
    指し手の探索ツリーの大きさが(指数又は階乗のオーダーで?)爆発的に増加してしまっては、ゴールに容易に近づけないということなんですね。

    一方でツリーの探索を不用意に「枝切り」をしてしまうと、28角のような長手数の失着トラップが待ち構えているという、、、。

    探索と枝切り、双方のブレイクスルーはあるんでしょうか、、、。

    一方、ちょっと見方を変えてみると、
    現在の「探索による指し手の変化確率」の変化率が高い状況であるとすれば、「神の手」に及ばないとしても、
    将棋の固定観念を根底から覆すような指し手をもう暫くは次々と「提起」できるとも言えそうですね。

    「神の手じゃなければNG」と突っ込まれてしまえばそれまでですが、私はこの「提起」に大いなる関心と期待を持っています。

    • 枝切しないと巡回サラリーマンになってしまうので枝切をやめることは難しいです。
      リアライズされているさまざまな事象は生物が獲得してきた最善手であることが多いようにに思います。ただベストではありません。
      それはある程度隙間がないと多様性の中でギスギス感が出てしまうからだと思います。
      この隙間を贅肉だとたとえたならこれをどうやってそぎ落としてパスを形成するかというのが一つのファクターに思います。
      ボナンザメソッドは統計なので、ベターですがベストではないんですよね。
      しかし集合知なので、一人の人間を数の暴力で圧倒するには十分なのです。
      検索において余地があるとすればよほどヒューリスティックな贅肉カットメソッドを開発しない限りは進化しないように思います。

      • あ、癖で巡回サラリーマンとか言ってますが、ホントは巡回セールスマンでした。
        ごめんなさい。

    • > 将棋の固定観念を根底から覆すような指し手をもう暫くは次々と「提起」できるとも言えそうですね。

      そうですね。初心者がある局面に対して次の一手として10手ぐらいよさげな手を挙げるとしたら、そのうちの8手か9手はプロ的には成立しない手ですが、プロがある局面に対して同じように2,3手よさげな手を挙げたとして、コンピュータ的に見ると、他にもう2,3手ぐらい局面を形勢互角ぐらいに保てるような手があるかも知れないと思います。

      そういう意味では、「将棋は初心者が考えているほど自由なゲームではないが、プロが考えているほど不自由なゲームでもない」と言えるのではないでしょうか。

  5. 10年に1手だけ指すやねうら様(PC)みたいのを作って、読み筋を公開したら面白いのではないでしょうか。停電対策や探索を止めずにバージョンアップ可能にするとか、難しいかもしれませんが。。。

  6. 神の手って「11手詰詰将棋」を詰め将棋ルーチンではなくてノーマルルーチンで解けるような化け物ソフトですか・・・

  7. どうぶつしょうぎのお話から連想したのですが、5五将棋についてもソフトの大会が行われているようですが、こちらは完全解析という話が全く出てこないように伺っています。

    実際のところ、5五将棋の完全解析もまた、現実的なスケールではないのでしょうか。
    自分で計算できればよいのですが、やねさんのお考えをお伺いできれば幸いです。

    • よく知らないですが、後退解析でやる場合、盤が一升増えるごとにそこに置ける駒の種類ぐらい調べなきゃならない局面が増えるのではないですかね。だとしたらどうぶつしょうぎの一兆倍ぐらいの局面は調べないといけないのかなと思います。いまのところ現実的なオーダーではないような、、。

      ただ、精度のいい評価関数は設計しやすいでしょうから、事実上無敵のAIは作れそうではありますが、そう簡単でもないのかな?

      • 5五将棋は人間相手でもまだ『無敵』にはなってなかったように思います。
        普通の将棋と比べて参入する人が少ないせいもあるかも知れませんが。

        • なるほど…。5五将棋、電王戦の上位5ソフトの開発者が本気でやれば少なくとも人間のトップよりは強いものが出来るのは間違いないと思うのですが、皆さん、やる気にならないんですかね…。私も食指が動かないですが。

          • 棋譜があんまりないので教師あり学習だと困るっていうのもあるかと思います。

          • > 棋譜があんまりないので

            自己対戦棋譜→棋譜からの学習→自己対戦棋譜→棋譜からの学習→…
            で、普通に強くなると予想。これで強くならないなら適切に次元下げすればいいかと思ったり。

      • やねさん

        すみません、確かに5五将棋くらいですと、局面数の推定くらいはなんとか筆算レベルでもできそうですね。
        ただ、億オーダーのどうぶつしょうぎの1兆倍というと、10^20オーダーで、完全解析されてるチェッカーの局面数が5 ×10^20でクラスタを長時間回して解析完了したそうですから、本当にそのオーダーならお金さえあればなんとかなるのかもしれませんね。ただ、5五将棋のためにそんなお金を使える人はいなさそうです……。

やねうらお へ返信する コメントをキャンセル

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