Hatena::ブログ(Diary)

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

tokutoku777 看護師 求人 薬剤師 求人 脱毛サロン/脱毛器 育毛剤 青汁 自動車保険/査定 債務整理 かんごし年収や条件で選べる情報館 通販 カニ 徹底比較カニラボ かに_通販_ウマほくカーニルン777
電王戦出場記念! 書籍化されたで! 監修したで!(`ω´) 絶版なってしもた Kindle版で復活!! 記事書いたで!
解析魔法少女美咲ちゃん マジカル・オープン!

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

看護師 求人 薬剤師 求人 脱毛サロン/脱毛器 育毛剤 青汁 自動車保険/査定 債務整理 ナース 転職 求人 求職 カンゴシーズ ナース 求人 マスターサポート ナース 求人 マスターサポート ナース求人ジョブチェンジ/
 

2014-12-13 時代はまだゲームセンターあらしに追いつかないのか

[] 時代はまだゲームセンターあらしに追いつかないのか  時代はまだゲームセンターあらしに追いつかないのかを含むブックマーク  時代はまだゲームセンターあらしに追いつかないのかのブックマークコメント


私が小学生のころに『ゲームセンターあらし』という漫画が流行った。(1979〜1983年)「炎のコマ」と言う「スティックを高速で操作することでプレイヤー操作するキャラクターが敵から攻撃を潜り抜ける」というインチキまがいの技が出てくる。


私は小学生にして、その漫画に出てくる平安京エイリアンぐらいのゲームならオールアセンブラで余裕で作れる程度には天才児(?)だったので、「いくらスティックを高速に動かそうと、1回の描画ごとに1回の入力受付しかしないのだから、単に入力が取りこぼされるだけだろ。所詮、漫画だな。」と小馬鹿にしたものだった。


ところが、その考え方は間違いなんじゃないかと最近思うわけだ。


キーボード入力のようなユーザー入力は取りこぼしてはならないのであるユーザーは1秒間にたかだか10文字程度しか入力できない。キー入力の遅い人は数文字が限界かも知れない。それなのにCPU負荷が高いときやDisk I/Oの負荷が高いときキー入力を時々取りこぼすわけである現在CPUは数GHzというクロックに達しており、1秒間に1,000億回程度の浮動小数点演算が出来るくせに、たかだか1秒間に10回程度の入力を取りこぼすとか、ありえない。そのありえないことが現代においていまだに起こりうるのである


単にユーザー入力に関する割り込み処理の実行プライオリティを上げれば良いという話ではない。なぜなら、例えば、タブレット端末ではユーザー入力を行なうためにはソフトウェアキーボードの表示処理が必要で、Disk(SSD)への読み書きが忙しいからと言って、キーを取りこぼしたり、英語日本語キーボード切り替えに時間がかかったり、日本語変換に時間を要してはならない。ならない…が、実際はそうなるのである


ゲームセンターあらしから30年以上経ってるのにユーザー入力すら満足にさばけない欠陥OSが蔓延っているわけである。かと言ってユーザー入力に関するタスクの実行プライオリティを上げれば良いかというと、そういう単純な問題ではなく、本気で解決しようと思うといわゆるリアルタイムOSのように、高優先度のタスクが確実に実行されることを保証するための仕組みが必要になる。


ゲーム場合でも画面描画の更新回数だけしかワールド更新を行わず、キー入力も受け付けないゲーム多数派であるが、格闘ゲームなんかだと、画面描画は60fpsより遅れようともワールド更新(と入力)は1/60秒ごとなのを保証する作りになっているゲームもある。(10年ぐらい前に私がSNKKOF作ってたプログラマーの人たちと仕事をしたときも、そういう話が出た。)


もっと繊細なコマンド入力音ゲーのような超絶タイミングを必要とするゲームならばキー入力だけ画面描画より細かいインターバル入力を受け付けるのはおかしくはない。(まあ、入力デバイスUSBでぶら下がってたりするとどこまでの精度が保てるかという問題はあるが…。)


そう考えると、『ゲームセンターあらし』のように開発者の想定を超えた激しい入力がされたとき開発者想定外挙動をする(バグる?)ようなゲームがあっても、まあ、おかしくはないのかな…。


ゲームセンターあらしから30年以上を経て、あの漫画は自分のなかでは「そんなんありえへんわ!から、「ありえるかも…」に変わりつつある、という話でした。

amuseumamuseum 2014/12/13 10:34 入力遅延の観点から

>画面描画より細かいインターバルで入力を受け付ける

を行っている例としてこんなのを紹介します
http://www.ouma.jp/ootake/delay-j.html

Direct某の問題もあるようですが、内部処理をVsync以上に細分化する意味もちょっとはあるということで。

yaneuraoyaneurao 2014/12/13 10:52 ↑その例は、Vsyncと同期させる画面描画が前提にあって、かつ、次のワールド更新のなるべく直前の入力状態が取りたいがために「約1/240秒毎に休みを入れる」ことで入力のpolling周期を細かくしているようなのですが、ここが1/240秒である意味がよくわからないです。これ以上細かくしてもCPU負荷が高くなるだけで意味がないという判断なんでしょうか…。別にこの構造なら入力用にスレッド一つ起動して、そいつに処理させてもいいような気がします。

timelimitstimelimits 2014/12/13 14:14 昨今のリッチなゲーム機向けシステムは

> 別にこの構造なら入力用にスレッド一つ起動して、そいつに処理させてもいいような気がします。

この構造になってますね。これをシステムレベルでやってます。
入力のリスナーは複数いるため、それぞれのリスナーの都合でデバイスに問い合わせると高コストです。
ドライバーがデバイスのポーリングを描画フレームよりも数倍高速に行い、
リスナーはドライバの溜め込んだデータを参照する感じで。

yaneuraoyaneurao 2014/12/13 22:35 ↑なるほろ。音ゲーの場合などは入力遅延の問題よりは、押されたタイミングと曲の再生ポジションとの差がどれだけかという問題が大きいので、曲の再生遅延は事前に計算できるものとすると、押されたタイミング(時刻)は低レベルのドライバが1/10ミリ秒ぐらいの精度で記録しておいてくれると嬉しいのですが、そういう作りになっている入力デバイス(+ ドライバ)ってないもんですね…。1/60秒単位で正確に押しても満点とれないような糞判定の音ゲー多すぎ…。

Ta(ryTa(ry 2014/12/15 09:15 最近のタッチパネル端末の上で行うゲームはゲームになってない気がする。

こばこば 2014/12/15 19:12 ソフト的には1μS単位でもいいでしょうけど、物理的なボタン(ジョイスティックのスイッチを含む)にはチャタリングが付きものですから、そっちを改善しない限り10msくらいが限界なんじゃないでしょうか。

yaneuraoyaneurao 2014/12/15 23:52 ↑30年ぐらい前に、ジョイパッド(ファミコンのコントローラー型のPCに接続するデバイス)だと計測したときに結構なチャタリングがあって5〜10msぐらいの幅で積分してやらないと入力状態を2度検出してしまっていました。しかし、近年のジョイスティックのスイッチはそのへんが改善されているのか、1ms間隔でポーリングしてもチャタリングは検出されないです。ジョイスティック側に積分回路が入っていて、チャタリングは完全になくなった状態の値しか返してこないのかも知れませんが。だとしたら、この積分回路分の遅延は潜在的に発生していることにはなりますが、ポーリング間隔は限りなく小さくしておくほうが、入力されてからの遅延時間は小さくなることにはなります。

timelimitstimelimits 2014/12/16 01:25 チャタリングについてはハードウェアレベルである程度回避している様子です。

チャタリングは信号の"跳ね返り"のような現象です。強く下に叩きつければそれだけ激しく
跳ね返りますので、一般的には電流値を調整したり抵抗やコンデンサでゆっくり落とすようにしたりとか。
ヒステリシス特性のある端子につなぐとかも効果的でしょうね。

ななしななし 2014/12/17 21:40 音ゲーでms判定なのに入力が毎秒60回だったりすると悲惨ですね。ノーツ毎に見た目と判定の前後幅が異なるカオス状態です。
ただ60fpsでフレーム判定されても、見た目に対するリズム的な違和感が凄まじいのでms判定かつ入力判定は1000fps欲しいところです。
フレーム判定するなら、流れてくるノーツもフレーム単位でクオンタイズして配置してほしい……

yaneuraoyaneurao 2014/12/18 07:42 ↑*1 「1000fpsは欲しいところ」とは、どこの全国スコアラーさんですか…。
↑*2 > チャタリングについてはハードウェアレベルである程度回避している様子です。
普通、そうですよね…。私が30年前にジョイパッドを分解したとき、特別な回路は何もなくI/Oに直結みたいな感じでした…。

KKKK 2014/12/18 23:27 リアルタイムOSが必要ってTRONはやっぱ慧眼だったか。
マイクロソフトのレースゲームのForza Motorsportシリーズは映像は60FPSだが内部処理が360FPSなってて快適らしい。

bbgbbg 2014/12/19 12:31 新ブログ拝見しました よかったです
こちらでも告知記事を出された方がいいかもしれませんよ
例えば自分の場合、Twitter を普段チェックしてないので、気づくのに時間がかかりました

yaneuraoyaneurao 2014/12/19 14:39 ↑*2 レーティングゲームですと内部処理はある程度細かくないと走行ラインが体感と一致しなかったりするんですかね…。(私にはよくわかりませんが…)
↑*1 ありがとうございます。ひまうら王の実験を開始するときにこちらのブログでも告知します。

Ta(ryTa(ry 2014/12/20 09:55 Forzaはアイマスの痛車を作るゲームだと思ってた。

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

2014-12-08 やねうら王、電王戦バージョン提出しました

[] やねうら王、電王戦バージョン提出しました  やねうら王、電王戦バージョン提出しましたを含むブックマーク  やねうら王、電王戦バージョン提出しましたのブックマークコメント


電王戦出場バージョンのやねうら王、提出期限が今日までだ。定跡は16手目までしか出来なかった。32手目までの定跡は1/4ほど出来たが、全部作るにはあと1ヶ月ほどかかりそう…。(要するに今回は間に合わない)


部屋のPCはフル稼働で、冬だというのに暖房を入れなくても暖かい。それどころか日中冷房を入れないと暑くて部屋に居られないぐらいだ。


肝心のおもてなし定跡だが、後手番ということもあって、あまり芳しくない。後手番だと評価値が-100ぐらいからスタートする。AWAKEの巨瀬さんに「序盤で評価値-100の局面から指し継がせたとき、-100側は勝率3%ぐらい落ちますよね?」と尋ねたら「もっとじゃないかな…。5%ぐらい?」と返ってきたので、もしかしたら、コンピューター将棋では後手番は勝率45%ぐらいなのかも知れない。


Bonanza6と10分切れ負けで100戦させたら95-2-3。負けた3局はいずれもやねうら王が後手番だ。悪い予感しかしない。


あと、おもてなし定跡のため、評価値-200までは許容するようになっているので、下手な定跡に突っ込むとたぶん10%ぐらい勝率が下がる。定跡がたくさん搭載してあって事前研究で必勝パターンを見つけられないことが大切だが、後手番だと先手の初手でいきなり定跡を外すことだって可能なのでいかにも危うい。


定跡の穴は結構ありそうな気はする。やねうら王が好んで指す、横歩取り33桂戦法とか。ただ、激しい戦型なので指すほうも怖いと思うのだが、事前研究が十分あればそうでもないのかな…。


せっかくなのでランニングを兼ねて評価関数テーブルの値が別のバージョンをfloodgateに投入してみた。


f:id:yaneurao:20141208102715p:image


一応、ponderと置換表32768MB設定で、きちんと動いているようで一安心


これでやっとやねうら王2015の開発に入れる。


あ、その前にひまわり将棋(人間棋譜を参考にしない)×やねうら王 = ひまうら王の公開実験年末にやる予定だ。駒得のみの評価関数のやねうら王より強くなるのか弱くなるのかすら実験してみないとわからない。それがこの年末から年明け(1月15日ごろまで?)にかけて判明するというわけだ。Bonanza6と同等の強さになれば大成功と言えるだろう。なお、ひまうら王は思考エンジンバイナリを公開する。楽しみに待たれよ。

ジャックジャック 2014/12/08 13:33 floodgateで1位wwたった一ヶ月でAWAKEより強くなったんですか?

話は変わりますが↓の動画面白いですよ。
電王戦番外編www

2014年12月07日 11時40分 投稿
14.12.5 永井兄弟 詰将棋
http://www.nicovideo.jp/watch/sm25072035

2014年12月07日 11時43分 投稿
14.12.5 永井兄弟 将棋(CPU戦)
http://www.nicovideo.jp/watch/sm25072119

きのあ将棋(開発者 山田元気)VS永井先生(ながいせんせい)

きのあ将棋
第2回将棋電王トーナメント予選14位
第24回世界コンピュータ将棋選手権 二次予選21位
第23回世界コンピュータ将棋選手権 一次予選12位

永井先生
1978年6月9日生まれ。本名は永井浩二(ながいこうじ)。
一般的には永井先生の名で知られるが、
他にも愛称を持ち、ジーコ(浩二の反対読み)、
チンパン、チャバネ、てんてー、猿等がある。

ヨシヨシ 2014/12/08 14:46 トーナメントの時と比べてどのくらい強くなりました?

aa 2014/12/08 17:14 正確なレーティングを出すためにfloodgateではもうちょっと対戦数が欲しいところですが、1coreでの結果ならかなりの強さですね!
先日もPonanzaがふらっと来て勝ちまくってましたし、今回の電王戦出場ソフトのレベルはもうその出場ソフト以外相手にならないような強さを感じますね

yaneuraoyaneurao 2014/12/08 21:53 ↑*3 永井先生、懐かしいですね。ニコニコのβ時代によく見てました。やねうら王を強くするのはまだこれからです。
↑*2 まだトーナメント版に数%勝ち越す程度です…。手元でやっているとGPSfishには6,7割勝つようですが、サンプル数が少なくてよくわかりません。
↑*1 定跡生成のバックグラウンドで1coreだけ余らせて参戦していたのですが、定跡生成がノルマまで終わっていたため、8coreで参加してることになってました。すみません><

り 2014/12/09 07:25 コンピュータ将棋選手権には出場しないんですか?
クラウドファンディングで7億集めるのは無理でもクラウドファンディングで100万くらい集めてコンピュータ将棋選手権の賞金にして、やねうら王に出てもらうのは現実的なんだけど、う〜ん
やねうら王を引きずり出すのは

aa 2014/12/09 19:42 なるほど 確かに1coreとしては強すぎるかもと思っていました(笑)

電王戦楽しみにしてます〜

茶田茶田 2014/12/09 23:27 お、ついにナントカちゃんねるの住人を完全論破しにかかりましたね。「ワシの一行一行からプログラミングの真髄を学ぶが良い」と言えるものをバシッと作っちゃってください。

ピンピン 2014/12/10 01:09 お疲れ様でした。改造やら何やら色々と負担が大きい事や役回りばかりやって頂いて本当にすみません。
ひまうら王はとても興味深い実験で楽しみです。しかし駒得に関する評価関数はひまわり将棋の中にもきっとあるのに、どうやって駒得のみの評価関数のやねうら王と合体される予定なのでしょうか。
評価関数がどうなっているのか解説して頂いても難しくて理解できないかもしれませんが、ひまわりとやねうら王の評価関数のベストミックスを探る中で、棋力の要素やそれぞれの要素の重要性とバランスを考えるのが実験の意味の一つにあるのなら
駒得とそれ以外の要素についてどれくらいの重み付けがあるのか、評価関数の開発部分の解説を書いて頂けるとうれしく思います。

yaneuraoyaneurao 2014/12/10 02:23 ↑*4 コンピュータ将棋選手権のほうは、出場するかどうか考え中です。
↑*3 ありがとうございます。
↑*2 今回の年末の実験で何が産まれるかは予測不可能なのでやってみないと…ですね。
↑*1 ひまわり将棋とはタイアップしてないです。私が勝手に「ひまうら王」と名づけているだけです(^^;
> 駒得とそれ以外の要素についてどれくらいの重み付けがあるのか

評価値 = 駒割 + 位置評価(2駒関係・3駒関係)のように単純に足しあわせてあるだけです。位置評価にどんな点数がつくかは…例えば1間龍(玉の2升隣の敵の龍)に歩5枚分ぐらいの価値がつきます。

YakitoriYakitori 2014/12/10 13:36 やねうら王2014は突貫で作ったと確かおっしゃってたと思いますけど、やねうら王2015は長めに開発期間を取るおつもりなのでしょうか。
っていうか、将棋ソフト熱が燃え上がってますか?

yaneuraoyaneurao 2014/12/13 09:49 ↑やねうら王2014でやり残したことをしばらくやります。やねうら王2015の開発というよりは2014の宿題というか..(´ω`)

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

