TOP
> 記事閲覧
振り飛車をゼロから学習する「Aoba振り飛車」を開始しました
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/19(Mon) 12:10 |
| 投稿者 | : 山下 |
| 参照先 | : |
> 11分の1の割合
この通りです。
下のように 9*9 + 9*2 + 8 = 107 個の値で棋譜の生成確率を調整しています。
・先手が振る筋(1筋から9筋)、後手が振る筋(1筋から9筋) 81種類
・先手が振る筋(1筋から9筋)、後手は複数指定(2個から9個のどれか) 9種類
・後手が振る筋(1筋から9筋)、先手は複数指定(2個から9個のどれか) 9種類
・複数指定の割合(全部共有、2個から9個) 8種類
現在は全部同じ値なので、ご指摘の通り、相振りが多すぎる状態です。
学習初期、どんな成功率になるか確認したい、まだ重みが8分の1(128x10b)と小さい、ので
もうしばらくはこれで進めて、256x20b に移行した後に、
相居飛車、袖飛車(3筋)、右四間(4筋)、の割合を減らし、相振り自体の確率も下げて
対抗形の中飛車、四間、三間、向飛車をメインで生成する予定です。
ぶっちゃけ、無理やり飛車を振らせてるので、序盤で飛車を振るだけで勝率が上がりすぎて美しくないです。
下はボーナス勝率(Valueに混ぜる割合)を0.0から1.0まで変化させたときの成功率です。
0.1や0.2だと9筋や8筋(向飛車)の成功率が0.2を切ってしまい、ほとんど振ってくれません。
0.4以上に上げても成功率は頭打ちです。AlphaZero方式の30手まで乱数、もあるせいだと思いますが。
強くなるほど、振り方が上手になってきてるようなので、今は0.3から0.2に減らしてみましたが
やはり8筋、9筋の成功率が40%ぐらいに下がってます。
この通りです。
下のように 9*9 + 9*2 + 8 = 107 個の値で棋譜の生成確率を調整しています。
・先手が振る筋(1筋から9筋)、後手が振る筋(1筋から9筋) 81種類
・先手が振る筋(1筋から9筋)、後手は複数指定(2個から9個のどれか) 9種類
・後手が振る筋(1筋から9筋)、先手は複数指定(2個から9個のどれか) 9種類
・複数指定の割合(全部共有、2個から9個) 8種類
現在は全部同じ値なので、ご指摘の通り、相振りが多すぎる状態です。
学習初期、どんな成功率になるか確認したい、まだ重みが8分の1(128x10b)と小さい、ので
もうしばらくはこれで進めて、256x20b に移行した後に、
相居飛車、袖飛車(3筋)、右四間(4筋)、の割合を減らし、相振り自体の確率も下げて
対抗形の中飛車、四間、三間、向飛車をメインで生成する予定です。
ぶっちゃけ、無理やり飛車を振らせてるので、序盤で飛車を振るだけで勝率が上がりすぎて美しくないです。
下はボーナス勝率(Valueに混ぜる割合)を0.0から1.0まで変化させたときの成功率です。
0.1や0.2だと9筋や8筋(向飛車)の成功率が0.2を切ってしまい、ほとんど振ってくれません。
0.4以上に上げても成功率は頭打ちです。AlphaZero方式の30手まで乱数、もあるせいだと思いますが。
強くなるほど、振り方が上手になってきてるようなので、今は0.3から0.2に減らしてみましたが
やはり8筋、9筋の成功率が40%ぐらいに下がってます。
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/19(Mon) 09:34 |
| 投稿者 | : 48 |
| 参照先 | : |
成功率の表についてです。
希望数の総和が実現数の総和(対局数)の1.4倍程度であることから
11分の1の割合で複数希望(平均5.5)が選択されていると思います。
想像するに各筋希望の9択+先手複数+後手複数の11択。
例えば121分の1で先後複数が発生すると考えていいのでしょうか。
振り飛車でイメージするのは多くは対抗形なので,全体的に相振り率が高すぎる気もします。
希望数の総和が実現数の総和(対局数)の1.4倍程度であることから
11分の1の割合で複数希望(平均5.5)が選択されていると思います。
想像するに各筋希望の9択+先手複数+後手複数の11択。
例えば121分の1で先後複数が発生すると考えていいのでしょうか。
振り飛車でイメージするのは多くは対抗形なので,全体的に相振り率が高すぎる気もします。
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/18(Sun) 11:49 |
| 投稿者 | : 山下 |
| 参照先 | : |
9間に振る場合でも、角道を止めて銀を67に上がって、▲98飛と振る、と少しゆったりした駒組になっています。
その後の9間飛車を活かした指し方にはまったくなっていませんが・・・。ほんとに「振ってみた」だけです。
▲9間△居 w0306_01.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#306_01
4間と向飛車の相振り。相振りで最適な飛車の振る位置はどこなのでしょうか?
今のところハンデELOからは、後手は3間飛車、先手は向飛車にするのが相振りでは
いい位置のようです。
▲4間△向 w0314_37.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#314_37
その後の9間飛車を活かした指し方にはまったくなっていませんが・・・。ほんとに「振ってみた」だけです。
▲9間△居 w0306_01.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#306_01
4間と向飛車の相振り。相振りで最適な飛車の振る位置はどこなのでしょうか?
今のところハンデELOからは、後手は3間飛車、先手は向飛車にするのが相振りでは
いい位置のようです。
▲4間△向 w0314_37.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#314_37
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/16(Fri) 17:29 |
| 投稿者 | : 山下 |
| 参照先 | : |
replay bufferを10万棋譜から50万棋譜への変更は
その前後の平均13個、12個のELOの平均だと
1813 -> 1869
で +56 ELO ほど効果があるようです。
128x10b で学習率 0.01 という条件ですが。
後手が1間飛車で香、飛の数で端を破ろうという積極策。宙に浮いた香が負担になってますが。
▲居 △1間 w0281_70.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#281_70
先手が鬼殺しの急戦を仕掛けてます。桂馬の高跳び、で取られてますが・・・。
▲居 △向 w0282_77.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#282_77
その前後の平均13個、12個のELOの平均だと
1813 -> 1869
で +56 ELO ほど効果があるようです。
128x10b で学習率 0.01 という条件ですが。
後手が1間飛車で香、飛の数で端を破ろうという積極策。宙に浮いた香が負担になってますが。
▲居 △1間 w0281_70.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#281_70
先手が鬼殺しの急戦を仕掛けてます。桂馬の高跳び、で取られてますが・・・。
▲居 △向 w0282_77.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#282_77
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/15(Thu) 12:07 |
| 投稿者 | : 山下 |
| 参照先 | : |
下は希望した筋に飛車が振れたか、の成功率です(先手のみ。後手もほぼ同じ傾向)。
学習初期はまったく振れていません。9筋の成功率は0.001程度と0.1%です。
乱数で指すと、このぐらいの棋譜しか9筋(9間飛車)にならないです。
その後、20万棋譜でValueに直接飛車が振れた報酬を追加することで
飛車を振り始めました。
70万棋譜や120万棋譜で動いてるのはValueに影響させるパラメータを変更する実験を
していたせいです。
最近は、8筋、9筋でもほぼ50%は成功してます。強くなるほど成功率は上がりそうなので
Valueの影響力(現在はa=0.3で40手まで)を減らす予定です。
2筋だけ安定して高いのは居飛車は何もしなくても成功しやすいためです。
30手目までAlphaZero方式で手が乱数で変わるので、乱数なしだともっと成功率は上がると思います。
学習初期はまったく振れていません。9筋の成功率は0.001程度と0.1%です。
乱数で指すと、このぐらいの棋譜しか9筋(9間飛車)にならないです。
その後、20万棋譜でValueに直接飛車が振れた報酬を追加することで
飛車を振り始めました。
70万棋譜や120万棋譜で動いてるのはValueに影響させるパラメータを変更する実験を
していたせいです。
最近は、8筋、9筋でもほぼ50%は成功してます。強くなるほど成功率は上がりそうなので
Valueの影響力(現在はa=0.3で40手まで)を減らす予定です。
2筋だけ安定して高いのは居飛車は何もしなくても成功しやすいためです。
30手目までAlphaZero方式で手が乱数で変わるので、乱数なしだともっと成功率は上がると思います。
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/15(Thu) 11:53 |
| 投稿者 | : 山下 |
| 参照先 | : |
謎の2手目△64歩。お前、変な所に飛車振るんだろうから、早めにやっつけてやるぜ、
という風にも見えます。狙い通りいきなり一歩損してます。9間は振るだけで相当なハンデになりそうです。
▲9間△居 w0245_01.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#245_01
先手袖飛車の出だしで、いきなり▲96歩から▲95歩。相手がどこに振るか様子を見よう、という感じなのでしょうか?
▲袖 △中 w0239_64.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#240_71
という風にも見えます。狙い通りいきなり一歩損してます。9間は振るだけで相当なハンデになりそうです。
▲9間△居 w0245_01.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#245_01
先手袖飛車の出だしで、いきなり▲96歩から▲95歩。相手がどこに振るか様子を見よう、という感じなのでしょうか?
▲袖 △中 w0239_64.csa http://www.yss-aya.com/furibisha/no_noise/sample2.html#240_71
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/14(Wed) 12:06 |
| 投稿者 | : 山下 |
| 参照先 | : |
先手四間飛車だと、角道を止めて4間に振って美濃囲いに組むのは早い段階(76万棋譜)で覚えるようです。
居飛車は△31金のelmo囲いにしてます。
▲4間△居 w0069_31.csa http://www.yss-aya.com/furibisha/no_noise/sample1.html#69_31
9間飛車は▲76歩から▲77角から▲98飛と回ると思ってましたが
▲96歩、▲97角から▲98飛と回る順も指してます。
角道を突かない方が相手に角交換されない、など影響が少なくて組みやすいのかも。
▲9間△居 w0103_01.csa http://www.yss-aya.com/furibisha/no_noise/sample1.html#103_01
居飛車は△31金のelmo囲いにしてます。
▲4間△居 w0069_31.csa http://www.yss-aya.com/furibisha/no_noise/sample1.html#69_31
9間飛車は▲76歩から▲77角から▲98飛と回ると思ってましたが
▲96歩、▲97角から▲98飛と回る順も指してます。
角道を突かない方が相手に角交換されない、など影響が少なくて組みやすいのかも。
▲9間△居 w0103_01.csa http://www.yss-aya.com/furibisha/no_noise/sample1.html#103_01



