TOP
> 記事閲覧
振り飛車をゼロから学習する「Aoba振り飛車」を開始しました
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/31(Sat) 06:49 |
| 投稿者 | : 山下 |
| 参照先 | : |
過渡的なものかもしれませんが、▲居飛車△四間の出だしが▲96歩△94歩▲76歩△34歩。
双方、9筋の端歩を突きあった後に角道を開けてます。
角交換型四間から△64角▲37角と角を打ち合う変化に。
▲居 △4間 w0687_75.csa http://www.yss-aya.com/furibisha/no_noise/sample5.html#687_75
▲四間△居飛車では▲68飛△14歩▲16歩△84飛という出だしからに。角道を止めない振り飛車で
振り飛車の▲67銀が▲34銀と敵玉を脅す急戦策に。序盤の端歩は受けるようです。
▲4間△居 w0677_31.csa http://www.yss-aya.com/furibisha/no_noise/sample5.html#677_31
双方、9筋の端歩を突きあった後に角道を開けてます。
角交換型四間から△64角▲37角と角を打ち合う変化に。
▲居 △4間 w0687_75.csa http://www.yss-aya.com/furibisha/no_noise/sample5.html#687_75
▲四間△居飛車では▲68飛△14歩▲16歩△84飛という出だしからに。角道を止めない振り飛車で
振り飛車の▲67銀が▲34銀と敵玉を脅す急戦策に。序盤の端歩は受けるようです。
▲4間△居 w0677_31.csa http://www.yss-aya.com/furibisha/no_noise/sample5.html#677_31
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/30(Fri) 11:53 |
| 投稿者 | : 山下 |
| 参照先 | : |
相手がどこに振るか教えないことで、ハンデレートも下がっています。
下は先手居飛車の場合で646万棋譜(変更前)と674万棋譜(変更後)のハンデですが、
変更後の方が小さくなっています。
相手の狙いが分かった方が対応しやすくハンデも上がってしまうようです。
特に後手向飛車(2筋)の場合に大きく下がっており、向飛車の作戦がばれると対策が簡単なようです。
例えば、後手が向飛車なら初手▲36歩から急戦を仕掛けるのが有効、など。
後手の飛車 9筋 8筋 7筋 6筋 5筋 4筋 3筋 2筋 1筋
646万棋譜(変更前) 先手2筋 218 3 108 171 131 110 120 203 215
674万棋譜(変更後) 先手2筋 199 3 93 164 116 92 102 141 182
下は先手居飛車の場合で646万棋譜(変更前)と674万棋譜(変更後)のハンデですが、
変更後の方が小さくなっています。
相手の狙いが分かった方が対応しやすくハンデも上がってしまうようです。
特に後手向飛車(2筋)の場合に大きく下がっており、向飛車の作戦がばれると対策が簡単なようです。
例えば、後手が向飛車なら初手▲36歩から急戦を仕掛けるのが有効、など。
後手の飛車 9筋 8筋 7筋 6筋 5筋 4筋 3筋 2筋 1筋
646万棋譜(変更前) 先手2筋 218 3 108 171 131 110 120 203 215
674万棋譜(変更後) 先手2筋 199 3 93 164 116 92 102 141 182
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/29(Thu) 21:34 |
| 投稿者 | : 山下 |
| 参照先 | : |
v103に更新しました。差し替えをお願いします。
MCTSの探索中に
Rootの手番側の時のみ、振り飛車指定を行い、
探索中の相手側は111111111 と、どの筋に飛車を振ってもOK、としました。
ハッシュ表もRoot先手、Root後手で2つに分けました。
相手モデルが正しくなかったです。
https://github.com/yssaya/furibisha/releases/tag/v103
MCTSの探索中に
Rootの手番側の時のみ、振り飛車指定を行い、
探索中の相手側は111111111 と、どの筋に飛車を振ってもOK、としました。
ハッシュ表もRoot先手、Root後手で2つに分けました。
相手モデルが正しくなかったです。
https://github.com/yssaya/furibisha/releases/tag/v103
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/29(Thu) 16:31 |
| 投稿者 | : 山下 |
| 参照先 | : |
Rootの手番側の時のみ、振り飛車指定を行い、ハッシュもRoot先手、Root後手で分けました。
振り飛車の成功率はほぼ上がっているようです。
やはり相手の振る手順がMCTSで出てくると、それを妨害するように学習するようです。
Windows版のReleaseは今日中に出す予定です。
9筋 8筋 7筋 6筋 5筋 4筋 3筋 2筋 1筋 合計
過去 50万棋譜 成功率 0.402 0.357 0.556 0.549 0.605 0.561 0.615 0.748 0.623 0.557
過去 1万棋譜 成功率 0.435 0.351 0.616 0.605 0.636 0.564 0.625 0.775 0.663 0.586
振り飛車の成功率はほぼ上がっているようです。
やはり相手の振る手順がMCTSで出てくると、それを妨害するように学習するようです。
Windows版のReleaseは今日中に出す予定です。
9筋 8筋 7筋 6筋 5筋 4筋 3筋 2筋 1筋 合計
過去 50万棋譜 成功率 0.402 0.357 0.556 0.549 0.605 0.561 0.615 0.748 0.623 0.557
過去 1万棋譜 成功率 0.435 0.351 0.616 0.605 0.636 0.564 0.625 0.775 0.663 0.586
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/29(Thu) 08:36 |
| 投稿者 | : 山下 |
| 参照先 | : |
▲居飛車△四間飛車。居飛車が57銀右急戦を仕掛けてます。
初手▲36歩とか角道を突かないとかは意味不明ですが。
▲居 △4間 w0545_75.csa http://www.yss-aya.com/furibisha/no_noise/sample4.html#545_75
こちらは△向飛車。ただ初手▲36歩から急戦を見せられて3間飛車になっており
向飛車に振れてません。初手▲36歩は相手が振り飛車党なら有効な指し方なのかも。
▲居 △向 w0505_77.csa http://www.yss-aya.com/furibisha/no_noise/sample4.html#505_77
なんとパックパン(のような出だし)。向飛車は1間、9間並みに不利な戦法のようで
ハンデレートが高く(+215)、かなり無理をしないとダメなのかも。
13手目の▲86飛打、の合駒は定跡では▲77飛打ですが、こちらも有効なのかも。
▲居 △向 w0566_77.csa http://www.yss-aya.com/furibisha/no_noise/sample4.html#566_77
こちらではパックマンの歩を取らずに、後手は角道を突かずに引き角から△64角。
結果的に向飛車にできてるのですが相当苦労してる感じです。
▲居 △向 w0606_77.csa http://www.yss-aya.com/furibisha/no_noise/sample4.html#606_77
▲居は初手▲36歩、に固定かと思いましたが、後手の戦型により変わってますね。
そうか、MCTSで相手の手番の時に、相手の希望戦型を使って予測してるので
読み筋、勝率、から相手がどんな狙いなのかバレバレなのですね・・・。
これはダメな気がします。ちょっと修正案を考えてみます。
Rootの手番側の時のみ、振り飛車指定を行い、
探索中の相手側は111111111 と、どの筋に飛車を振ってもOK、とします。
ハッシュ表もRoot先手、Root後手で2つに分けます。
相手モデルが正しくなかったです。
初手▲36歩とか角道を突かないとかは意味不明ですが。
▲居 △4間 w0545_75.csa http://www.yss-aya.com/furibisha/no_noise/sample4.html#545_75
こちらは△向飛車。ただ初手▲36歩から急戦を見せられて3間飛車になっており
向飛車に振れてません。初手▲36歩は相手が振り飛車党なら有効な指し方なのかも。
▲居 △向 w0505_77.csa http://www.yss-aya.com/furibisha/no_noise/sample4.html#505_77
なんとパックパン(のような出だし)。向飛車は1間、9間並みに不利な戦法のようで
ハンデレートが高く(+215)、かなり無理をしないとダメなのかも。
13手目の▲86飛打、の合駒は定跡では▲77飛打ですが、こちらも有効なのかも。
▲居 △向 w0566_77.csa http://www.yss-aya.com/furibisha/no_noise/sample4.html#566_77
こちらではパックマンの歩を取らずに、後手は角道を突かずに引き角から△64角。
結果的に向飛車にできてるのですが相当苦労してる感じです。
▲居 △向 w0606_77.csa http://www.yss-aya.com/furibisha/no_noise/sample4.html#606_77
▲居は初手▲36歩、に固定かと思いましたが、後手の戦型により変わってますね。
そうか、MCTSで相手の手番の時に、相手の希望戦型を使って予測してるので
読み筋、勝率、から相手がどんな狙いなのかバレバレなのですね・・・。
これはダメな気がします。ちょっと修正案を考えてみます。
Rootの手番側の時のみ、振り飛車指定を行い、
探索中の相手側は111111111 と、どの筋に飛車を振ってもOK、とします。
ハッシュ表もRoot先手、Root後手で2つに分けます。
相手モデルが正しくなかったです。
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/29(Thu) 07:08 |
| 投稿者 | : 山下 |
| 参照先 | : |
NNが小さいとGPUを効率的に使えない、ミニバッチが小さい、がある気はします。
ただ、詰将棋が入ってるのでかなり重く、NNなしで棋譜生成したときでも
Ryzen 9 7900 12-Core だと2400棋譜/時、程度しか出ませんでした。
下はvast.aiで動かしてみた結果ですが、コア数が多くても
Xeon E5-2673 などは速度が出ないです。GPUを動かすコアのクロックが下がるとダメな感じがします。
4090はかなり速く、Ryzen 9 5950Xだと1994.4s/h、と2000近くでます。
O-1:28:65W の設定で。(126W)は O-1:42:126W
3090 $0.151 E5-2673 v3 24.0/ 48 m:13866 2 errors generated.
*4080SU $0.213 E5-2680 v4 28.0/ 28 m:23790 1014.4s/h,19.7 時
*4060Ti $0.122 EPYC 7402 24-Core 24.0/ 48 m:17248 605.2s/h,42.9 時
3090 $0.194 Ryzen 9 3950X 16-Core 32.0/ 32 m:11858 apt でエラー
4090 $0.236 E5-2698 v3 32.0/ 32 m:13751 1061.1s/h, 0.5 時
3080 $0.111 EPYC 7B13 64-Core 12.8/128 m:14612 477.3s/h, 1.3 時
+4070Ti $0.212 Ryzen 9 5950X 16-Core 32.0/ 32 m:8449 1074.5s/h,45.1 時, 1128.9s/h(126W)
3080 $0.116 E5-2697 v4 14.4/ 72 m:26340 ERROR
+4070 $0.118 TR 1920X 12-Core 12.0/ 24 m:25167 681.0s/h,38.1 時
3070 $0.084 EPYC 7551P 32-Core 10.7/ 64 m:13321 apt でエラー
3080Ti $0.169 EPYC 7302P 16-Core 8.0/ 32 m:23973 Register id: 46
+4070STi $0.207 Ryzen 9 7900 12-Core 12.0/ 24 m:22030 1229.2s/h,33.4 時
3090 $0.172 i9-7920X 12.0/ 24 m:14779 529.5s/h, 0.3 時
+4070 $0.118 TR 1920X 12-Core 12.0/ 24 m:25167 665.6s/h, 3.5 時
3070 x2 $0.169 E5-2698 v3 12.8/ 32 m:14046 361.2s/h, 2.1 時
3070 x2 $0.167 E5-2683 v3 14.0/ 28 m:15303 327.8s/h, 2.0 時
3070 $0.071 E5-2660 v3 13.3/ 40 m:22036 起動しない
4090 $0.219 E5-2650 v2 8.0/ 32 m:14444 343.5s/h, 0.2 時
4090 $0.313 Ryzen 5 3600 6-Core 12.0/ 12 m:19345 751.6s/h, 0.3 時
4080S $0.204 E5-2680 v3 12.0/ 48 m:24205 Register id: 52
+4070STi $0.203 Ryzen 9 7900 12-Core 12.0/ 24 m:22030 1100.6s/h, 2.7 時
4090 $0.293 EPYC 7B12 64-Core 19.7/256 m:10702 Register id: 64
+4090 $0.342 Ryzen 9 5950X 16-Core 32.0/ 32 m:9199 1390.6s/h, 0.3 時, 1994.4s/h(126W)
4090 $0.263 EPYC 7B12 64-Core 21.3/256 m:9961 1189.6s/h, 0.3 時
4090 $0.316 Ryzen 9 5900X 12-Core 24.0/ 24 m:11213 1367.2s/h, 0.2 時
ただ、詰将棋が入ってるのでかなり重く、NNなしで棋譜生成したときでも
Ryzen 9 7900 12-Core だと2400棋譜/時、程度しか出ませんでした。
下はvast.aiで動かしてみた結果ですが、コア数が多くても
Xeon E5-2673 などは速度が出ないです。GPUを動かすコアのクロックが下がるとダメな感じがします。
4090はかなり速く、Ryzen 9 5950Xだと1994.4s/h、と2000近くでます。
O-1:28:65W の設定で。(126W)は O-1:42:126W
3090 $0.151 E5-2673 v3 24.0/ 48 m:13866 2 errors generated.
*4080SU $0.213 E5-2680 v4 28.0/ 28 m:23790 1014.4s/h,19.7 時
*4060Ti $0.122 EPYC 7402 24-Core 24.0/ 48 m:17248 605.2s/h,42.9 時
3090 $0.194 Ryzen 9 3950X 16-Core 32.0/ 32 m:11858 apt でエラー
4090 $0.236 E5-2698 v3 32.0/ 32 m:13751 1061.1s/h, 0.5 時
3080 $0.111 EPYC 7B13 64-Core 12.8/128 m:14612 477.3s/h, 1.3 時
+4070Ti $0.212 Ryzen 9 5950X 16-Core 32.0/ 32 m:8449 1074.5s/h,45.1 時, 1128.9s/h(126W)
3080 $0.116 E5-2697 v4 14.4/ 72 m:26340 ERROR
+4070 $0.118 TR 1920X 12-Core 12.0/ 24 m:25167 681.0s/h,38.1 時
3070 $0.084 EPYC 7551P 32-Core 10.7/ 64 m:13321 apt でエラー
3080Ti $0.169 EPYC 7302P 16-Core 8.0/ 32 m:23973 Register id: 46
+4070STi $0.207 Ryzen 9 7900 12-Core 12.0/ 24 m:22030 1229.2s/h,33.4 時
3090 $0.172 i9-7920X 12.0/ 24 m:14779 529.5s/h, 0.3 時
+4070 $0.118 TR 1920X 12-Core 12.0/ 24 m:25167 665.6s/h, 3.5 時
3070 x2 $0.169 E5-2698 v3 12.8/ 32 m:14046 361.2s/h, 2.1 時
3070 x2 $0.167 E5-2683 v3 14.0/ 28 m:15303 327.8s/h, 2.0 時
3070 $0.071 E5-2660 v3 13.3/ 40 m:22036 起動しない
4090 $0.219 E5-2650 v2 8.0/ 32 m:14444 343.5s/h, 0.2 時
4090 $0.313 Ryzen 5 3600 6-Core 12.0/ 12 m:19345 751.6s/h, 0.3 時
4080S $0.204 E5-2680 v3 12.0/ 48 m:24205 Register id: 52
+4070STi $0.203 Ryzen 9 7900 12-Core 12.0/ 24 m:22030 1100.6s/h, 2.7 時
4090 $0.293 EPYC 7B12 64-Core 19.7/256 m:10702 Register id: 64
+4090 $0.342 Ryzen 9 5950X 16-Core 32.0/ 32 m:9199 1390.6s/h, 0.3 時, 1994.4s/h(126W)
4090 $0.263 EPYC 7B12 64-Core 21.3/256 m:9961 1189.6s/h, 0.3 時
4090 $0.316 Ryzen 9 5900X 12-Core 24.0/ 24 m:11213 1367.2s/h, 0.2 時
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/29(Thu) 04:28 |
| 投稿者 | : 48 |
| 参照先 | : |
>>ネットのサイズは8倍ですが、生成速度は3分の1から4分の1程度で済んでいるようです。
これですが、10ブロックではautousiがボトルネックになってる感じです。
RTX3060のノートPCです。
20ブロックでもRTX4090だと似たような現象がありました。
これですが、10ブロックではautousiがボトルネックになってる感じです。
RTX3060のノートPCです。
20ブロックでもRTX4090だと似たような現象がありました。
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/27(Tue) 15:30 |
| 投稿者 | : 山下 |
| 参照先 | : |
昨日、256x20bに移行しました。
直近の200万棋譜で学習率0.01で学習させたものは +320 ELOほど弱かったので
学習率0.001で学習させると、ほぼ同じ強さになったのでそれに切り替えました。
ネットのサイズは8倍ですが、生成速度は3分の1から4分の1程度で済んでいるようです。
50万か100万棋譜作って変化がなければ学習率を下げます。
相中飛車の将棋から。どの振り飛車でも序盤早々、端歩を突くことが多いです。
相手が受けないと突き越すことが多いです。様子見なのか分かりませんが振り飛車では王側の端歩は
早めに突いても損にならないのかもしれません。
相中飛車は中央から攻めるのは無理なので、結局、3間や向飛車で王頭を攻める展開になっています。
後手は矢倉、先手は片矢倉に組み替えて開戦。
▲中 △中 w0579_44.csa
http://www.yss-aya.com/furibisha/no_noise/sample4.html#579_44
直近の200万棋譜で学習率0.01で学習させたものは +320 ELOほど弱かったので
学習率0.001で学習させると、ほぼ同じ強さになったのでそれに切り替えました。
ネットのサイズは8倍ですが、生成速度は3分の1から4分の1程度で済んでいるようです。
50万か100万棋譜作って変化がなければ学習率を下げます。
相中飛車の将棋から。どの振り飛車でも序盤早々、端歩を突くことが多いです。
相手が受けないと突き越すことが多いです。様子見なのか分かりませんが振り飛車では王側の端歩は
早めに突いても損にならないのかもしれません。
相中飛車は中央から攻めるのは無理なので、結局、3間や向飛車で王頭を攻める展開になっています。
後手は矢倉、先手は片矢倉に組み替えて開戦。
▲中 △中 w0579_44.csa
http://www.yss-aya.com/furibisha/no_noise/sample4.html#579_44
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/25(Sun) 21:42 |
| 投稿者 | : 山下 |
| 参照先 | : |
floodgateからですが、袖飛車で相手に角道を突かせないまま
中住まいから△51金と囲って、端を突き捨ててから△73桂、は
成立してるかは微妙ですが、かっこいい指し方です。
現在、256x20bを学習中で数日中に移行する予定です。
http://wdoor.c.u-tokyo.ac.jp/shogi/view/2024/08/25/wdoor+floodgate-300-10F+i3_4160t+AobaFuribisha_w527_800p+20240825213008.csa
こちらは▲向飛車△袖飛車。2手目の△14歩が相手が居飛車じゃないのを
察知してか▲66角▲77銀から▲88飛と回ります。
お互いに銀冠に組んでから先手から▲16歩△同歩▲同銀と1筋棒銀
を仕掛けます。後手も取りませんが。基本的に棒銀での銀香交換は
損で交換しない方がいいのかもしれません。
▲向 △袖 w0551_12.csa http://www.yss-aya.com/furibisha/no_noise/sample4.html#551_12
中住まいから△51金と囲って、端を突き捨ててから△73桂、は
成立してるかは微妙ですが、かっこいい指し方です。
現在、256x20bを学習中で数日中に移行する予定です。
http://wdoor.c.u-tokyo.ac.jp/shogi/view/2024/08/25/wdoor+floodgate-300-10F+i3_4160t+AobaFuribisha_w527_800p+20240825213008.csa
こちらは▲向飛車△袖飛車。2手目の△14歩が相手が居飛車じゃないのを
察知してか▲66角▲77銀から▲88飛と回ります。
お互いに銀冠に組んでから先手から▲16歩△同歩▲同銀と1筋棒銀
を仕掛けます。後手も取りませんが。基本的に棒銀での銀香交換は
損で交換しない方がいいのかもしれません。
▲向 △袖 w0551_12.csa http://www.yss-aya.com/furibisha/no_noise/sample4.html#551_12
| 件名 | : Re: 振り飛車をゼロから学習する「Aoba振り飛車」を開始しました |
| 投稿日 | : 2024/08/24(Sat) 09:42 |
| 投稿者 | : 山下 |
| 参照先 | : |
棋譜受け取りサーバがdisk fullになったようで、止まってます。
現在回復中です。
復活しました。現在、動作しています。朝の6時から3時間ほど停止していました。お手数をおかけしました。
WebARENA Indigoだったのですが、
停止では止まらず、強制停止、から起動で無事に再起動できました。
使用率は84%ほどで、tmp fileとかで埋まっていたのかもしれません。
現在回復中です。
復活しました。現在、動作しています。朝の6時から3時間ほど停止していました。お手数をおかけしました。
WebARENA Indigoだったのですが、
停止では止まらず、強制停止、から起動で無事に再起動できました。
使用率は84%ほどで、tmp fileとかで埋まっていたのかもしれません。

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