2014-11-25 将棋の神様のレーティングはいくつなのか?

[] 将棋神様レーティングはいくつなのか?  将棋の神様のレーティングはいくつなのか?を含むブックマーク  将棋の神様のレーティングはいくつなのか?のブックマークコメント


羽生さんは以前、雑誌取材将棋の神と対局したらどれくらいの手合であるかと問われ角落ちならいい勝負だろうと答えた。


では、この将棋神様レーティングはいくらなのか?


一見神様には無限レーティングがつくかのように思えるが、それは間違っている。話を単純化するために、枝刈りなしに深さ固定でmin-max探索を行なうときのことを考える。


評価関数Bonanza以下の精度しかないものとする。この場合、読みの深さが1手深くなるごとにR100〜150程度しか上がらない。少し多めに見積もって、R300上がるとしよう。実際はある程度以上探索深さが深くなると読みが1手深くなったときレーティングの伸びも小さくなっていくのだが、ここでは均等にR300ずつ上がり続けるとしよう。そして3手読めばだいたいR1000ぐらいである計算が面倒なのでここはR900ということにしよう。ということは、大雑把には次のように計算できる。


棋力 = 探索深さ×R300(実際はこれより小さい値である)


プロ棋士で双方がそこそこ最善を尽くした場合、130手ぐらいで終局するので、130手で必ず将棋が終局するものとすると、R300×130手 = R39000ぐらいの値が将棋神様レーティングである。(実際は130手を超える変化があるのでもう少し大きな値である可能性もある)


仮に電王トーナメントのような256手引き分けルールの元では、上限はR300×256手 = R76800。これはかなり大きめに見積もっている値なので、実際はR20000ぐらいが将棋神様なのかなと私は思っている。


人間から見ると、R5000もR20000も(どちらも勝率1%すら勝てないという意味では)さほど大差ないので、仮に羽生さんがR20000のソフトと角落ちでいい勝負だとしたら、R5000のソフトとやっても同じく角落ちぐらいの手合でいい勝負ではないかと私は思う。


R5000のソフト…いま上位のソフトがR3700〜4000付近にあるとして、あと5年以内ぐらいでR5000には到達しそうであるが、駒落ちプロ棋譜は少ないため、棋譜から学習を用いているいまの将棋ソフト駒落ちはそこまで強くないかも知れない。この問題が5年以内に解決するのかどうかは私にはよくわからないが、駒落ちも平手と同様の棋力を保っている将棋ソフトが完成すれば、5年後には羽生さんは角落ちで互角。とりあえずそういう結論になる。

yaneuraoyaneurao 2014/11/25 10:06 将棋の神様、R10000ぐらいしかないかも知れなくて、であるなら、毎年R200ずつ将棋ソフトの棋力が向上していくならあと30年ぐらいで将棋の神様となってしまう。

へなっそへなっそ 2014/11/25 10:18 よくソフトの棋力を示す指標で使われるレーティングというのがありますが、これはfloodgateのレーティングを指しているのでしょうか。
もしそうなのだとしたら、プロ棋士がこの中で指したらどのくらいのレーティングになるのでしょうか。

外野外野 2014/11/25 10:58 http://dokkyosan.blog.fc2.com/blog-entry-25.html
神様なら全てのパターンが網羅できるはずと仮定しないと…

yaneuraoyaneurao 2014/11/25 11:15 ↑*2 floodgate上のレーティング≒将棋倶楽部24でのレーティングであり、私がレーティングを言うときは常にこの指標です。プロ棋士の将棋倶楽部でのレーティングはR2800〜3300付近に分布していると言われているので、適宜に換算してみてください。
↑*1 「どうぶつしょうぎ」の完全解析のために後退解析が使われましたが、全パターンは網羅してないですし、勝ちを証明するために全パターン網羅する必要もないです。同様に、本将棋でも将棋の神様であれ、あらゆる局面の網羅は不要です。あらゆる局面を網羅するよりはるかに小さな局面数を網羅するだけで将棋の神様になれます。(「はるかに小さな」というのは前者と後者のオーダーを比較しての話で、人間からするとどちらも膨大極まりないのですが..)

外野外野 2014/11/25 12:17 後退解析というのもあるのですね。情報ありがとうございます。
ただ、こちらの要点が伝わっていないようですので補足しておきますと「全網羅する必要がある」と言っているのではなく、神様である以上(後退解析で構いませんが)「完全解析できている」と仮定しないと「神様」とは言えないのではと。
もし完全解析できている神様同士なら先手必勝等の答えが出ているため振りゴマ勝負となり、そうでない人間相手で駒落ち対戦するなら、人間側がどこまで完全な手を指し続けられるか(勝利の枝の範囲内に留まれるか)、だけで決まるのではということです。

yaneuraoyaneurao 2014/11/25 12:27 ↑> 「完全解析できている」と仮定しないと「神様」とは言えないのではと。

この部分なんですが、私はそうは考えてないです。例えば4手目で角を素抜き(76歩34歩68銀88角成の意味)された局面はその後の変化を網羅するまでもなく後手必勝ですし、完全解析はされていなくとも、それよりずっと少ない局面の網羅数(+評価関数)で、神様(完全解析できている状態)と同じ指し手を導き出せるからです。

外野外野 2014/11/25 12:55 そうですね。
「神様(完全解析できている状態)と同じ指し手を導き出せる」のであれば、神がどんな低コスト手法を用いても良いと思います。

EnglishOnlyEnglishOnly 2014/11/25 13:15 24のレーティングシステムでは勝者のレートは少なくとも1増加するので、負けなしの神様のレートは無限に増え続けるのではないでしょうか。神様でなくても、「自分以外の24の参加者のうち最も強い人」に対して31/32を超える勝率で戦える人のレートは収束しないはずだと思います。

TokusiNTokusiN 2014/11/25 14:59 将棋の神様のレートを計算する為には、まず将棋の性質を知る必要がある。
将棋が先手必勝だった場合は話は簡単で、十分強いプレイヤーは神様に対する勝率が5割に近付く。
この場合、例えば羽生のレートが3300だとすると、羽生に75%の勝率を出せるAIのレートは3500、そのAIに75%勝てるAIは3700となる。
こうやって強いAIを仮定するとそのうち先手番ならば神様にでも勝てるAIが出てくるから、神様に25%の確率で勝てるAIがあったとしたら、そのAI+200が神様のレート。
将棋が双方最善で引き分けだった場合話がもう少し厄介になる。
この場合、引き分けを0.5勝0.5敗と扱うのならば、先手必勝の時と同じように計算できる。
引き分けの時にレートが動かない(もしくは決着が着くまで再試合)とした場合、神様は絶対に負けないのでレートが定義できない(もしくは∞になる)。

ジャックジャック 2014/11/25 16:19 ツイッターで小4のフリをして将棋ソフトを作る
と時がきたか・・とつぶやいてますが
メカ女子チームに入る気になったんですか?
小4女子メカやねりんですか?

