学習……

土日で色々と試しましたが、まだうまくいってません。
目的関数の勾配をどう求めるか? などが曖昧です。


評価関数の複数の要素の重みを学習させるとか、そのへんからやろうと思います。
たとえば、Bonanzaの評価要素では、王の周囲25近傍の利きの状態を学習させてますが、
そのへんをやってみようと思います。
あと、隣接する金と銀の位置関係とか、そのへんは学習しないでも、理論上の関係がわかりそうなので、
それを初期値にして、プロの棋譜の手が、生成された手の何手までに入ったか?を目的関数にして、
重みの自動調整をやろうと思います。
ただ、勾配が判らないと、どっちに変化させていいか? が判らないので、
適当に動かしてみて、うまく行ってたら残す。だめなら廃棄するって方法になるかも。
それって要するに、遺伝アルゴリズムみたいなもん?


GA勝!のアベントさんがボルツマン分布での確率遷移を紹介していた。面白そう。

ニューラルネットの一種で、ボルツマンマシンというの
http://www.twcu.ac.jp/~asakawa/chiba2002/lect6-boltzmann/boltzmann.html
がありましたね。
Bonanzaの学習手法は、無理やり比較すると、パーセプトロンというより、ポップフィールド型NNに近い感じがしました。
ペナルティを導入して、全体での安定を図るところも似てます。
というか、学習方法なんて、どれも似たりよったりかもしれませんが……