2015-08-02 07:02
「つい さっき書いた1つ前の記事の通り、
もうそろそろ 機械学習に着手してもいいと思うんだぜ☆
きふわらべの開発に着手したのが、このブログの去年の8月1日頃だから、
丸1年だぜ☆」
「さ、早く作れ☆」
「まー、ぼちぼち だな☆
まずは 2駒関係のフューチャーベクターの入れ物を用意して、
中身を てきとー なランダム値にしておいて、
評価値に変換する evaluate(~) メソッドを作ることにするか☆
きふわらべは 100円の メロンパンでも食べてろ☆」
「2駒関係について説明するぜ☆
これは 次の3つのものを まとめたものなんだぜ☆」
(1)KK
(2)KP
(3)PP
KK
「さらに説明しよう☆ K とは King。王様のことだぜ☆
KK というのは、自玉と敵玉のことだぜ☆」
↓自玉 敵玉→ |
1一 |
1二 |
1三 |
… |
9九 |
1一 |
\ |
0 |
ー10 |
|
0 |
1二 |
0 |
\ |
0 |
|
0 |
1三 |
10 |
0 |
\ |
|
0 |
… |
|
|
|
\ |
|
9九 |
100 |
150 |
200 |
|
\ |
「といった感じで、将棋盤は81マスあるので、
縦に81項目、横に81項目、合計6561マスの表があるとするぜ☆
自玉が 9九 にいて、敵玉が 1一 にいるとき、
評価値は +100点 にしとくか☆
といった感じの この表を KK と呼ぶんだぜ☆」
「居玉よりは 2筋や 8筋に行った方が強そうだし、
入玉の方が強そうだな☆」
「まあ、それだと 1駒 だな☆
2駒関係だと 相手の王様と 比較できるので、
相手の王様が 1筋にいて、 自玉が 8筋にいると、
相手の王様の方が深いところにいるので、
点数がちょっと下がる、みたいな数字ができるのかもしれないし、
そうでないかもしれない☆」
2015-08-02 07:33
KP
「次は KP について説明しよう☆ P とは Piece の略で、
種類という意味があるんだぜ☆」
「将棋の駒は、14種類あるんだぜ☆」
( 1)歩
( 2)香
( 3)桂
( 4)銀
( 5)金
( 6)玉
( 7)角
( 8)飛
( 9)と金
(10)成香
(11)成桂
(12)成銀
(13)馬
(14)竜
「そして 持ち駒の種類は 7種類なんだぜ☆」
(1)歩
(2)香
(3)桂
(4)銀
(5)金
(6)角
(7)飛
「王様は K に入っているので、P からは減らすとしよう☆
そして、成っている駒は、成っていないものとして扱うとするぜ☆
将棋盤には81マスあって、持ち駒には枚数があるな☆
これを加味して もう一度 一覧するぜ☆」
( 1)歩 ×81マス
( 2)香 ×81マス
( 3)桂 ×81マス
( 4)銀 ×81マス
( 5)金 ×81マス
( 6)玉 ーーーーー
( 7)角 ×81マス
( 8)飛 ×81マス
( 9)と金 ーーーーー
(10)成香 ーーーーー
(11)成桂 ーーーーー
(12)成銀 ーーーーー
(13)馬 ーーーーー
(14)竜 ーーーーー
(1)歩 0枚~18枚(計19パターン)
(2)香 0枚~4枚 (計 5パターン)
(3)桂 0枚~4枚 (計 5パターン)
(4)銀 0枚~4枚 (計 5パターン)
(5)金 0枚~4枚 (計 5パターン)
(6)角 0枚~2枚 (計 3パターン)
(7)飛 0枚~2枚 (計 3パターン)
「盤上の駒は マスが、 持ち駒は 枚数が、 P となるんだぜ☆
全部で何パターンあるか足し算してみるぜ☆
駒は 先後 に分けられるから、最後に2倍するぜ☆」
(81 × 7 + 19 + 5+5+5+5 + 3+3)×2 = 1224
「P は、 1224 パターンだな☆」
「成銀を、銀と同じに扱っていいのかなんだぜ☆?」
「ボナンザ6.0では、3駒関係の他に、
駒の価値 というのを持っていて、
三駒関係より 32倍ぐらい敏感に評価値の学習のときに 動いているように見えたぜ☆
成銀を持っていれば、 駒の価値 の方で得点が高くつくはず☆
自陣に成銀がいることはまずないし、ざっくり計算 でOKということなんじゃないか☆?」
↓自玉 P→ |
1 |
2 |
3 |
… |
1224 |
1一 |
100 |
500 |
900 |
|
400 |
1二 |
200 |
600 |
100 |
|
500 |
1三 |
300 |
700 |
200 |
|
600 |
… |
|
|
|
|
|
9九 |
400 |
800 |
300 |
|
700 |
数字は適当だぜ☆
「表の縦列が81個、 横列が1224個なので、
KP表の マスの数は 99144個だな☆」
08:23
PP
「最後が PP だぜ☆ 1224×1224 なので、
PP表の マスの数は 1498176 だな☆ww」
「KK、KP、PP は全部で 1598544 パターンあるわけなのかだぜ☆」
駒の価値
「一応、駒の価値も見ておくかだぜ☆
ボナンザ6.0の param.h に書いてあるんだぜ☆
このファイルは、機械学習をしている最中に書き換えられるぜ☆」
「Proって書いてるのが プロモーションの略で、成りのことだな☆
Silverが銀で369点、ProSilverが成銀で495点☆ 126点ぐらい違うな☆」
08:39
「局面を見て、駒の位置や 持ち駒の数を見て、自駒の価値を計算すれば
評価値が分かるな☆
おっおっ☆ evaluate.c ファイルのソースコードも読んでおくか☆
これまた 1日ぐらいかかるかも知れないな☆」
11:56
「KKは簡単だな☆ 自玉と、敵玉のマス番号を調べるだけだぜ☆
KPも、Kは簡単だな☆ もう片方の P なんだが、
K以外の駒は盤上に最大38枚あるな☆
持ち駒も 7種類 × 先後の2 だぜ☆」
2015-08-03 06:01
「日付が ちょっと飛ぶんだが、きふわらべのソースコードを整理していたんだぜ☆」
「次のように、本に見立てて、プログラムにページ番号を振るイメージで整理してみたぜ☆」
「整理整頓はもうちょっと続くぜ☆」
[0回]
PR
http://grayscale.dou-jin.com/Entry/262/【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(7) ボナンザメソッドを読んで勉強したので、2駒関係の機械学習をがんばって作ろうなんだぜ☆