xx 2014/11/25 16:43 やねうらおさんの将棋の神のレーティング推測はいい線いってると思いますが、神という絶対的な棋力を計算する以上、TokusiNさんの方が計算上的を得ていると思いますね。
やねうらおさんの、一手深く読むごとにレーティング100から300アップや、平均130手、最高256手まで、R5000とR20000が大差ないという条件等が余計だと思います。
例えば動物将棋は78手までで後手必勝ですが、その必勝パターンを知ってる人またはコンピュータにレーティングを付ける方法を考え、それを将棋に適用することにより、神のレーティングを計算する必要があります。

yaneuraoyaneurao 2014/11/25 17:38 ↑*4 おっしゃる通り、24だと収束しないですね。ここではfloodgateのように、あらゆる棋力のソフトがまんべんなくいる場所で対局することを想定しています。
↑*3 なるほど。レーティング計測上は引き分けを0.5勝0.5敗として扱うのが適切だとは思うのですが、将棋はおそらく双方最善だと引き分けになるので、その場合、R6000ぐらいのソフトに対して8割勝つということ自体が不可能になる可能性があり(R6000のほうは形勢が不利とみるやいなや引き分けに持ち込む)、そうなってくると神様を連れてきてもR6200は出せない、みたいなことになるんですかね。この条件下なら案外神様のレーティングは、低いかも知れないですね。
↑*2 小4女子メカやねりんってなんやねんヽ(`ω´)ノ ちょっとクスっと笑ってしまった。
↑*1 (´ω`)?

EnglishOnlyEnglishOnly 2014/11/25 18:21 >yaneuraoさん
なるほど。TokusiNさんの投稿とあわせて理解できました。

xx 2014/11/25 18:54 追記
先ほどの自分の考えは、神対神では先手必勝、後手必勝、千日手のどれかに落ち着くと仮定し、その場合解析済みの動物将棋でレーティング付ける方法を定義すれば、同様に将棋の神のレーティングが求められるというものですね。

ちなみに神のレーティングは無限とも考えられますが、コンピュータチェスのトップレーティングが長いこと3000台なのを考えると、やねうらおさんが上で述べているように、レーティング計算の仕組み上意外と早く収束する可能性はありますね。

ろ過ろ過 2014/11/25 18:56 あらゆる局面で最善手「のみ」を指すには完全解析が不可欠ではないんです?(完全解析なしには最善手であることを証明できないというのは誤り?)
それとも、やねさんはあくまで技術屋として、「人間にとって」最善手と見分けがつかなけれが良いというスタンスなんでしょうか。

り 2014/11/25 19:57 これが後に数学者を300年間悩ませる『二人零和有限確定完全情報ゲームにおける、やねうらお神様レーティング予想』のきっかけとなるとは、誰もしるよしがなかった。

ピンピン 2014/11/25 21:58 例え神様が相手でも、やねうらおさんの強さでは二枚落ちならほぼ負けようがないんじゃないですか。
閾値?が用語として正しいか分かりませんが、ある一定のR(強さ)を持っていれば、相手が神様でR20000でもほぼ必ず勝てる手合いが存在するので
R差を無理矢理に駒落ちの手合いに落とし込むのは難しいのではないですか。
大駒や金駒は価値が高過ぎるので、それを駒落ちにすると正確なR差を反映する手合に恐らくならないのではないのでしょうか。

森田将棋の記事は、簡単な評価関数でも無限の思考能力や時間があればプロ級になる思考実験として感心しましたが
今回の記事はやねうらおさんらしくない随分となげやりな計算と結論に思われます。
何かあったのですか、もしかして、また運営に今年の電王戦トーナメントの時の様な無茶振りされて、困って考えがまとまらないのですか?
明日はとうとう記者会見ですけど大丈夫ですか。何かあったのなら大事になる前に何方かに相談されたほうが良いのでわ・・・・・

yaneuraoyaneurao 2014/11/26 05:51 ↑*3 > あらゆる局面で最善手「のみ」を指すには完全解析が不可欠ではないんです?

最短手数で勝ちの局面に持っていかないといけないとしたら、その局面からのすべての指し手の網羅(完全解析とは少し違います)が不可欠だと思いますが、最短手数でなくとも優勢の局面を勝ちに持っていくだけでいいならいまの将棋ソフトの延長で可能です。

↑*2,*1 ドラゴンボールの世界みたくR100000とかR530000とかがいる世界かと最初思っていたのですが、結局、神様の一歩手前の状態が(大きく見積もっても)R40000ぐらいなのかなと。神様自体にどんなレーティングがつくのかは、レーティングの計測方法と将棋の結論(先手必勝・必敗 or 引き分け)によりけりなので、そのへんは私にはわりかしどうでもよくて、その神様の一歩手前の状態がどのあたりに位置しているかが一番意味があるのかなと。

> 神様でR20000でもほぼ必ず勝てる手合いが存在するので

私もそれはそう思いますが、本記事は、羽生さんの「神様と角落ちでいい勝負」という発言が正しいと仮定した上での話です。

TokusiNTokusiN 2014/11/26 05:51 将棋の双方最善手順が引き分けで、そこに至る選択肢が少ない場合、
将棋の神様のレーティングは(強めのAIと比べても)低くなってしまう可能性があります。
格下相手には超手数の負け手順に持ち込んだ上で相手のミスを待たなければいけませんが、最善手しか指さない神様にはそれが出来ないので格下相手に引き分けてしまいます。

yaneuraoyaneurao 2014/11/26 06:07 ↑そうですね。チェスの世界がちょうどそんな感じになってるように思います。(チェスはたぶん将棋よりは狙って引き分けに持ち込みやすい) いやしかし、イロレーティングだと引き分けは考慮しないのか…。あれれ..

TokusiNTokusiN 2014/11/26 06:22 イロレーティングでは、引き分けは0.5勝0.5敗として処理するはずです。
なので、相手の棋力(≒レーティング)によって引き分けを狙うか、あえて自分負けの手順に持ち込むかを選ばないといけない場合、
ある程度上位のプレイヤーにとっては棋力そのものよりもメタゲームの強さが重要になってくると思います。
負け手順を選べない神様はそこが弱くなってしまう。
先手必勝だった場合は、神様が後手を持った場合(最長負け手順を選ぶ、という制約が無ければ)全ての指し手から選べるので、同じ手順で何回も負ける事は無くなります。
この場合の神様は、短手数で負ける手を選ばないだけでなく、先手から短手数の引き分けに持ち込める局面も避ける必要がありそうですね。

yaneuraoyaneurao 2014/11/26 06:32 ↑> イロレーティングでは、引き分けは0.5勝0.5敗として処理するはずです。

このときってレーティングの移動あるんでしたっけ…。レーティングの移動がないなら、レーティング計算上は問題にならないような。引き分けが多い神様よりは、引き分けを回避する神様より一回り弱いプレイヤーのほうが勝ち星は上げられるという話であれば了解。

TokusiNTokusiN 2014/11/26 06:42 0.5勝0.5敗として、その対局もレーティング計算に組み込まれます。
イロレーティング本来の計算式は対局1回ずつでレートの移動を行うものではないので、その1回でレートが動く事はありませんが、
ある試合のセットの中で1勝1敗するのと、引き分けが2回起きるのでは、最終的なレートは同じになります。
将棋倶楽部24でどのような処理をしているかは分かりませんが、
厳密なレートを割り出す場合、全試合の結果から回帰分析で計算するのが一番正確な値になります。

YakitoriYakitori 2014/11/26 07:46 レーティングは相対値なので、競合がそろえば収束して低くとどまるのではないでしょうか。
将棋の神様が全知であれば、天井知らずかもしれないですけど。
あれですかね、AIギャグで先手一手うったらAIが読み切って即降参するっていう。あれもあるんですかね・・・。

yaneuraoyaneurao 2014/11/27 23:07 ↑*2 > 0.5勝0.5敗として、その対局もレーティング計算に組み込まれます。
あ、そうなんですか…。それは嫌らしいですね…。
↑*1 > AIが読み切って即降参するっていう。あれもあるんですかね・・・。
あるでしょうけど、まあ読み切っても最長手順を選べばいいので…。

ジャックジャック 2014/11/28 00:11 プロ棋士レーティング
稲葉陽七段   R1751
永瀬拓矢六段  R1730
村山慈明七段  R1721
阿久津主税八段 R1687
斎藤慎太郎五段 R1669

「まあ去年からコンピューター将棋ソフトって全体的に去年のに比べたら
7割勝つとかやねうら王に限ってはもう8割とか9割勝つとか結構伸びが顕著で
去年でもプロの先生とやっていい勝負だったのでそっから7割と8割勝つとなるともう
これは下手すると手合違いかなという所まできてるんじゃないかと思うんです。
だから今回でファイナルというのも もうこれは仕方ないのかと思いますし
その中でもやっぱり対戦する事で少しでも楽しんでいただきたいなと思って私はちょっと定跡の方をいまこだわって入れてるという状態です。」

やねうらさんの発言から私が予想すると電王戦ファイナルのソフトのレーティングは
AWAKE  R2200?
ponanza R2150?
やねうら王 R2000?
Apery R2000?
Selene R1800?

▲斎藤慎太郎五段 vs △Apery  期待勝率 13% 87%
△永瀬拓矢六段 vs ▲Selene   期待勝率 40% 60%
▲稲葉陽七段 vs△やねうら王  期待勝率 19% 81%
△村山慈明七段 vs▲ponanza   期待勝率 8% 92%
▲阿久津主税八段 vs △AWAKE  期待勝率 5% 95%

今のソフトって私の予想よりもっと強いですか?

田酒田酒 2014/11/28 15:22 森下先生が、やねさんにあなたのせいで~と言われたのはホントですか?
年末おかげで楽しみが出来ました、ありがとうございます。

田酒田酒 2014/11/28 15:25 ごめんなさい、逆ですね。
やねさんが、森下先生にあんな事をと言われたのはホントですか?

茶筅茶筅 2014/11/28 19:30 上にコメントされた方もいましたが、やねうら王が後手であることや稲葉七段のレーティング、数ヶ月間貸出で対策されることも考えると、やねうら王の今回の対局の期待勝率は何%だと予想しますか?
現時点の推測でいいので教えて頂きたいです。

番茶番茶 2014/11/28 21:50 > やねうらさんの発言から私が予想すると電王戦ファイナルのソフトのレーティングは
> AWAKE  R2200?

羽生名人ならAWAKE相手でもまだ結構いい勝負になりそうですね
コンピューターはまだクラスターという切り札が残っているので
実際はカスパロフ戦のように、指導対局みたいな棋譜になるのかもしれませんが

茶田茶田 2014/11/29 00:57 願わくば、電王戦が終わっても将棋ソフトのプログラマーたちの意欲が落ちずソフトの成長が続き、R10000のソフトが僕の手に渡らんことを

