Hatena::ブログ(Diary)

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

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

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

 | 

2014-11-22 何故私は駒得のみの評価関数の将棋に魅せられるのか

[] 何故私は駒得のみの評価関数将棋に魅せられるのか  何故私は駒得のみの評価関数の将棋に魅せられるのかを含むブックマーク  何故私は駒得のみの評価関数の将棋に魅せられるのかのブックマークコメント


駒得のみの評価関数将棋ソフトとして私が作った「ひよこ将棋」がある。将棋ソフト開発者のなかで「ひよこ」と言えば「駒得のみ」の代名詞ともなっているぐらいである。私は駒得のみの評価関数将棋ソフトに命をかけていると言っても良い。


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


「でも駒割の点数は棋譜から学習を使ったのでしょう?」と言われそうだが、先日公開した「駒得のみの評価関数にしたやねうら王」では点数は私が適当に決めた。角と馬との点数の差は300点である飛車と龍との点数の差も300点である。本当、テキトーである


それでもそこそこ強く、コメント欄にもあったように、いまどきのPCで対戦した場合3分切れ負けであれば、将棋ウォーズ3段程度ではなかなか歯がたたない。5年ぐらい前のオンボロPC持ってきて「勝てました」とか言ってる奴は、ちゃんと最新のPCでやってみて欲しい。(できれば16コアのPCで…)


当然のことだが、ソフトの棋力というのはPCで変わる。駒得のみのやねうら王であれ、5年前のオンボロPC最先端の16コアのPCとではR400ぐらい違ってくる。これくらい違うと(アマチュア初段ぐらいにとっては)飛車一枚ぐらいの差であり、めっぽう違うのである。5年前のPCでやって、「確かに弱いっすねー。駒得だけだと人間相手だとこんなもんっすかねー。」とか言ってた人も、最新のPCで対戦すると「何これ?これが同じソフトっすか?どう見ても別人(別のソフト)じゃないっすか…」などと言い始める。


自分より「弱いか」「強いか」でしか推し量ることの出来ない人たち(ほとんどの将棋ファンはそうなのだが…)にとっては、自分より弱いソフト自分より強いソフトとが同一であるとはなかなか思えないものだ。しかしその見方は間違っているのである。強さはPCの性能だけでも大きく変わるのである


そもそも何故私はこんなにも駒得のみの評価関数将棋ソフトに魅せられるのであろうか。


話は25年ぐらい前に遡る。当時はファミコン森田将棋が発売されたばかりで、近所の駄菓子屋にいくと店主のおっさんファミコン森田将棋をしながら店番をしてたりしたわけだ。そのおっさんは、「森田将棋よえーなー。こりゃ、(森田将棋が)百万年考えても俺には及ばんなー。」とかブツクサ言いながらやっているわけである


私は子供心に、その考え方は間違っていると思ったわけだ。


当時、森田将棋でもnpsは10kぐらいは出ていたはずである。100万年と言うと、探索できる局面数は、864T(テラ)局面(864000000000000局面)である人間プロ棋士でも1秒間に100局面すら読めない。圧倒的な差である


「燕雀 いずくんぞ 鴻鵠の志を知らんや」という言葉がある。この言葉は「ツバメスズメのような小さな鳥にどうしてオオトリやクグイのような大きな鳥の志が分かるだろうか。小人物には、大人物の大きな志は分からない。」という意味で使われるが、同様に、1秒間に100局面すら読めないような人間が、駒得のみの評価関数であれ864T局面も読んだときに、どういう指し手になるか、その振る舞いを事前に予想することは不可能なのである。それこそ人智を超えているのである。当然棋力のある人が見れば、その演算の結果、指された指し手の意味について思いを馳せることは出来るし、その指し手がどれくらいの棋力の指し手であるかを評価することは出来るのだが。


やねうら王の場合、駒得のみであれば16コアPCで秒間20Mノードほど読めるので、500日ほどあれば森田将棋の百万年分ぐらいになる。言うまでもなく森田将棋は駒得のみの評価関数ではないので同じノード数を読んだとき森田将棋のほうが強いわけである。(探索技術の差はあるが、評価関数の質が違うのでそこは無視できる。あと、置換表用のメモリはそこそこあるものとする。)


ということはすなわち、

森田将棋の百万年考えたとき >>> 駒得のみのやねうら王が500日考えたとき >>> 駒得のみのやねうら王が10秒考えたとき >>> ウォーズ3段

という不等号が成り立つので、森田将棋が百万年考えるとアマ三段程度では到底太刀打ち出来ないということになる。そのことを駒得のみの評価関数のやねうら王が昨日、証明したわけである。たぶん森田将棋を百万年考えさせると、余裕でプロレベルに到達するだろう。


事ここに至っては「下手の考え休むに似たり」ではないのである。百万年分の「下手の考え」はプロをも凌駕するのである


ちなみに、上で書いたその駄菓子屋はすでに取り壊され、不動産屋になっている。あの駄菓子屋おっさんを駒得のみの評価関数将棋ソフトで打ち負かすのが私の積年の思いであったが、どうやらそれは叶いそうにない。

