[過去ログ] 【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
893: 535 2017/07/10(月)23:24 ID:Ioy9WIYD(3/4) AAS
DBの木の深さは一番深いところで37。
結構、深いところまで読んでるんじゃないでしょうか。
もちろん、途中で読んでない局面に分岐されると困ってしまうんですが…
894: 535 2017/07/10(月)23:38 ID:Ioy9WIYD(4/4) AAS
UCBの係数をいじれば木を浅く広くにもできそう?
完全ソルバに勝つにはそっちのほうがいいかもしれないですね。
895: 535 2017/07/11(火)00:01 ID:XEOuAfue(1/6) AAS
>>890
プロファイル取ってみました。
logとかsqrtとかはインライン展開されて?計算時間がよくわからなかったですけど多分ボトルネックじゃなさそう。
ちなみに局面と勝率を保持するクラスのコピーコンストラクタに全体の60%の時間がかかってるという
完全に意味不明のプロファイル結果が出ました。
どう解釈すればいいんですかね?
896: 535 2017/07/11(火)20:08 ID:XEOuAfue(2/6) AAS
んーもしかしてツリーを丸っとコピーしちゃってる?
問題の個所はどこだろう?
897: 535 2017/07/11(火)21:20 ID:XEOuAfue(3/6) AAS
え、めっちゃ早くなった?ww
我ながらこれはヒドスwwww
898: 535 2017/07/11(火)21:50 ID:XEOuAfue(4/6) AAS
うおっ一瞬でメモリパンクしたwwww
310さんの言ったとおりだったwwwww
899: 535 2017/07/11(火)22:02 ID:XEOuAfue(5/6) AAS
局面の合流を検知しないでベタに木を展開してんのがまずいのかなぁ。
まあモンテカルロ木DB化はこの辺が限界かなぁ。
900: 535 2017/07/11(火)22:31 ID:XEOuAfue(6/6) AAS
本線じゃない分岐の間違いを修正するには指数的な試行回数が必要になるなこれは。
まあしょうがないか。
901: 310 2017/07/12(水)20:10 ID:b5nvOjQF(1/2) AAS
直ったようで何より(^^/
自分は合流させてません。
合流させるメリットよりデメリットの方が大きそうだったので考える事をやめました。
モンテカルロ木DB化って、よくよく考えたらQ学習みたいなものではないかと思います。
Q学習だと全部のノードにQ値を持つので、結局全局面保持することになります。
現在Deep Q学習が主流になってるのは、Q値をディープラーニングで近似計算する
事で、全局面のQ値を保持しなくても良くするためという側面もあるかと思います。
で、Q学習だと考えるなら、時々変な手を混ぜて木をきちんと分岐させるってのが、
強化学習の肝ではないかと思います。
当方、完全読み切りのバグとり完了。
ニューラルネットのライブラリも大体できて、1900譜で40手目以後を学習してみました。
やっぱ、疎行列対応の行列パッケージでの計算は、tiny_dnnと比較して圧倒的に早い
です。
データが少ないのと、同一の記譜内からテストデータ取っているのもあるのですが、
テスト誤差は十分小さな値になるのですが、FFOの盤面を評価させると、いまいち
合っていない感じで、あまり汎化できていない感じす。もっと記譜増やします。
やっつけで作ったmcts部分をきちっとさせるのと、とりあえず持っている評価関数
で、puct化できるか、ロールアウトの後半の精度を上げられるか、検討開始です。
強化学習までまだ遠いなぁ。でも、少し背中が見えてきたかな。
902: 310 2017/07/12(水)20:27 ID:b5nvOjQF(2/2) AAS
記譜集めですが、8手までランダム着手していたら、
9手目で白全滅という記譜が取れました(汗
903: 535 2017/07/14(金)21:11 ID:TTQj/Kki(1) AAS
Connect4もひと段落ついたし囲連星もアイディア湧かないし
気分転換にライフゲーム囲碁のAIやろうかな。
904: 310 2017/07/15(土)02:17 ID:qcpUcaKf(1) AAS
再帰呼出は関数オブジェクトを使うと速いというのを見つけて、あちこち試してみました。
static constな再帰関数は速くなるみたい。
クラス内でthisを参照するような類は効果が無いようです。
が…、なんか数か所おかしいような。
やっぱり、どこかでバグを仕込んでしまった模様。むむむ。
続きは明日だなぁ。
905: 535 2017/07/15(土)02:40 ID:+mfEtycW(1) AAS
関数オブジェクトを使うと速いってのはどんな理屈なんですかね?
ちょっと想像つかない。
906: 310 2017/07/16(日)00:06 ID:z0mkcRg4(1) AAS
なんかもともと関数呼び出しの方が速いという事で数字で実証するサイトがありました。
まあ、コンパイルの最適化のかかり具合なのかなぁ。わからないです。
コンパイラのバージョンで違うのかも。
バグの原因はわかりました。関数呼び出しにするときに、同時にパスの扱いを変えた
のが原因だと思います。が、確かめる際にもとに戻したら、普通の関数の方が速かった
という結果に。バグってるときの実行時間なので、あてになりませんが。
というわけで、全部もとに戻して、少しだけ確認しましたが、あまり差はない模様orz
記譜の中に間違った読み切り手順が混じってしまったので、全部再計算。
こちらもパスの扱いを変えたのが原因で、別のバグが出ました(汗
二次災害大です。
再計算は2400記譜で1時間半くらいで、着手は最善手の中でのランダムなので、
1回実行してアペンドすると倍、2回で3倍というように、記譜の増殖が可能と思い
当たりました。これを使えば学習データを簡単に増やすことができます。
907: 310 2017/07/17(月)22:52 ID:GI+vwgP1(1) AAS
評価関数まわりを作ってデバッグ。
その中で致命的がバグが発覚しました。
学習用に溜めた記譜データにおかしなデータがいくつかあるというもの。
学習やり直しです。
記譜データ消した後で気が付きましたが、復旧できないわけではなかった。
後の祭りですorz
908: 535 2017/07/19(水)21:46 ID:oWNrCACG(1) AAS
うヴぉあー
プログラム組むのすっごいだるい。
心ときめくアイディアが欲しいところ。
909: 535 2017/07/20(木)20:57 ID:5PqobJjm(1/3) AAS
ライフゲーム囲碁、DB使ったほうが弱くなる?
どういうことだこれは…
910: 535 2017/07/20(木)21:13 ID:5PqobJjm(2/3) AAS
弱くなってるわけではなく互角のよう?
DBの情報量が少なすぎるだけだろうか?
よくわからん。
911: 535 2017/07/20(木)21:56 ID:5PqobJjm(3/3) AAS
攻め合いが全然めちゃくちゃだなぁ
5x5のパターンマッチ入れるか。
912: 310 2017/07/22(土)02:06 ID:6HI7Rmqm(1/2) AAS
結局40手までランダム+残り20手完全読みな記譜集めて、残り20手の評価関数と
Policyを作ってます。ランダム1000件に対して30件のMCTS自己対戦混ぜたもので
学習してます。ランダムだけで十分学習になるようで、悩むより数を集める方が大事な
感じです。40手以後の評価関数ですが、30手過ぎくらいから、そこそこ使えるみたい
です。
で、これを使ってPUCTな形にしてます。
完全読みが使えないので、20〜40手あたりで最善手(に近い手順)をどうやって
作ろうかという感じです。
まずは、後ろから探索で、何手までまともな手だったか遡るプログラムを作って、
残り25手くらいまで遡れたら良いかなぁと。
つか、強化学習に行っちゃおうかなぁ。
913: 310 2017/07/22(土)20:32 ID:6HI7Rmqm(2/2) AAS
逆順チェックのプログラムして、学習時に、正解手順で遡れる盤面も含むようにして
みました。仕組みとしては、最終盤面からヌルウィンドウサーチして、もっと良い評価に
なる手が無いことをチェックして、OKなら1手遡ります。置換表にてPVの評価は即求まる
のと、ヌルウィンドウサーチを使っているので、25手までなら楽勝です。
MCTSで対戦したデータには27手より前まで遡れるものもあるようですが、丸1日
チェックしても終わりそうにないので、25手で打ち切り処理を入れました。
記譜に正解手順で遡れる手数を持たせて、学習時には、その手番以後の盤面を使用
する事で、30手過ぎの評価の精度を上げられたら良いなぁと思います。
914: 535 2017/07/23(日)00:28 ID:IndxNOGW(1/2) AAS
5x5のパターン入れたらむしろ弱くなってるような…
え〜なんで〜?
絶対効果あると思ったのに。
915: 535 2017/07/23(日)20:45 ID:IndxNOGW(2/2) AAS
ライフゲーム囲碁も囲連星も完全に手詰まり。
それはそれとしてスレッドリッパーが欲しすぎる。
916: 310 2017/07/23(日)23:50 ID:DIga1NIH(1) AAS
遡りチェックしていたのですが、普通のUCT時代の方が精度が高い。
そこで気合入れてPUCTのチェックをしてみたら、案の定符号がひっくり返って
いる箇所があったり、パスの処理が抜けてたり。
たぶん、これで大丈夫だと思います…。
これでしばらくは、高速化しながら、記譜集めですね。
917: 535 2017/07/24(月)21:00 ID:+gAaelkw(1) AAS
もうずっと諦めてたディープラーニングに再トライするか…
918: 310 2017/07/29(土)22:16 ID:YHqII1DK(1) AAS
遡りチェックの高速化で迷走中。
28手までなら問題なさそうなので、現在チェック中。
28手まで35分で遡れる記譜で29手目が1日経っても最善手か否かがわからない。
あまりに極端な差なので、何か条件があるのか、たまたまそういう記譜なのかを調べる
ために、いったん28手まで遡れる記譜を探すという段取りです。
その間、PPLのキャンセル処理について、厳密に考えていたら、今のやり方ではベータ
カットでのキャンセルが効いていないのではないかという疑念が。ループの中で再帰し
ているので、そこにcancellation_token_sourceオブジェクトを渡してやって、ポーリングを
して、下ノードでもキャンセル処理をしないといけないが、していなかったので結局中断
せずに、普通に終了待ちしてしまっているという事。
で、キャンセル処理を直したのだけど、時間変わらず。メッセージ出すようにしてデバッグ
したところ、ベータカットが1件も起きていないという謎な事態が確認されました。出てくる
答えは合っているので、しばらく考えることになります。
919: 535 2017/08/06(日)01:16 ID:OuLT6Ytw(1) AAS
ここのところさぼりっぱなし
スレッドリッパーも15万以上らしいし
テンション下がる
920: 310 2017/08/06(日)10:08 ID:zi8YR8lq(1/2) AAS
キャンセル処理については確認完了。たぶん大丈夫。
ただ、キャンセルが多発するはずの、最善手じゃなかったときに、通常より時間がかかる
傾向に見えるのが気になる。mctsが間違えるくらい枝分かれが多いからかもしれないけど。
遡りチェックはやはり遡り29手目から日単位で時間がかかるものが出てくる。
28手まで遡ると、最大数時間くらいな感じなので全部チェックするなら28手が限界かも。
当分の間、記譜集めという事になりそうですが、1日動かして数十記譜では終わる目途が立たない。
精度落とせばスピードアップできるけど。
あと、mctsで末端ノード100万単位まで探索して引き分けの時に、完全読みかけるとそう
じゃないときが結構ある。どこかで枝の探索漏れが生じてるっぽい。Policyの方はかなり
小さくても探索はかかってるようなので、Valueの方じゃないかと思う。
921: 310 2017/08/06(日)21:21 ID:zi8YR8lq(2/2) AAS
最善手じゃなかったときの時間問題、原因判明。オーダリングでした。
オーダリングでは置換表にあるものを優先していたのですが、遡りチェックの時には
ベータカットを起こすには置換表に無い方から探索しなければいけないわけで。
遡りOKの時は、どういう順番から探索しても、全て探索するしαは更新されないので
かかる時間がほぼ一緒ですから、順番変えてOKです。
でも、これ通常探索時には逆になります。条件的には、ヌルウィンドウサーチの時と
そうじゃないときで区別できそうですが、ちょっと考えてみます。
探索の方の問題は、やはりValueの評価値とRolloutの勝率がともに悪いと、本当は勝ち
手順でも簡単にはチェックがかからなくなってしまうという問題かなと思います。この辺は
精度アップで対応するしかなさそうです。
922: 310 2017/08/07(月)20:08 ID:3J92NhXM(1/2) AAS
オーダリングを詰めて、さらにヌルサーチ専用の処理を追加。
ベータカットが早めに起きるようにしたのもありますが、それ以外の部分でも
倍速近くなっていると思います。が、まあ、それでも28手目以前まで遡りチェック
するのに時間がかかるという点では焼け石に水。
記譜集めからの逃避はこの辺にして、記譜集めに戻らないと…。
ここまで来ると準確定石によるアルファカットも再度実装してみたい。
準確定石を求める処理も、ソースごと消失しています。
以前は盤面与えると都度再計算していましたが、石を置くごとに更新していく
ような方法にできないか考えています。とはいえ、なかなか良い方法が思い
浮かばないので、あくまで記譜集めしながら考えてみる程度ですが。
上下前次1-新書関写板覧索設栞歴
あと 80 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.014s