yaneuraoyaneurao 2014/11/29 11:04 ↑*6,*3 レーティングはそれぐらいかなと思うのですが、下位の相手に結構取りこぼすのでソフト側の期待勝率はもう少し低い気がします。あと事前研究があるので、これで20%ぐらい期待勝率が下がりますし、悪い定跡を事前研究で発見されてしまった場合、さらに下がるでしょう…。
↑*4,5 まだタイムシフト観てないのでよく知りませんが、私の発言が元で森下先生の「盤駒ありなら〜」という発言が出て、それで今回の年末の企画が成立したことは間違いないようです。
↑*2 > 羽生名人ならAWAKE相手でもまだ結構いい勝負になりそうですね
その↑*6のレーティング表記は、棋士の平均を1500とするレーティングなので羽生さんでR1973((http://kishi.a.la9.jp/2014R/1175.html))でして、そこに対してAWAKEがR2200だとしたら羽生さんの勝率は2割ぐらいしかないです。

田酒田酒 2014/11/30 14:09 タイムシフトでは、1:30:00頃で磯崎さんに一声お声おかけしたと森下先生が言って居ました。
新ルールの際に磯崎さんにも何らかのやりとりがあったのかと思いコメントしました。
年末はスゴい楽しみにしています。
またfinalでのやねうら王ご活躍期待しています。
頑張って下さい!

yaneuraoyaneurao 2014/11/30 20:53 ↑タイムシフト見てきました。

プロ棋士の控室に、開発者全員でご挨拶に伺ったときに、森下先生から開口一番、その話が出ました。私は当日まで今回のリベンジマッチのことは知りませんでした。

もちろんリベンジマッチは森下先生をめちゃめちゃ応援してます!!!

YakitoriYakitori 2014/12/01 02:44 自分も森下のひとを応援しています。
無茶振りからの開成の一手があることを祈って。
人間困難を乗り越えてなんぼですからね。

茶田茶田 2014/12/01 19:59 ツツカナの強さはだいたいわかってるけど、継ぎ盤を使った森下先生の強さは未知なので楽しみですね

ソフトの駒落ちの話ですが、次元下げを施した2014電王戦版のやねうら王は未知の局面に以前より強いんですよね?入玉もうまくなってますし。なら駒落ちにも強くなってるのでは?

yaneuraoyaneurao 2014/12/01 20:14 ↑やねうら王もたぶん上手(うわて)を持って穴熊に囲ってしまうでしょうね…。次元下げを適切にやれば、少ない棋譜から学習できるようにはなると思いますが、さすがに棋譜が1000以下ではまともに学習できそうにないです(´;ω;`) プロによる駒落ちの棋譜が5千棋譜ぐらいあればそこそこ強いやつが出来ると思うのですが。

ジャックジャック 2014/12/01 22:49 質問なんですが

屋根裏部屋+宮崎駿=やねうらお
やねうらお+王将=やねうら王
って解釈で正解ですか?

茶田茶田 2014/12/01 23:11 プロの駒落ちの指し方よりも今の強豪ソフトの指し方の方が、下手が十分強い場合の短い切れ負けでは正しいのかもしれません。だからあんまり強くない相手への例えば一手30秒の将棋で勝率を上げるには、「24に放流したら自動で試行錯誤して勝率の高い序盤をみつけるソフト」を作ったらできるんじゃないですかね。レートの高すぎる相手との対局は拒否して。

とすると、羽生さんに対して角落として勝つには、羽生さんに何度も指してもらって、羽生さんより速く学習しなければいけない…?

茶田茶田 2014/12/01 23:58 というか今の強豪ソフトも角落ち上手うまいですね…(GPSfishに角落としてもらって良い所なく負けた)

ジャックジャック 2014/12/04 20:17 あともう一つ疑問があるのですが
電王戦のPVで
「電王戦やらんでええんちゃうかと、プロ棋士の先生もこれを研究するのしんどいんじゃないかなと、もうファイナルだし勝たせてあげたいかなと、勝っていだだきたいかなと思いますけどね」
ってやねうらさんは言ってますがこれはどんな文脈で
言ったんでしょうか?
なんかインタビューされたんですよね?

yaneuraoyaneurao 2014/12/07 01:37 ↑*4 やねうらおの名前の由来はこちら→http://d.hatena.ne.jp/yaneurao/20081222
↑*2 GPSの評価関数とかの評価関数とかは、特徴因子の数が少ないので、3駒関係で次元下げをしている以上の効果があります。だもんで、駒落ち強いです。
↑*1 電王トーナメント最終日の終了後に電王戦へ向けての抱負を尋ねられたときにそう答えたような…。

ジャックジャック 2014/12/07 12:49 僕らは(屋根裏にちなんで)「Studio Attic」と命名した。
とあったのでスタジオつながりで宮崎駿が関係あるのかなと思ったんですが
考えすぎでしたか・・
>電王トーナメント最終日の終了後に電王戦へ向けての抱負を尋ねられたときにそう答えたような
おお!、そうでしたか回答ありがとう御座いました。

次でファイナルってなってますが5対5がファイナル(終了)でつぎは羽生さんか
渡辺さんが出てくると私は予想してます。
羽生さん20%、渡辺さん80%ぐらい
渡辺さんは第1回電王戦(の解説が渡辺さん)の後の記者会見で第2回電王戦の出場をするか聞かれて「順番が違うから出ません、下から順番に倒されていって出るしかない状況なら出る」って言ってましたからね。

YakitoriYakitori 2014/12/07 14:09 コンピュータ戦は森内さんがいいんじゃないかと思います。
自分の感じる雰囲気では同質に見えるんですよ。固いというか。熱が無いというか。
棋風は比べたことないですけど、外目にはそう見えます。

茶田茶田 2014/12/08 22:18 今度やねうら王を24に出すときがあれば、2枚落ちはいいとして、飛車落ちとか角落ちとか見てみたいです

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

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

2014-11-20 駒得のみの評価関数にしたやねうら王 V3.37を公開しました

[] 駒得のみの評価関数にしたやねうら王 V3.37を公開しました  駒得のみの評価関数にしたやねうら王 V3.37を公開しましたを含むブックマーク  駒得のみの評価関数にしたやねうら王 V3.37を公開しましたのブックマークコメント


駒得のみの評価関数にしたやねうら王 V3.37を公開しました

http://d.hatena.ne.jp/hiyokoshogi/20141120


駒得のみの評価関数なのでほどよく弱くて、ハム将棋卒業したての初心者の人も楽しめると思います。(たぶん…)


苦情や対局した感想要望などは本日コメント欄でどうぞ。


・追記 x64/x86SSEなしをリリース


2014/11/20 7:20x86用(32bit OS用)、もう少し頑張れば出来そう。もうちょっと待って…。

→ 2014/11/20 9:50 出来た…かな? SSEを使わないバイナリも出来たので上記のダウンロードページを更新ときました。32bit OSかつSSEなしのPCは私は持ってないので本当に動くかどうかはわかりません。


・追記 思考エンジン設定について


将棋からできる思考エンジン設定で、「基本定跡の幅(0=無,30=狭,100=広)」というのがあり、これはデフォルトで30になっています。定跡選択のときベストの指し手(で進めたとき評価値)から、30少ない評価値の指し手までは定跡の指し手として許容するという意味で、この値はゼロに設定したほうが強い定跡になります。(その代わり定跡選択の幅はなくなります)


「基本定跡で採用する評価値下限」はこの値を下回る指し手は採用しないという意味です。デフォルト-200です。後手だと後手の初手で-100ぐらいの点数がつくので、そこからさらに-100ぐらいは許容範囲という意味でこの値にしてあります。先手の場合は-100ぐらいで打ち切ったほうが良いのかも知れません。


・追記 npsについて


twitterでは駒得のみの割にnpsが低すぎるんではないかと言われています*1、通常バージョンのやねうら王は、いまどきのPC(例えばCore i7 4771)で1スレッド当たり1Mnpsちょっとます評価関数を駒得のみにするとこれが1.5Mnpsぐらいになります。つまり4コア時で6Mnps程度しか出ません。*2


駒割を差分計算していないのでやや遅いですが、そこを修正したとしても10%も速くならないのでやってないです。遅い主な原因は、オーダリングがそこそこ重いというのと通常探索・静止探索中の1手詰め探索があるからです。1手詰め探索をオフにすると1スレッド当たり2Mnps強ぐらい出ます。たぶんオフにしないほうが強いので、オフにしてないです。


・追記 駒得のみの評価関数のやねうら王は、駒得のみのソフトとして史上最強なのか?


駒得のみのソフトとしては史上最強だと思っていますが、まだ改良の余地は大いにあるので、他の開発者からの挑戦は大歓迎です。


あとBonanzaと対戦させたところ、「ボナンザ6勝 - やねうら王4勝」*3という話がありますが、それはさすがに出来すぎのような気はします。(たぶんBonanza相手では2,3割勝てるかどうか…)) Bonanza相手だと定跡の進行になりやすく序盤をすっ飛ばして中盤からスタートになるのでそのへんが大きいのかも知れませんが…。


・追記 定跡編集コマンド仕様公開しました


やねうら王の定跡生成コマンド

http://d.hatena.ne.jp/hiyokoshogi/20141121/1416505613


・追記 やねうら王と対局した感想を集めてみました


  • 評価関数が駒割だけのコンピュータ将棋は、たくさん読めるから意外と強いんだけど、いかんせん対人戦が絶望的に弱い。」 … この発言撤回ます(駒得のみのやねうら王に連敗しながら)。*4
  • やねうら王(駒得のみver)、5局くらい指したけど勝ててない。20分切れ負けで、もう少しで勝てそうなところで時間切れたのが1局。あとは完敗。くそう。*5
  • やねうら王 V3.37と指していると、自分の読みに無い手(主に大駒を捕獲される手)をたくさん指されるので自分の形勢が悪いと思ってしまう。我慢して終盤まで指すと自分がいいことに気づく。自分の形勢判断の悪さに悲しくなる。*7
  • やねうら王(駒得のみver)と対局してみた。50手で負けた。(詰まされたw)*9
  • やねうら王「駒得のみの評価関数」、指し手に個性あっておもしろい。とりあえず銀香交換して端突破とか角銀交換して飛先突破とかやってみた。仕掛けられた瞬間に楽観する感じではあるけどいい粘りをみせるので、格言「10将棋では駒損を避けよ」を思い出した*10
  • やねうら王弱いのに強い *12

ジャックジャック 2014/11/20 11:17 ハム将棋みたいにブラウザゲームにするのは無理でしょうか?
OSがUbuntu使ってるのでインストールできません。

yaneuraoyaneurao 2014/11/20 11:21 ↑(`ω´)つ Wine + 将棋所

浜 2014/11/20 12:54 以前公開されたfv.bin使用の週刊ひよこ将棋と比べるとどちらが強いのでしょうか?

yaneuraoyaneurao 2014/11/20 13:00 ↑今回のものは定跡搭載してますので、20手目あたりまで定跡から外れないという前提であれば、今回のもののほうが断然強いでしょう。初手で定跡を外すなら…週刊ひよこ将棋のほうが強いかも知れません。

ジャックジャック 2014/11/20 13:02 う〜ん、教えて頂いたWineを使って将棋所起動させたんですが
エンジン追加でやねうら王を選んだらエラーになります。
将棋所ってUbuntuで起動したら英語なんですね。

あとこのWineって奴はエミュレータは使えるのかしらと思って
エミュのスーパーファミコン起動させたんですが
動作がスローになりますね。
何が悪いのかさっぱりわからん。
 orz
ギブアップ。
まあどうせ やねうら王とやっても勝たれへんしなヽ(`Д´)ノ

yaneuraoyaneurao 2014/11/20 13:14 ↑ > エンジン追加でやねうら王を選んだらエラーになります。

ありゃ…そうなんですか…。そういや他の思考エンジンでその現象になると以前、聞いたことがあります。AperyはLinux + 将棋所で動いてるらしいので、何かうまくやればいけるんだとは思うのですが、思考エンジン側の問題なのか、設定なのかは私にはわからず…。

usapyonusapyon 2014/11/20 16:59 ・追記 x64/x86、SEEなしをリリース

SEEじゃなくてSSEですよね。
修正後、コメントは消して頂いて構いません。

yaneuraoyaneurao 2014/11/20 17:14 ↑修正しました。ご指摘感謝!これ間違うの何十回目かわからん&今後も何回も間違えそう…。

※ 将棋ソフトの探索技術にはSEE = Static Exchange Evaluationというのがあって、将棋ソフト開発者はそれとよく混同するため。

usapyonusapyon 2014/11/20 17:52 あは、そうですね。SEEとSSEは私も良く書き間違えます。

usapyonusapyon 2014/11/20 20:21 我が家のマシン(AMD PhenomII 3.0GHz)で、benchと打ち込むと、1スレッドで0.8Mnps位みたいです。
メモリアクセスが遅いのかなぁ。

wainwain 2014/11/20 22:55 質問なのですがやねうら王ではnodesとしてどのような数を使っているのでしょうか?
よろしければぜひお教えください。

ところでAVXは使ってないんですね。

yaneuraoyaneurao 2014/11/21 02:03 ↑*2 PhenomIIだと全体的に遅い気はします…(´ω`) あとは私はHaswellで最速npsになるように調整しているのでそれ以前のCPUのことはあまり考えてなかったり…。
↑*1 npsの計測の話でしょうか。do_move() でインクリメントしているので、局面を1手進めるごとに加算ですね。新規ノードかどうかは関係なくて、通常探索か静止探索かも関係なくて。AVXはPEXT以外は使いどころがほとんどなくて、PEXTはまだ使ってないです。(使っても2,3%速くなるかどうか程度だとは思いますが)

luminasluminas 2014/11/21 13:32 少々無理なお願いかもしれませんが、第三回電王戦を戦ったやねうら王と、3月バージョンのやねうら王を公開していただけないでしょうか。
純粋にどれだけ違うのか興味があるのです。

yaneuraoyaneurao 2014/11/21 16:39 ↑以前のやねうら王はまともな定跡を搭載してないので、進行が偏って強さの公平な比較が出来ないと私は思っています。そういうバージョンで対戦させた結果を誰かがブログに書いたりすると、結果だけがひとり歩きして非常に迷惑なので、申し訳ないですが公開はしません。

はっほーはっほー 2014/11/21 20:11 駒得バージョン入れてみました。ponderをオフにしても先読みしてしまってるようなのですが、バグですかね。

merom686merom686 2014/11/21 20:54 やねうら王と稲庭将棋を対戦させての質問です。
「引き分け時スコア」を-50にすると、やねうら王は喜んで千日手にしました(評価値は自分が+50)。
+50にすると、先手番のときは打開するのですが、後手だと長手数で千日手になり評価値も0です。
この後手番での挙動はどういうことなのでしょうか。

wainwain 2014/11/21 23:49 nodesについて教えていただきありがとうございます。
npsの計算についてnodesについて何を使うか自明ではないためnpsの数字を聞くたび、どの基準での数字かと疑問に思ってしまいます。

ところでAVXについてBonanzaのVSでのコンパイル時に/arch:AVXを追加するだけで約1%高速化されました。
1番伸びの大きそうなSandyBridgeでの計測結果ですが……
SSEからAVX128への置き換えだけでも少しは効果がありそうです。

茶田茶田 2014/11/21 23:56 3手目か4手目で止まってしまって「あれれ〜?おかしいぞ〜?」と思ってたけど、将棋所が古かっただけでした。

僕はウォーズ三段ですが、3切れで5局指して全然勝てません。へんてこな序盤相手に圧勝できそうなのに、僕の終盤力がなさ過ぎて。将棋を勝ち切るのって難しいんですね(しみじみ)

しみじみついでに語ると、ボンクラーズが出てくる前くらいまで僕は、「将棋ソフトが全ての人間を越えるときが来たとしてもどうせ、序盤はダサイけど中盤以降粘り倒して人間に勝つんだろうな」って思ってて、この予想は今のイカシタ序盤を指す強豪ソフトたちが裏切ってくれてるんですけど、この駒得やねうら王は一昔前の僕の「将棋ソフトの未来」のイメージ通りです。

yaneuraoyaneurao 2014/11/22 02:17 ↑*4 うちの環境ではponderオフにしたらオフになってますね…。(タスクマネージャーで確認) 最新版の将棋所でもそうなりますか?
↑*3 後手のとき、千日手を打開すると-50より悪くなる手を見つけてしまったので-50(千日手)を甘受した動作のような気はします。(バグでなければ)
↑*2 AVX128!!そうか…MOV要らなくなるから速くなるのか…。やってみます。
↑*1 時間が短いとじわじわ押していく将棋はしんどいですね…。

はっほーはっほー 2014/11/22 09:56 先ほどはShogiGUIで試してたんですが、将棋所で試してみたらponderオフに出来ました!

YOSIYOSI 2014/11/22 10:07 めちゃ強い。人間が対戦するには十分すぎる・・・
GPSFish0.2.1 と5分5秒で対戦させると50手くらいから差がつき、最後は、評価値7500くらいで大勝しました。

yaneuraoyaneurao 2014/11/22 10:44 ↑*2 なるほろ…。
↑*1 GPSfishに勝てたんですか…。それは100回に1回の奇蹟のような…。

merom686merom686 2014/11/22 11:17 > -50(千日手)を甘受した動作
それなら評価値が0ではなく-50になるはずですし、稲庭相手なので千日手自体簡単に回避できる(数百手の間は)と思います。

yaneuraoyaneurao 2014/11/22 12:26 ↑めっさバグっぽいです…。sfen(将棋所で検討モードで検討させたときにデバッグウィンドウで確認できます)でその局面図ここに貼ってもらえないでしょうか。

merom686merom686 2014/11/22 15:52 3gkg3/6sb1/1sn3n2/l3r3l/ppppppppp/9/PPPPPPPPP/1GKS2GS1
/LNB1R2NL b - 1
162手で千日手が成立した局面です(4スレッドで4MNPS、1秒)。
何回か試しましたが、もっと手数がかかることが多いです。ここから指し継がせても84手かかりました。

YakitoriYakitori 2014/11/22 17:40 普段使いのAtomでベンチを実行してみました。j1900である、BT-Dです。
SSE4.2版使いました。
コアをフルに使ってくれないですね。これ、シングルスレッドベンチですか?
まぁ、さすがに遅いですが、実用上問題ないのでいいです。

Total time (ms) : 143445
Nodes searched : 48529177
Nodes/second : 338312

茶田茶田 2014/11/23 01:27 こんなへんてこな序盤で強いはずがない。GPS先生に倒し方を教えてもらおう、と思ったら…サンプル数1ケタですけど3切れでGPSfishに圧倒してます。一局圧倒されたのもありましたが。(双方ponderあり。同じ将棋になりそうだと中断)これじゃ僕で勝てないのも当然ですね。持ち時間が短いと序盤の差をひっくり返されやすいので、長くしたら違ってくるんですかね。それかHashとかの設定が公平じゃないのか。floodgateに放流して確かめて欲しいところです。R2000ってレベルじゃないですよ。イノベーションかもしれませんよ。この路線を追求するのも面白いかもしれません。

将棋ソフトの強化を嘆く人もいますが、僕は将棋ソフトが強くなってくれて、新しい将棋の可能性を見られて、前より将棋を好きになり続けてます。筋の悪い序盤を相手にしたとき今まで僕は「こんな相手に負けるわけにはいかない」って思ってたんですけど、これからは「これもアリなのかも」と謙虚に捉えます。パラダイムシフトです。

そういえば、プロ入りしたての羽生さんは悪い将棋を粘り倒して勝っていましたね。

と書きながら持ち時間3分一手5秒にして試行数を増やした所…いややっぱり大量にやってみないとわからないですね。

茶田茶田 2014/11/23 01:41 これに入ってる定跡は電王戦向けverで選んだ奴ですよね。駒得verが自分の棋風に合った序盤を作れば一気に強くなるかもしれません。

yaneuraoyaneurao 2014/11/23 06:24 ↑*4 ありがとうございます。。調査してみます。
↑*3 シングルスレッドのベンチです。マルチスレッドだと探索結果が毎回変わってしまい、安定した計測にならないため、こうなっています。
↑*2 双方ponderありにしてるのでGPSfishの思考時間奪ってるだけではないですかね。 やねうら王、結構待機スレッド多くて、GPSfishに十分な計算時間が回ってきてないのだと予想します。
↑*1 駒得のみの評価関数であれば、駒が激しくぶつかり合う局面のほうが相対的にはいいでしょうね。なので、横歩取りとか角換わりを選択したほうが相対的に有利である気はします。

茶田茶田 2014/11/24 23:03 >GPSfishの思考時間奪ってる
なるほど。たしかにponderなしにしたらGPSfishが筋良く勝ってくれました。やっぱり将棋はこうでなくては(手のひら返し)

floodgateの成績を見ると、rate24の値を信じれば、五段くらいですね。昨日のコメントの後いろいろ触っみた体感通りです。

yaneuraoyaneurao 2014/11/25 12:03 ↑駒得だけの評価関数で五段もあるのが驚きです…。ちなみにあとR100〜200ぐらいは伸ばせそうではありますが、この方面で頑張るのは不毛のような気もするので気が向いたときにやります。

SaSa 2014/11/26 16:52 駒得やねうら王、明らかにおかしいです。
私の棋力 → 24でR1000くらい。
やねうら王のNPS → 6〜12M程度。

30秒で対局。
やってみたら、序盤から中盤までで、いきなり勝勢を築けました。
はっきり言って、おまえ将棋のルール覚えたばっかりかよ、って思いましたが…。

そのあと、プロとも思える鬼のような強さを発揮されて倒せません。
明らかにおかしいですなんとかしてください。
数回対局しましたが、全部こうなりました。
勝勢になった時の点数をGPSで取ったら、全部2000超えてました。
でもそっから倒せません。

yaneuraoyaneurao 2014/12/07 01:38 ↑楽しんでいただけているようで(?)、作者冥利に尽きます。

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

2014-11-14 コンピューター将棋の定跡をデザインする

[] コンピューター将棋の定跡をデザインする  コンピューター将棋の定跡をデザインするを含むブックマーク  コンピューター将棋の定跡をデザインするのブックマークコメント


電王戦に向けていまやねうら王に定跡を搭載するための作業をしている。


電王戦ソフトを事前貸出をしてソフトの穴を探すためにプロ棋士側が研究するという、非生産的行為プロ棋士の多くの時間が消費される。電王戦は全くの茶番劇である


このようなプロ棋士側の非生産的行為をなんとか生産的な行為変換できないものかと考えて誕生したのが、やねうらおもてなし定跡である。「やねうらお」を「もてなし」する定跡ではなく、「やねうら」「おもてなし」定跡であり、「田村ゆかり、さんじゅうななさい」ではなく「田村ゆかりさん、じゅうななさい」なのである。(なんのこっちゃ)


早い話、多少不利になるような変化であれ、プロの実戦に出てくるような形をたくさん入れて、せめて事前研究とき将棋を少しでも楽しんでもらおうと思ったわけですよ。ところが、これがとてつもなく面倒なんすよ。


まず定跡をどうやって自動で生成しますか?


1) プロ棋譜から32手目ぐらいまでを定跡として登録する手法


これは去年の電王トーナメントでAperyがやって、富岡流の必敗局面に自ら突っ込んだ。


2) 1)の手法+出現頻度をカウントして出現頻度の低い定跡は採用しない


