ボンクラーズの伊藤さんの記事が非常に興味深いです。
「浅い評価値を深い評価値に近づける学習法」誕生の背景
http://aleag.cocolog-nifty.com/blog/2016/10/post-00f4.html
NDFのこの学習手法は、伊藤さんの発言がきっかけで誕生したということのようです。
まあ、この学習手法自体はTD-leafとかRootStrapとか呼ばれている手法で(亜種多数)、Seleneやひまわり、GA将なども、比較的昔から取り組んでいたと思います。私もTD-leaf自体は早い段階で知っていましたが、これが将棋でうまくいくアイデアだとは思わなかったというのもあります。
あと、当時のPC環境や、学習手法では、学習に非常に時間がかかるので、おいそれと試せなかったという背景もあります。
いずれにしましても、最初に試した人して成功させた人は偉いと思いますし、「成功するかどうかわからないアイデアを試す人」と、「他の人が成功したと聞いてからそれを実装する人」とでは天と地ほどの差があるのも事実です。
なので、伊藤さんの本当の功績は、この手法を思いついたことではなく(思いっきり既存の手法なので…)、この海の物とも山の物ともつかないアイデアを「成功する」「絶対、成功する」と催眠術をかけるようにして、NDFの金澤さんに信じこませたところにあるのではないでしょうか。(私の勝手な想像です。あしからず。)
ともかく、NDFが大きな成果を挙げ、ponanzaがそれを改良し、その手法をAperyが取り入れ、やねうら王が広めた(やねうら王はその実装を公開した)という一連の流れによって将棋ソフト全体が大きく前進したことには違いなく、BonanzaMethodに匹敵するブレイクスルーだとは思います。
雑巾絞りメソッドのことかな?
uuunuuunさんとこを参照すると、
Apery WCSC25 = R3156
Apery WCSC26 = R3286
1年でR+130
(SM+新評価0930)-(SM+WCSC26)
5ヶ月でR+234
評価関数だけでこんなに進歩したのは驚愕ですよね。
やねうらチルドレンのQhapaqさんが、
「エクスカリバーが最初の町で売られているけどめっちゃ高いし装備できる人は限られてる」「札束ビンタ、エクスカリバー素振り合戦」とか表現していたのがツボでした。
まあ、こんなに大きく伸びるのは最後のチャンスかも知れないですね…。
昔NDFのアピール文書を読んだ時、間違った値に収束するのではないか、この方法うまくいくの?と思っていました。
やねさんの、駒得だけの評価関数でもそこそこの強さになる実験結果が公開されました。
その後は駒得の効果は”将棋では” 大きいという性質があるので、評価関数が理想的な値でなくても深く読めれば正しい結果が得られる、と思う様になりました。
チェスでは、このようなチューニングは行われていないのでしょうか。(チェスでも王得を目指すという意味で適用できそうです。)
チェスでも同じことをしている人がいます。というか、あちらのほうが研究が進んでいる気はします。将棋は評価関数(の次元数)がチェスのそれより大きいので実験に大きな計算資源が必要になるので、将棋だと遅々として進まないという意味はありますね。
https://chessprogramming.wikispaces.com/Meep
現在DeepMind社にいるJoel Venessさんらが2009年に出したチェスの論文があり、
http://www0.cs.ucl.ac.uk/staff/d.silver/web/Applications_files/bootstrapping.pdf
TD-leafやRootStrapよりもTreeStrapが最も効果があった事が書かれています。
TreeStrapは探索木で捨てている他の読み筋も評価値の更新に使うみたいなので、金澤さんのNDFの手法はTreeStrapに近いんじゃないかと思います。
NDFの手法に関しては詳しくは知らないのですが、言われてみればそうかも。また、TreeStrapとRootStrapとの比較ですが、TreeStrapのほうが(同じイテレーション回数を回すならば)効果は高いと思うのですが、学習時の時間が非常にかかるので教師局面だけ生成して色んな条件で学習を試す、みたいなことが出来なくて、結局は損かなぁと思っています。(TreeStrapにしないと収束の精度がよろしくないというような問題はあるのかも知れませんけど、いまの私にはよくわかりません。)
評価関数は本質的には絶対値には意味がなく、相対値に意味があるため、TreeStrap の方が優位性が高いのではないかと。
それは一理あるのですが、depth6を教師にしてる現状、それより浅いdepthのものを部分的にでも教師とするのは教師の質に問題が出てくるので、TreeStrapより80億局面でRootStrapにしたほうが良いという理屈もあったり。
アルファ碁もこれやってたんじゃなかったでしたっけか
やねうらおさんに「評価関数って何?」って聞いたら何と答えますか?
評価関数は、その局面の勝率の関数だと思ってます。
昔のコンピューター将棋は入玉になると滅茶苦茶な手を指していたのに、なぜ深く探索した結果に近づけるだけで正しい値に収束するのか未だに理解できていない
将棋が深くまで読むほど神の指し手に近づくゲームだとして[要出典]、その深くまで読んだときと同じ評価値が、浅い探索(短い思考時間)で得られるならずいぶん得ですよね。