お手軽に将棋AIをさわりたいっ!

タイトル通り。YaneuraOu や 技巧がオープンソースになってるからそれを使えばいいという説もあるが、私のC++力では読解するのに大変そうだ。もっと簡単にあつかえる将棋エンジンはないか物色していたら‥‥、ありましたよ!

not さんが開発した、CNNShougi 。パイソンで書かれているから、実行は楽ちん。

ソースもわずか4ファイルながら、学習機能やUSI インターフェイスも備えている。上手い人が書くと、こうなるものなのかと感心。

そして注目すべきは、いわゆるミニマックス戦略式の探索機能はまったくなしで、ニューラルネットのみで指し手を決定している点。ニューラルネットも勉強したかったのでちょうどよい。なお、ニューラルネットは Chainer の CNN (畳込みニューラルネット)というヤツらしいのが、現時点でここらへんのモデルの差異はよくわかってない。

とりあえず、落として実行させてみたが、若干の修正でしっかり動く。将棋ブラウザQにエンジン登録して対戦したら、なかなか将棋っぽくなった。探索なしでこれはなかなか。

・解説記事は、こことか。

・(おそらく)Chainer のバージョンアップにともないソースは若干の修正の必要あり。構文的なものと型のキャスト。(→ Chainer 2 用に修正したものを github にあげておきました)

・学習を 20 エポック(デフォールトの倍)にしてみたら、指した感覚としてはけっこう将棋っぽくなった。

・将棋ブラウザQへの登録は、エンジンとしてパイソンそれ自体を、引数として usi.py を与えるというかなり乱暴なやり方。でも、しっかり動いている。

 

クリックclose

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です