これはBonanza6がやっている。narrow book(狭い定跡?)にしたときは、出現頻度の低い定跡は使われない。ただ、それでも必敗と結論付けられているような不利な変化に自ら飛び込むことは避けられない。事前貸出がなければこれでも現実的には十分だが、事前貸出ありの状況ではこれが避けられない。


3) 1)の手法 + 出現頻度に比例した確率ランダムに指し手を選ぶ


Stockfishはこうなっている。悪くないアイデアではあるが、低確率で不利な定跡に突っ込むことには違いないし、序盤でわざと定跡を外して、そのあとに不利な変化に行くような定跡に合流されると困る。


また、「おもてなし」の心でありたいので、narrow bookにしたくないというのもある。広い定跡を搭載したい。しかしそうすると3手目で角をタダ取りされるように変化も(プロ棋士の実戦にあるので)、やってしまいかねない。一つ一つの定跡を目でチェックすればいいのだが、「おもてなし」なので1万通りぐらいの定跡を搭載したいわけで、その全部を目視でチェックすることは棋力の問題もあって私には不可能だ。


4) 1)の手法 + 探索して評価値を見る


そこで習甦の方法。定跡の指し手で進めた局面をdepth=12で探索させてみて、マイナスが大きな指し手ならばbook(定跡DB)に登録しない。一見、うまくいきそうではあるが、やねうら王でやったとき、先手76歩に対して後手の初手は次の通りであった。


