うらお今回、新たに評価関数をゼロベクトルから学習させた。elmo絞りを使うと意外と簡単にApery(WCSC26)相当の棋力を持つ評価関数にまで出来るようだ。追試できるように記事の前半に手順を記しておく。記事の後半には何回目のelmo絞りでどの程度の強さであったかも示す。elmo絞りを知らない人のために簡単に説明すると、今回、将棋ソフトが人間の棋譜を用いずに勝率の高い形を強化学習でソフト自らが自動的に覚えたということである。今回、1回に生成している教師の数は5億局面。対局回数で言うと400万局程度であろうか。それだけの対局を終局までこなすことで、どういう駒の位置関係だと勝ちやすいのかを学習したということだ。私は以前、elmo絞りを用いずにある程度の強さまでは到達出来たのだが、計算資源を湯水の如く消費するので途中で断念してしまった。今回はそのリベンジである。書いておくが、今回作った一連の評価関数ファイルはすでにやねうら王のGitHubのほうで公開した。興味のある人は評価関数のダウンロードのところにある「リゼロ」からダウンロードして試してもらいたい。私は棋風を語るほどよく見ていないので本当に強いのかもよくわからないが、ちらっと技巧(2015)相手の対局を見た限り、見たことのない変な囲いから攻めて、よくわからないけど攻めを繋いで、詰みを見つけるのが数手早かった。これがこの評価関数の特徴なのかも知れない。将棋に詳しい人は、是非使ってみて、この記事にコメントをもらえると嬉しい。人間の棋譜を用いずにプロ棋士レベルの棋力を持つ評価関数を生成するのはかねてより私の研究対象であったが、今回は追試できるように手順を詳しく書き、かつ、そのためのソースコード一式を用意できた。条件も緩いので普通のPCでも時間さえかければ簡単に再現できるはずだ。このような形で公開できることを嬉しく思う。これは、もしかすると歴史的快挙なのかも知れない。評価関数をゼロにリセットする。評価関数パラメーターの値がすべて0である評価関数ファイルを用意すべし。これはKK/KKP/KPP配列をゼロで埋めるコードを書いてそれを保存してもいいし、中身が0であるファイルを所定の長さだけ書き出すだけでも良い。うら王で評価関数を読み込む前にsave()関数を呼び出して保存する、というのでも良い。0」のところからダウンロード出来るようにした。うら王(V4.66)のgensfenコマンドでその評価関数から教師局面を生成。