パスワードを忘れた? アカウント作成
14974342 story
ソフトウェア

藤井二冠の自作PCをネタに将棋ソフト開発者が対談。プロ棋士とプログラマーがタッグを組む未来も 47

ストーリー by nagazou
長いけど元記事面白い 部門より
スラドでも藤井聡太二冠が自作PCでRyzen Threadripper 3990Xを導入したことは話題になったが、その藤井二冠の使用している将棋ソフト「水匠」の開発者である杉村氏と、その水匠のベースとなった「やねうら王」の開発者である磯崎氏の対談が行われたそうだ(ニコニコニュースORIGINAL)。

磯崎氏によると、コンピュータ将棋の世界では思考時間を2倍にすると、段位に相当するレーティングが上がり、一段強い指し手になるのだという。このため、高速かつコア数が多いCPUを持ってくれば、研究の速度がアップすることになる。ベースとなっているやねうら王はThreadripperにすでに最適化されており、その派生である水匠も同様であるとしている。現状では将棋ソフトを動かす上では、Threadripper 3990Xが最強であり、藤井二冠を上回る環境を手に入れるのは困難だとしている。

ただし、将棋ソフトにはGPUで処理するタイプのものも存在するという。dlshogiやAobaZeroといったもので、現状ではやねうら王の強さには及ばないものの、これらのGPU系ソフトがCPUで処理するやねうら王や水匠に匹敵する性能になれば、藤井二冠の環境を上回ることができるかもしれないとしている。