・42玉(棒銀の餌食にならないか?)

・72銀(鈴木英春さんか?)

・94歩(また挑発だと言われるぞ?)

・74歩(いつぞやのツツカナか?)

・32金(振り飛車にされて作戦負け模様)

・54歩、32飛、42飛、52飛(悪くはないんだろうけど…)

・34歩(普通)

・84歩(普通)


と、34歩・84歩以外の手が糞すぎて困る。当確率に定跡DBの指し手を選ぶとしたら、後手の初手で糞みたいな手を引く確率が高すぎる。後手の初手なので、一番いい指し手で -70 程度。一番悪い指し手で -150程度。そんなわけで、-200 以下の指し手は定跡DBに登録しないという仕様で定跡を生成していたのだが、上記の指し手がごっそり定跡DBに登録されてしまっていた。


後手の初手ぐらい、人間の目で見て排除すれば良いのだが、しかし初手でこのような問題が発生する以上、手法自体に欠陥があるのではないかと私は考えた。


5) 4)の手法 + 最善手との評価値の差が一定以内である


そこで、せっかく探索しているので最善手の評価値との差(evaldiff)が一定以内であるという条件を追加した。


定跡DBのbestの指し手のみを選びたいときはこれを0にする。

narrow bookにしたいときはこれを30ぐらいにする。

幅広い定跡を選択したいときはこれを50ぐらいにする。


これだけだと徐々に悪くなっていく定跡を選んでしまいかねないが、評価値が -200 以下の指し手は採用しないというルールを加えることにした。


しかし、これだと

・narrow bookにしても先手76歩に対する後手の初手32金、62銀や42玉が選ばれることがある。

・後手パックマン戦法を選んでしまう。(44歩と突いて、歩をタダ取りされる戦法) 44同角のあと後手、定跡DBから外れて乱戦にせずに62玉。プロ相手にこれでは勝てませんわ…。

のような指し手が選ばれてしまう。


6) 5)の手法 + もっと探索!(depth = 18)


結局、探索深さが足りないという結論に至った。そこでdepth = 18で32手目まで探索させてみた。あまりにも時間がかかるので並列化した。正確には、探索するときにどのdepthで探索したかをDBに記録しておき、定跡DBマージ(合併)するコマンドを追加した。マージは、このdepthを比較して、その指し手でより深いdepthで探索した評価値が記録されていれば、その情報を優先するようにした。


これでも後手の初手の問題改善しなかった。また、「評価値-200以下の指し手は記録しない」というルールにしていると、


a) 62玉 depth = 12で探索 評価値 -100なので記録

b) 42玉 depth = 12で探索 評価値 -180なので記録

c) 62玉 depth = 18で探索 評価値 -1000 なので記録しない

d) 42玉 depth = 18で探索 評価値 -180なので記録


のようにc)の指し手が記録されない。c)の指し手は、a)の指し手と同じだが、深くまで読むと悪くなるということがわかったわけであるが、このc)が記録されない。b)よりはd)が探索深さが深いのでb)がd)で上書きされ、結果、a)とd)だけがDB上に残る。そうするとa) = c)は悪手なのに、この定跡DB上ではa)とd)が残っているから評価値の -100 と -180と比較してa)のほうが大きい(narrow bookで許容する評価値の差は30以内!)のでa)が採用される。これは間違った定跡である


このように考えると「評価値-200以下の指し手は記録しない」というルールは間違っていることがわかる。DB上に記録自体はよほどのことがない限りはしておくべきなのだ


7) 6)の手法 + もっともっと探索!(depth = 24)


depth = 24で1スレッドだと1手の思考に数秒要する。これをプロ棋士棋譜4万数千局に対して32手目までやるとなると…えーっと..


いま、ドワンゴに貸してもらってるガレリアPC(今回の電王戦出場ソフト開発者は全員申し出をすれば1ヶ月ほど借りらる)と自分PC 4台とでこれをぶん回しているんだけど、大丈夫かな…。(俺の家の電気代が)


f:id:yaneurao:20141114022042p:image:w450


しかし、残念なことにこれでも後手初手62銀は選ばれてしまう。おい、どんだけ62銀好きなんだよ!ちなみに、そのあと先手の飛車先が伸びてくると後手は32金〜41玉とするので完全に守勢に立たされる。こんなので勝てるの鈴木英春さんだけだよ…。


8) 7)の手法 + もっともっともっと探索!(depth = 30 , moves = 2)


まりに頭に来たので、2手目までだけ探索深度をかなり深くしてみた。depth = 30である。やねうら王の場合、1スレッドだと1手に15分〜30分ぐらいかかる。まあいい。そんなに組み合わせはないはずだから…。


その結果、ご覧の有様だよ!!


f:id:yaneurao:20141114022043p:image:w450


evaldiff = 30(最善手の評価値と30の差まで許容する)とした場合、後手の初手として32飛・84歩・54歩・62銀・34歩・42飛が選ばれる。


うーん。そうなのか…。ここまでしても後手の初手62銀は消えないのか…。


ならば、やねうら王には後手の初手62銀をやって、公式戦において最後に負けたコンピューター将棋として将棋界の歴史に名を残してもらうことにしましょう…。


※ 手番が決まるのは11月26日記者会見です。まだ先後決まっていません。


ちなみに、やねうら王の先手の場合は、こんな感じになっております


f:id:yaneurao:20141114022044p:image:w450


76歩・26歩・68玉・48銀のいずれかになるかと思います。68銀と48銀は正直、やめて欲しい…。でもこれも、やねうらおもてなし定跡だから仕方ない…のか…な…。ここは変に手心を加えず、やねうら王が自ら判断したありのままの定跡で臨みたいと思います


みんなも「やねうらおもてなし定跡」をハラハラながら見守ってくれ!!


・追記


9) 8)の手法 + 自ら思考させその指し手を定跡DBに保存


いま、生成された定跡を確認してたら68玉34歩38銀84歩76歩85歩78玉86歩同歩同飛22角成という先手の糞定跡が見つかった。誰が指したのかは知らんが(プロ棋譜以外も混じっているので)*1、38銀は趣向だと思うけど、せめて48銀にしてくれよ。そして22角成もどう見ても悪手。85歩に78金とでも我慢しとけば少し作戦負けながらもまだまだやれるのに…。こんな出だしじゃ絶対勝てないわ。


そんなわけで、8手目あたりまではdepth = 26ぐらいで思考させた指し手も定跡DBに登録しておこうかと思います。うちの電気大丈夫かな…。


10) 負けたほうの指し手は定跡登録しない


富岡流のような定跡もあるので、長い手数まで定跡化するのであればワンサイドで負けたほうの指し手は定跡登録しないということでそういう定跡を回避できる可能性があります。昨年のやねうら王が搭載していた、やね裏定跡がそれです。今回は採用しませんが。


・追記


ねとらぼで取り上げられました!


将棋電王戦出場のやねうら王 プロ棋士研究を無駄にしない「やねうらおもてなし定跡」を搭載

公式戦において最後に負けたコンピューター将棋」になるかもとのこと。

http://nlab.itmedia.co.jp/nl/articles/1411/14/news106.html


・追記 先手の初手の最善手は?


depth = 32で調べてみました。数時間かけてやねうら王に思考させたところ、58金右。この手はそんなに悪くない気はしますが(もしかすると本当に最善手の可能性がなくもなく…)、プロの実戦例にはないようで、今回の手法だとそのあとの展開が定跡化できないため、3手目から定跡を外れます。これだと今回の趣旨であるおもてなし”に反するのでこの手は指さないように何か対策します。

*1:コメント欄でKCC将棋棋譜だと教えてもらいました

YakitoriYakitori 2014/11/14 06:07 やねさんはやねうら王をどのように設計したいですか?
敵を万遍なくフルボッコにしたいですか?
それとも万遍なく5割程度勝てればよしとみますか?
前者の場合はかなりパーフェクトなアルゴリズムを要しますけど、後者はもっと簡単で確率的アルゴリズムを的確に組み合わせれば実現可能だと思います。
または特定個人をフルボッコにするんであれば、特定個人の素性を洗って穴を探すことになりますね。
貸し出し中に修正されるでしょうけど。
悪知恵ですけど、人間初見には弱いもんです。悪手でも初見すぎて対応できないということが少ないけどあるもんだと思います。
自分はそれができれば一回はどんな相手にも勝つ自信があります。まぁ、負けるときは負けるんですけどね。
あとは、選択肢をたくさん見せて選択肢をオーバーフローさせることですかねー。プロに挑むにはちと不利ですねぇ。
まぁ、馬鹿の考え休むに似たりといいますし、上記に挙げたのは器用貧乏の愚者の方法です。
さんこうになりますでしょうか。

yaneuraoyaneurao 2014/11/14 06:29 > やねさんはやねうら王をどのように設計したいですか?

穴がない、安定感のある将棋が指せることを目標としています。同じぐらいの強さの相手に5割勝って、圧倒的に弱い相手からもときどき取りこぼすよりは、同じぐらいの強さの相手に対して勝率が少し下がっても、弱い相手からの取りこぼしが少ないほうが嬉しいです。

YakitoriYakitori 2014/11/14 08:59 すごい挑戦ですね。
穴が無いにも何通りかあって、最初から穴がない板と、細かい網目がある網目をずらして穴をふさいでおく方法とありますよね。後者は失敗すると濾過機になっちゃうんですけど。
ところで、将棋でいう強い弱いの指標ってどの辺でつくとお考えですか?
スト4のダンというキャラがですね、最後に立ってた方が勝ちなんだよ。的なことをのたまうのですが、どれだけミスっても最後に勝てば勝ちです。
まず弱いを定義してそれをつぶしていけば強くなるんじゃないでしょうか。愚問ですかね。
それにしても、アルゴリズムの合成って難しいですよねぇ。
自分は小さいの3個くらいまでが限界です。やねさん位になると何個くらいいけるもんなんでしょうか。ちょっと興味があります。
一枚板を設計するんであれば、最初からすごい綿密に計算して、剛性やら厚さやらを先出ししないといけないのが結構つらいですね。
あ、ウザいくらい喋りすぎました。やねさんの未来に勝手に期待しています。がんばってください。

り 2014/11/14 10:49 初手62銀は妖怪のせいです。depth = 0くらいで62銀に引っ張っている妖怪ベスト3くらい見るのがいいような気がします。例えば妖怪「王の右上の銀はパラメータ+1000だぜ」妖怪とか妖怪「金の真上の銀はパラメータ+1000だぜ」妖怪が上位に来るような気がします。それはそれで妥当な値なのかもしれませんし、何かおかしな事が起きてるのかもしれませんし。

YakitoriYakitori 2014/11/14 11:36 また失礼します。
どうやって定石を搭載しますかという話ですが、机上の空論では合議制が確実だと思うんですよ。
質の違うやねうら王を5本作って戦隊で合議制抽出するとかどうですか?PCが5台という話でしたし。
ただ自分は机上ではそう思うんですけどどうやってやるかのメソッドまでは思いつきません。
個人的には夢のある方法だと思うんですけど、なんせ合議制って一般的に遅いですから、どうにか試合前のプリプロセスで抽出することって可能ですかね??
そんな妄想をしました。馬鹿の考え休むに似たりですね。

gabillgabill 2014/11/14 12:24 人間はどうやって「これあかんやつや」と判断してるんだろう。なかなか面白いテーマ。
「これやっときゃ間違いない定跡DB」とは別に「これは論外逆定跡DB」を用意しておけば良いのかな。
でもそれって「人間に思いつかないコンピュータならではの発想」を犠牲にしちゃいそうなぁ。