Aoba振り飛車
http://www.yss-aya.com/furibisha/
対抗系の先手四間飛車、後手中飛車などに加えて、先手1間飛車、後手向飛車、などの相振りも学習します。
AIは振り飛車の新しい指し方を発見できるでしょうか?1間飛車や9間飛車はどんな指し方に?
例えば▲9間飛車、△4間飛車の相振りはこんな感じの棋譜になってます。
http://www.yss-aya.com/furibisha/no_noise/sample2.html#205_05
また、どの筋に飛車を振っても勝率が5割になるように強さを自動調節しています。
ハンデレートの下の行は先手が居飛車、の場合の後手が飛車を振った位置でのハンデを示します。
先手2筋 149 3 65 122 72 42 88 60 111
「3」は後手も居飛車、つまり相居飛車の場合のハンデです。ほぼ互角の +3 ELO。
後手が9筋に飛車を振った場合(後手1間飛車) 149 ELOのハンデ、とかなり先手有利です。
先手居飛車、後手向飛車の場合は +60 ELO。
今のところ、後手中飛車、四間、3間、向飛車はだいたい似たようなハンデです。
floodgateでも動かしていて、下は先手向飛車にしています。
http://wdoor.c.u-tokyo.ac.jp/shogi/view/2024/08/12/wdoor+floodgate-300-10F+AobaFuribisha_w197_800p+FOUR-7+20240812190008.csa
現在は128x10bの1/8のネットワークですが、近日中に256x20bに移行する予定です。
技術的な詳細(AobaZeroとの違い)など。
http://www.yss-aya.com/furibisha/furi.html