【オセロ,将棋】ボードゲーム Part3【囲碁,War】 (636レス)
【オセロ,将棋】ボードゲーム Part3【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
108: 310 [sage] 2020/02/12(水) 22:15:37.07 ID:Gx8MvMLI 一晩寝かしてプログラム破棄(汗 もともとある対称盤面の処理ロジックを生かして、F5筋しかない棋譜をC4/D3/E6に 対称変換する事で、根本的に解決しようという方向になりました。副作用はBookが 4倍に膨れるのと、F5スタート限定だった評価関数のエラーがいったん大きくなって しまうために、学習しなおさなければならない事です。 やってみたら、Bookサイズでかすぎてメモリーギリギリ。仕方がないので60手目まで 作っていたBookを40手目までに限定。あと敢えて残して(意図的に作っ
て)あった、 24手目以降のベストではない分岐も別途保存して一回削除しました。 メモリ64G以上欲しい…。スレッドは16くらいで十分なので。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/108
109: 535 [sage] 2020/02/12(水) 23:03:00.16 ID:OxY0+llC メモリ欲しいですよね〜。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/109
110: 535 [sage] 2020/02/12(水) 23:12:45.08 ID:OxY0+llC Ryzen Threadripper 3990Xに最適化したDDR4-3600 256GBメモリキットがG.SKILLから ttp://www.gdm.or.jp/pressrelease/2020/0212/338305 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/110
111: 535 [] 2020/02/13(木) 20:29:06.20 ID:t0qxkX+C 今更だけど、メモリよりHDDのほうがでかいわけだが、全部メモリに乗らないとするとどうやってプログラム組めばいいか悩ましいな。 ホント今更だけど。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/111
112: 310 [sage] 2020/02/15(土) 00:33:20.86 ID:aU7p7RKo スピードが必要な部分はメモリーに無いといかんわけで。 今は探索でBookを参照しているので、Bookアクセスには速度が必要なわけで。 Bookは重要だけど棋譜は既に重要ではないわけで。 棋譜はSDDに移そうかなと思っていたりします。 どうせ要所要所で保存しているわけだし、都度読み込めばみたいな。 (HDDは遅すぎるので論外かと) ただ…今のロジックがメモリー前提なのと、棋譜ですら読み込みに数秒かかる 状態なので、できればメモリーに置いときたい。そもそも、大した容量じゃないし。
自分の場合、本体でBook読み込むのと、同時にZebraと突き合わせながら間違い 箇所探しで掘り進める用に、Bookを確認するプログラムも同時に動かしていて、 そちらでも同じサイズのBookを読み込まざるを得ないので、16Gのメモリーが あっても、半分くらいに抑えておかないといけないという問題があります。 頭の片隅にバイナリファイルのランダムアクセスってのがちょこっとだけありますが、 それって自分用DBを作るようなものなので、悩み中。とはいえ、最終的にもしオセロ の対戦プログラムにするのなら、今ほど探索時間気にするわけでもなし、動
作環境 として要求するメモリー量が大きすぎるのもなんだかなぁと思っていたりもします。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/112
113: 310 [sage] 2020/02/15(土) 00:35:39.59 ID:aU7p7RKo そんな事より、対称形サポートして棋譜作っていたら、またF5f6系が全滅して 途方に暮れていたところで、知らぬ間に復活していたり。間違い可能性高い パブリックドロー筋が復活したと思ったら、またダメだったり。 まだ棋譜作成が足りていないという事実に直面しています。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/113
114: 310 [sage] 2020/02/18(火) 00:26:29.87 ID:xu5XdmKn 対称形サポートでBookはだいぶ良くなって来た感じですが、完全読み切りの探索時間 が遅くなった。まだ新しい教師データに対して学習不足なんだと思いますが、どこまで 復活するか。 残り30手読み切り時間がかかりすぎる。棋譜作成のプログラムの方は、ほぼ出来上 がってしまったので、動作具合を見ているだけになっている。何か探索高速化のネタは 無いものか。 PC一つ買って、そちらでオセロの棋譜作成させながら、別の何かの開発を始める時な のかも知れない。 http://mevius.5ch.net
/test/read.cgi/gamedev/1574503798/114
115: 535 [sage] 2020/02/18(火) 00:27:41.65 ID:kv2P7/8Y とりあえずモンテカルロ1000poで10〜50手打ち進めてその局面で100000po回して結果の黒番の勝利回数、スコアの合計を収集するプログラムを作成。 あんまりいい方法じゃないとはおもうけどこれだというアイディアもないしこれで一回やってみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/115
116: 535 [sage] 2020/02/18(火) 21:44:13.85 ID:kv2P7/8Y マシンパワー欲しいすな。 3990xでも足りないかも。 アルゴリズム見直せと言われそうだが。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/116
117: 535 [sage] 2020/02/18(火) 22:28:54.62 ID:kv2P7/8Y まーでも310さんも言ってるけど計算にマシン取られるとヒマですね。 AWSとか使うのも面白いかもしれないけどいかんせん金が… http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/117
118: 535 [] 2020/02/20(木) 18:12:42.14 ID:YadOsXz6 夜中動かすとファンがうるさくてねれないorz やっぱaws… でも金が… http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/118
119: 535 [sage] 2020/02/20(木) 20:15:56.39 ID:BvOV7XJR でもまあ、コロナでいつポックリいくともわからないならいっそ3990x買っちゃうってのも考えようによってはなくなないな。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/119
120: 310 [sage] 2020/02/20(木) 22:03:32.96 ID:KuvbYeZk たぶん感染経路不明な感染者が1000人超えたらテレビも飽きてきて めっきり話題にならなくると思うなw http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/120
121: 535 [sage] 2020/02/20(木) 22:44:26.40 ID:BvOV7XJR 70499種類の盤面のモンテカルロ勝率スコアデータが取れました。 これをもとにDNNをトレーニングしてみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/121
122: 535 [sage] 2020/02/21(金) 21:02:31.11 ID:/4d3LiPl やっぱ素のモンテカルロに勝てない!!! どうしてなんだ… http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/122
123: 535 [sage] 2020/02/21(金) 22:56:34.67 ID:/4d3LiPl 単に白番有利説が急浮上www http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/123
124: 535 [sage] 2020/02/22(土) 00:47:13.32 ID:j5uEDLd9 いや、ちがうっぽい。 うーん。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/124
125: 535 [sage] 2020/02/22(土) 17:03:42.93 ID:j5uEDLd9 キター!素のモンテカルロに勝ち越しました! 黒番 31勝20敗 白番 32勝19敗 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/125
126: 535 [sage] 2020/02/22(土) 20:31:10.32 ID:j5uEDLd9 モンテカルロが間違える局面で間違いを訂正してそれをDNNに学習させる方法ないかなぁ http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/126
127: 310 [sage] 2020/02/22(土) 21:32:51.12 ID:wHsEFeMN 間違える局面が特定できているて、間違えた手を訂正できるんなら、 訂正後から対戦再開させて、その棋譜で局面DB更新して、学習するとか。 特定できていなくても、基本強化学習は、対戦→DB更新&学習の 繰り返しで、徐々に間違いを訂正していく方法。もうちょっと工夫する ならε-Greedyなどの手法で既存の棋譜の途中で無理やり別の手に 分岐させていく。その手が悪くても、「悪い手である」という認識を学習 させる事ができる。 線形計画だとモデルが上手くできていないと学習が飽和しち
ゃうけど、 DNNだったらある程度うまく学習してくれるかも。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/127
128: 535 [sage] 2020/02/22(土) 21:53:22.17 ID:j5uEDLd9 >>127 特定も訂正も現状できてないですね。 それよりひどいバグを発見して>>115で取ったデータが全て台無しになる可能性が… http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/128
129: 535 [sage] 2020/02/22(土) 22:00:44.31 ID:j5uEDLd9 あかん、なんか全然おかしいorz ちゃんと見直さないと… http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/129
130: 535 [sage] 2020/02/22(土) 22:22:49.38 ID:j5uEDLd9 データ取りからやり直しますorzorzorz http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/130
131: 310 [sage] 2020/02/23(日) 00:56:57.70 ID:9FygPBnT 間違い探しを続けるうちに、何故Zebraの評価値の方がまともに見えるか問題に 突き当りました。で、評価関数を手数毎に60種類に分割している事で、学習データ が不足しているとか、スムージングしていないために、2手前の自分の番の盤面との 差分が取れないとかの問題があるのかなぁと思い立ちまして…。 また、4対称採用した事で学習時間も4倍になってしまいまして…。 思い切って、評価関数を1つにまとめてみたらどうだろうと思い立って、専用の学習 プロジェクトを作ってやってみ
ました。通常数百回学習しないとまともな学習ができ ないのですが、20回学習したところで、意外とフィットしてしまいました。学習時間も 少し減ってる気がする。 一旦評価関数の癖を変えたほうが強化学習も進むかなと思い、とりあえず本番採用 してみました。気持ち速度も速くなった気がしています。もっとも、評価関数の学習具合 によってαβのorderingも変わって速度が変わったりするので、今後学習を積み重ね て、過学習気味になったりした時にどうなるのかは不明。 これから数日動かしてみて、良かったらこっちにしようかと思います。強いオ
セロAIを 作るのなら、対戦してどっちが強いとかやるのが本来なのですが、特にそういう目標も 現状あるわけでなし(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/131
132: 310 [sage] 2020/02/23(日) 01:08:08.23 ID:9FygPBnT >>127に捕捉しとくと、 自分はGreedyな手法の精度をあげるために、浅い探索(9手)と組み合わせて、 評価値が少しだけ悪い手とか、Book登録ないのに評価値が良いとか、いくつかの 基準の訂正ロジックを作って、明らかに悪い手を排除したGreedy法をとって、 既存の棋譜に対して順次分岐を生成していく事で、Bookを埋めて行っています。 分岐は13手読みで作成していますが、この分岐も間違いがそれなりにあるため、 間違いを積み上げているのではないかという懸念もあります(汗
オセロの場合、黒白両者とも最善の場合、引き分けに収束する可能性が濃厚なため 初手から最善引き分けとなるツリーについては、先頭側からこのGreedy法で分岐を 生成し、また(後ろから)確定読み切りを優先して実行する事で、引き分け手順だけ 優先的に精度を上げています。 評価関数作るのに、こういう制約をつけた方法が良いのかは不明です。現に極端に 形勢が傾いた盤面の読み切りは、学習データが不足しているために、引き分け盤面 よりずっと時間がかかるように感じています。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/132
133: 310 [sage] 2020/02/23(日) 03:01:39.99 ID:9FygPBnT げげ。>>131の奴、本番に入れて学習させたらうまく動かん…。 原因箇所は特定できたけど、そもそもBook分だけで学習していて、後半の棋譜から 教師データ作ってなかったので、件数が大幅に違う。後ろ15手分が抜けている。 が、これが入ると学習の途中で無限ループに入ってしまう。 何かのオーバフローなんだと思うけど、今は原因不明orz http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/133
134: 310 [sage] 2020/02/23(日) 10:00:35.35 ID:9FygPBnT たぶんなおった。 学習の進行具合インジケータの*印の数を作るところでオーバーフローして 延々と*を表示し続けてるだけだったw こういうところで適当にint使っているのがいかん。 と、怪しそうなところをsize_tに直したら、整合性が取れなくなってワーニングの嵐w 適当にsize_tにすればよいというものでもなかったw http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/134
135: 535 [sage] 2020/02/23(日) 22:36:15.39 ID:xJvwRHu1 オーバーフローが嫌だからついlong longを使ってしまうw メモリ余計に食うけど。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/135
136: 535 [sage] 2020/02/24(月) 18:53:46.31 ID:S84dSY4F タイルゲーム、完全解析した後でもそれなりに楽しめる不思議。自力では勝てないからな。 そういやconnect4より複雑で完全解析されててネットで遊べるゲームってなにかあるのかな? http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/136
137: 535 [sage] 2020/02/25(火) 20:37:07.39 ID:10rOW9ls データ取りなおしたので再度DNN学習させてみます。 ついでにネットワーク少し大きくしてみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/137
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 499 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s