風吹けば名無し風吹けば名無し 2014/11/14 13:33 ▲3八銀の将棋はこれかな?
KCC将棋を恨めばいいんじゃないですかね
http://wiki.optus.nu/shogi/index.php?cmd=kif&cmds=display6&kid=33857

おもてなしおもてなし 2014/11/14 13:55 電王戦は茶番だから勝ちにこだわった設計にはしないということですか?個人的には勝ちにいって欲しかったんですが
おもてなし定跡のせいで序盤から敗勢なんてことになったら興ざめです

tyoro1210tyoro1210 2014/11/14 14:09 素人考えで「ワンサイドで負けたほうの指し手は定跡登録しない」に近いけど、終盤にこちらの読み筋とあまりにも違う手をお互いが打つ棋譜は棋力が怪しいから除外する みたいな事はできないでしょうか。
棋力判定はこちらが大幅に上回った棋力が無いと一棋譜からでは難しいですかね…

yaneuraoyaneurao 2014/11/14 15:45 ↑*1 指し手一致率を見て一致率が低い棋譜は除外するのは面白いアイデアですね。富岡流のような将棋が除外できませんが、負けたほうからは学習しないだとか、数手進めて悪くなっている側の指し手は学習しないだとか、まあいろいろ出来そうではあります。
↑*2 そこまで序盤で悪くならない程度の定跡が仕上がるように、いま頑張ってます。(私の家のPC 4台が)
↑*3 むー!KCC将棋めー!!(恨んでおきました)
↑*4 逆定跡DBはブラックリストとは違うんですかね…。とりあえず1手目68玉と48銀、2手目62銀は手で除外しておこうかと思ってます。逆定跡DB、うまく体系化できたら画期的かも知れません。
↑*5 合議でやっても後手の初手48銀は上位に出てくるでしょうね。たぶん最近のソフトならいずれでも出てきそうな感じですので…。
↑*6 それは、いいアイデアですね。毎度、感心します。

YakitoriYakitori 2014/11/14 16:35 それは手ごわいですね。
素人には届かない領域ってやっぱありますね。くぅ〜。Orz
勉強になりましたありがとうございます。

nnsnns 2014/11/14 17:19 深く読んでも変な手が出てきてしまうのは、結局今の評価関数でも序盤はあまり改善されてないからなんですかね?

猫田猫田 2014/11/14 20:33 後に将棋が完全解析され後手62銀が必勝定跡である事が判明するが、
この時点ではその事をまだ誰も知らないのである

yaneuraoyaneurao 2014/11/15 01:21 ↑*2 序盤の立ち上がりの悪手を咎めるために一直線に攻めに行くとしまして、そういう変化、「深く読む」場合にも枝刈りして読み落としている意味があります…。結局のところ、もう少し探索の絶対量が増えないとなかなかうまく指せないような気はしてます。
↑*1 depth = 30ぐらいでは信用ならんですねぇ…。depth = 40とか50でどうなるのか見てみたいですが、depth = 40はやねうら王の場合でたぶん1週間ぐらいかかります…。

