LoginSignup
0
3

More than 5 years have passed since last update.

【将棋AI】「将棋AIで学ぶディープラーニング」を読む♪~レーティングを求める

Last updated at Posted at 2018-09-30

将棋AIで学ぶディープラーニング
第廿六夜は、先日にひきつづいてレーティングの話です。
今回は、参考のページに対戦成績を入力すると相対的なレーティング差からレーティングを求めるというものです。
【参考】
レート計算をする@コンピュータ将棋データベース

やったこと

(1)上記参考ページからレーティングを求める
(2)理論(ソースコード)を見る

(1)上記参考ページからレーティングを求める

昨夜の結果から、だいたいのレーティングはわかったが、やはり第三者的な意味でレーティングを出しておくことは意味があると思うのでやってみた。
結果は以下のとおりである。
data generated : 30/9/2018 total games: 76

software rating error games
Gikou2D5 2181 +544/-117 10
Gikou2D3 2036 +150/-96 10
Gikou2D2 1800 +0/-0 56
Try 1776 +23/-29 70
Q22 1695 +104/-136 6

入力データ;sample2.csv

sample2.csv
engine1,option1,engine2,option2,win1,win2,draw(-1=undef),drawadd,date(-1=undef),writer
Gikou2D2,+,Try,+,27.5,22.5,1,1,-1,undefined
Gikou2D3,+,Try,+,8,2,0,0,-1,undefined
Gikou2D2,+,Q22,+,4,2,0,0,-1,undefined
Gikou2D5,+,Try,+,9,1,0,0,-1,undefined

各データの意味は、レート計算スクリプトの使い方@コンピュータ将棋データベースにある。
※入力の仕方は上記のCSVファイルのとおりである
レーティングを正しく計算するために重要なことは、最初のSoftwareのレートを基準に計算しているので、そのレートが正しい必要がある。そのSoftwareを基準としたレート算出である。
※基本はイロレーティングで示したとおりである。

(2)理論(ソースコード)を見る

基本的な方程式は、以下のとおりである。
$ΔR=R-R_B$、$R_B$は基準となるソフトのレーティング、$R$は求めたいソフトのレートとすると、

E_{ΔR}=\frac{1}{1+10^{−ΔR/400}}

式変形すると以下の通り

R=R_B-400\log (\frac{1-E_{ΔR}}{E_{ΔR}})

そもそも$1-E_{ΔR}$は相手の勝率だから、イロレーティングは勝率比の$\log$の400倍がレート差という定義なのがわかる
ここまで式変形して、ソースコードを眺めてみると、
以下の関数でbias値(基準値)にレート差をプラスしてレートを計算している。

    def get_beta_with_bias(self,i,bias):
        beta = 400*np.log10(self.p)
        beta += (bias-beta[i])
        return beta

また、bias値(基準値)は以下で計算前に設定する必要がある。

    for k in np.arange(n_trial):
        bt = bt_model(samples[k,:,:],p_init)
        bt.estimate()
        betas[k,:] = bt.get_beta_with_bias(0,1800)   #rate of 1st
        p_init = bt.p

bt.get_beta_with_bias(0,1800)の1800を変更する。
そして、結果出力は、以下のように実施している。

result = np.c_[range(K),q_50,q_75-q_50,q_50-q_25,n_games]

ということで、上記の算出されたレートには+-がついているが、これはコードによれば再度サンプリング(思考実験して)、その中央値と25パーセンタイル、75パーセンタイルをとっているようである。
全コートはここからダウンロードして見られる。

まとめ

・第三者的なレーティングを求めた
・どうやら、イロレーティングから求めているようだ

・今回は、対戦条件が通常とことなるが、何を見るのかを定めてレーティング・ランキングを掲載するというのもありうる

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3