Hatena::ブログ(Diary)

やねうらお−ノーゲーム・ノーライフ このページをアンテナに追加 RSSフィード

GT-Rの買取ならここですわ。どこよりも高く買取ってもらえるはず。お勧め!GT-R 買取
電王戦出場記念! 書籍化されたで! 監修したで!(`ω´) 絶版なってしもた Kindle版で復活!! 記事書いたで!
解析魔法少女美咲ちゃん マジカル・オープン!

YaneuLabs / やねうら王公式 / やねうらおにメール / twitter / プロフィール

 | 

2013-12-15 電王戦に向けて

[] 電王戦に向けて  電王戦に向けてを含むブックマーク  電王戦に向けてのブックマークコメント


記者会見後、私のコンピューター将棋熱が復活してきたのでいまからだらだらとコンピューター将棋のことを書きます。長文になると思いますが、お付き合いいただければと思います。


■ 電気代 vs PC


電王戦記者会見から戻ってきたら、部屋中焦げ臭い。原因を調べてみたところ棋譜から学習に使っているマシンの電源部分に使われているコンデンサーがポップコーンのように弾けたようだ。


性能の悪いPCだと電気代がもったいないので、長時間動かすための新しいPCが欲しかったところであるから、「こりゃちょうどいいや」と思い、新しいPCを新調することにした。


CPUはいさらIvy BridgeもないだろうからHaswellを選択。Core i7 4770(欲を言えば4771)でビデオカードは要らなくて、SSDは128GBとか64GB程度でも良い。HDD不要メモリは16GBぐらい欲しい。どうも、そういうアンバランスな性能のPCは売っていないようでBTOで15万前後する。部品だけ買って組み立ててれば7万円ぐらいで済むのに…。


f:id:yaneurao:20131215224937j:image


ということでAmazonさんで部品を購入。PC組み立て終わって、棋譜から学習が一段落したら、将棋倶楽部24にやねうら王を放流しますね。



■ プロ棋士は同系のソフトである理論


コンピューター将棋で同系のソフト同士の対戦は持ち時間わずかに多い側が大きく勝ち越す。これは、相手の読み筋をあらゆる変化において少しずつ上回るので、それが勝率として反映するのだと言われている。


やね「それからすれば人間なんてすべて同系のソフトとみなせるんじゃないの?」

山本(ponanza作者)「それはいくらなんでも乱暴でしょう。αβ探索をしているソフトが全部同系だと言ってるようなもんですよ。」

やね「そうかなぁ。人間って神経伝達物質信号をやりとりしている以上、生物学的な限界があるし(1秒間に読める局面はおそらく50局面ぐらいだろうし)、脳の学習アルゴリズムとか、生物学的には全員が同じ学習の仕組みなわけでしょ?そういう意味では、npsはすごく低く、評価関数馬鹿かいようなソフトとして分類できるんじゃないのかなぁ…。」


ともかく、プロ棋士がすべて同系のソフトとみなせるとすれば、本当は実力的にはわずかな差なのに(わずかに探索速度が速いだとか、わすかに大局観に優れているだとか)、勝率上の大きな差になっているというのはありえそうな話だと私は思うのだが、コンピューター将棋開発者のなかでもそのへんは意見がわかれるところである



■ 思考時間レーティング関係


Bonanzaで思考時間が倍になるとR150程度の上昇である。R2000〜R3000あたりまではだいたいそんな感じだと思う。R3000突破してからも思考時間が倍になるごとに同じようにR150ずつあがるかどうかはデータが少なくて何とも言えない。そもそも人間でもR3000以上のプロ棋士が一握りしかいないのでそのへんはよくわからない。


私は駒得のみの評価関数将棋ソフト(ひよこ将棋)を使ってfloodgateにて実験したことがあるのだが、持ち時間が倍になるとR50〜100ずつぐらいあがるのだが、R2100ぐらいのところに壁があり、そのあと持ち時間を数倍にしてもほとんどレーティングが上がらないことがわかった。たぶん、駒得だけでは押さえ込まれて負けるので、このあと何十倍かの思考時間にしたところで勝率にはほとんど変化がないだろう。


このように、大局観(評価関数)が悪いと長時間にしたときにどこかで勝率が伸び悩むというのはありうる。


このような理由から、15分の持ち時間でAに勝ち越すBというソフトがあったとして、これを2時間ぐらいの持ち時間にしたときに、今度はAの勝率のほうがあがってBに勝ち越すということはありえると私は思うのだが、これも開発者によって意見が分かれる。


例えば、NDF(というBonanzaから学習部分を改良したソフト)が長時間になったとき勝率が悪いのは何故なのか。


私は、NDFはBonanza6.0ベースであり、定跡部分もBonanzaそのままでBonanzaは定跡を抜けたときに悪くなっているような定跡が結構入力されているので、定跡を抜けたところで優劣がついているのではないかと考えている。


定跡を抜けたところで仮に先手が+300点だとしよう。ここからアマチュアのヘボ同士が指し継いだ場合勝率は5割ぐらいに落ち着くだろう。ところがプロ棋士同士ならば、先手のほうが7割以上勝ち越すかも知れない。このように、強くなればなるほど序盤での形勢の悪さをそのまま拡大して勝ち切ることが可能になるわけである


長い持ち時間ということは、双方のソフトにとって棋力は上がるわけであるから、序盤で形勢が傾いていればそのまま勝ち切ってしま確率は上がるわけで、同じ棋力同士のソフトであっても欠陥のある定跡が入っている側は長い持ち時間になれば勝率が落ちる、というのはありえる。


NDFが本当に上記の話に該当するのかどうかはわからないが、長時間floodgateの結果などから強さを判断するのはなかなか難しいということである



■ あと2,3年でコンピューター将棋はどれだけ強くなるのか


今回の電王戦PCスペック固定化したのは、川上会長いわく、「(強さに)再現性を持たせたかった。スペック固定化されていれば、何年かして、過去電王戦ソフトとの対局ということも可能になるじゃないですか」とのことだった。


ここ近年はコンピューターチェスのStockfishというプログラムの探索部を参考に、コンピューター将棋進化してきたが、Stockfishはもう以前ほど改良は進んでおらず進化のペースが落ちている。もうやり尽くされた感がある。


そういう意味では、コンピューター将棋はあと数年ではそうそう進化せず、3年後に「今年の電王戦の優勝ソフトと3年前の優勝ソフトponanzaと対局させてみました」みたいなエキシビションマッチをしても、3年前のponanzaに負けてしまうということは十分ありうる。


そんなことを私は漠然と思っていたのだが、電王戦記者会見後に今回電王戦に出場する開発者6人で話し合ったところ、2,3年あればまだR300ぐらいは伸びそうだと私は感じた。


NDFの作者がNDF学習アルゴリズムについての論文準備中らしく、これが発表されると、どのソフトR100ぐらい伸びそう。

・Stockfishの探索部分をコンピューター将棋向きにチューンすることでまだR50ぐらい伸ばせそう。

・評価関数の形が何か改善されてまだR50ぐらい伸びそう。

CPUの多コア化でR100ぐらい伸びそう。


■ 長時間になると人間有利なのか?


Bonanzaは思考時間が倍になるごとにR150程度上がるとして、人間側は思考時間が倍になるとレーティングはどれくらい上がるのだろうか?


これもデータがなくて何とも言えないが、人間の大局観(評価関数)は極めて優れているので、Bonanzaなんかの比ではないはずだ。つまり、R300ぐらい上がる…としよう。


このとき、仮に15分の持ち時間では人間側がコンピューターに負け越すとしても、持ち時間が5時間(20倍)になれば、話は違ってくる。


ちょっと計算してみよう。プロ棋士トップ集団将棋倶楽部24でのレーティングR3000〜R3200程度だとして、ponanzaはR3453。ponanzaは同じぐらいのレーティングの対戦相手がおらずRが伸び悩んでいた意味があるので、実際はR3700級であろう。


ところが持ち時間20倍になると、どうなるのか。ponanzaも持ち時間が倍になるとR150のアップだとすると、


人間レーティングは、R3200 + log 2(20)×R300 ≒ R4497

ponanzaレーティングは、R3700 + log 2(20)×R150 ≒ R4348


なんとほぼ互角ぐらいになるのである


ただし、コンピューター場合局面を覚えておくためのメモリとして60GB程度使えるが、人間場合、そんなに大量の局面を覚えていられないので、持ち時間5時間というのはほぼ限界に近いだろう。(例えば、持ち時間を8倍にしたからと言って、さらにR300×3=R900の上昇が見込めるかというとその辺は怪しい。)



■ 大晦日のツツカナVS船江恒平五段は、どちらが強いのか


プロ棋士間でのレーティングは1200〜2000のようですが、これが将棋倶楽部24でどのあたりに写像(数学的な意味で)されるかというのは、興味深いところです。


将棋倶楽部でのレーティングが既知であるいくつかの棋士(実名は伏せる)からその分布を調べると…

プロ1200 = R2300付近

プロ1500 = R2800付近

となり、船江五段はプロ棋士レーティングで1663らしいので、

プロ1663 = R3072付近

あたりではないかと推察されます。


ツツカナの強さですが、まず、ponanza将棋倶楽部24でR3450を記録しています。対戦相手がいなくてRが伸びないだけで、実際はもう少しRは高いと思います。しかしあの記録は8台ぐらいのクラスターで出した記録だったと思うので、そのへんを考慮すると1PCではR3300前後ぐらいかと思います。


次に、ponanza > ツツカナ > Blunderが成り立つとして、BlunderはponanzaよりR278ほど下らしいので(下山さん談)、ツツカナはponazaとBlunderの真ん中あたりだとすると、R3150あたりではないかと思います。


ただし、これは将棋倶楽部24の持ち時間でのレーティングでの話なので、4時間の持ち時間ですと…上で私が書いた「人間は2倍の持ち時間でR300上がる」説を信じると…。


・船江五段 : R3072 + log(2)16 ×R300 = R4272

・ツツカナ : R3150 + log(2)16 ×R150 = R3750


ツツカナのほう、持ち時間2倍ごとにR200ぐらい上がるとすると、

・ツツカナ : R3150 + log(2)16 ×R200 = R3950


人間のほう、持ち時間が2倍になってもR200ぐらいしか上がらないとすると、

・船江五段 : R3072 + log(2)16 ×R200 = R3872


まあ、いずれにせよなかなかいい勝負が期待できるのではないでしょうか。

私の見立てでは船江五段、やや有利と言うところです。

ジャックジャック 2013/12/16 01:46 大晦日のツツカナVS船江恒平さん 
どちらが勝つと予想しますか?
よかったら予想を聞かせてください。
条件は前の条件とまったく一緒らしいです。
船江さんはアップデートされてますが(笑)

yaneuraoyaneurao 2013/12/16 02:26 ↑本文に追記しました。私は船江五段を応援してます!

ジャックジャック 2013/12/16 02:54 予想ありがとう御座います。

BigHopeClasicBigHopeClasic 2013/12/17 08:27 将棋棋士レーティングサイトには早指し限定のレーティングもありますので、
もし24のレーティングと比較するなら、こちらと比較したほうがよいのでは
ないでしょうか。
http://homepage3.nifty.com/kishi/catR/kotoshi_3.html

特徴としては
・全棋戦レーティングよりも上下差が少ない
ということで、これはサンプル数の少なさと、早指しの方が紛れが出やすい
(早指しこそ実力差が出る、という見解もありますが、やはり前者の方が大きいかな)
ということなのかなと思います。

電王戦出場棋士でこの辺が極端なのが阿部四段と船江五段で、
阿部四段 トータル41位、早指し11位
船江五段 トータル32位、早指し70位
となっています。

棋士レーティング→24レーティングの分布で、早指しレーティングを用いる必要性は
あまりない感じでしょうか。所詮は推定にすぎないといえばそうですが。

浜居 双輪浜居 双輪 2013/12/17 22:40 「プロ棋士は同系のソフトである理論」
おお、面白い。逆に棋士から見たら、
「将棋ソフトは皆、同系の棋士である理論」
も成り立つかも。どれも早指しの神、終盤の鬼。
よく近づいて見ると、棋士もタイプに分かれ、ソフトも系統が違っているけれど、
棋士とソフトの違いが大きい分、個々の違いは小さく見えるのかもです。

yaneuraoyaneurao 2013/12/18 02:53 ↑*2 なるほど。早指しレーティングと長時間でのレーティングとでは個人ごとにレーティングの浮き沈みがあるのが興味深いですね。
↑*1 そうですね。ソフトはソフトごとに棋風の違いはありますが、それでも大別すると終盤型の棋士ということになりそうですね。

ぼくはおばけのQたろうぼくはおばけのQたろう 2013/12/19 00:03 何年後かにやねうら王が羽生さんを打ち負かす事を期待しています。

同系の話をするのなら「同系のソフトはどの程度「次の一手」の結果が一致するのか」みたいな事をした方がいいような気がしますね。

「15分の持ち時間でAに勝ち越す・・・」くだりは、ソフトBは、評価関数が優秀なのか、重いのか軽いのか。手の延長が素晴らしいのか。Stockfish的な所が素晴らしいのか。そのくらいの仮定をしてもいいと思います。

今後のコンピュータ将棋ですが、ソフト的には疎結合マルチプロセッサについてはまだまだ開発の余地があると思います。ハード的には30Mbyteのキャッシュを持つプロセッサや 128〜256GB/secのメモリ帯域のHBM(High Bandwidth Memory)も徐々に見えてきました。

蒼元蒼元 2013/12/19 22:25 先日の対戦カード発表の記者会見時に、
対策として、事後検討を行うとおっしゃっていたということは、
対局後に検討を行うことに、佐藤六段からも同意を得られたということでしょうか?

yaneuraoyaneurao 2013/12/20 08:31 ↑*2 疎結合マルチプロセッサは、置換表が共有できないので、ずいぶん探索効率が落ちるんですよね。疎結合マルチプロセッサ向けの探索技術自体はまだ現在の技術からかなり改良の余地があるとは思うのですが。個人的には密結合のままmany core(64コアとか256コアとか)になってくれたほうがコンピューター将棋は幸せになれると思うのです。とは言っても他のcoreと共用したいのは置換表だけですので、これがglobal memoryとしてそれぞれのcoreからそこそこの速さでアクセスできるならば疎結合と言えども実質的には密結合とみなせますし…。

↑*1 局後検討等の貸出期間中の学習に関しては電王戦トーナメント中に川上会長が「むしろ推奨」みたいなことをおっしゃっておりまして、その発言はニコ生のタイムシフトで見れるかと思います。また、やねうら王の学習設定・局後学習方法については説明文として書き、電王戦のスタッフにお伝えしました。佐藤紳哉六段の意向については私はわかりません。佐藤紳哉先生、どうも機械は苦手みたいなので対局はほとんどされないまま当日という可能性もありますし、私のほうはあまり局後学習にはこだわっておりません。

ぽぺぽぺ 2013/12/21 02:07 せっかくの対決ですし、オモシロ対決にも注目が集まってるんじゃないでしょうか。
是非、電王戦の後世に残るような超絶面白いギャグを期待してます。

っていっても、電王戦が毎年あるとすると、強いソフトは毎年出場することになるんですかね?
人がやって毎年挑戦者が変わるトーナメントに比べると、毎年出場ソフトがある程度固定になるのは、若干つまらない気も・・・

yaneuraoyaneurao 2013/12/21 06:04 ↑来年はまたガラッと勢力図が変わると思いますよ。Aperyは間違いなく入賞するでしょうし、NDFの学習メソッドを使ったソフトが出るかも知れませんし、Blunderの出場もありえますし。やねうら王もあと二回りは強くなってるでしょうし。来年の電王戦もまたドラマがあるんじゃないですかね。

.. 2013/12/24 03:35 当日の服は誰に買ってもらいますか?
お嫁さんが失敗したので、次はお母さんでしょうか
また滑り芸楽しみにしています!

ぽぽんたぽぽんた 2013/12/26 22:20 4Gamersの川上さんとの対談記事up読みましたー

一番驚いたのは「まいにちあゆみは」やねうらおさんだったんですね。
思わず画面の前で「お前だったんかーい」と思ってしまいました。

しかし、ROの解析系を全くされてないのは意外でした。
プロトコルが全く暗号化されてなかったので、0から解析しても(いい悪いはさておき)ユーザイベント用のサポートBOTとか結構簡単に自前で作れたりして、色々面白かったですけどね。

yaneuraoyaneurao 2013/12/27 09:58 ↑*2 当日ですか?当日も、もちろん例の“一張羅”ですよ?!
↑*1 ROのことは今日のエントリーでちょっと書いてみました。

蒼元蒼元 2014/01/10 11:40 電王戦もやねさん購入のPCもHaswellですが、AVX2を使用することで、強くなるのでしょうか?
プエラは、ソースコードを見る限り、AVXを使用しているみたいですが

yaneuraoyaneurao 2014/01/10 14:25 AVX2用のコード、私は書いてないですね。SSE4.2を使うコードは結構書いてあるのですが。

AVX2用に特化したコードでいくつかは最適化できる部分もあるのですが、この手の最適化による速度向上はせいぜい全体の数%程度にとどまるので、強さへの寄与からすると誤差と言えるのではないでしょうか。

こういう部分に手を入れるよりは、他に優先すべき課題がたくさんあるので、バグを産む可能性があったり、ソースコードの保守性を下げたりすることはせずに、なるべくソースコードを綺麗に保ちながらガンガン改良していくのが最近の主流なのかなと思っております。

dryCdryC 2014/01/14 19:54 AMDが推し進めている『HSA』は,GPGPUの敷居を下げるものになるような話を聞きましたが,『やねうら王』での活用は考えていますか?

yaneuraoyaneurao 2014/01/15 03:51 ↑HSAのアーキテクチャ自体はGPU/X86が統合されたSoCっぽいので、だとしたらコンピューター将棋で使えるかも知れませんね。今後が楽しみです。

トラックバック - http://d.hatena.ne.jp/yaneurao/20131215
 | 

1900 | 01 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 06 | 08 | 10 | 11 | 12 |
2015 | 01 | 02 |


Microsoft MVP
Microsoft MVP Visual C# 2006.07-2011.06