Ta(ryTa(ry 2014/11/15 10:03 電力量計の円盤がどのくらいの勢いで回転しているのか、私、気になります。

yaneuraoyaneurao 2014/11/15 15:20 ↑「いつもより余計に回しております!」 PC 8台がフル稼働で部屋は暑いですが、懐が寒いです。

つぼみつぼみ 2014/11/15 15:42 「やね」「うらおもて」「なし」定跡を楽しみにしております。

あきみんあきみん 2014/11/15 18:24 「プロフィール」の
最近の出来事
・コンピューター将棋ソフト「やねうら王」が、2014年の電王トーナメント本戦4位に!
になってます。
数行下のをコピペして、順位の変更を、しわすれたものと思われます。

茶田茶田 2014/11/15 21:56 2手目6二銀と言えば、これですね。
「羽生は「2手目△6二銀は損だが、どれぐらい損であるかを見極めるために指した。どれだけ損であるかがわかったので、もう指すことはない。」という旨を語っている」
http://ja.wikipedia.org/wiki/%E7%BE%BD%E7%94%9F%E5%96%84%E6%B2%BB#.E8.AB.B8.E5.AF.BE.E5.B1.80.E5.86.85.E5.AE.B9
やねうら王がまだわかっていないのか、それとも羽生さんがわかったつもりになってわかっていなかったのか…

yaneuraoyaneurao 2014/11/15 22:07 ↑*3 (´ω`)?
↑*2 修正しました!
↑*1 それですね。当時、鈴木英春さんのアマ名人になったり、かまいたち戦法が書籍になって発売されていたころなので、羽生さんはそれを下地に研究されたのかな?と思うのですが。

茶田茶田 2014/11/16 00:32 やねさんの裏表のない素敵な定跡です。
http://youtu.be/cvkPoR-S2x8?t=7m44s

シーサーシーサー 2014/11/16 23:28 ソフトがじっくり考えた初手が58金右というのは興味深いですね
他の強豪ソフトがどう考えるのかも気になりますね
もし同じ答えが多かったりしたら序盤が見直される事になるのかも…!?

fujihiro0fujihiro0 2014/11/18 21:38 ↑*1 やねうら未来定跡をやめたのは残念です。もう棋士の棋譜からコンピュータ将棋が学習するのではなく、コンピュータ将棋から棋士が学ぶ時期が来てる。やねうら王の定跡で棋士に発見があればこれが本当のおもてなし。

odakinodakin 2014/11/19 11:44 5八金右削除残念。やねうら王相手に「むむむ」と真剣に頭を絞ってもらうのが真のおもてなしではないかな。

yaneuraoyaneurao 2014/11/19 12:22 ↑*4 (´ω`)?
↑*3 58金右はマジで最善手じゃないかと思ったりするんですが、私の棋力ではよくわかりません…。
↑*2 やねうら未来定跡は、やねうら王がもうひと回り強くなったら復活させます。まだいまのやねうら王はなぜか序盤結構弱いです。思考時間増やしてもなかなか改善しません…。
↑*1 いずれ58金右は日の目を見ると思います。そのときまで温めておきます。

田中田中 2014/12/06 11:16 先手の初手は76歩か26歩、後手の初手も34歩か84歩で固定させては如何でしょうか?

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

2014-11-06 人間の棋譜を参考にせずに評価関数パラメーターを学習させる件

[] 人間の棋譜を参考にせずに評価関数パラメーターを学習させる件  人間の棋譜を参考にせずに評価関数パラメーターを学習させる件を含むブックマーク  人間の棋譜を参考にせずに評価関数パラメーターを学習させる件のブックマークコメント


少し誤解している人がいらっしゃるようなので補足します。


まず、人間の棋譜を参考にせずに学習させようとした場合、探索で正しい手が指せるのは詰みの絡む局面(≒終盤)だけなので、終盤の指し手から(開始して、それを前倒ししていき、最終的に序盤の指し手を)学習させるというのは当然のことです。これは私のアイデアではないです。オセロのロジステロなど先行事例(10数年以上前から!)は多数あります。


この部分、誤解している人が多いので、以下に「ひまわり(将棋)」の山本さんのツイートを紹介しておきます。


https://twitter.com/kyamamoto9120/status/529958077491970049

f:id:yaneurao:20141106070544p:image


https://twitter.com/kyamamoto9120/status/529960169023631360

f:id:yaneurao:20141106070545p:image



その上で私のアイデアは、二点あります。


一つは、学習に強化学習(TD法など)を使わないということです。普通の棋譜からの学習はボナメソで成功することが保証されているのだから、わざわざ他の方法を持ち出さないということです。


もちろん、TD(λ) 法やQ学習などを用いても成功するとは思います。しかし、Bonanzaのlearn.cを見てもわかるように、ペナルティのかけかたや、シグモイド関数の使い方に独特のテクニックのようなものがあり、TD(λ) 法やQ学習を用いる場合も、それに相当する独特のテクニックを開発しないといい値に収束しないのではないかと思うのです。私は強化学習を専門にやっているわけではないので、そのへんの事情は知りませんが、ボナメソで出来るとわかっていることをわざわざ他の方法でやるのは遠回り以外の何物でもないと思っています。


ボナメソであれば、プロの棋譜から学習させる場合、どれくらいの数の棋譜でどれくらいのイテレーションをどれだけ回せばそこそこの値に収束するのか(どれくらいの棋力の評価関数パラメーターになるのか)がわかっていますから、それと比較しながら実験が出来ます。だから、この部分をボナメソ以外でやるというなら、そもそもその手法を用いてプロの棋譜からボナメソより早く学習でき、ボナメソでやるのと同等以上の棋力になることを証明してからでないとその手法を使う価値がないと思うのです。


また探索部についても同様で、きちんと探索部が書けていること(少なくともボナ6のfv.binを使用したときにボナ6と同等の性能が出ていること)が必須条件だと私は考えています。この部分がきちんと書けていない場合、この手法で学習させた評価関数パラメーターとの比較実験自体がまっとうに出来ないからです。


二つ目は、学習の時の次元下げです。終盤に出てくる特徴から序盤に出てくる特徴を学習するためには、学習時の次元下げが行われていない限り、厳しいというのが私の考えです。


そのために相対KPPによる次元下げ(や、その他の次元下げ)を用います。それなしではうまく終盤から序盤の形を学習させられないと私は考えています。例えば、自己対戦で生成した棋譜からのみ学習させることを繰り返すと、棋力がサチらず(飽和せず)、どこからか棋力が下がっていきます。それは序盤を誤って学習してしまうためです。このような(自己対戦棋譜からのみの学習という)フィードバック型の学習において、サチらない状況(条件下)では、終盤から序盤を学習させるのは厳しいというのが私の考えです。


つまり、フィードバック型の学習で棋力がきちんとサチるように次元下げをして、まずサチることを確認する。サチらないなら次元下げの方法を工夫してやる。これがまず最初にやるべきことであり、これをやらずに、終盤から序盤を学習させようと努力するのは、努力の方向性が真逆であるというのが私の考えです。だから、私は、この部分で「サチる」のを確認できたら、この手法に取り組むつもりです。


オセロで成功して将棋で成功しないのは、以上の2点に起因する問題だと私は考えています。


つまり典型的な駄目な研究の進めかたとしては、探索部=独自に書き起こしてバグ有りかも、評価関数の形=独自、評価関数の学習メソッド=強化学習、次元下げ=やってない、というやり方です。このように未知の要素が多い状況では比較実験自体が成立しないので、成果を出すのに相当な腕力が必要になります。そのような状況下では私ですら全く成果は出せないでしょう。(※ ひまわり将棋がどうやっているのかは私は知らないので、この話はひまわり将棋や特定の将棋ソフトのことではありません。)


人間の棋譜を用いずに評価関数パラメーター学習する件について、私の考えおよび、私の提案する手法は以上です。

ingktingkt 2014/11/06 08:58 次元を下げない場合と下げる場合で両方ともサチるって書いてあって分かりにくかったのですが……
次元を下げないと棋力は (学習の途中までは上がるものの) 最終的に下がっていく。正しく次元を下げれば棋力は下がることなく一定のレベルに到達して安定する。
ということですね。

yaneuraoyaneurao 2014/11/06 09:06 ↑はい、その通りです。本文少し修正しました。

ヒーローヒーロー 2014/11/06 12:12 プロとの将棋もあっという勝負を見せてください、応援しています。将棋はもう人間は勝てない気がします。決勝戦も逆転の手に解説のプロもコンピューターソフトの進歩の速さに絶句したのではないでしょうか。個人的には囲碁ソフトを作って、アジアのやねうら王さんなってほしいと思います。ニコ堂、川上会長もも海外に進出しているでしょう。別件ですが、明治大正古文書翻訳ソフトも、国会図書館などに高価で売れると思いますのでよろしく。

り 2014/11/06 13:17 [序盤を誤って学習してしまう]というのは以前書かれていた「学習時に出現していない局面の因子はゼロに収束してしまう」に関連する話だと思うのですがその理解で合ってますか?

それと話は変わりますが ndfが行っている矛盾によるパラメータの修正「読みを浅くして弱くして得た棋譜には、評価値に問題がある局面が対局中に現れるので矛盾を確実に発見できるあたりの話」は何を言っているのかさっぱり分かりませんが(交差検証の事なの???)このあたりを導入する予定はありますでしょうか?

yaneuraoyaneurao 2014/11/06 14:16 ↑*2 囲碁ソフトは…気が向いたら…。
↑*1 [序盤を誤って学習してしまう] 理由は、その特徴因子が出現していないからだけではないです。出現していても、そのときの指し手が正しいものではないからです。例えば駒得だけの評価関数で自己対戦から生成した棋譜だと序盤の指し手はでたらめです。そういう棋譜からは学習できないです。

NDFの「矛盾によるパラメータの修正」の詳しい内容自体は私は知っているのですが、それが効果的なのかどうかも含めて考え中です。

YakitoriYakitori 2014/11/07 02:05 学習の時限下げは自分はリアルでやっています。
これは、物事をオブジェクトで持ってしまうと必ずツナギなどの無駄な部分を含むのでもっと分解してOPSにしたいです。
それに粒度が大きいと適応範囲も減るのです。なのでPGは1関数1機能にしましょう。蛇足ですね。
あとは組み合わせの問題になりますから、どれだけものを知って可能な組み合わせを知っているかに帰着すると思います。
そんなことやってると思考がカードゲームでいうアグロになってしまいました。
良し悪しはともかく、慣れたら脳死レベルでこなせるようになるので、楽ですよ。
まぁ、将棋とは関係ありませんけど。

sakanasakana 2014/11/07 04:10 >■ 2014/11/01 14:12 やねうら王 vs labyrinthus

>■ 2014/11/01 14:20 秒読み=0と解釈するように修正する


>いまのうちに秒読み=0と解釈するように修正する。

>■ 2014/11/01 14:30 labyrinthusに勝利

とのことですが
labyrinthusとの対局中にソフトの設定を変えたのでしょうか?

yaneuraoyaneurao 2014/11/07 08:44 ↑対局中には設定は変更できないです。次局に備えてプログラムの修正を対局中にやっていたという意味です。結局、秒読み = 0は損かと思い、採用はしなかったのですが。

bitabita 2014/11/07 09:50 いつも興味深く拝見しています。1つ質問です。

>ボナメソで出来るとわかっていることをわざわざ他の方法でやるのは遠回り以外の何物でもない

とのことなのですが、やねうら王開発実況用スレッド その3のやねうら未来学習メソッドの中で、

>また棋譜からの学習メソッドは独自のものになっている。ボナメソ(Bonanza6の実装)自体は、機械学習の方法としてはさほど優秀でもないので、なかったらないで特に困らないと私は考えている。

といっていたので、てっきりボナメソでない手法で学習しているのだと思っていました。今回のやねうら王では、ボナメソを使っているのでしょうか?それとも違う学習法なのでしょうか?また、ボナメソの使用を推奨しているのでしょうか?していないのでしょうか?(どこまでを「ボナメソ」と呼ぶか、定義にもよりそうですが。。)

yaneuraoyaneurao 2014/11/07 10:56 ↑やねうら王で使っているのはBonanza6のlearn.cの実装とは違いますが、バッチ型学習なので広義にはボナメソに含まれます。私はボナメソの使用は推奨してないです。オンライン学習などもっと収束の速い学習方法が多数あります。

ただ、こういう新しい試みをするときは100%出来るとわかっている方法を積み重ねてやるべき(新しい試みは同時に2つ以上やるべきではない)というのが私の考えです。それは、その方法に失敗したときに、どれが原因で失敗しているのかが特定できないからです。

また、論文の実験データとしてもBonanza6やGPSfishの実装からXXを変更してこうなった、というような既存の実装に基づく比較実験のデータを出してもらわないと私は何の参考にもならないです。バグありでBona6より弱い探索部とか、普通にプロの棋譜から学習させてボナ6と同じレベルの棋力にパラメーターが収束するかどうかも怪しい棋譜からの学習部とか、そういうのを持ってきて実験されてもなぁ…というのが私の考えです。(ひまわり将棋や特定の将棋ソフトの話ではありません。念のため。)

YOSIYOSI 2014/11/07 12:55 この記事には関係ないですが、最近のソフトって将棋所に組み込めるバイナリって公開しないんですかね?公開してくれるといろいろ遊べて楽しいのですが。(将棋所から結果をどこかにアップロードできれば開発者にとっても利点はあるのかな?)

山本@ひまわり山本@ひまわり 2014/11/07 13:07 ひまわりの作者の山本です。

わざわざ記事を起こす手間を作ってしまってすみません。
思うところあっての主張ですが、やねうらおさんに向けての主張ではありません。

まず、私も論文の実験データを取る際にはBonanzaを使います。
当然、既存手法との比較も必要ですし、そもそも優れた探索部を
使わない理由はありません。

やねうらおさんの主張に対してですが、大筋で同意します。
ひまわりがプロの棋譜を用いた学習をしたのは、そもそも学習手法の
検証が目的です。
そのプロセスも経ずに教師なし学習を行うのは無謀と考えます。

私は次元下げはやねうらおさんほど重要視しておらず、その点で
考え方に差はありますが、学習が成功することに期待しております。
電王戦等でお忙しいとは思いますが、是非頑張ってください。

yaneuraoyaneurao 2014/11/07 13:38 ↑*2 やねうら王のバイナリ公開は考えてなくはないです…が、将棋倶楽部24とか将棋ウォーズがソフト指しの温床になるといけませんのでそのへんの判断は慎重にしませんと…。
↑*1 人間の棋譜なしで学習を成功させるのは、ひまわり将棋がゴールに一番近いところにいるのではないかと私は思ってます!たぶん、ひまわり将棋は相対KPPで次元下げを導入すれば案外簡単にゴールできるのではないかなーと思うんですが。

り 2014/11/08 09:09 [序盤を誤って学習してしまう] の解説ありがとうございます。
「学習時の次元下げ」このあたりもどう行うのか微妙ですね。ボナンザは「次元高い特徴を除いて次元低いやつだけで学習すると早く学習できる」だし、やねうらおさんのブログを見ると「次元高い特徴と次元低い特徴合わせていっきに学習」のようにも読めるし。

まあ次元下げはこれからも注目される技術だと思います。

次元下げ次元下げ 2014/11/08 14:39 次元下げというのがどういうものなのか解説の記事を書いていただけるとありがたいです。

茶田茶田 2014/11/08 22:50 めんどくさいとか忙しいという理由で公開しないのならあきらめますが、ソフト指しが増えるからというのは納得行かないです。デメリットよりメリットのほうが多いでしょう・・・と思ったけどやねさんには具体的なメリットはないですね。将棋プレイヤー全体のレベルが上がるとか・・・すいません僕が欲しいだけでした。

yaneuraoyaneurao 2014/11/09 22:37 ↑*3 「次元高い特徴と次元低い特徴合わせていっきに学習」はしないほうが収束は早いです。ただ、次元下げをしていると一つ一つのパラメーターの値はかなり小さな数値となるので(ひとつのKPPの値が次元下げをした複数の値の和となるので)、収束に要する時間はずいぶん短縮化されるので、収束の早い/遅いはあまり問題ではないのかも知れません。
↑*2 NDFのPR文のKPPをKKP + PP + 相対KKP + 相対PPに分解というのが次元下げ(の例)です。
↑*1 やねうら王の(無償?)公開は考えてなくはないです。

観戦者観戦者 2014/11/09 23:20 以前に少し話出ましたが、自己対戦のテストを回すのに
バイナリを公開(一般か限定か)して、各自のPCで自己対戦させ
出来た結果ファイルを専用サーバにUpするかメールで送付等して
試行回数稼ぐとかどうですかね。

まぁ、電気代は請求しない方向で。

やねうら王販売やねうら王販売 2014/11/10 00:37 やねうら王がR100強くなる度に旧バージョンを1万程度で売るという商売はいかが?電気代に当てればいいじゃないですか
私なら喜んで買いますが

玄関口王玄関口王 2014/11/10 03:04 24参戦もしてほしいですね〜再び
少し前のポナンザで3450程度?やねうら王がどこまでいけるのか興味あります。

YOSIYOSI 2014/11/10 10:15 バイナリ公開いいだしっぺです。やねうら王とかツツカナとかで遊べるのはプロ棋士の特権という現状が、何か変だな〜と思っています。まあ、それはいいとして、Vector でシェアウエアで売れば売れますよ。間違いなく。私なら値段は1600円としますね(すみません、適当です)。たぶん200万円くらいの売り上げでしょう。毎年、新しいバージョンが売れるので開発費の回収にはなりますよ。

意訳意訳 2014/11/11 00:50 作ったらmakeかなと思ってる

yaneuraoyaneurao 2014/11/11 01:01 ↑*5 試行回数(棋譜の数)の勝負になってきたら何らかそういう方法を考えたいと思います。やねうら王は、まだ棋譜の数の勝負になってなくて…(´ω`)
↑*4,*2 買う人、5人ぐらいしかいなさそうですが..。考えておきます。
↑*3 将棋倶楽部24は、話を進めておきます。また3月ごろにでも。
↑*1 秀逸なコピーなので何かのコピペかと思ったら、コピペじゃなかった!!今度使わせてもらおっと…。

YakitoriYakitori 2014/11/12 06:04 やねさんに質問です。
たしか、トーナメント前に相対KKPだったかを128分割して一般化したらいくらか遅くて16分割に直したとおっしゃってたと思います。(NDFメソッド?)
現在はどれくらいの分割数でイテレーションしておられますか?それはなぜですか?
分割であってるかもちょっとあやふやですが。すいません。

り 2014/11/12 10:07 次元下げの説明はあれでは理解できないのでは。

例えば「玉の位置って大事なのでは」と考えたとしましょう。確かに5五に玉があったらピンチそうです。ですから・玉の位置[行][列]・みたいな配列で特徴を表現します。将棋盤は9行×9列なので、この配列は 9x9の二次元配列です。これで学習したら玉の位置[5行][5列]の値は-100 くらいになるのでしょうか?まあそんな雰囲気です。これに対して次元下げを行うことを考えます。玉のある行[行]、玉のある列[列]こういう2つの配列を用意します。この場合1次元配列を2個用意した形になりました。玉が5五にあった場合の評価値は『玉のある行[5行]+玉のある列[5列]+何たらかんたら』みたいになるのでしょうか。二次元配列のものが一次元配列になっています。

つまりまとめると「GPW14が11月8日に箱根であったらしいが、そこでコンピュータ将棋の試合があったのか?さっぱりわからない」という事になります。

yaneuraoyaneurao 2014/11/12 14:07 ↑*2 いま、別の次元下げの方法を考え中で、いまは棋譜からの学習はさせてないです。あまり合理性のない次元の下げ方だとノイズになっちゃって逆効果になるので…。
↑*1 次元下げの説明としては確かに「二次元配列のものが一次元配列に」の部分がないと看板に偽りありとなってしまうでしょうけども、実際的には、『玉のある行[5行]+玉のある列[5列]+何たらかんたら』ではなく『王の位置[行][列] + 玉のある行[5行]+玉のある列[5列]+何たらかんたら』になって(要するに元の要素は加算するのが好ましい)、次元下がってないんですよね。それを便宜上「次元下げ」と呼んでいるだけで…。

GPW14のほうは…もう少し情報をオープンにしてくれてもいいと思うんですけど…。これではコンピューター将棋の開発者ですら参加する気にはなれませんなー。

YakitoriYakitori 2014/11/13 17:54 ふむふむ。回答ありがとうございます。
まだ変更や改良の余地があるんですね。すごいなー。

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

人気blogランキング tokutoku777
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 |


Microsoft MVP
Microsoft MVP Visual C# 2006.07-2011.06