読者です 読者をやめる 読者になる 読者になる

Aestetica

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

なにを作ろうか

知り合いの会社の若い子に「菊池桃子のマネして」と言ったら、「菊池桃子知らないです」と言うので、「それはなんのセリフ?似てないよ?!」と詰めても、その詰めた内容が通じていないようだったので、その意味を説明するのに5分くらいかかった。
お互い、ものすごくどうでもいい時間を過ごせたね(^▽^)


なにを作るのかというと、えーと。
まず実験用の土台を作らないといけないので、盤面クラスを作らないといけない。
今回のはどうするかなー。

で、aperyのソースを見てみる。
https://github.com/HiraokaTakuya/apery

確か、大樹の枝に名前を変えたのではなかったか。
なんか評価関数のところが激しいなー。
よくわからないことをしているので、よく見てみると、どうやら手番の評価をしてるっぽい。
手番のときに、先手後手共通エリア(?)の3駒のところに勾配を入れている。
なるほどねー。手番の3駒と手番でない3駒を用意するのではなくて、3駒と(先手後手共通の)3駒ベースの手番評価にしてる。
盤面には利きとか入れてないのね。利きは必要ないのだろうか。

で、sunfishのソースを見てみる。
https://github.com/sunfish-shogi/sunfish3

みんなクラス名に「C」とかつけないのか。
Boardじゃなくて、CBoardじゃないのか。・・ないのか。
私はundo move用の値とか、ハッシュとか、全部盤面クラスに入れてしまってるんだけど、そんなのやってないし。
で、複雑な計算によって進行度を算出してる。進行度かー。そうかー。

それで、前に山本一将さんが、プロ棋士棋譜の指し手を一回全部見て、例えば初手76歩の確率を調べてから、それを勾配(から報酬)にするということを言っていて、一度、それをやってから、二度目はどうするんだろう?と、とっさに思いつかなかったんだけど、これは方策勾配法ならではというか、勾配が確率なのでできること。精度が上がるんだと思うのだけど、実際それでうまくいってるので、そうなんだろうなあ。どうしようかなあ。

強化学習でゼロからやると、いまひとつ突破できないラインがあるので、例えば温度を下げるだけ下げて1万局ずつとかやってみるかな。
1万局⇒読み込み⇒1万局⇒読み込み・・
という方式。方策で、玉のn近傍に利きをつけるとかもやってみたい。

などという、実験用の土台を作らないといけないので、盤面クラスを作らないといけない。
今回のはどうするかなー。