Aestetica

コンピュータ将棋Selene(セレネ)を作っています。名前は西海枝昌彦(さいかいし まさひこ)と読みます。

開発経過

将棋をやっていて気付いたこと。

自分の今の棋力は1級くらいか。
それで、アマ3段の棋譜とプロ棋士棋譜の区別がつかない。
アマ3段とプロ棋士の実力差はよくわかっていて、レーティングも千点とか千数百点とか違うんでしょうけど、現状わかりません。

これは結構怖いことで、私に置き換えるとSEをやっているので、課題や問題を見ても重大さ・簡単さがわからないとか、ソースを見ても優秀なものなのかどうか判断できないということ。
そうならないように、日々勉強しないといけないのだなあ。と、ときどき考えます。

ちなみに、なんでも鑑定団とか見ても「こんな絵でなんで100万円なんだ?!俺は買わないけどね」とか思わず、「知識が無いから、この絵が100万円に見えてないんだ」と思えるようになった(笑)


それで、探索のところなんて、機械学習に置換表はいらないので作ってないし、reductionも適当。
駒を動かす/戻すところは、利きを入れてないので簡単。
機械学習部分は、Searchせずに素の局面で学習するので、これまた簡単。
評価値の差分計算はまだ。

といったことで、まずは簡単な学習だけできるようになった。
今回は新しいアルゴリズムも部分的に使用しようと思っているので、それがうまくいくかどうか。

指定局面を静的に学習するよりも、分類器をはさむというか、浅く探索させてleafを判定したほうがよりよく学習できるので次は探索を含めた形に。

また、初期状態の駒割りすべてゼロ、評価値すべてゼロだとランダムプレイヤーと同じことになるので、ランダムな棋譜を多数生成して、棋譜から取り込めるようにしたい。
棋譜読んで、指し手の確率計算して、報酬求めて足す(引く)。