真やねうら王の評価関数の評価値の出かたが、浮かむ瀬のそれに似ているということでなんとかちゃんねるで話題になっているようです。これについて理由を書いておきます。
まず、いま公開している真やねうら王の評価関数は、電王トーナメント本番で使用した評価関数ファイルとは異なるものです。いま公開しているものは、電王トーナメント本番では使用していません。
公開しているバージョンのほうが少し強いのはわかっていたのですが、こちらは、比較実験用にApery20161007(の評価関数ファイル)を利用して作ったものなので、電王トーナメントでは使っていません。(電王トーナメントでの指し手と、公開している真やねうら王とでは指し手が違うはずなのでわかるかと思いますが…。)
標題の件は、ここまで。以下は蛇足。
ただ、いま公開している真やねうら王のファイルがApery20161007から単純に雑巾絞りしたものかと言われるとそれもまた違います。
Apery20161007の評価関数と、いま公開している真やねうら王のほうの評価関数のほうを比べると、真やねうら王のほうが若干強いはずです。少なくとも真やねうら王の探索部を使う限りにおいては、真やねうら王の評価関数のほうが強いようです。(私の手元の実験では)
評価関数。手元の実験では真やねうら王の方がほんのり強い(レート差20前後)様子。探索は持ち時間長くしないと解らないですが、私の勘(本当に勘。ちがってても恨まないでねっ!)は浮かむ瀬にやねバイナリを積むとさいつよだって言ってます……
— Qhapaq (@Qhapaq_49) October 17, 2016
これをどうやって作ったのか?という話を少ししておきます。
棋譜自体の利用は電王トーナメントやWCSCのルールには反しないので、Apery20161007で棋譜(教師局面)を生成して、雑巾絞りをしてもルール上は問題ないはずです。(Apery20161007に追加学習してはいけませんが、Apery20161007で棋譜を作る分には構わないという意味です。)
そこで私も「使えるものならば使ってみよう」と、9月ごろ、実験的にApery20160917から雑巾を絞ってみたのですが、これが元の評価関数ファイル(Apery20160917)より強くなりませんでした。(R30ぐらい弱くなりました。) 条件を色々変えてやっても、元のものからR10~15ぐらい弱くなっていました。やねうら王の学習部の書き方がAperyより悪いのだと思いますが、いまだ原因はよくわかりません。
平岡さんのほうでも(電王トーナメント3日目において)この最後のもの(Apery20161007)から雑巾が絞れなかったそうなので、相当絞りにくく、雑巾絞りの精度がよほど高くないと絞れないのだと思います。平岡さんの話では、電王トーナメント3日目において雑巾絞りによってApery20161007とほぼ同等のものが出来たそうですが、Apery20161007より強くなっている確信が得られなかったそうで使用しなかったそうです。
私のほうで実験的にApery20161007から雑巾を絞ってみたところ(Apery20161007に対する追加学習)R30ぐらい弱いものが出来ました。こちらは、平岡さんと異なり、同等のものすら出来なくて(たぶん学習部の差)、残念です。
そこで、改良案として、雑巾を絞るときに、やねうら王 + Apery20160930の評価関数で技巧などと対戦させた棋譜を利用しました。技巧との勝率を計測するのにたくさん対戦させていたので、その棋譜自体は大量にあったからです。(1手0.1秒対戦の棋譜は百万局以上あり)
この棋譜を利用しています。(棋譜には評価値もついていて、これも利用しています。)
雑巾絞りの過程で、この棋譜で矯正するとそちらに値が引っ張られるせいか(そちらのほうが値としては信用できる?)、何故か絞れなかった雑巾が絞れます。
これは、俗に言う、(Qhapaqさんが開発した)河童絞りと原理的には近いかも知れません。何故これで強くなるのか、私自身よくわかっていませんが、何故か強くなるようです。この方法で継続的に強くなるのかどうかについてはよくわかりません。今後、色々実験してみようと思っています。
また、電王トーナメントでの真やねうら王でも、この対戦棋譜(やねうら王 + Apery20160917/Apery20160930の評価関数で技巧と対戦させた棋譜)を学習に利用していましたし、Apery20161007で教師局面も生成してそこから学習もさせています。(後者しかしない場合はR30ぐらい弱くなりました) 評価関数ファイル自体は、やねうら王 2016(Mid)で公開している評価関数ファイルから追加学習してきたものなので、この学習方法自体はルール違反ではないはずです。
まとめますと、
- いま公開している真やねうら王の評価関数の作り方
やねうら王(Apery20160917/Apery20160930)での技巧との対戦棋譜 + Apery20161007から教師局面生成 + Apery20161007に対する追加学習 - 電王トーナメントでの真やねうら王の評価関数の作り方
やねうら王(Apery20160917/Apery20160930)での技巧との対戦棋譜 + Apery20161007から教師局面生成 + やねうら王2016(Mid)から学習させてきた評価関数ファイルに対する追加学習
こうなります。2.のほうが残念ながら少し弱いです。初期値が悪いからなのだと思いますが、よくわかりません…。
こうやって作ったものなので、浮かむ瀬と評価値が似ていると言われると、確かにそうなのかも知れません。(私は気にもしてませんでしたが…)
あと、上記で書いたApery20161007の対戦棋譜の利用(+教師局面の生成への利用)は、ルール違反ではないと私は思っていますが、念のためにドワンゴ側にも確認しておきます。
雑巾絞りメソッド前の将棋ソフトは、
floodgate+プロの棋譜+自己対局とかから学習するのがあたりまえでしたし、
floodgateなんて最新のAperyばかりだったりするので、それを自前生成したってだけなら、何が問題かいまいち分かりません。
学習探索も間違いが少なく、時間がかからない等の理由により浅いdepthで何度も絞っていたハズなので、80億局面なんて数を何度も同じやり方で重ねていけば、統計的にほぼ一致しなと逆におかしいんじゃないかと思います。
すべてのパラメータ数値が1違うだけで、depth20でも100万通りの組み合わせに影響が出る訳で、棋風なんて全然変わると思います。
なので、去年のPonanzaと浮かむ瀬の棋風が似ているなら、評価関数のパラメータがほぼ一致していないとおかしいことになります。
結局、同じやり方だと行き着く先はノイズのような微差が、たまたま宝くじが当たるようなものだと思うのですが。
問題がややこしくなっている点は、強いものをフリー公開するサービス精神が仇になって、大会用の物も実は……みたいな疑惑をかけられている点と、
浮かむ瀬を強くしようと将棋に興味があり、協力的だった人達の反感を買ってしまったことかな。
ウワサなんかの類は事実とは違い、面白おかしく広まるものなので、気にしてもしかたがありません。
ただこれが原因で開発が萎縮してしまうことになれば残念です。
真やねうら王で気になった点。
①MultiPVを複数にしたときに、指し手表示が評価値の悪い手から並んでいる。
※悪い手を指す訳では無いので、表示の問題
②Ponderがヒットすると悪手を指すことがある。
③真やねうら定跡で相手が振り飛車でもないのに、早々に6八玉と舟囲いのような動きで戦場に寄る。7八金から7七角で角交換の7七金の悪形になりやすい。
※この2つだけでもかなり勝率が落ちています。
④浮かむ瀬や魔女ほどではないが、勝負所で読み抜けをしてしまう。
※MultiPVで対応出来た。
上記を鑑みて、
スレッド8、1手5秒、Ponderオフ、投了値設定1000
真やねうら王(推奨設定)vs真やねうら王(MultiPV5+自前定跡)
これで300局、勝率75%になりました。R+200ですが、完全同型なので他ソフトと比較すればR+100程度だと思われます。
●やねうら王3.57のときと比較して、かなり早い段階から正確な形勢判断が出来ていますので、MultiPV1でほとんど有りもしない深い好手を探すより、
MultiPV5にして確実に出る読み抜けを防止したり、相手の読み抜けを咎めたり、細かい評価値を拾うほうが総合的に良い結果になりました。
ただし、勝負所で比較的読み抜けが出現しやすい1手5秒ですので、長時間で同じ結果になるかは分かりません。開発の参考程度にどうぞ。
●こんなプログラムが可能か分かりませんが、1手の中で最初の10秒をMultiPV5、それ以降の秒数を上位2候補MultiPV2で探索とかに出来る設定があれば色々見えてくる物がある気がします。
がうるさん、いつもながら、ソフトの弱点について鋭い指摘ですね。弱点のほう、参考にさせていただきます。
例えば`Web上の「年賀状イラスト」とかですと、著作権者が複製や使用を認めているとしても、著作権自体は放棄されていないとすれば、一般的には改変は(たとえ改良でも)NGとなります。
森進一の「おふくろさん」騒動なんてのもありましたね。
いちいち反応するものアレなんですが、今回の件は裁判所が裁くような事案ではありませんので、著作権うんぬんというのは話がズレすぎです。
そして、刑事事件のように絶対に白黒つけなければならないような問題でもありません。
争点はごく限られた電王戦という大会の中で、主催者が決めたルールに抵触したかもしれないという程度で、本人も主催者に確認している最中なので、周りがアレコレ言うのは筋違いです。
実際にこの件で損害を受けたと思う人がいれば、明確な理由と共に双方で話し合えばいいだけ。
それで絶対に曲げたくない主張があり、個人では解決出来そうに無い場合に、高いお金を払って弁護士さんが出てきたり、裁判所に指定様式で届け、裁判官に間に入ってもらい問題を解決するのが日本の法律。
それこそ、私もそこまで言ってないです。
GitHubで公開されている=何に使ってもいい、ではなく、当然開発者の意向が尊重されるべきであろう、くらいの意味ですね。
赤い道路、緑の道路、青い道路、紫の道路がある国を考える。Apery君は赤い道しか走らない。技巧君は緑の道しか走らない。できるだけ、いろんな町に遊びに行きたい。つまり赤い道だけだと辿り着けない町があるとか?
それと河童絞りがググっても良くわかりません><
河童絞りは、QhapaqさんのPR文書に(少し)あります。
もっとシンプルに「ローカルな極値」の話なのかな。
焼きなまし法とかの。
色々な評価関数があるのは良い事だと思います。
ここは駒得のみ評価の
真ひようら王も一員に加わるフラグでしょうか。
(勝手な解釈)
駒得のみの評価関数は、0ベクトル(全部の値がゼロである評価関数ファイル)にすれば良くて、これは、やねうら王の評価関数28バリエーションの一つとしてすでに存在します。これを使うと真やねうら王が駒得のみの評価関数となります。(手駒のときに加点していないのでひよこ将棋より弱いかも)
なるほど、ダウンロードしてみます。
ちょい弱でも、電王トーナメント版で使用された評価関数もアーカイブとして公開されればいいのでは、、、
あ、ハクビシンさんが公開されてるんでしたっけ?
自己レス
ハクビシンさんは評価関数の別途公開はされてないですね。
そりゃそうか。
(link: https://github.com/nodchip/hakubishin-)
別途公開とは何でしょうか?ここからダウンロードできませんか?
https://github.com/nodchip/hakubishin-/releases
評価関数の構成について
KKPファイルを削除すると、すさまじく終盤力が落ちます。
※私の観察では、玉周辺に駒を指す手が相当に読み抜けします。
これファイルサイズ小さいですし、
KKP、KKPT、KP、KPT、KPPとかにすれば従来よりNPS+終盤力が上がりませんか?
要は玉周りの近似パラメータを重複させてKKPTのみのときより、読み抜けを防止する効果に期待する感じで。
> KKP、KKPT、KP、KPT、KPPとかにすれば従来よりNPS+終盤力が上がりませんか?
・KPは先手のKPと後手のKPとを合成したのがKKPなので、KKPはKPを含みます。
例) 先手78玉×P + 後手82玉×P = 先手78玉×後手82玉×P = KKP
・同様の理由によりKKPTはKPTを含みます。
・KPPTのTは手番があるときのボーナス値なので、手番がないときは、このボーナス値が引かれることになります。なのでKPPT = KPP + ボーナス値(手番があるとき) , KPP – ボーナス値(手番がないとき)のようになっていて、つまり、KPPTはKPPを兼ねます(ボーナス値が0だとみなせば)
以上のことから、がうるさんのおっしゃっているのは、結局、KKPT + KPPです。これはいわゆる、「3駒でKKPのほうだけ手番あり」と呼ばれるもので、これのほうがKPPTより強いかどうかは…まだ何とも言えない状況です。
なかなか上手くいかないものですね。
私の観察では中盤初期の互角局面で、手番のボーナスは+100程度で積極的に攻めようとします。
将棋的には非常にまっとうな思考なのですが、ソフト同士の勝率で考えますと相手が自分より弱いソフトでなければ、勇み足となって負けます。
この局面でMultiPV5として、depth28辺りまで読ませると、だいたい反省して+0付近の攻守に優れた手を最善手として選びます。
でもこれってたぶんKPPでたくさん学習したら普通に出る手なんだと思います。
KKPTについては、手番のボーナスがあったほうが玉周りの手がヒットしやすいと思いますので、終盤力的に有利になると思います。
■アマチュア定跡必要でしょうか?
棋譜整理していますが、6万局程ありそうです。
枝刈りが激しいソフト同士と違ってかなり幅広いので、40手くらいで重複しているのを除外しても、序盤で100万手は超えると思います。
ただし、勝ち負けで分けていますので、先手勝ちを先手定跡。後手勝ちを後手定跡。となりますので、序盤の形勢が逆の登録も混ざると思います。
それらをdepth18辺りで評価値を付け、乖離の激しいものを一括削除といったPCスキルは持っていませんので、そちらで行っていただくことになりますが。
互角局面を集めていたと思うので、人間が指しそうな序盤はかなり網羅出来るかと思います。