2011-01-06

_ 世界コンピュータ将棋選手権使用可能ライブラリ

今年もosl-for-csaとgpsshogi-for-csaをライブラリ登録するべく申請中です。利用をご検討ください。

GPS将棋の学習部分はgpsshogi/sample/evalにあります。これらはgpsshogi-for-csaには含まれていません。しかし、このことは「学習部分は使ってほしくない」という意味ではありません。反対に、学習部分のみお使いになった場合は、ライブラリを使用したという扱いにする必要はないと開発チームでは考えております。GPS将棋の評価関数には特殊なfeatureが含まれるので、学習で得られたパラメータをライブラリなしに活用できるのであれば、学習部分をscratchから書く場合と同じコードが生産されていると考えられます。

_ 評価関数学習ルーチンと思考部

ところで、今年「評価関数学習ルーチンも思考部の一部とみなす」という宣言がCSAからありました。「CSA使用可能ライブラリに含まれる学習ルーチンを用いて作成した評価関数パラメータを用いる場合は、そのライブラリを使用したことになります。」とありますが、CSA使用可能ライブラリに含まれない学習ルーチンを用いて作成した評価関数パラメータを用いた場合はどうなるのでしょうか。仮に、失格だとすると怖いので、もう少し丁寧な説明があると良いと思いました。
(1) 通常の(汎用の)機械学習のライブラリは利用自由
(1')将棋用の機械学習のコードであっても将棋と無関係な部分は利用自由
(2) ライブラリかどうかを問わず他者のソースコードを参考にした場合でも、一から手で打ち直したコードは利用自由
くらいは明文化しておいてはどうでしょう。(ここで言う「利用自由」とは、CSA選手権参加において何ら制限を受けないという意味であって、著作権者が許諾する範囲を確認するのはもちろん各自の責任です。) ライブラリ制度は新規参加者を増やすことが目的ですから、初めて読んだ人に疑問が残らないように記述されているべきと思います。

_ 重箱の隅

大会ルール http://www.computer-shogi.org/wcsc21/rule.html をちらっと見て感じた疑問など:

「十三 学習部 指し手の生成を行うための評価関数のパラメータを機械学習により調整する場合の、その学習を行う部分」指し手の生成を行うための評価関数のパラメータというと実現確率のパラメータを連想します。反対に、通常の評価関数は「指し手の生成を行うため」のものではないので、XXは学習部に含まれないという強弁が成り立ちそうです。

「十四 思考部 指し手生成部、および、学習部のうち、使用可能ライブラリと定跡データを除いた部分。ただし、使用可能ライブラリを改造して用いる場合は、その改造した部分も含む」思考部の定義がライブラリを除いた部分であれば「評価関数学習ルーチンも思考部の一部とみな」してもライブラリであれば除かれて思考部には含まれないですよね。つまり、ライブラリを利用したプログラムであっても、「この思考部には誰のライブラリも含まれていない」と言わなくてはいけません。反論する人がいたら「思考部」の定義に誤解があるのでしょう、きっと;)

指手の生成は着手の決定くらいに置き換えた方が、誤解が少ないように思います。思考部の定義は迷走気味ですが、個人的には大会当日に動いているバイナリに含まれないものは含まない方が整合性が取りやすいように思います。

[]