またGPUを使用した将棋ソフトは、大局観が優れているというCPUを使用したものと異なる特性があるという。このほかにも、手の内がバレやすくなるから使っているプロは使用している将棋ソフト名はあまり表に出さないといったかなり興味深い内容が語られている。また、チェスのように、開発者がプロ棋士とタッグを組んでソフトを発展させたいといった話もでている。
  • by tamaco (19059) on 2020年10月30日 19時35分 (#3916311)

    3年経ったので、AlphaZeroの自己対戦型の学習に比べてどれぐらい変わったのか不明だけど

    https://ja.wikipedia.org/wiki/Elmo_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%... [wikipedia.org]

    elmoは、過去の電王戦でも活躍した強豪AI「Apery」「やねうら王」がベース。elmo同士の対戦を重ねてどのような手を指すと勝率が高いかを調べ、そうした手を選び出せるように評価関数(形勢判断をする際の指標)を調整。その工夫の結果、より正確な形勢判断ができるようになった。
    2017年12月、2時間の学習を行ったDeepMind社によるプログラムAlphaZeroとの100局において、elmoは8勝90敗2分という結果に終わった

    囲碁AIでも新しい定跡が見つかったり、AIを将棋の有段者が利用してさらに強くなれる時代とも聞きますので、もはやAIvs人間なんて感じではないのでしょうね。

    ここに返信
    • by Anonymous Coward on 2020年10月30日 22時29分 (#3916420)

      AlphaZeroが最強だったのは一時だけで、今はチェスも将棋も既存手法によるアルゴリズムのほうが強いと考えられています。
      (AlphaZeroは非公開システムなので誰も追試できないわけですが)

      チェスに関する分析↓
      https://chess.stackexchange.com/questions/29791/which-is-better-stockf... [stackexchange.com]

      実際に、AobaZeroというAlphaZeroを再現しようとしたプロジェクトがありますが、現在までのところさほど強くありません。

      そもそも論としてCPUとGPUで使うものが違う以上、マシンスペックを揃えた対局というのは原理的に不可能なので、
      どっちが強いという比較は難しいですが。

      • by Anonymous Coward on 2020年11月01日 11時35分 (#3916852)

        既存手法(2駒、3駒関係)の評価関数と、DNN(ディープラーニング)の評価関数のどちらが強いかは使える計算量にもよると考えられてます。
        評価関数の表現力では、DNN >> 既存手法
        計算コストも、DNN >> 既存手法

        ソフトの強さは、評価関数の表現力・精度と、計算コストの両方が効いてきます。
        いくら評価関数が正確でも、読める手数が少なければ将棋やチェスでは負けてしまうので。
        今の時点では、将棋・チェスでは既存手法の評価関数の表現力はまだ限界に達しておらず、同じリソースを使うならDNNより既存手法の方が強いと考えられてます。
        AlphaZeroの将棋・チェス版は、計算リソースを無視すれば現時点でもDNNが既存手法並みに強くできることを示しただけ。

        そのうち既存手法の評価関数の表現力が頭打ちになって、DNNの方が有利になることも、ほとんどの開発者が認めてます。
        これがいつになるかはゲーム次第ですが、囲碁は既にDNNの方が有利、将棋は今が正に端境期、チェスはもっとずっと先でしょう。

        もう一つ既存手法とDNNの中間の手法としてNNUEがあります。
        https://www.chessprogramming.org/NNUE [chessprogramming.org]
        CPUで計算できる軽量なニューラルネットワークです。
        将棋では上位のソフトのほぼすべてに採用されているし、チェスソフトのStockfishにも採用されて大きな成果を上げてます。

        これも評価関数の表現力と計算コストのバランスの問題で、今はちょうど中間であるNNUEが最適なのだと私は理解してます。
        そのうち使える計算リソースがもっと増えれば、将棋やチェスも本格的なDNNに移っていくのでしょうね。

      • by Anonymous Coward

        Googleの資金力による学習データの物量が重要なんでしょ

    • by Anonymous Coward

      >>そうした手を選び出せるように評価関数(形勢判断をする際の指標)を調整

      例えば画像なら、「青みを強くして」に対してBを強調するみたいにパラメータの
      独立がわかりやすいけど、こういうAI系のものはどうやって調整するのか
      さっぱり想像がつかん。
      web検索アルゴリズムなんかも、微調整ができるほど因数分解されているものなのか、
      トライandエラーで結果オーライで選ぶのか、学習方式なんかは過去の学習データを
      再利用できるのか再学習なのか、改定によって今より悪くならないことは
      どうやってわかるのか…、わからんことだらけだ。

      • by Anonymous Coward

        深層学習では、大きく分けて「推論(入力から出力を計算する)」と「学習(推論の結果と本当の答えとの誤差を最小化する」からなります。将棋のソフトの事は分かりませんが、恐らく評価関数は学習時の"誤差"の算出方法を指しているものと思います。

        パラメータの数は(ネットワーク構造によりますが)数百万~数億ありますので、ご察しお通り人力では到底調整しきれません。代わりに、パラメータを調整するパラメータ(ハイパーパラメータと呼んでいます)を調整したり、ネットワーク構造を工夫したり、評価関数を工夫したりします。

        ――と思っています(元記事を読んでいないのは内緒でお願いします)。

        • by Anonymous Coward

          元記事を読んでいない状態での理解と実際との差の誤差を算出・・・
          とかもいずれ出来ればいいなあ

          評価方法を適当に決めて適当に算出・・・
          したら人間の実感との差が激しそうだし

  • by Anonymous Coward on 2020年10月30日 19時25分 (#3916304)

    ざっと読んだけど、局面に制約条件をつけて評価を進めるような使い方ができると有益ということか。
    Pythonでプログラムが組めればいいようだから、谷合四段みたいな工学修士棋士以外にも
    プログラミング棋士が登場しそう。

    ここに返信
    • by Anonymous Coward

      でもプログラミングにかける時間がもったいないと感じればやらないだろうから、開発にかけた時間が割りに合うぐらいの効果が出るかどうか。

  • by Anonymous Coward on 2020年10月30日 19時33分 (#3916309)

    プログラマとタッグを組んでソフトの独占使用権を買うのが普通になったりすると、もう違う戦いになってしまうのかな。F1でマクラーレンのシートをゲットしないとまず優勝できな的な。

    後は大企業が特定の1人にとてつもない計算リソースを無償提供するとか。

    ここに返信
    • by Anonymous Coward

      腕に覚えがあるプログラマも一人や二人じゃないと思いますので、将棋が個人競技から団体競技になる感じですかね?
      テニスとかの選手とコーチの関係と思えばそこまでではないかな?

  • by Anonymous Coward on 2020年10月30日 20時29分 (#3916336)

    ハードリソース縛りでの対戦で、
    純にソフトアルゴリズム同士の勝負もあっていいと思うのですが
    そういうのはもう既にやっているのでしょうか
    # 8bitCPU縛りとか?

    ここに返信
    • 縛りなら提供をうけた機器で増設・換装・改造は一切禁止でいいのでは?
    • by Anonymous Coward on 2020年10月30日 21時49分 (#3916400)

      縛るなら消費電力縛りでしょうね。
      おそらくそれが一番公平。
      技術進歩も導入できるし。

      例えば1分間単位で電力量の上限を指定しておいて、それを超えたら手の探索を中断するとか、そういう感じかな。
      相手の手番でも同じ仕組みにしときゃいいかな。
      まぁ上記仕組みでは抜けが色々ありそうだけど、総合的には使えるエネルギーを公平にするのが一番良いと思います。

      自動車レースで言うなら、支給したガソリンだけで耐久レースで勝て、みたいな感じかなー。
      燃費も瞬発力も必要。

      • by Anonymous Coward

        専用チップを作ると有利なので、将棋の名門リコーあたりが復活しそうですね

    • by Anonymous Coward

      電王トーナメントってのが昔あってだな、まさにハード縛りだったんだけど
      そのあとの人vsPCの電王戦がなくなってしまったので、自然消滅してしまったんや

    • by Anonymous Coward

      どういう縛りになるかによって有利になるアルゴリズムや不利になるアルゴリズムというのは必ず出てくるので、そのレギュレーション内での収束が起きることになりますね。
      極端なことを言えば「8bit縛りなら金をつぎ込んで演算ユニットは8bitだけどアドレス空間は64bitでGHzクロック動作する競技用8bitCPUでもいいんだよな?」というアプローチもありますw

      • by Anonymous Coward on 2020年10月30日 21時34分 (#3916392)

        「PIC縛りで」っていったら、実現に挑戦する猛者が現れるかな?

        • by Anonymous Coward

          MIPSのやつでも大したことはできないかなぁ
          昔のスーファミくらい?

      • by Anonymous Coward on 2020年10月31日 21時49分 (#3916726)

        先生8088や68008は8bitにはいりますか

      • by Anonymous Coward

        なるほど差が生じないように明確なレギレーションが必要なのか。
        ファミリーベーシックから追加ハードウェア不可とか。

        #将棋ソフト組めるか?

        • by Anonymous Coward

          一般論としては差が出ないように縛りをきつくするほど「この方法以外では勝負にならない」といった収束が早くなります。
          だから技術的発展の余地も残したい自動車レースなどではしょっちゅう改定が行われ、その改定による有利不利があるから陣営同士の駆け引きが生まれたりします。
          「公平さの確保」と「別のアプローチにチャレンジできる余地」のさじ加減が難しくて揉めやすい

    • by Anonymous Coward

      FP8でGPU使った推論エンジン回すのは有りですか?

    • by Anonymous Coward

      8bit,100Whクラス、
      16bit,200Whクラス、
      32bit,1kWhクラス、
      64bit,10kWhクラス、
      無制限クラス、
      とかでしょうか。

  • by Anonymous Coward on 2020年10月30日 21時29分 (#3916389)

    ここ最近で最も強さに貢献してかつプログラム的にもおもしろいNNUEに一切触れていないのか
    コンピュータチェスでも話題だというのに

    ここに返信
  • by Anonymous Coward on 2020年10月31日 0時26分 (#3916454)

    数年前は、ソフトウェアだけで強くなるから棋士の関与は無くてもいいような状勢もあったように思うが、開発者と棋士がタッグを組んでという話が出てくるのは、興味深い。

    ここに返信
  • by Anonymous Coward on 2020年10月31日 1時22分 (#3916463)

    いくらいろんな選択肢が予想できるようになったとしても果たして人の脳はそれをうまく扱えるのだろうか
    確かに彼は天才かもしれないしそれを成し遂げるかも・・・とは思うのだが今以上の膨大な選択肢を前にした時にある程度の段階で従来のPCの様に思考停止状態にはならないのかとね
    それこそそれしか考えられないようなマシーンにならないかとか
    羽生さんが一時チェスに傾倒したように彼にも別のものが必要なのかも、まあ今はではないだろうし余計なお世話だけど

    ここに返信
    • by Anonymous Coward

      ある局面で良い手が一つだけで他はかなりまずいという場合でも、「誰がどうみても同歩でしょう」みたいなのから、一見悪そうだけど際どい綱渡りの末最終的には良いというものまで色々ある。

      人間が指す場合は後者のような局面は避けたいので、実際にはもっと手前からそっちへ陥らないように手を進める。しかし、とにかく評価値最善で手を読ませると後者に陥ることが多いので、事後研究には使えても事前研究には無理がある(本番では怖くて指せない読み筋を示してくる)。対局後の棋譜解析用ならともかく、事前研究用には人間が指せそうな手の中で最善、みたいな評価も要るのではないか。まあ、プロ棋士が指せてもアマチュアには指せなかったりするので、適切なレベル設定が難しいが。

typodupeerror

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

読み込み中...