比較的地味なボードゲーム専用のスレが欲しくて立ててみました。
前スレ
【オセロ,将棋】ボードゲーム【囲碁,War】
http://mevius.2ch.net/test/read.cgi/gamedev/1057763418/
【オセロ,将棋】ボードゲーム Part2【囲碁,War】
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
2017/10/15(日) 17:34:58.03ID:RaMh0le279310
2017/11/14(火) 00:31:34.47ID:ZeqYQGfh 重い局面は6〜7時間くらいかけてクリアしました。
MCTSの速度が出ない問題は、解消というか、原因不明のまま別の方法で回避。
parallel_forの問題かと思っていたけど、shared_ptrの方の問題だったっぽい。
遡りチェックの時、PVは探索せずに、その他の手をチェックしていくので、他の手
にも探索を振り向けたかったのですが、単純に1手先の局面からUCTを実行すると
10万プレイアウトくらいで突然数十秒宇固まったようになって、それを何度も繰り
返す結果、まったくツリー探索が進まないという症状です。UCT探索の方に1回目
だけランダムに着手する関数を作って、そちらを呼び出したところ、固まらなくなり
ました。
ようやくまともにツリーをオーダリングに再利用できるようになったのですが、要所
要所で極端に探索が遅くなって、逆に時間がかかります。
今しばらく調査が必要な模様。
MCTSの速度が出ない問題は、解消というか、原因不明のまま別の方法で回避。
parallel_forの問題かと思っていたけど、shared_ptrの方の問題だったっぽい。
遡りチェックの時、PVは探索せずに、その他の手をチェックしていくので、他の手
にも探索を振り向けたかったのですが、単純に1手先の局面からUCTを実行すると
10万プレイアウトくらいで突然数十秒宇固まったようになって、それを何度も繰り
返す結果、まったくツリー探索が進まないという症状です。UCT探索の方に1回目
だけランダムに着手する関数を作って、そちらを呼び出したところ、固まらなくなり
ました。
ようやくまともにツリーをオーダリングに再利用できるようになったのですが、要所
要所で極端に探索が遅くなって、逆に時間がかかります。
今しばらく調査が必要な模様。
80535
2017/11/14(火) 00:38:47.74ID:7RkiqcHt 途中経過
70局目
黒(airandom.dll)の勝利回数: 29
白(ai-lv2.dll)の勝利回数: 41
61局目
黒(ai-lv2.dll)の勝利回数: 53
白(airandom.dll)の勝利回数: 8
58局目
黒(airandom.dll)の勝利回数: 18
白(ai-lv1.dll)の勝利回数: 40
46局目
黒(ai-lv1.dll)の勝利回数: 26
白(airandom.dll)の勝利回数: 20
70局目
黒(airandom.dll)の勝利回数: 29
白(ai-lv2.dll)の勝利回数: 41
61局目
黒(ai-lv2.dll)の勝利回数: 53
白(airandom.dll)の勝利回数: 8
58局目
黒(airandom.dll)の勝利回数: 18
白(ai-lv1.dll)の勝利回数: 40
46局目
黒(ai-lv1.dll)の勝利回数: 26
白(airandom.dll)の勝利回数: 20
81535
2017/11/14(火) 08:46:58.91ID:7RkiqcHt 途中経過
311局目
黒(airandom.dll)の勝利回数: 97
白(ai-lv2.dll)の勝利回数: 214
275局目
黒(ai-lv2.dll)の勝利回数: 237
白(airandom.dll)の勝利回数: 38
259局目
黒(airandom.dll)の勝利回数: 114
白(ai-lv1.dll)の勝利回数: 145
213局目
黒(ai-lv1.dll)の勝利回数: 144
白(airandom.dll)の勝利回数: 69
311局目
黒(airandom.dll)の勝利回数: 97
白(ai-lv2.dll)の勝利回数: 214
275局目
黒(ai-lv2.dll)の勝利回数: 237
白(airandom.dll)の勝利回数: 38
259局目
黒(airandom.dll)の勝利回数: 114
白(ai-lv1.dll)の勝利回数: 145
213局目
黒(ai-lv1.dll)の勝利回数: 144
白(airandom.dll)の勝利回数: 69
82310
2017/11/14(火) 23:35:06.48ID:ZeqYQGfh MCTSのツリーを使用する奴は、どうも挙動が変なのですが原因不明なので後回し。
アルファ碁Zeroでは、強化学習に軽い探索を取り入れたというのを見かけたので、
想像で真似してみる事にしました。
序盤はランダム着手。そこから5手読みの中盤探索を入れて、残り10手完全読み。
評価関数はValueを使用。たぶん、学習はマシになると思います。
もっと精度が上がったら、3手読みにしてスピードアップしたいです。
今はまだ結構ボロボロなので、これで我慢。
アルファ碁Zeroでは、強化学習に軽い探索を取り入れたというのを見かけたので、
想像で真似してみる事にしました。
序盤はランダム着手。そこから5手読みの中盤探索を入れて、残り10手完全読み。
評価関数はValueを使用。たぶん、学習はマシになると思います。
もっと精度が上がったら、3手読みにしてスピードアップしたいです。
今はまだ結構ボロボロなので、これで我慢。
83535
2017/11/15(水) 00:08:07.85ID:hR/pxKTk 丸一日回してみました。
1000局くらい軽くいくだろうと思ってたけど意外と時間かかってますね。
これはこの辺にしておきます。
533局目
黒(airandom.dll)の勝利回数: 175
白(ai-lv2.dll)の勝利回数: 358
475局目
黒(ai-lv2.dll)の勝利回数: 407
白(airandom.dll)の勝利回数: 68
450局目
黒(airandom.dll)の勝利回数: 198
白(ai-lv1.dll)の勝利回数: 252
365局目
黒(ai-lv1.dll)の勝利回数: 252
白(airandom.dll)の勝利回数: 113
1000局くらい軽くいくだろうと思ってたけど意外と時間かかってますね。
これはこの辺にしておきます。
533局目
黒(airandom.dll)の勝利回数: 175
白(ai-lv2.dll)の勝利回数: 358
475局目
黒(ai-lv2.dll)の勝利回数: 407
白(airandom.dll)の勝利回数: 68
450局目
黒(airandom.dll)の勝利回数: 198
白(ai-lv1.dll)の勝利回数: 252
365局目
黒(ai-lv1.dll)の勝利回数: 252
白(airandom.dll)の勝利回数: 113
84310
2017/11/17(金) 23:19:33.73ID:0nQ3gtJu 浅い探索付き強化学習は結構有効に機能しているようです。
学習の速度が明らかに上がったし、精度も良くなっているようで、テスト盤面の
誤差が結構減りました。ただ、そろそろ飽和したか、局所解に入ったような印象。
で、色々考えたあげく、線形回帰ではこの辺が限界かもしれないという事で、
評価関数をmlpにしてみました。valueの方がうまく学習しなかったので、回帰型
ではなくsigmoid出力にして0〜1の数字を石差に変換かけてます。
強化学習は、回帰版の評価関数の結果をそのまま利用してます。
そろそろそこそこ使えそうな誤差になってきたようだし、強化学習は自分に対して
行った方が良いはずなので、全面的にmlpに移行しちゃおうか悩み中。
学習の速度が明らかに上がったし、精度も良くなっているようで、テスト盤面の
誤差が結構減りました。ただ、そろそろ飽和したか、局所解に入ったような印象。
で、色々考えたあげく、線形回帰ではこの辺が限界かもしれないという事で、
評価関数をmlpにしてみました。valueの方がうまく学習しなかったので、回帰型
ではなくsigmoid出力にして0〜1の数字を石差に変換かけてます。
強化学習は、回帰版の評価関数の結果をそのまま利用してます。
そろそろそこそこ使えそうな誤差になってきたようだし、強化学習は自分に対して
行った方が良いはずなので、全面的にmlpに移行しちゃおうか悩み中。
85535
2017/11/17(金) 23:58:50.71ID:8tEb8SWm やっぱ思考時間短いといろいろいいんだよなぁ。
モンテカルロは確かにある程度強さ出せるけど
遅いのどうやって克服していいかわからんし。
悩ましい。
モンテカルロは確かにある程度強さ出せるけど
遅いのどうやって克服していいかわからんし。
悩ましい。
86310
2017/11/18(土) 20:23:37.47ID:TwYSqk9E やっぱスピードは万能ですよねぇ。
モンテカルロですが、評価関数ができたら、アルファ碁Zero方式で(汗
緩やかに読み筋を絞り込みながら、有望な手を深読みする形になります。
mlp版を試していますが、中間層を64にしたら、学習は良いのですが、
モンテカルロが劇遅になりました…。今、中間層8で強化学習していますが、
なんか早々と線形回帰と同様に飽和状態になってしまった模様。
速度的には8が限界な気がする。
途中まで線形回帰の強化学習記譜で学習させていて、同じような癖がついて
しまったのかもしれないので、今晩一晩まっさらから学習させてみようかな。
モンテカルロですが、評価関数ができたら、アルファ碁Zero方式で(汗
緩やかに読み筋を絞り込みながら、有望な手を深読みする形になります。
mlp版を試していますが、中間層を64にしたら、学習は良いのですが、
モンテカルロが劇遅になりました…。今、中間層8で強化学習していますが、
なんか早々と線形回帰と同様に飽和状態になってしまった模様。
速度的には8が限界な気がする。
途中まで線形回帰の強化学習記譜で学習させていて、同じような癖がついて
しまったのかもしれないので、今晩一晩まっさらから学習させてみようかな。
87310
2017/11/19(日) 15:23:45.94ID:O7LFJYCP あちゃー。
学習がいまいち変に感じていたのは、これは恥ずかしくて言えないレベルの
仕様ミスでした。あれ?と思って、良く考えずに念のため追加したコードが
数か所。ことごとく悪さしていました。
数日損をしたなぁ。
学習がいまいち変に感じていたのは、これは恥ずかしくて言えないレベルの
仕様ミスでした。あれ?と思って、良く考えずに念のため追加したコードが
数か所。ことごとく悪さしていました。
数日損をしたなぁ。
88310
2017/11/20(月) 22:18:43.00ID:/GG7G9SR ぎゃー。
評価関数に入れるデータの変換テーブルに間違い見つけた。
評価関数がいまいち収束しなかったのはこれが原因かも。
もともとの線形回帰版の時代から隠れていたものなので、
線形回帰版も計算し直しです。
というわけで、数日パーどころか1か月単位でパーですorz
評価関数に入れるデータの変換テーブルに間違い見つけた。
評価関数がいまいち収束しなかったのはこれが原因かも。
もともとの線形回帰版の時代から隠れていたものなので、
線形回帰版も計算し直しです。
というわけで、数日パーどころか1か月単位でパーですorz
89310
2017/11/20(月) 22:23:13.40ID:/GG7G9SR 申し遅れましたが、これにて評価関数は最初から計算しなおしです。
幸い、記譜が60件+遡り時の訂正前分100件ほどの合計160件と、
置換表から拾ったものが10万件単位でありますので、最近得ていた
感触だと、これをベースに強化学習で補えそうだというのが、
唯一の救いです。
幸い、記譜が60件+遡り時の訂正前分100件ほどの合計160件と、
置換表から拾ったものが10万件単位でありますので、最近得ていた
感触だと、これをベースに強化学習で補えそうだというのが、
唯一の救いです。
90535
2017/11/21(火) 23:12:52.06ID:orTiLUyu やっぱアルファ碁ゼロは理想形なんだよなぁ。
全てが理想的すぎる。
まあ必要計算資源があれですが。。
全てが理想的すぎる。
まあ必要計算資源があれですが。。
91535
2017/11/23(木) 19:54:22.22ID:5nKVQF7K アルファ碁ゼロには興味あるが詳細情報は意外とWebで探すの大変ですね。
かといってネイチャー買うのも金もかかるし読んでも多分理解できないからなぁ。
でも終盤DBとかやってても全然成果あがらなさそうだし生きてて辛い。
かといってネイチャー買うのも金もかかるし読んでも多分理解できないからなぁ。
でも終盤DBとかやってても全然成果あがらなさそうだし生きてて辛い。
92535
2017/11/23(木) 21:16:22.89ID:5nKVQF7K 囲碁ソフトにLeela Zeroというオープンなフリーソフトがあるそうな。
何か参考になるだろうか?
何か参考になるだろうか?
93310
2017/11/23(木) 21:17:40.34ID:A/JPNP9D アルファ碁ゼロの論文はまだ読んでませんが、アルファ碁の正常進化ですよ。
自分はDeep Learningのところは「しかと」しているので、MCTSの進化形として
とらえてみると、まあ想像ですうが、当たり前の事を当たり前にやっただけかなぁ
と思っています。
それより大問題が…
また、評価関数の入力データ作るための変換に間違いを見つけてしまいました。
前回どころではない大きな間違いで、良くこの評価関数でそこそこ収束していたなぁ
というレベルの間違いでした。ソース喪失して書き直していたところから仕込まれて
いたんだと言う事で。
なんか入力いい加減でもそこそこな評価関数ができちゃう事にびっくり。
今度こそ大丈夫と信じて・・・
自分はDeep Learningのところは「しかと」しているので、MCTSの進化形として
とらえてみると、まあ想像ですうが、当たり前の事を当たり前にやっただけかなぁ
と思っています。
それより大問題が…
また、評価関数の入力データ作るための変換に間違いを見つけてしまいました。
前回どころではない大きな間違いで、良くこの評価関数でそこそこ収束していたなぁ
というレベルの間違いでした。ソース喪失して書き直していたところから仕込まれて
いたんだと言う事で。
なんか入力いい加減でもそこそこな評価関数ができちゃう事にびっくり。
今度こそ大丈夫と信じて・・・
94535
2017/11/24(金) 22:55:40.11ID:QoCCcG2C なんかleela zeroのreadme読んでみたけど、一般人が買えるハードウェアだと
アルファ碁zeroの強さを再現するのに1700年トレーニングしなきゃならんとかw
は〜絶望するわ。
アルファ碁zeroの強さを再現するのに1700年トレーニングしなきゃならんとかw
は〜絶望するわ。
95535
2017/11/24(金) 23:04:07.44ID:QoCCcG2C 結局、仮に大金つっこんでスレッドリッパーとか買ったとしても到底無理ってことじゃん。
まあ、まったくの無駄になるとは思わないけど。
まあ、まったくの無駄になるとは思わないけど。
96535
2017/11/24(金) 23:04:57.72ID:QoCCcG2C なんかIDにCがいっぱいあるな。
97310
2017/11/25(土) 00:38:47.57ID:Dx7Nr2Ji もういっちょ間違い発見orz
ソース喪失後焦って数日でパーッと書いて、そのまま学習させて、そこそこ
収束していたから放置していたのを思い出してきた。今度は全部チェックした。
しかし、いい加減な評価関数でも、結構収束していたってのが凄いな。
そこはかとなく表現力不足を感じていたのはその辺が原因かなぁ。
記譜と置換表データで1から学習させるのに、一気に500回学習させたら、
思いっきり過学習になってしまった。現在、強化学習で解きほぐし中。
回帰の方はほぼほぐれたけど、MLPの方はまだ時間がかかりそう。
ソース喪失後焦って数日でパーッと書いて、そのまま学習させて、そこそこ
収束していたから放置していたのを思い出してきた。今度は全部チェックした。
しかし、いい加減な評価関数でも、結構収束していたってのが凄いな。
そこはかとなく表現力不足を感じていたのはその辺が原因かなぁ。
記譜と置換表データで1から学習させるのに、一気に500回学習させたら、
思いっきり過学習になってしまった。現在、強化学習で解きほぐし中。
回帰の方はほぼほぐれたけど、MLPの方はまだ時間がかかりそう。
98310
2017/11/25(土) 00:54:30.38ID:Dx7Nr2Ji >>95
某スレをウォッチしていたら、前から気になっていた事を指摘していた人がいた。
スレッドリッパーはAVX2命令の中に遅いものがあって、一つ下のインテルの奴の
方が、この手の計算は速いらしい。
あと、GPUをどう使うかだね。
けど学習だけならTensor Flowにやらせちゃえばよいのだろうけど、学習データを
使うところまで行ったら、GPU使った非同期並列処理とか考えなきゃならないし。
CUDAだっけ?GPU専用にコード書かないといけないし。
なんか道筋というか、そこまでやってる自分の姿がイメージしきれない(汗
その前に詰将棋を解くプログラム開発してそう(笑)
某スレをウォッチしていたら、前から気になっていた事を指摘していた人がいた。
スレッドリッパーはAVX2命令の中に遅いものがあって、一つ下のインテルの奴の
方が、この手の計算は速いらしい。
あと、GPUをどう使うかだね。
けど学習だけならTensor Flowにやらせちゃえばよいのだろうけど、学習データを
使うところまで行ったら、GPU使った非同期並列処理とか考えなきゃならないし。
CUDAだっけ?GPU専用にコード書かないといけないし。
なんか道筋というか、そこまでやってる自分の姿がイメージしきれない(汗
その前に詰将棋を解くプログラム開発してそう(笑)
99535
2017/11/25(土) 01:01:08.99ID:ekS5f4AB 某スレってどこですか?
GPGPUはもうちょっとハードル下がってほしいですねぇ
CPUよりも何十倍も速くなるケースもあるらしいし興味ありますね
CUDAをごりごり書くのは難しそうですがライブラリとかに期待。
GPGPUはもうちょっとハードル下がってほしいですねぇ
CPUよりも何十倍も速くなるケースもあるらしいし興味ありますね
CUDAをごりごり書くのは難しそうですがライブラリとかに期待。
100310
2017/11/25(土) 01:26:03.49ID:Dx7Nr2Ji コンピュータ囲碁か何かのスレです
この1か月くらいのカキこのどこかにありました(汗
この1か月くらいのカキこのどこかにありました(汗
101535
2017/11/25(土) 23:11:08.18ID:ekS5f4AB ちょっと目先を変えて9路囲連星やってみようかな。
9路なら序盤DBだけで押し切れそうな気がするw。
9路なら序盤DBだけで押し切れそうな気がするw。
102535
2017/11/25(土) 23:33:24.64ID:ekS5f4AB 310さんみたいに既存コード全捨てでやってみようかなぁ?
もう一度まっさらな気持ちになって…
もう一度まっさらな気持ちになって…
103535
2017/11/25(土) 23:53:52.98ID:ekS5f4AB まっさらな状態から書いてみようとしたけど、
めんどくさくなってすぐ昔のコード確認しちゃうw
駄目すぎるw
めんどくさくなってすぐ昔のコード確認しちゃうw
駄目すぎるw
104310
2017/11/26(日) 13:10:07.09ID:kav93n5u ソース喪失以外の時は、結構コピペしていますよw
書き直しの時は、たいていあちこちで使用しているクラスの構造変え
たりする類の後戻りが難しい変更加える時なので、中の関数は一緒です(汗
新しい評価関数は、だいぶ落ち着いてきましたが、遡り28手くらい
でタイムアウトになります。並べ替えに使っているので精度が上がる
と速度が速くなるのです。前は29手、調子が良い時は30手くらい
まで行っていたので、まだ精度が追い付いていないみたいです。
これでしばらく強化学習の具合見ながら待つだけになっちゃいました。
5×5の囲碁くらいならCNNで評価関数作れないかなぁとか、詰将棋を
作るならBitboardを2バイトに拡張しなきゃとか、悪い虫が疼き始めて
います。
書き直しの時は、たいていあちこちで使用しているクラスの構造変え
たりする類の後戻りが難しい変更加える時なので、中の関数は一緒です(汗
新しい評価関数は、だいぶ落ち着いてきましたが、遡り28手くらい
でタイムアウトになります。並べ替えに使っているので精度が上がる
と速度が速くなるのです。前は29手、調子が良い時は30手くらい
まで行っていたので、まだ精度が追い付いていないみたいです。
これでしばらく強化学習の具合見ながら待つだけになっちゃいました。
5×5の囲碁くらいならCNNで評価関数作れないかなぁとか、詰将棋を
作るならBitboardを2バイトに拡張しなきゃとか、悪い虫が疼き始めて
います。
105535
2017/11/26(日) 21:08:25.02ID:wxjv7tgm 後のコード書きやすいように柔軟性のある設計にするかゴリゴリの最適化を目指すか悩み中w
106535
2017/11/26(日) 21:53:28.37ID:wxjv7tgm ああ、最適化の誘惑に駆られるw
107310
2017/11/26(日) 22:28:47.97ID:kav93n5u 僕が読んだ本では、
最適化するな。アルゴリズムを考えろ。
アルゴリズムなら桁単位で速度アップし、過去に行った最適化は無駄になる。
と言うよな事がトップに書いてあって、それ以来(自分の)読みやすさ優先にしている。
BITBOARDのAVX2命令とか、その辺でいくつかの関数のみ、ゴリゴリにしている。
とはいえ、その辺も一応アルゴリズムの範疇かなぁ。
演算子のオーバーロードとか関数で隠ぺいしているしね。
問題は、最初にクラスの構造とかあんまり考えてないので、あとでごちゃごちゃに
なってしまう事。それで何度か書き直ししている。
最適化するな。アルゴリズムを考えろ。
アルゴリズムなら桁単位で速度アップし、過去に行った最適化は無駄になる。
と言うよな事がトップに書いてあって、それ以来(自分の)読みやすさ優先にしている。
BITBOARDのAVX2命令とか、その辺でいくつかの関数のみ、ゴリゴリにしている。
とはいえ、その辺も一応アルゴリズムの範疇かなぁ。
演算子のオーバーロードとか関数で隠ぺいしているしね。
問題は、最初にクラスの構造とかあんまり考えてないので、あとでごちゃごちゃに
なってしまう事。それで何度か書き直ししている。
108535
2017/11/26(日) 22:35:57.72ID:wxjv7tgm まあ、そのセオリーは私もどこかで聞いたことありますがw
アルゴリズムでの改善が行き詰まると結局泥臭い最適化に手を出すことにww
すでに一回実装したことのあるプログラムだしある程度勘所というか見通しは立つかなーと
アルゴリズムでの改善が行き詰まると結局泥臭い最適化に手を出すことにww
すでに一回実装したことのあるプログラムだしある程度勘所というか見通しは立つかなーと
109535
2017/11/27(月) 23:15:23.55ID:jINzvSI7 勢いでコード書きなおしてるけどテストするのが面倒くさいw
言ってもしょうがないけどw
言ってもしょうがないけどw
110310
2017/12/01(金) 20:29:48.04ID:ONM9KZwZ またしても問題発覚。
タイムアウトなどでキャンセルしたとき、探索途中の中途半端な評価値の置換表
が作成されている模様。対象の特定はできないため、置換表データをいったん
削除して、全データに対して再度遡りチェックを実施する事で、置換表データを
再作成する事にしました。
むむむ。
評価関数はそれなりの精度になっているので、それなりの速度ではチェックできる
はずですが、またしても…って感じでがっかりです。
同一評価値で変化がある分、記譜は多少は膨れるはずなので、そちらに期待。
タイムアウトなどでキャンセルしたとき、探索途中の中途半端な評価値の置換表
が作成されている模様。対象の特定はできないため、置換表データをいったん
削除して、全データに対して再度遡りチェックを実施する事で、置換表データを
再作成する事にしました。
むむむ。
評価関数はそれなりの精度になっているので、それなりの速度ではチェックできる
はずですが、またしても…って感じでがっかりです。
同一評価値で変化がある分、記譜は多少は膨れるはずなので、そちらに期待。
111535
2017/12/05(火) 23:23:49.29ID:CujvIJMm 9路囲連星、一応ルールと簡単なモンテカルロAIはちゃんと動いたっぽいです。
ここからどう展開するか。
ここからどう展開するか。
112310
2017/12/05(火) 23:36:41.89ID:5HB6IIYO とりあえず軽く遡りチェック完了。28〜30まで遡ると時間かかるので当面25前後まで。
もっとも誤着手なしタイムアウト無しだと30手だろうと遡れちゃうから、28手あたりの
適度なところで止めちゃいましたが。
で、置換表データ激減。いままで間違ったものを相当学習に取り込んでいたっぽい。
あと、MCTSのツリーの末端(以後終盤探索しているので数値確定)の評価が時々
狂う問題がありまして、いつもではなかったので目をつぶってましたが、暇だった
ので着手。原因不明なれど、二重更新問題っぽかったので、ツリー部分のコード
を整理してみたところ、何故か治ってしまった模様。
本当に直っていたら自己対局の精度も少し良くなるはず。
つか、羽生永世7冠誕生ですね。
記譜みてみましたが、何が何だかわけわからんけどw
もっとも誤着手なしタイムアウト無しだと30手だろうと遡れちゃうから、28手あたりの
適度なところで止めちゃいましたが。
で、置換表データ激減。いままで間違ったものを相当学習に取り込んでいたっぽい。
あと、MCTSのツリーの末端(以後終盤探索しているので数値確定)の評価が時々
狂う問題がありまして、いつもではなかったので目をつぶってましたが、暇だった
ので着手。原因不明なれど、二重更新問題っぽかったので、ツリー部分のコード
を整理してみたところ、何故か治ってしまった模様。
本当に直っていたら自己対局の精度も少し良くなるはず。
つか、羽生永世7冠誕生ですね。
記譜みてみましたが、何が何だかわけわからんけどw
113310
2017/12/05(火) 23:43:42.63ID:5HB6IIYO Buroさん型特徴の評価関数もそろそろ限界っぽいのと、今のままだと強化学習にも
かなり時間がかかるので、新しいパソコンが欲しくなってきました。やはりCNNに行く
しかないかもという事で。
ものは試しにi9-7980でパソコン組んだら幾らになるのか、ネットで見積もってみた
のですが…そっと閉じてしまいました(汗
クロック数とか見ると、10コア20スレッドくらいの奴が、一番よさそうな気がするんだ
けど、どうなんだろう。
かなり時間がかかるので、新しいパソコンが欲しくなってきました。やはりCNNに行く
しかないかもという事で。
ものは試しにi9-7980でパソコン組んだら幾らになるのか、ネットで見積もってみた
のですが…そっと閉じてしまいました(汗
クロック数とか見ると、10コア20スレッドくらいの奴が、一番よさそうな気がするんだ
けど、どうなんだろう。
114535
2017/12/06(水) 00:45:59.31ID:D/I5x6A8 メモリも山盛り積みたいですよね〜
GPGPUも考えられるし。
GPGPUも考えられるし。
115535
2017/12/06(水) 21:27:03.05ID:D/I5x6A8 アルファ将棋爆誕w
116310
2017/12/06(水) 21:37:40.75ID:fJiMVswg 今見たorz
夢想段階にあったものをことごとく圧倒的な力量でやられてしまふ。
そのうち、5分でオセロ作ったよとか言われるんだろうなぁ。
学習と評価の実行が完全に二分された今となっては、
学習に使用するハード性能は正義だと思い知らされる。
夢想段階にあったものをことごとく圧倒的な力量でやられてしまふ。
そのうち、5分でオセロ作ったよとか言われるんだろうなぁ。
学習と評価の実行が完全に二分された今となっては、
学習に使用するハード性能は正義だと思い知らされる。
117535
2017/12/06(水) 21:39:44.94ID:D/I5x6A8 グーグルのアルゴリズムはマジ万能なんですかね〜?
必要マシンパワーがあれですが、ムーアの法則が解決するでしょう。
必要マシンパワーがあれですが、ムーアの法則が解決するでしょう。
118535
2017/12/06(水) 21:49:23.90ID:D/I5x6A8 そんなに万能ならライブラリとして公開してくれw
囲連星とライフゲーム碁を学習させたいww
囲連星とライフゲーム碁を学習させたいww
119535
2017/12/06(水) 22:03:23.36ID:D/I5x6A8 いっそ完全解析してくれたら諦めつくんですけどねw
120535
2017/12/06(水) 22:49:40.35ID:D/I5x6A8 9路囲連星のDB作りはじめました。
何日かぶん回そう。
何日かぶん回そう。
121310
2017/12/06(水) 23:02:24.56ID:fJiMVswg non-MonteCalroなツリー探索(勝手にそう呼んでる)は、MCTSがロールアウト
関数さえ作れれば万能なように、完全情報ゲームでは万能だと思う。
あと強化学習による評価関数の作成も。
ただ、まだAlpha碁Zeroの論文読んでないからわからないけど、CNNの入力
については、人間が介在しているかもしれない。少なくともアルファ碁の段階
では、ちょっと特殊な入力データを用意していた。
それと、完全情報ができない以上、強さの地平線を広げたに過ぎないのも確か。
それを実現するために圧倒的なマシンパワーを使っているわけで。そのマシン
パワーを前提に、それを完全に活かせるアルゴリズムにしたってところが、評価
ポイントなのかもしれない。
かなり悔し紛れな評価だけどorz
関数さえ作れれば万能なように、完全情報ゲームでは万能だと思う。
あと強化学習による評価関数の作成も。
ただ、まだAlpha碁Zeroの論文読んでないからわからないけど、CNNの入力
については、人間が介在しているかもしれない。少なくともアルファ碁の段階
では、ちょっと特殊な入力データを用意していた。
それと、完全情報ができない以上、強さの地平線を広げたに過ぎないのも確か。
それを実現するために圧倒的なマシンパワーを使っているわけで。そのマシン
パワーを前提に、それを完全に活かせるアルゴリズムにしたってところが、評価
ポイントなのかもしれない。
かなり悔し紛れな評価だけどorz
122535
2017/12/06(水) 23:52:04.64ID:D/I5x6A8 ガンガンツリー展開して全部DBに突っ込んでたら意外と早くメモリがパンクした。
相変わらず学習しない俺w
しょうがないからDBに入れるのは序盤だけにするか。
相変わらず学習しない俺w
しょうがないからDBに入れるのは序盤だけにするか。
123310
2017/12/07(木) 00:22:37.97ID:EKyZH2pF Googleがやらかしてから、後だしで俺も考えていたとか悔しいので、
前から思っている事をボソっと書いとく。
十分に深いDCNNの場合、表現の自由度が高いから、強化学習を繰り返す
事で過学習になる事が、起こりうる局面の大半を内部に保持する事につな
がっていて、実は汎化性能ガン無視で良いのではないか。起こりにくい局面の
評価値はグチャグチャでも構わないという事で。
と思っていたりする。
前から思っている事をボソっと書いとく。
十分に深いDCNNの場合、表現の自由度が高いから、強化学習を繰り返す
事で過学習になる事が、起こりうる局面の大半を内部に保持する事につな
がっていて、実は汎化性能ガン無視で良いのではないか。起こりにくい局面の
評価値はグチャグチャでも構わないという事で。
と思っていたりする。
124535
2017/12/07(木) 00:55:58.10ID:+QWWXInu 修正してみたけど、8プロセス並列で動かすと意外とまだメモリがきついな。
しょうがないから1プロセスだけで流すか。
しょうがないから1プロセスだけで流すか。
125535
2017/12/07(木) 01:11:55.19ID:+QWWXInu うーん、なんか同じ局面しか選ばなくなっちゃう。
これは致命的な欠陥だなぁ。
どうしよう?
これは致命的な欠陥だなぁ。
どうしよう?
126535
2017/12/07(木) 01:18:35.82ID:+QWWXInu 駄目だ分からん。
諦めて今日は寝よう。
諦めて今日は寝よう。
127535
2017/12/07(木) 20:11:24.86ID:+QWWXInu あ〜ツリーのノードに親ノードポインタ入れてなかったわw
変だと思ったw。
でも対称局面合流させちゃってるから親が一意にならないな。。。
どうしよう。。
変だと思ったw。
でも対称局面合流させちゃってるから親が一意にならないな。。。
どうしよう。。
128535
2017/12/07(木) 20:23:43.87ID:+QWWXInu 親ポインタは諦めてほかの方法でごまかそうw
129535
2017/12/07(木) 21:27:59.88ID:+QWWXInu なんか、UCTって初期の探索で間違った結果出ると挽回するの凄い大変なのかね?
それこそ修正に指数的な試行が必要になっているような…
それこそ修正に指数的な試行が必要になっているような…
130535
2017/12/07(木) 21:35:42.53ID:+QWWXInu おっと、なんか挽回してきたw
それはそうとして、メモリが欲しいですねぇ。1TBくらい
それはそうとして、メモリが欲しいですねぇ。1TBくらい
131535
2017/12/07(木) 22:05:33.83ID:+QWWXInu うーん、局所解にずっぽり嵌ったっぽいorz
地力で脱出してくれないかな〜
地力で脱出してくれないかな〜
133535
2017/12/07(木) 23:14:30.29ID:+QWWXInu うおお、メモリ消費がじわじわ増えてきてる。
今晩一晩耐えられるかは微妙なラインだなぁ。
今晩一晩耐えられるかは微妙なラインだなぁ。
134535
2017/12/08(金) 21:44:38.57ID:rkwPxGLh あれえ、おかしいな。
かなり学習いい感じで進んだと思ったのに、公式AIに全く歯が立たない。
やっぱ読めてない局面に分岐されると無力なのかなぁ
かなり学習いい感じで進んだと思ったのに、公式AIに全く歯が立たない。
やっぱ読めてない局面に分岐されると無力なのかなぁ
135535
2017/12/08(金) 21:55:53.54ID:rkwPxGLh DBだけじゃ無理か。
期待が高かっただけにガックリ。
期待が高かっただけにガックリ。
136535
2017/12/08(金) 22:03:23.60ID:rkwPxGLh ここでヒューリスティックに走るかDBの更なる肥大化に走るかCNNとかに手を出すか。
分岐点やな。
分岐点やな。
137535
2017/12/09(土) 11:22:20.19ID:L/Fjd2gI 当たりの石をつがないなぁなぜか。
ロールアウトで当たりの石を抜く確率と当たりの石をつぐ確率増やすか。
ロールアウトで当たりの石を抜く確率と当たりの石をつぐ確率増やすか。
138535
2017/12/09(土) 19:05:03.36ID:L/Fjd2gI キター!初勝利!
最終的にはアルファ碁みたいに100戦100勝したいな。
(
;FF[1]GM[1]SZ[9]
;B[de];W[dg];B[ef];W[cc];B[eg];W[fd]
;B[ec];W[eh];B[ed];W[ch];B[eb];W[fe]
;B[ee];W[ea];B[fa];W[hh];B[da];W[ac]
;B[ea])
最終的にはアルファ碁みたいに100戦100勝したいな。
(
;FF[1]GM[1]SZ[9]
;B[de];W[dg];B[ef];W[cc];B[eg];W[fd]
;B[ec];W[eh];B[ed];W[ch];B[eb];W[fe]
;B[ee];W[ea];B[fa];W[hh];B[da];W[ac]
;B[ea])
139535
2017/12/09(土) 20:29:04.06ID:L/Fjd2gI 酷いバグ発見w
8近傍求める関数間違ってたw
8近傍求める関数間違ってたw
140名前は開発中のものです。
2017/12/09(土) 21:36:39.83ID:L/Fjd2gI ロールアウトの着手確率いじったら黒番の勝率5%だと…?
何が起こってるんだ…
何が起こってるんだ…
141535
2017/12/09(土) 22:53:03.29ID:L/Fjd2gI 着手不能点を着手候補にしてたw
だからか。
だからか。
142535
2017/12/10(日) 21:26:16.30ID:ecwKDJmF 局所解に落ち込むとなかなか抜け出せないのでUCB1のバイアス係数を思いっきり上げてみた。
これで局所解抜けてくれればいいが…
これで局所解抜けてくれればいいが…
143310
2017/12/10(日) 22:11:20.32ID:3vDAj4sl MLP版の評価関数がNaN地獄に落ちてた。
何回かやり直したけど、結構簡単にNaN地獄に落ちるので、一旦仕切り直しで、
線形回帰な評価関数に注力する事にしました。
MCTSでテストすると、途中まで割と見知ったオープニングになってきているけど、
評価値自体はあんまり安定していない感じ。まあ、相対関係があっていれば、
絶対値はずれていても関係ないといえば関係ないけど。
しばらく強化学習を続けながら、ちっと別な事を考えてみます。
というか、Alpha Zeroの強化学習の回数が、思ったより少ないなぁと思ったけど、
自分がこれまでにやった回数を概算で考えてみたら、桁が2〜3くらい少なかったorz
やっぱマシンパワーは正義だなぁ。
何回かやり直したけど、結構簡単にNaN地獄に落ちるので、一旦仕切り直しで、
線形回帰な評価関数に注力する事にしました。
MCTSでテストすると、途中まで割と見知ったオープニングになってきているけど、
評価値自体はあんまり安定していない感じ。まあ、相対関係があっていれば、
絶対値はずれていても関係ないといえば関係ないけど。
しばらく強化学習を続けながら、ちっと別な事を考えてみます。
というか、Alpha Zeroの強化学習の回数が、思ったより少ないなぁと思ったけど、
自分がこれまでにやった回数を概算で考えてみたら、桁が2〜3くらい少なかったorz
やっぱマシンパワーは正義だなぁ。
144535
2017/12/10(日) 22:51:07.98ID:ecwKDJmF 今晩一晩ながして局所解抜け出せなかったら別の方法考えなきゃな…
zen+が超絶スペックという噂が流れてますが、デマリークともいわれていて、
本当だったらいいなあと思っている今日この頃。
zen+が超絶スペックという噂が流れてますが、デマリークともいわれていて、
本当だったらいいなあと思っている今日この頃。
145535
2017/12/11(月) 21:43:28.43ID:fAOHhVpN お、局所解抜けてる。
DBがTXTで1GB行っちゃったてへぺろ。
DBがTXTで1GB行っちゃったてへぺろ。
146535
2017/12/11(月) 21:49:20.78ID:fAOHhVpN お、凄い、いい感じの勝ち方した。
これの凄さが分かってくれる人がどれだけいるかわからないが…
(
;FF[1]GM[1]SZ[9]
;B[ee];W[eg];B[df];W[fd];B[dc];W[dg]
;B[fe];W[ge];B[gd];W[gf];B[fc];W[cd]
;B[ed];W[cc];B[cg];W[ch];B[bg];W[fg]
;B[gc];W[gh];B[bh];W[hh];B[ai];W[ba]
;B[fd])
これの凄さが分かってくれる人がどれだけいるかわからないが…
(
;FF[1]GM[1]SZ[9]
;B[ee];W[eg];B[df];W[fd];B[dc];W[dg]
;B[fe];W[ge];B[gd];W[gf];B[fc];W[cd]
;B[ed];W[cc];B[cg];W[ch];B[bg];W[fg]
;B[gc];W[gh];B[bh];W[hh];B[ai];W[ba]
;B[fd])
147535
2017/12/11(月) 22:02:11.19ID:fAOHhVpN 白番でも勝てるかもと思ったがそんなに甘くなかったw
148535
2017/12/11(月) 22:20:09.34ID:fAOHhVpN うあああ、白番で惜しいところまで行ってバグで不正終了w
とりあえずバグとらなきゃorz
とりあえずバグとらなきゃorz
150535
2017/12/12(火) 19:50:54.43ID:sU/cgenP 新しいパソコン欲しいな〜
現実的な線でいってもメモリ64GBくらい積みたい。
現実的な線でいってもメモリ64GBくらい積みたい。
151535
2017/12/12(火) 23:05:56.72ID:sU/cgenP DB作成をマルチスレッド化したいな〜
でもMCTSのマルチスレッド化って結構難しんだよな〜
でもMCTSのマルチスレッド化って結構難しんだよな〜
152310
2017/12/13(水) 00:38:18.63ID:oWC3TnL7 MCTSのマルチスレッド化は簡単だと思う…
マルチコンピュータは難しいけど。
強化学習がなんかおかしい感じだったので、記譜学習で上書きしたら
かなり過学習になってしまった。強化学習で戻せばよいかと思ったけど
なんかなかなか戻らないorz
強化学習どっかおかしいのかもしれない。
マルチコンピュータは難しいけど。
強化学習がなんかおかしい感じだったので、記譜学習で上書きしたら
かなり過学習になってしまった。強化学習で戻せばよいかと思ったけど
なんかなかなか戻らないorz
強化学習どっかおかしいのかもしれない。
153535
2017/12/13(水) 20:33:14.21ID:6thdoy0s えーそうですか?
排他制御とかしたら性能出なさそう
排他制御とかしたら性能出なさそう
154535
2017/12/13(水) 21:57:53.75ID:3yqEn+ak ID違うと思うけど535です。
DBがTXTで1.7GBに。
実行時7GB程になりました。
std::mapを別のコレクションに変えたらメモリ使用量減らないかな〜?
DBがTXTで1.7GBに。
実行時7GB程になりました。
std::mapを別のコレクションに変えたらメモリ使用量減らないかな〜?
155535
2017/12/13(水) 22:15:01.22ID:3yqEn+ak unordered_mapにしてみたけどあんま変わんないやorz
156310
2017/12/14(木) 00:19:28.11ID:9pKHf6s7 排他制御は、まあ普通にしてますけど、PPLのcritical_sectionでlockしたり、
int型ならatomic<int>していたりで、並列ライブラリにお任せです。
またVirtual Lossという方法があって、ツリーを下っていく時は、先に負けた事にして
降りて行って、末端から戻ってくる時に正しい勝敗に置き換える事で、並列探索
の各スレッドが同じ枝に集中しないようにして、排他がかかる可能性を減らしてます。
あとは、排他制御が必要な領域を細かい単位に分割する事ですかね。
#と思って、ソース見たらVirtual Drawになっていた(汗
あ、そうか。DB化しているって事は、合流ありだし、盤面をキーにしなきゃならないから
そうなるとちょっとややこしいのかな?
自分は合流無視で、各ノードに盤面情報を保持していません。直前着手のみ持って
いて、ノードをたどる時に盤面情報を更新しながら降りていきます。着手もBITBOARD
の64bitは無駄なので、char型にしちゃってます(内部的にはintなんだろうけど)。
int型ならatomic<int>していたりで、並列ライブラリにお任せです。
またVirtual Lossという方法があって、ツリーを下っていく時は、先に負けた事にして
降りて行って、末端から戻ってくる時に正しい勝敗に置き換える事で、並列探索
の各スレッドが同じ枝に集中しないようにして、排他がかかる可能性を減らしてます。
あとは、排他制御が必要な領域を細かい単位に分割する事ですかね。
#と思って、ソース見たらVirtual Drawになっていた(汗
あ、そうか。DB化しているって事は、合流ありだし、盤面をキーにしなきゃならないから
そうなるとちょっとややこしいのかな?
自分は合流無視で、各ノードに盤面情報を保持していません。直前着手のみ持って
いて、ノードをたどる時に盤面情報を更新しながら降りていきます。着手もBITBOARD
の64bitは無駄なので、char型にしちゃってます(内部的にはintなんだろうけど)。
157535
2017/12/14(木) 21:56:41.20ID:IX7WwuCO PPLなんてのがあるんですね。
頭の片隅に入れておきます。
とりあえず、子ノードへのポインタが結構メモリを食ってるような気がします。
これを無くして毎回子局面を計算するようにしてメモリ節約するという手もありますがあんまりやる気がしないなぁ。
頭の片隅に入れておきます。
とりあえず、子ノードへのポインタが結構メモリを食ってるような気がします。
これを無くして毎回子局面を計算するようにしてメモリ節約するという手もありますがあんまりやる気がしないなぁ。
158310
2017/12/15(金) 10:32:05.09ID:+7BwQo/4 PPLはVC++専用の並列処理ライブラリです。
Intel TBBとかと中身はほぼ同じだと思います。
かなり抽象されていて、わかりやすいです。
自分はこれなしでは並列化できません(汗
ツリー構造だと子ノードへのポインタが一番大事な情報になっちゃいますね。
その場合ポインターと直前着手があれば盤面情報は不要になります。
一方で、ハッシュテーブル構造だと、子ノードポインタ不要で、キー(と衝突検出)
のために盤面情報が必須になります。
DB化するんならハッシュテーブルとかの方が向いていますよね。
自分はMCTSでツリーを作ったり消したりなので、ツリー型にしています。
shared_ptr使って、不要になったノードはシステム任せで自動的に削除して貰って
います。ハッシュテーブルだと、そう簡単にはいきませんね。
Intel TBBとかと中身はほぼ同じだと思います。
かなり抽象されていて、わかりやすいです。
自分はこれなしでは並列化できません(汗
ツリー構造だと子ノードへのポインタが一番大事な情報になっちゃいますね。
その場合ポインターと直前着手があれば盤面情報は不要になります。
一方で、ハッシュテーブル構造だと、子ノードポインタ不要で、キー(と衝突検出)
のために盤面情報が必須になります。
DB化するんならハッシュテーブルとかの方が向いていますよね。
自分はMCTSでツリーを作ったり消したりなので、ツリー型にしています。
shared_ptr使って、不要になったノードはシステム任せで自動的に削除して貰って
います。ハッシュテーブルだと、そう簡単にはいきませんね。
159310
2017/12/17(日) 00:21:31.98ID:qILmYkkQ ノートPCの冷却用(動作周波数に結構影響する)にUSB扇風機使ってましたが、
結構サイズでかくて持ち運び面倒だし、ノートPCのUSBポートに刺していると
安全装置が働いてしまうので、別途電源取っていました。
で、どうせ強化学習回しておくだけで暇だったので、専用のクーリングファンを
自作してみました。
タカチのアルミケースをぴったりサイズに切り欠いて、USBコネクタと5Vの
クーリングファンをセット。ノートPCに装着するとファンが回って冷却開始。
製作時間1時間程度。材料費は3000円くらい。
雑に作った割にはうまくできた。
結構サイズでかくて持ち運び面倒だし、ノートPCのUSBポートに刺していると
安全装置が働いてしまうので、別途電源取っていました。
で、どうせ強化学習回しておくだけで暇だったので、専用のクーリングファンを
自作してみました。
タカチのアルミケースをぴったりサイズに切り欠いて、USBコネクタと5Vの
クーリングファンをセット。ノートPCに装着するとファンが回って冷却開始。
製作時間1時間程度。材料費は3000円くらい。
雑に作った割にはうまくできた。
160310
2017/12/17(日) 02:09:30.95ID:qILmYkkQ EigenのSparseMatrixのサイズ制限を変える方法が見つかりました。
現在、簡易版と詳細版の2種類の評価関数を学習していますが、
これにより詳細版を完全にBuroさんモデルにする事ができるように
なりました。
というわけで、詳細版は再度学習し直しです。
簡易版は、多少癖があるようだけど、そこそこまともになっています。
一方、詳細版は何度もやり直し中(汗
現在、簡易版と詳細版の2種類の評価関数を学習していますが、
これにより詳細版を完全にBuroさんモデルにする事ができるように
なりました。
というわけで、詳細版は再度学習し直しです。
簡易版は、多少癖があるようだけど、そこそこまともになっています。
一方、詳細版は何度もやり直し中(汗
161535
2017/12/17(日) 19:24:13.96ID:QB4rs7DZ DBはメモリの勝負になる。
やはりCNNなどでメモリを圧縮する必要がある。
やはりCNNなどでメモリを圧縮する必要がある。
162535
2017/12/17(日) 20:37:59.85ID:QB4rs7DZ うお、試行回数0回のデータ削除したらメッチャメモリ使用量減ったw
これで当分DBで押せるww
これで当分DBで押せるww
163535
2017/12/18(月) 21:48:20.69ID:2VaG9uC3 ちょっとづつ良くなってるとは思うけど今一歩だな〜
もうちょっとヒューリスティック入れたほうがいいかな〜
もうちょっとヒューリスティック入れたほうがいいかな〜
164310
2017/12/19(火) 00:06:06.27ID:jyMFUoq3 気が付いたらTensorFlowがWindows対応になってるね。
New PC欲しい病再発の兆し・・・
New PC欲しい病再発の兆し・・・
165535
2017/12/19(火) 22:55:01.32ID:BAiqwtex とりあえず、ヒューリスティックのアイディアが2つあるんだが、
下手に手を加えないでDB肥大化で押したほうが、
真の棋理に近づくのかもしれないなどとも思ったり。
悩ましい。
下手に手を加えないでDB肥大化で押したほうが、
真の棋理に近づくのかもしれないなどとも思ったり。
悩ましい。
166535
2017/12/20(水) 00:23:35.05ID:S+Iz2Vgy ヒューリスティック一個仮組みしてみたけど上手くいかないや。
がっかりorz.
がっかりorz.
167535
2017/12/20(水) 22:02:26.64ID:S+Iz2Vgy ちなみに仮組したヒューリスティックの内容は
適当な回数プレイアウトして7連が一番多くできたところ付近にしぼって
モンテカルロ木を展開するというもの。
適当な回数プレイアウトして7連が一番多くできたところ付近にしぼって
モンテカルロ木を展開するというもの。
168535
2017/12/21(木) 20:13:56.96ID:TDrdSCuN 序盤はそんなに悪くないんだけど終盤がなぁ
やっぱ9路でも必至、詰めろルーチンいるなぁ
やっぱ9路でも必至、詰めろルーチンいるなぁ
169535
2017/12/21(木) 20:14:37.01ID:TDrdSCuN でも遅くなるの見えてるからちょっとなぁ。
170535
2017/12/22(金) 21:57:55.17ID:fGil/O5L なんか落ちるバグがあるな。
そういえば直してなかった。
は〜
そういえば直してなかった。
は〜
171310
2017/12/23(土) 09:08:48.88ID:V4gvcHPy ノードを完全読み切りまで展開した時に、末端ノードの評価が狂う時があるという
バグが以前ありました。おそらく並列処理による2重更新問題だろうと言う事で、
UCT探索の排他部分を強化して対応していましたが、ここにきてまた発生。
昨日原因が判明しました。まさかの、浮動小数点誤差の問題でした。
スコアの合計値と、試行回数を持っていて、合計値÷試行回数で平均スコアを
計算しているのですが、合計値が3500万を超えたあたりで+2をしてもfloat的
には、その2差を表現できる精度が無くなって、少しづつ合計値が不足していく
状態になっていました。
とりあえずfloatをdoubeにしてみましたが、案の定メモリーを消費する速度が大幅
増加してしまいました。小数点以下1桁もあれば十分なのでintに10倍値を持つ
ようにしてみようかなぁと思っています。
バグが以前ありました。おそらく並列処理による2重更新問題だろうと言う事で、
UCT探索の排他部分を強化して対応していましたが、ここにきてまた発生。
昨日原因が判明しました。まさかの、浮動小数点誤差の問題でした。
スコアの合計値と、試行回数を持っていて、合計値÷試行回数で平均スコアを
計算しているのですが、合計値が3500万を超えたあたりで+2をしてもfloat的
には、その2差を表現できる精度が無くなって、少しづつ合計値が不足していく
状態になっていました。
とりあえずfloatをdoubeにしてみましたが、案の定メモリーを消費する速度が大幅
増加してしまいました。小数点以下1桁もあれば十分なのでintに10倍値を持つ
ようにしてみようかなぁと思っています。
172310
2017/12/24(日) 00:22:00.25ID:XlhSPCGK intに変更。桁溢れが無ければ、これで大丈夫だと思います。
ついでに速度アップしている分だけ、自己対局の探索時間を短くしました。
評価関数を簡易版・詳細版2種類使っていましたが、詳細版も十分に学習
できたようなので、詳細版一本に絞りました。というか、そろそろ追い抜いた
と思えるようになってきました。とはいえ自己対局の評価値を見ていると
30手目以後はそこそこまともな感じですが、序盤はまだデタラメかなぁ。
完全読み切りですが、30手より前に遡る事がなかなかできません。評価関数
の精度のためか、残り28手あたりから急激に読み切り時間がかかるようになり
ます。評価関数の精度が悪いのでオーダリングが正しくできていないからでは
無いかと想像しています。強化学習で補えるかと思っていますが、まだまだの
ようです。
現在、記譜学習は完全読み切りができている盤面しか使用していませんが、
せめてMCTS探索が始まって以後の盤面も学習に使用してみようか悩み中。
これ以上の精度を求めると、やはりDLに行かざるを得ないですね。
今の探索でもツリーがメモリー内に収まるギリギリに係数を設定しているので
探索延長が起きるとあっという間にスワップ開始になってしまいます。
というわけで大きなメモリーが欲しい今日この頃です。
ついでに速度アップしている分だけ、自己対局の探索時間を短くしました。
評価関数を簡易版・詳細版2種類使っていましたが、詳細版も十分に学習
できたようなので、詳細版一本に絞りました。というか、そろそろ追い抜いた
と思えるようになってきました。とはいえ自己対局の評価値を見ていると
30手目以後はそこそこまともな感じですが、序盤はまだデタラメかなぁ。
完全読み切りですが、30手より前に遡る事がなかなかできません。評価関数
の精度のためか、残り28手あたりから急激に読み切り時間がかかるようになり
ます。評価関数の精度が悪いのでオーダリングが正しくできていないからでは
無いかと想像しています。強化学習で補えるかと思っていますが、まだまだの
ようです。
現在、記譜学習は完全読み切りができている盤面しか使用していませんが、
せめてMCTS探索が始まって以後の盤面も学習に使用してみようか悩み中。
これ以上の精度を求めると、やはりDLに行かざるを得ないですね。
今の探索でもツリーがメモリー内に収まるギリギリに係数を設定しているので
探索延長が起きるとあっという間にスワップ開始になってしまいます。
というわけで大きなメモリーが欲しい今日この頃です。
173535
2017/12/25(月) 21:28:02.81ID:iTZFwLsg すっごい微妙な駆け引きができるようになって会心の勝利!
と思いきや勝利目前でバグが出てパス2回した後エラーはいて落ちたorz
くそくそくそくそ!
いい加減直さなきゃだけど再現性低いからバグ潰すの難しいんだよなぁ
(
;FF[1]GM[1]SZ[9]
;B[ee];W[dc];B[de];W[ce];B[ge];W[df]
;B[hc];W[fg];B[gd];W[gf];B[cf];W[eg]
;B[gg];W[gh];B[cd];W[fe];B[fd];W[dd]
;B[ff];W[hg];B[be];W[cg];B[];W[gg]
;B[];W[dg])
と思いきや勝利目前でバグが出てパス2回した後エラーはいて落ちたorz
くそくそくそくそ!
いい加減直さなきゃだけど再現性低いからバグ潰すの難しいんだよなぁ
(
;FF[1]GM[1]SZ[9]
;B[ee];W[dc];B[de];W[ce];B[ge];W[df]
;B[hc];W[fg];B[gd];W[gf];B[cf];W[eg]
;B[gg];W[gh];B[cd];W[fe];B[fd];W[dd]
;B[ff];W[hg];B[be];W[cg];B[];W[gg]
;B[];W[dg])
174535
2017/12/26(火) 21:57:37.38ID:vTaELiqs 勝利が目前に近づくとパスする。
マジ原因がわからんorzorzorz
ログでも仕込むか?
マジ原因がわからんorzorzorz
ログでも仕込むか?
175535
2017/12/26(火) 22:08:58.18ID:vTaELiqs 石を取って必勝形になる形だとパスするのか?
条件絞り込みがムズイ。
とりあえず、ログかなぁ?
条件絞り込みがムズイ。
とりあえず、ログかなぁ?
176535
2017/12/27(水) 20:40:10.55ID:SLxZ+o46 ログ仕込んだら計ったように再現しなくなったwwww
しばらく対局しまくるしかないか
しばらく対局しまくるしかないか
177535
2017/12/27(水) 21:31:50.30ID:SLxZ+o46 バグの原因わかりました。
ノードに盤面情報登録し忘れてるパスがあった。
これで落ちずに連続対戦できるようになるかな。
ノードに盤面情報登録し忘れてるパスがあった。
これで落ちずに連続対戦できるようになるかな。
178535
2017/12/27(水) 22:15:38.79ID:SLxZ+o46 連続対戦上手く動いてるっぽいです。
今のところ黒番で8勝2敗
かなりいい感じ。
今のところ黒番で8勝2敗
かなりいい感じ。
179535
2017/12/27(水) 22:57:18.00ID:SLxZ+o46 黒番で13勝7敗
だいぶ追い上げられたorz
でも連続対戦ちゃんと動いてるようで嬉しい。
だいぶ追い上げられたorz
でも連続対戦ちゃんと動いてるようで嬉しい。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★11 [樽悶★]
- 外国人の犯罪率は日本人の1.72倍 警察庁が短期滞在者除いた数字を参院内閣委で答弁★2 [七波羅探題★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- ひろゆき氏 高市首相の台湾有事発言 「日本が得たものあまりない。経済的なマイナスは明確に存在」 [冬月記者★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
- アメリカ議会 「中国が台湾武力侵攻する準備を急速進展中」 ★5 [お断り★]
- ワチが一番キライなスポーツ1つ当ててみ
- ウインナーを最初に考えた奴ってサイコパスだよな
- ネトウヨ「レアアースは日本でも採れるから輸入しなくてもOK!」 なお精製コストがバカ高く有害物質が大量に出ることは全く知らない模様 [314039747]
- 国籍答えろ!嫌儲民!! [279254606]
- ぽこポケ発売前から爆売れwwwwwwwwwwwwwwwwwwwwwwwwwwwww
- 16のヒッキー女に構って