玄関口王玄関口王 2014/11/22 09:30 相変わらずなぞなぞ認証のくせになぞなぞじゃないですね・・・
昔のファミコンよりも探索以外弱いっていうのは信じられないです。
十数年前の技術ってそこまで凄かったんですか?
一般人はファミコン将棋ソフトは凄く弱いという印象ですが、プログラマーの間ではどんな評価を受けているのか。。(今と比べて)

yaneuraoyaneurao 2014/11/22 10:04
> 昔のファミコンよりも探索以外弱いっていうのは信じられないです。

「森田将棋の評価関数」と「駒得のみの評価関数」とを比較しています。当然前者のほうが格段に優れています。

p-pp-p 2014/11/22 11:01 人間側が稲庭戦法をした場合、森田将棋とか駒得だけのソフトでも100万年あれば余裕で突破できるんでしょうか?

yaneuraoyaneurao 2014/11/22 12:25 ↑もちろん余裕です。(普通の評価関数の)やねうら王も思考時間10秒だと打開しにくく、30秒だと打開できます。

hogehoge 2014/11/22 15:37 むしろ、ファミコン程度のハードウェアという制限のもとなら、将棋ソフトはどのくらいまで強くなれますか?
思考時間は百万年でも千億年でもあるとして。

yaneuraoyaneurao 2014/11/22 16:06 ↑*1 ファミコンだとメモリが足りないので反復深化法は使えないです。ゆえに普通にいきなり深さ固定で探索することになります。それ以外はいまの探索手法は使えるので、まあ、1手深くなるごとの平均分岐数は5ぐらいには抑えられると思います。評価関数は特定の2駒相対ぐらいならメモリに収まります。

ファミコン千億年が1秒で終わるPCがあるとすれば1秒間に10k × 千億 × 365日 × 86400秒のノードを1秒で調べることが出来ます。平均分岐数が5なのでlog(5)して、32ぐらい。つまり32手ほどの深さを1秒で調べることが出来ます。評価関数の質がいまの最新のやねうら王より悪いので5手分ぐらい損をするでしょうけど、それでも深さ27の探索が1秒だと考えることが出来ます。

今回の電王戦PCでやねうら王の場合、1秒だと深さ22ぐらいしか読めないので、いまのやねうら王よりは強いことがわかります。おそらく、R4000〜R5000クラスだと想像します。

ジャックジャック 2014/11/22 20:35 将棋電王戦 番外編
ファミコンの森田将棋VS駄菓子屋のおっさん
持ち時間は各100万年・秒読み1分。
解説は羽生善治四冠
ニコ生で完全生中継!

hogehoge 2014/11/22 23:17 ハードウェアの制約で、ある程度で強さが頭打ちになるのかなと素朴に思ったのですが、そうでもないんですね。意外でした。

くわしい説明ありがとうございます。

YakitoriYakitori 2014/11/23 07:03 あー、やっぱ自分馬鹿でしたね。
"下手の考え休むに似たり"でしたか。
日本語ってムズカシイ!!!!

YakitoriYakitori 2014/11/23 07:48 アルゴリズム的地平ってあると思います。
そのほとんどは無配慮によるもので想定外にはどうしても弱いものだと思います。
人間どうしても線形予測に頼りがちですが、森田将棋を設計した当時の配慮は今でも通じるのかちょっと興味ありますね。
自分自身も自分の成長を線形予測で描き、こうあろうとは思いましたけど、あの時思った線形上に自分はいるのでしょうか。
ちと、ノスタルジックな気分になります。
やねさんの配慮がプロを上回ることを期待しています。勝手にね。;)

むずでょむずでょ 2014/11/23 11:31 駄菓子のおつりが はい、500万円 の時代なんだぜ☆ww

将棋ソフトといろいろ対局して 強い、弱い表を作ろうかと思っていたんだが、
自分のPCの性能によるのか☆ww うーむ☆ww

茶田茶田 2014/11/24 23:20 もし将棋の神様がいたら、つまり将棋のすべての局面がどちらが勝ちか知っていて、先手番を持ったら必ず勝ち、後手番を持ったら最も長くなる順を選び(毎回同じ順だと学習されるから序盤は1番から3番目くらいの手をランダムに選ぶべきか)、相手が間違えたら持将棋か千日手か勝ちに持ち込む物体があったら、レートはどのくらいになるんでしょうね。どこまで将棋ソフトはそれに近づけるのか…

yaneuraoyaneurao 2014/11/25 10:00 ↑今日の日付の記事で間接的に回答しときましたー。

mswarmswar 2014/12/12 17:58 86クロッカーズという漫画↓に、FPS対戦でアドバンテージ得るために、液体窒素でPC冷やしてオーバクロックしながら闘う描写(暴走しないように、温度と3D描画のシーン付加状況見ながらフレームレートをギリギリまで上がるようコントロール)があるんですが、それ思い浮かべましたw
ttp://jumpx.jp/w/87/

mswarmswar 2014/12/12 18:04 あ・・・つい、「86」にしてしまった・・・。「87クロッカーズ」でしたね。これはZ87チップセットとかから来てるのかな?(OCC漫画という事で)

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

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