【将棋】bona6.0の評価関数

前回も張ったけど、bona6.0の▲金のKPP値。

見ると分かるけど、相手玉の周辺に大きな評価値がついている。
評価値の意味は、探索を行って、駒の取り合い(静止探索)を
行った結果、金がこの位置にいれば(詰めに近い状態?)400点くらい得になることを意味する。
bonaの終盤の寄せが強力なのは、このためだろうか。

KPPの評価は(A)KPP[自玉][駒1][駒2]-(B)KPP[相手玉][駒1'][駒2']で与えられる。
(B)は(A)の評価関数をひっくり返して同じものを使う。
基本的には自分の玉からの相対位置関係しか見ていない。

評価値を解析するために、(A)のみを表示してみた。

(A)の場合の▲金の価値


自分の玉周りに味方の金がいると30点くらい得。
相手玉の位置は見えていないのだけど、
とりあえず上部に▲金があればいいと思っている。

(A)の場合の△金の価値


逆に、自分の玉周りに相手の金がいると300点くらいマイナス。
かなり玉の危険度を評価している。これを反転して使うと
最初に説明した相手玉への寄せの評価となる。

無線LAN(Mac book retina)

http://ubuntuforums.org/showthread.php?t=2006475&page=4
ここの下の部分。

転載---------------------------------------------------------------------
1. Download driver:
wget http://www.lwfinger.com/b43-firmware...00.138.tar.bz2

2. Install fwcutter:
apt-get install b43-fwcutter

3. Extract firmware:
tar -xf broadcom-wl-5.100.138.tar.bz2
sudo b43-fwcutter -w /lib/firmware broadcom-wl-5.100.138/linux/wl_apsta.o

6. Reload your b43 kernel module:
sudo rmmod b43
sudo modprobe b43

7. Use your wireless.

                                                                                                                                        • -

NICドライバインストール(Mac mini)

以前入れたとき(日本語版x86)は何にも問題なく動いたのだけど
64ビット版(ubuntu-12.04.2-desktop-amd64)だと、
tg3-3.124c.tar.gzを展開してmakeするとasm/system.hがないといわれてできなかった。

以下、解決法。

転載---------------------------------------------------------------------
http://ubuntuforums.org/showthread.php?t=2078320

1. At line 96 of tg3.c, simply comment out the inclusion of asm/system.h:
Code:

/* #include */

2. At line 14534 of tg3.c, I surrounded the following two lines of code ...
Code:

.get_sg = ethtool_op_get_sg,
.set_sg = ethtool_op_set_sg,

... with a preprocessor directive reflecting the fact that get_sg and set_sg were deprecated in (I believe) Linux 3.0 and removed sometime after that. Here's what that looks like:
Code:

#if (LINUX_VERSION_CODE < 0x30000)
.get_sg = ethtool_op_get_sg,
.set_sg = ethtool_op_set_sg,
#endif

3. Finally, since the API the driver tries to use to do TCP Segment Offloading went through the same deprecation and removal as get_sg and set_sg, and since I have no idea how to modify the driver to use the new API, I attempted to remove the TSO support entirely by changing line 3 of tg3_firmware.h from ...
Code:

#ifdef NETIF_F_TSO

... to ...
Code:

#ifdef XXXXNETIF_F_TSO

That resulted in a

                                                                                                                                        • -

【将棋】持駒の評価値

KPPは(自玉、駒1、駒2)の線形和で計算するけど
駒1、駒2には持駒も含まれる。


持駒分の寄与がどの程度あるかをbona6.0の評価関数で調べた。


↑は先手後手で持駒がない場合の、金の位置評価(KPPのみ)
1.全体
2.持駒の寄与分を除外:listに持駒の要素を排除。KPP(玉、金、金)のみの評価。
3.持駒の歩のみを考慮:listに歩の要素を追加
4.持駒の金銀のみを考慮
5.?持駒の角飛のみを考慮


持駒との寄与(特に金銀飛角)が結構、大きいことがわかる。


KKPのほうの寄与を見てみたけど、あまり大きくなかった。
bonanzaで指手の評価値の推定にKKPを入れてないのはこのためかもしれない。
クマ将棋はドーピングでひどいことになっているからKKPも推定に入れないといけない。

ドーピング

どうも今の学習では、玉から離れた位置にと金を作ったり、駒をとったり
して、寄せが弱いようです。


と金を作るのは、歩80点から金500点になるわけだから、すごく駒得になります。
この誘惑に勝てるように、位置評価を相当マイナスにしないといけません。
ところが、ボナメソのシグモイドだとこれが難しい。


学習初期値をゼロから始めた場合、駒価値のみのスタートとなるので、
そのまま学習時に探索をすると、正解手:0点、と金を作る手:500点
とかになる。シグモイドの微分値は500点も離れるとほぼゼロになるし、
そもそも学習探索窓から外れるので、「と金」生成防止のための
評価値調整が行われなくなってしまう。


bona6.0の評価関数はどうやって作っているかは分かりませんが
学習探索窓やシグモイドの傾きを調整したり、こちらで初期値を与えたり
しないと難しそうです。


一方の激指メソッドのパーセプトロンだと、シグモイドをかけないので
上記のような場合でも、一律に評価値更新がかかってきます。
過学習も大きそうですけど。過学習を防ぐために、平均化や
評価値の差をしきい値に更新の有無を判定しているようです。


クマ将棋のオンライン学習はシグモイド+激メソ風マージンでやっているので
上記の「と金」生成が問題になっていたので、無理やり、玉から離れた位置の
金の価値を初期値で大きくマイナスにしています。
これで一応、と金生成が回避できましたが、序盤が変になった感じがします。


学習のさせ方も色々とコツがあるんだな、という印象です。