比較的地味なボードゲーム専用のスレが欲しくて立ててみました。
私はc言語で作ったデータベースを使って人間と対戦できる将棋かチェス
みたいなソフトを作りたいと思ってますが、グラフィックインターフェースの
作り方がわからなくてつっかえているレベルです。
探検
【オセロ,将棋】ボードゲーム【囲碁,War】
レス数が950を超えています。1000を超えると書き込みができなくなります。
1名前は開発中のものです。
03/07/10 00:10ID:6FQp6G+O851310
2017/06/06(火) 20:47:41.56ID:6owNcmqA それだす。
一致率は45%で頭打ち。
時間かけずに一致率上げる工夫方面に転進します。
一致率は45%で頭打ち。
時間かけずに一致率上げる工夫方面に転進します。
852535
2017/06/06(火) 21:12:36.87ID:7GjyRXFQ >>851
ありがとうございます。
LV1とLV2,ホントは100戦づつしたかったけど時間かかりすぎるから止めました。
でもまあ手ごたえありの結果ですねぇ。
LV1とLV2は卒業といってもいいかも。
54局目
黒(airandom.dll)の勝利回数: 51
白(ai-lv1.dll)の勝利回数: 3
60局目
黒(airandom.dll)の勝利回数: 58
白(ai-lv2.dll)の勝利回数: 2
ありがとうございます。
LV1とLV2,ホントは100戦づつしたかったけど時間かかりすぎるから止めました。
でもまあ手ごたえありの結果ですねぇ。
LV1とLV2は卒業といってもいいかも。
54局目
黒(airandom.dll)の勝利回数: 51
白(ai-lv1.dll)の勝利回数: 3
60局目
黒(airandom.dll)の勝利回数: 58
白(ai-lv2.dll)の勝利回数: 2
853535
2017/06/09(金) 22:02:57.35ID:N9z2bSO/ 黒番対LV3で難解なコウ争いの末、辛くも勝利!
地力がついてきた!
それにしてもLV3の粘りには驚かされますね。
(;SZ[19]
;B[jj];W[ji];B[ki];W[ik];B[ii];W[jl];B[jh];W[hi]
;B[hh];W[gh];B[kk];W[gg];B[jg];W[kf];B[jf];W[je]
;B[ie];W[hj];B[id];W[hg];B[ig];W[ih];B[hf];W[ge]
;B[hh];W[ij];B[ic];W[ih];B[ke];W[ji];B[lf];W[kl]
;B[kg];W[jk];B[fg];W[lm];B[mn];W[kj];B[gf];W[lk]
;B[jd];W[mk];B[mf];W[ml];B[nm];W[nf];B[if];W[of]
;B[kf])
地力がついてきた!
それにしてもLV3の粘りには驚かされますね。
(;SZ[19]
;B[jj];W[ji];B[ki];W[ik];B[ii];W[jl];B[jh];W[hi]
;B[hh];W[gh];B[kk];W[gg];B[jg];W[kf];B[jf];W[je]
;B[ie];W[hj];B[id];W[hg];B[ig];W[ih];B[hf];W[ge]
;B[hh];W[ij];B[ic];W[ih];B[ke];W[ji];B[lf];W[kl]
;B[kg];W[jk];B[fg];W[lm];B[mn];W[kj];B[gf];W[lk]
;B[jd];W[mk];B[mf];W[ml];B[nm];W[nf];B[if];W[of]
;B[kf])
854535
2017/06/09(金) 23:50:44.20ID:N9z2bSO/ シチョウルーチン組んでたら根本的なルール部分にバグ発見。
出現頻度は低い奴だけどまだこんなバグ残ってんのかとビビった。
出現頻度は低い奴だけどまだこんなバグ残ってんのかとビビった。
855310
2017/06/10(土) 16:27:27.71ID:PCeXyVVE こちらはかなり迷走中。精度を求めるとCNN時間がかかりすぎ。
やっぱり、Buroさんの評価関数の特徴を入力にして、畳み込み演算を使用しない方向で
進めるのが吉ではないかと思い始めています。最終的にオセロAIの中で実用的な速度で
答えが出せるものでないと使い物にならないので。
Buroさん特徴型でポリシーが作れるか。
バリューに相当する勝率ネットワークを作った時、その勝率が使い物になるのか?
それらを強化学習で強化できるのか。
この辺に目標を切り替えます。
ちなみに、今のはBuroさん型評価関数の、評価値(終局時の石数差の予想)を、適当な
線形変換で−1〜1の勝敗の確率っぽい数字とみなして使用していますので、そこの
精度はよくなるのではないかと期待。
やっぱり、Buroさんの評価関数の特徴を入力にして、畳み込み演算を使用しない方向で
進めるのが吉ではないかと思い始めています。最終的にオセロAIの中で実用的な速度で
答えが出せるものでないと使い物にならないので。
Buroさん特徴型でポリシーが作れるか。
バリューに相当する勝率ネットワークを作った時、その勝率が使い物になるのか?
それらを強化学習で強化できるのか。
この辺に目標を切り替えます。
ちなみに、今のはBuroさん型評価関数の、評価値(終局時の石数差の予想)を、適当な
線形変換で−1〜1の勝敗の確率っぽい数字とみなして使用していますので、そこの
精度はよくなるのではないかと期待。
856535
2017/06/10(土) 23:26:39.00ID:L+AkmAT7 思考時間短縮策を考えているんですが、
まだ強さが十分じゃないのに思考時間短縮を考えるのは悪手な気もする。
でも思考時間かかりすぎると統計とれないし悩ましい。
まだ強さが十分じゃないのに思考時間短縮を考えるのは悪手な気もする。
でも思考時間かかりすぎると統計とれないし悩ましい。
857535
2017/06/11(日) 21:28:22.80ID:SJZps56X やっぱハードを強化するしか…
AMDのスレッドリッパーあたり行っちゃうか?
AMDのスレッドリッパーあたり行っちゃうか?
858310
2017/06/11(日) 23:00:35.72ID:8gFXyRd+ Buroさん特徴型で2層パーセプトロン型のポリシー作って学習開始。
1エポック目でテストデータに対して正答率48%超え(汗
当然ながらスピードも速い。
やっぱBuroさん凄い。
1エポック目でテストデータに対して正答率48%超え(汗
当然ながらスピードも速い。
やっぱBuroさん凄い。
859535
2017/06/12(月) 20:43:30.74ID:b/m4vK+x 序盤、いままでDBから一番勝利数の高い手を選んで打ってたけど、
それだと布石が限られちゃうからランダムで第二候補も打つようにしたら
若干勝率下がったような気がする。
まあしょうがないか。
それだと布石が限られちゃうからランダムで第二候補も打つようにしたら
若干勝率下がったような気がする。
まあしょうがないか。
860535
2017/06/13(火) 21:33:01.28ID:Vwv80HwJ 囲碁プログラムなんかだとKGS行くとモンテカルロ350プレイアウト位でも結構強いプログラムあるんだけど、
なんでそんな少ない回数で強さを出せるのか謎すぎる。
なんでそんな少ない回数で強さを出せるのか謎すぎる。
861535
2017/06/17(土) 23:55:21.58ID:RoY4moNt あ〜アイディア湧かね〜
とりあえず LV3 vs LV3の棋譜取 回せるだけ回すか。
スレッドリッパーがあれば今の4倍速で棋譜収集できそうだが…
とりあえず LV3 vs LV3の棋譜取 回せるだけ回すか。
スレッドリッパーがあれば今の4倍速で棋譜収集できそうだが…
862535
2017/06/21(水) 20:57:42.26ID:jKeRi7uh プロファイル取ろうとするとメッチャ時間かかる。
マルチスレッドだと特に時間かかるんだろうか?
プロファイル無しなら2分もかからんのにもう30分くらい走らせてる気がする。
マルチスレッドだと特に時間かかるんだろうか?
プロファイル無しなら2分もかからんのにもう30分くらい走らせてる気がする。
863535
2017/06/21(水) 21:22:11.95ID:jKeRi7uh 将棋、連勝記録らしいですね。一位タイ?とかなんとか
864310
2017/06/22(木) 17:10:28.77ID:nCVESNnQ 昨日の大雨が原因か、ノートパソコンがダメっぽいです。サーフェースなので、SSDの中身が取り出せるか微妙。多分アウト。
という訳で、ソース全滅を半ば覚悟してます(>_<)
しばらく立ち直れないかも。
という訳で、ソース全滅を半ば覚悟してます(>_<)
しばらく立ち直れないかも。
865535
2017/06/22(木) 19:16:22.69ID:1hrbCk1w あちゃーご愁傷さまです
まあこれはあれですね
ハイスペックデスクトップを買えという
神のお告げですね
まあこれはあれですね
ハイスペックデスクトップを買えという
神のお告げですね
866310
2017/06/22(木) 21:45:09.96ID:qlJt6F9H bitlockとかいうセキュリティ保護状態になったのですが、そんな設定してないのです。解除には、解除コードが必要なのですが、そんなの設定してないし。ディスク初期化すれば復活するとの事なので、諦めて初期化しちゃいました。
ビットハックしまくったコードなので、再度コーディングするの面倒です。
ソース保管のためにも、別のPC買うべかなぁ。
ビットハックしまくったコードなので、再度コーディングするの面倒です。
ソース保管のためにも、別のPC買うべかなぁ。
867535
2017/06/22(木) 23:51:29.79ID:OkW8ZbGj そこはGitとか使えばいいんじゃないですかね〜
まあ公開するか金払うかしないとダメですが。
まあ公開するか金払うかしないとダメですが。
868535
2017/06/23(金) 00:39:34.50ID:IGj3LUd/ SSE4.2はセーフだけどAVXはアウト。
おかしなメモリ番地を見に行って落ちてしまう。
CPUは命令に対応してるはずだが?
もしかしたら囲連星の本体の制限なんだろうか?
よくわからん。
おかしなメモリ番地を見に行って落ちてしまう。
CPUは命令に対応してるはずだが?
もしかしたら囲連星の本体の制限なんだろうか?
よくわからん。
869535
2017/06/23(金) 21:17:34.43ID:IGj3LUd/ 俺のAIのレベルが上がれば上がるほどLV3の水準の高さに驚かされる。
いつか絶対超えてやる
いつか絶対超えてやる
870535
2017/06/25(日) 22:16:20.21ID:f6fx6Sdx ちょっと気分を変えてConnect4やってるんですが、
棋譜から学習というのは半永久的に完全解析までにはたどり着かないような気がしてます。
やはり完全解析には超強力な前向き枝刈が必要なのかなと。
一回ちゃんとConnect4の完全解析、勉強してみようかなぁ。
棋譜から学習というのは半永久的に完全解析までにはたどり着かないような気がしてます。
やはり完全解析には超強力な前向き枝刈が必要なのかなと。
一回ちゃんとConnect4の完全解析、勉強してみようかなぁ。
871310
2017/06/25(日) 22:19:41.68ID:rGuWTts8 地道にオセロライブラリ再構築中。
ビットボード回りのビットハックな処理部分は大体できて、着手までできるようになった。
ついでにちょっとだけ改良になりそうな変更を加えた。
ネットで調べていたらmobility関数は、もう少し性能アップしそうな方法があったけど、
ソースコピペではうまく動かなかったので後回し。
ところで、非常に大きな問題があります。
この数年で、多くのオセロ関係サイトが閉鎖されていまして…。
記譜データが集められなくなりました。
50万記譜計画も、EdaxのPVBOOKもアクセス不能です。
MCTSだと評価関数なしでもプレイはできるのですが、そこから記譜を
作るしかないのかなぁ。
つか、オセロやめて、いっそ囲碁に…。
ビットボード回りのビットハックな処理部分は大体できて、着手までできるようになった。
ついでにちょっとだけ改良になりそうな変更を加えた。
ネットで調べていたらmobility関数は、もう少し性能アップしそうな方法があったけど、
ソースコピペではうまく動かなかったので後回し。
ところで、非常に大きな問題があります。
この数年で、多くのオセロ関係サイトが閉鎖されていまして…。
記譜データが集められなくなりました。
50万記譜計画も、EdaxのPVBOOKもアクセス不能です。
MCTSだと評価関数なしでもプレイはできるのですが、そこから記譜を
作るしかないのかなぁ。
つか、オセロやめて、いっそ囲碁に…。
872535
2017/06/25(日) 22:41:07.34ID:f6fx6Sdx おお〜囲碁ですか。
打倒Masterですよ!!
打倒Masterですよ!!
873310
2017/06/26(月) 23:49:18.52ID:GJUXvwb3 藤井君凄かったね。
abemaの解説でも言ってたけど、互角のまま進行していたのに、
気が付いたら圧勝の情勢になるとか、AIチックな差し回しだよね。
じわじわとライブラリ構築中。
オセロ専用ライブラリはほぼ完成。
明日から終盤読み切り処理に取り掛かります。
abemaの解説でも言ってたけど、互角のまま進行していたのに、
気が付いたら圧勝の情勢になるとか、AIチックな差し回しだよね。
じわじわとライブラリ構築中。
オセロ専用ライブラリはほぼ完成。
明日から終盤読み切り処理に取り掛かります。
874535
2017/06/26(月) 23:59:45.84ID:EmG0vEj8 結局オセロですか。ちょっと残念w
まあ、結局自分の情熱が湧くものをやらないとですよね。
ライブラリほぼ完成とか流石に仕事速いですね。
まあ、結局自分の情熱が湧くものをやらないとですよね。
ライブラリほぼ完成とか流石に仕事速いですね。
875535
2017/06/28(水) 00:10:44.15ID:aRb2YNw2 Connect4やってます。
自己対局棋譜を取りまくってDBを作成。
勝利数の多い手を高い確率で着手するようにします。
いま40万局棋譜集めてDBなしAIに対してDBありAIで勝率8割りくらい。
やっぱDBの効果はConnect4でも有効のようだ。
でも先手で完全ソルバに一発入るまでにはいくかどうか?
行ったら楽しいけど。
自己対局棋譜を取りまくってDBを作成。
勝利数の多い手を高い確率で着手するようにします。
いま40万局棋譜集めてDBなしAIに対してDBありAIで勝率8割りくらい。
やっぱDBの効果はConnect4でも有効のようだ。
でも先手で完全ソルバに一発入るまでにはいくかどうか?
行ったら楽しいけど。
876535
2017/06/28(水) 21:56:23.76ID:aRb2YNw2 DBありの勝率9割まできました。
そろそろ自己対局は一旦打ち切りかな。
完全ソルバとやらせてみよう。
そろそろ自己対局は一旦打ち切りかな。
完全ソルバとやらせてみよう。
877535
2017/06/28(水) 22:15:10.75ID:aRb2YNw2 だめだ、5手目で間違える。
やっぱ自己対局じゃ完全解析までたどり着かないかなぁ。
やっぱ自己対局じゃ完全解析までたどり着かないかなぁ。
878535
2017/06/29(木) 23:11:55.06ID:VtwtdSs0 Connect4,対人だとなかなか強いんですが、
それでも全然勝てないってわけでもないですねぇ。
自分でプレーして一回勝ってしまった。
まだまだですね。
それでも全然勝てないってわけでもないですねぇ。
自分でプレーして一回勝ってしまった。
まだまだですね。
879535
2017/07/01(土) 00:13:06.32ID:A/qufpQM http://web.mit.edu/sp.268/www/2010/connectFourSlides.pdf
前半は読みやすくてわかりやすいけど後半一気に難しくなって結局理解できてない。
前半は読みやすくてわかりやすいけど後半一気に難しくなって結局理解できてない。
880310
2017/07/01(土) 02:11:20.40ID:HltHgVcC 終盤探索とりあえずのところまで完成。
盤面の持ち方をちょっと変えて__mm128iにしてみた。
パスの処理を変えてみた。
これで、FFO#40で時間計測。
YBWCで1200msくらい
置換表までで、1800msくらい
negascoutまでで、2200msくらい
nodeカウントを入れると15%くらいスピードダウンする(汗
そこから逆算して、200万nps以上出てる。
まあ結構な速度になりました。
偶数理論も作ってみましたが、空白マスを連続する単位で分離するオーバーヘッド
が大きく、採用すると70万nps程度に落ちてしまう。この処理の良い方法が見つから
ないため、いまだに偶数理論は使っていません。むむむ。
現在、素のMCTSに着手してます。
これができたら、対局集めて、EigenでMLPのライブラリ作って、評価関数(仮)作成。
評価関数をもとにPUCTにアップグレードして強化学習という予定です。
まだ先は長い(汗
盤面の持ち方をちょっと変えて__mm128iにしてみた。
パスの処理を変えてみた。
これで、FFO#40で時間計測。
YBWCで1200msくらい
置換表までで、1800msくらい
negascoutまでで、2200msくらい
nodeカウントを入れると15%くらいスピードダウンする(汗
そこから逆算して、200万nps以上出てる。
まあ結構な速度になりました。
偶数理論も作ってみましたが、空白マスを連続する単位で分離するオーバーヘッド
が大きく、採用すると70万nps程度に落ちてしまう。この処理の良い方法が見つから
ないため、いまだに偶数理論は使っていません。むむむ。
現在、素のMCTSに着手してます。
これができたら、対局集めて、EigenでMLPのライブラリ作って、評価関数(仮)作成。
評価関数をもとにPUCTにアップグレードして強化学習という予定です。
まだ先は長い(汗
881310
2017/07/01(土) 02:18:02.59ID:HltHgVcC >>877
自己対局だと局所解にはまっちゃう時ありますよね。
DBの内容がわからないので、以下頓珍漢かもしれませんが。
解消法としては、開始後数手については、ランダム着手にする。
途中でε-greedyみたいに、ランダムな着手を挟む。
こういった方法で、局所解から外れたところも学習対象に入れる工夫があります。
気持悪いやり方だけど、5手目だけif分で強制的に直して修正済み自己対戦データ
を蓄えて学習するという方法もあります。
自己対局だと局所解にはまっちゃう時ありますよね。
DBの内容がわからないので、以下頓珍漢かもしれませんが。
解消法としては、開始後数手については、ランダム着手にする。
途中でε-greedyみたいに、ランダムな着手を挟む。
こういった方法で、局所解から外れたところも学習対象に入れる工夫があります。
気持悪いやり方だけど、5手目だけif分で強制的に直して修正済み自己対戦データ
を蓄えて学習するという方法もあります。
882535
2017/07/01(土) 18:28:17.34ID:A/qufpQM ランダム着手をまぜるのはいいかもしれませんね。
ありがとうございます。
アルファ碁もやってる手法なんでしたっけ?
ありがとうございます。
アルファ碁もやってる手法なんでしたっけ?
883535
2017/07/01(土) 23:24:59.13ID:A/qufpQM 局所解を避けつつ有望な局面を多く調べるというのはまさにMCTSでやってることなんじゃ?
一回駄目出し食らった案ですが、モンテカルロ木をDBに保存して無限に成長させるという案がどうしても忘れられない。
局面数が大きくなるゲームだと木が大きくなりすぎて駄目ですがConnect4なら…
一回駄目出し食らった案ですが、モンテカルロ木をDBに保存して無限に成長させるという案がどうしても忘れられない。
局面数が大きくなるゲームだと木が大きくなりすぎて駄目ですがConnect4なら…
884535
2017/07/02(日) 00:25:04.48ID:iRJ6TibI 完全ソルバで遊んでるんですが、Connect4って思ったよりゲームバランス良いゲームなのかも。
先手が圧倒的優位かとおもってたけど、後手が完璧に打ってくるとき、
先手も正解が一手しかないという局面が結構あるんですね。
意外と奥が深い。
先手が圧倒的優位かとおもってたけど、後手が完璧に打ってくるとき、
先手も正解が一手しかないという局面が結構あるんですね。
意外と奥が深い。
885310
2017/07/03(月) 20:45:11.36ID:rpYi4lNg MCTS自己対戦させながらデバッグ。そろそろバグはなくなりましたが…
勝っていると緩んで、負けているとギャンブルする癖と、お互いに緩みあっている間に
引き分けに収束してしまう事から、そのままでは記譜に使えない事を自覚中。
とはいえ、記譜を真面目にZebraで並べて見てしまうと、疑問手だらけで、そこを直したく
なって、強化学習にならなくなってしまいますね。
序盤はMCTSで探索し、残り20手で終盤探索して後半中心の評価関数をまず作る事かな。
もともと、前半の何手かはランダム着手して、オープニングの種類が偏らないようにしよう
かと思っていましたが、この調子だと、最初の40手はランダム着手にして、残り20手を
読み切りにした方が、記譜数が稼げる気がしてきました(汗
勝っていると緩んで、負けているとギャンブルする癖と、お互いに緩みあっている間に
引き分けに収束してしまう事から、そのままでは記譜に使えない事を自覚中。
とはいえ、記譜を真面目にZebraで並べて見てしまうと、疑問手だらけで、そこを直したく
なって、強化学習にならなくなってしまいますね。
序盤はMCTSで探索し、残り20手で終盤探索して後半中心の評価関数をまず作る事かな。
もともと、前半の何手かはランダム着手して、オープニングの種類が偏らないようにしよう
かと思っていましたが、この調子だと、最初の40手はランダム着手にして、残り20手を
読み切りにした方が、記譜数が稼げる気がしてきました(汗
886535
2017/07/03(月) 22:52:12.07ID:NTU08E7X 40手もランダムに打たせるんですか?うーん。
にわかには信じられないですが偏らないようにするためには有効なんですかね〜
にわかには信じられないですが偏らないようにするためには有効なんですかね〜
887310
2017/07/06(木) 23:41:11.66ID:uY9At7Gi 終盤20手の盤面集めなので、ばらけた方がよいし、ランダム着手の方が速いかなと。
とはいえ、今はMCTS5秒読み+残り20マス完全読みで記譜集めしてます。
1譜3分弱で、今のところ重複記譜なしで、700譜くらい集まったところです。
さっきまで藤井四段のabemaTVにCPUを15%くらい持っていかれていました(汗
改良したいところはあちこちありますが、とりあえずニューラルネットのライブラリに専念。
optimizerをどうやって作ったか、まったく思い出せない(汗
とはいえ、今はMCTS5秒読み+残り20マス完全読みで記譜集めしてます。
1譜3分弱で、今のところ重複記譜なしで、700譜くらい集まったところです。
さっきまで藤井四段のabemaTVにCPUを15%くらい持っていかれていました(汗
改良したいところはあちこちありますが、とりあえずニューラルネットのライブラリに専念。
optimizerをどうやって作ったか、まったく思い出せない(汗
888310
2017/07/08(土) 20:32:28.67ID:bOmPmg/w ニューラルネットの計算でけました。たぶん。
頭が行列に切り替わるまでが憂鬱なんだよなぁ。
optimizerは計算式なぞるだけで楽勝でした。が、理解しないまま行列計算
に置き換えているので、何が何だかわからなくて、忘れちゃうんでしょうね。
続いて、tiny_dnnのstl的なインターフェースに憧れて、ミニバッチの処理
とかのインターフェースに凝りだしてしまった。
本当はレイヤー階層定義のところも凝りたかったのだけど、今のところ
MLPレベル(2層)までしかやらないと自分に言い聞かせて自粛中。
学習データは1200局くらい集まりましたが、全滅の時の完全読み切り
の手順取得処理にバグがあって、無限ループ入り。せっかくの全滅に
至る記譜が採れませんでした。無念。
頭が行列に切り替わるまでが憂鬱なんだよなぁ。
optimizerは計算式なぞるだけで楽勝でした。が、理解しないまま行列計算
に置き換えているので、何が何だかわからなくて、忘れちゃうんでしょうね。
続いて、tiny_dnnのstl的なインターフェースに憧れて、ミニバッチの処理
とかのインターフェースに凝りだしてしまった。
本当はレイヤー階層定義のところも凝りたかったのだけど、今のところ
MLPレベル(2層)までしかやらないと自分に言い聞かせて自粛中。
学習データは1200局くらい集まりましたが、全滅の時の完全読み切り
の手順取得処理にバグがあって、無限ループ入り。せっかくの全滅に
至る記譜が採れませんでした。無念。
889535
2017/07/09(日) 21:54:20.93ID:DDYaMcZG >モンテカルロ木をDBに保存して無限に成長させる
これやってます。
5手目は正解できるようになったようですが、まだまだ完全ソルバには勝てません。
メモリはそんな簡単に爆発しないみたいだけど、木が大きくなるにつれ速度がかなり遅くなる。
UCBの計算が遅いのだろうか?
これやってます。
5手目は正解できるようになったようですが、まだまだ完全ソルバには勝てません。
メモリはそんな簡単に爆発しないみたいだけど、木が大きくなるにつれ速度がかなり遅くなる。
UCBの計算が遅いのだろうか?
890310
2017/07/10(月) 00:58:02.21ID:NRizRRec 自分のはロールアウト関数がボトルネックなので、木が深くなると速度が上がっていき
ます。MCTSの設定も、どんどん深く行く方向で調整してます。UCBの計算は普通に
cmathのlogとかsqrtとか使ってます。
結局、今日は一日、ニューラルネットのライブラリのインターフェースをしこしこと
作って直して、してました。template使いまくりです。
まだやりたい事があるのですが、今の状況では不要だし、泥沼に入りそうなので、
いったんこの辺で。
記譜は1500超えたので、明日から終盤の評価関数作ってみる予定。
できたようなら、MCTSの探索方法を変えて、更に良い記譜を集めるか、それとも
置換表付き完全読み切りのバグを探すか。
ます。MCTSの設定も、どんどん深く行く方向で調整してます。UCBの計算は普通に
cmathのlogとかsqrtとか使ってます。
結局、今日は一日、ニューラルネットのライブラリのインターフェースをしこしこと
作って直して、してました。template使いまくりです。
まだやりたい事があるのですが、今の状況では不要だし、泥沼に入りそうなので、
いったんこの辺で。
記譜は1500超えたので、明日から終盤の評価関数作ってみる予定。
できたようなら、MCTSの探索方法を変えて、更に良い記譜を集めるか、それとも
置換表付き完全読み切りのバグを探すか。
891535
2017/07/10(月) 22:57:52.54ID:Ioy9WIYD きたああああああぁぁぁぁあああああ!!
完全ソルバに勝利!!!!
http://connect4.gamesolver.org/?pos=44444222242555777711776655625636363333111
この勝利を引くために数十回リトライしましたw
完全ソルバに勝利!!!!
http://connect4.gamesolver.org/?pos=44444222242555777711776655625636363333111
この勝利を引くために数十回リトライしましたw
892535
2017/07/10(月) 23:09:01.53ID:Ioy9WIYD ちなみにDBは初期曲面のプレイアウト回数が約36万回になりました。
少なそうに見えるかもだけどDBつくるのに結構時間かかってる。
囲連星にも応用したいな〜
少なそうに見えるかもだけどDBつくるのに結構時間かかってる。
囲連星にも応用したいな〜
893535
2017/07/10(月) 23:24:06.47ID:Ioy9WIYD DBの木の深さは一番深いところで37。
結構、深いところまで読んでるんじゃないでしょうか。
もちろん、途中で読んでない局面に分岐されると困ってしまうんですが…
結構、深いところまで読んでるんじゃないでしょうか。
もちろん、途中で読んでない局面に分岐されると困ってしまうんですが…
894535
2017/07/10(月) 23:38:14.93ID:Ioy9WIYD UCBの係数をいじれば木を浅く広くにもできそう?
完全ソルバに勝つにはそっちのほうがいいかもしれないですね。
完全ソルバに勝つにはそっちのほうがいいかもしれないですね。
895535
2017/07/11(火) 00:01:35.20ID:XEOuAfue >>890
プロファイル取ってみました。
logとかsqrtとかはインライン展開されて?計算時間がよくわからなかったですけど多分ボトルネックじゃなさそう。
ちなみに局面と勝率を保持するクラスのコピーコンストラクタに全体の60%の時間がかかってるという
完全に意味不明のプロファイル結果が出ました。
どう解釈すればいいんですかね?
プロファイル取ってみました。
logとかsqrtとかはインライン展開されて?計算時間がよくわからなかったですけど多分ボトルネックじゃなさそう。
ちなみに局面と勝率を保持するクラスのコピーコンストラクタに全体の60%の時間がかかってるという
完全に意味不明のプロファイル結果が出ました。
どう解釈すればいいんですかね?
896535
2017/07/11(火) 20:08:54.72ID:XEOuAfue んーもしかしてツリーを丸っとコピーしちゃってる?
問題の個所はどこだろう?
問題の個所はどこだろう?
897535
2017/07/11(火) 21:20:27.73ID:XEOuAfue え、めっちゃ早くなった?ww
我ながらこれはヒドスwwww
我ながらこれはヒドスwwww
898535
2017/07/11(火) 21:50:40.06ID:XEOuAfue うおっ一瞬でメモリパンクしたwwww
310さんの言ったとおりだったwwwww
310さんの言ったとおりだったwwwww
899535
2017/07/11(火) 22:02:05.79ID:XEOuAfue 局面の合流を検知しないでベタに木を展開してんのがまずいのかなぁ。
まあモンテカルロ木DB化はこの辺が限界かなぁ。
まあモンテカルロ木DB化はこの辺が限界かなぁ。
900535
2017/07/11(火) 22:31:32.07ID:XEOuAfue 本線じゃない分岐の間違いを修正するには指数的な試行回数が必要になるなこれは。
まあしょうがないか。
まあしょうがないか。
901310
2017/07/12(水) 20:10:09.86ID:b5nvOjQF 直ったようで何より(^^/
自分は合流させてません。
合流させるメリットよりデメリットの方が大きそうだったので考える事をやめました。
モンテカルロ木DB化って、よくよく考えたらQ学習みたいなものではないかと思います。
Q学習だと全部のノードにQ値を持つので、結局全局面保持することになります。
現在Deep Q学習が主流になってるのは、Q値をディープラーニングで近似計算する
事で、全局面のQ値を保持しなくても良くするためという側面もあるかと思います。
で、Q学習だと考えるなら、時々変な手を混ぜて木をきちんと分岐させるってのが、
強化学習の肝ではないかと思います。
当方、完全読み切りのバグとり完了。
ニューラルネットのライブラリも大体できて、1900譜で40手目以後を学習してみました。
やっぱ、疎行列対応の行列パッケージでの計算は、tiny_dnnと比較して圧倒的に早い
です。
データが少ないのと、同一の記譜内からテストデータ取っているのもあるのですが、
テスト誤差は十分小さな値になるのですが、FFOの盤面を評価させると、いまいち
合っていない感じで、あまり汎化できていない感じす。もっと記譜増やします。
やっつけで作ったmcts部分をきちっとさせるのと、とりあえず持っている評価関数
で、puct化できるか、ロールアウトの後半の精度を上げられるか、検討開始です。
強化学習までまだ遠いなぁ。でも、少し背中が見えてきたかな。
自分は合流させてません。
合流させるメリットよりデメリットの方が大きそうだったので考える事をやめました。
モンテカルロ木DB化って、よくよく考えたらQ学習みたいなものではないかと思います。
Q学習だと全部のノードにQ値を持つので、結局全局面保持することになります。
現在Deep Q学習が主流になってるのは、Q値をディープラーニングで近似計算する
事で、全局面のQ値を保持しなくても良くするためという側面もあるかと思います。
で、Q学習だと考えるなら、時々変な手を混ぜて木をきちんと分岐させるってのが、
強化学習の肝ではないかと思います。
当方、完全読み切りのバグとり完了。
ニューラルネットのライブラリも大体できて、1900譜で40手目以後を学習してみました。
やっぱ、疎行列対応の行列パッケージでの計算は、tiny_dnnと比較して圧倒的に早い
です。
データが少ないのと、同一の記譜内からテストデータ取っているのもあるのですが、
テスト誤差は十分小さな値になるのですが、FFOの盤面を評価させると、いまいち
合っていない感じで、あまり汎化できていない感じす。もっと記譜増やします。
やっつけで作ったmcts部分をきちっとさせるのと、とりあえず持っている評価関数
で、puct化できるか、ロールアウトの後半の精度を上げられるか、検討開始です。
強化学習までまだ遠いなぁ。でも、少し背中が見えてきたかな。
902310
2017/07/12(水) 20:27:07.87ID:b5nvOjQF 記譜集めですが、8手までランダム着手していたら、
9手目で白全滅という記譜が取れました(汗
9手目で白全滅という記譜が取れました(汗
903535
2017/07/14(金) 21:11:11.02ID:TTQj/Kki Connect4もひと段落ついたし囲連星もアイディア湧かないし
気分転換にライフゲーム囲碁のAIやろうかな。
気分転換にライフゲーム囲碁のAIやろうかな。
904310
2017/07/15(土) 02:17:52.56ID:qcpUcaKf 再帰呼出は関数オブジェクトを使うと速いというのを見つけて、あちこち試してみました。
static constな再帰関数は速くなるみたい。
クラス内でthisを参照するような類は効果が無いようです。
が…、なんか数か所おかしいような。
やっぱり、どこかでバグを仕込んでしまった模様。むむむ。
続きは明日だなぁ。
static constな再帰関数は速くなるみたい。
クラス内でthisを参照するような類は効果が無いようです。
が…、なんか数か所おかしいような。
やっぱり、どこかでバグを仕込んでしまった模様。むむむ。
続きは明日だなぁ。
905535
2017/07/15(土) 02:40:13.20ID:+mfEtycW 関数オブジェクトを使うと速いってのはどんな理屈なんですかね?
ちょっと想像つかない。
ちょっと想像つかない。
906310
2017/07/16(日) 00:06:25.07ID:z0mkcRg4 なんかもともと関数呼び出しの方が速いという事で数字で実証するサイトがありました。
まあ、コンパイルの最適化のかかり具合なのかなぁ。わからないです。
コンパイラのバージョンで違うのかも。
バグの原因はわかりました。関数呼び出しにするときに、同時にパスの扱いを変えた
のが原因だと思います。が、確かめる際にもとに戻したら、普通の関数の方が速かった
という結果に。バグってるときの実行時間なので、あてになりませんが。
というわけで、全部もとに戻して、少しだけ確認しましたが、あまり差はない模様orz
記譜の中に間違った読み切り手順が混じってしまったので、全部再計算。
こちらもパスの扱いを変えたのが原因で、別のバグが出ました(汗
二次災害大です。
再計算は2400記譜で1時間半くらいで、着手は最善手の中でのランダムなので、
1回実行してアペンドすると倍、2回で3倍というように、記譜の増殖が可能と思い
当たりました。これを使えば学習データを簡単に増やすことができます。
まあ、コンパイルの最適化のかかり具合なのかなぁ。わからないです。
コンパイラのバージョンで違うのかも。
バグの原因はわかりました。関数呼び出しにするときに、同時にパスの扱いを変えた
のが原因だと思います。が、確かめる際にもとに戻したら、普通の関数の方が速かった
という結果に。バグってるときの実行時間なので、あてになりませんが。
というわけで、全部もとに戻して、少しだけ確認しましたが、あまり差はない模様orz
記譜の中に間違った読み切り手順が混じってしまったので、全部再計算。
こちらもパスの扱いを変えたのが原因で、別のバグが出ました(汗
二次災害大です。
再計算は2400記譜で1時間半くらいで、着手は最善手の中でのランダムなので、
1回実行してアペンドすると倍、2回で3倍というように、記譜の増殖が可能と思い
当たりました。これを使えば学習データを簡単に増やすことができます。
907310
2017/07/17(月) 22:52:41.07ID:GI+vwgP1 評価関数まわりを作ってデバッグ。
その中で致命的がバグが発覚しました。
学習用に溜めた記譜データにおかしなデータがいくつかあるというもの。
学習やり直しです。
記譜データ消した後で気が付きましたが、復旧できないわけではなかった。
後の祭りですorz
その中で致命的がバグが発覚しました。
学習用に溜めた記譜データにおかしなデータがいくつかあるというもの。
学習やり直しです。
記譜データ消した後で気が付きましたが、復旧できないわけではなかった。
後の祭りですorz
908535
2017/07/19(水) 21:46:51.76ID:oWNrCACG うヴぉあー
プログラム組むのすっごいだるい。
心ときめくアイディアが欲しいところ。
プログラム組むのすっごいだるい。
心ときめくアイディアが欲しいところ。
909535
2017/07/20(木) 20:57:58.92ID:5PqobJjm ライフゲーム囲碁、DB使ったほうが弱くなる?
どういうことだこれは…
どういうことだこれは…
910535
2017/07/20(木) 21:13:01.54ID:5PqobJjm 弱くなってるわけではなく互角のよう?
DBの情報量が少なすぎるだけだろうか?
よくわからん。
DBの情報量が少なすぎるだけだろうか?
よくわからん。
911535
2017/07/20(木) 21:56:32.91ID:5PqobJjm 攻め合いが全然めちゃくちゃだなぁ
5x5のパターンマッチ入れるか。
5x5のパターンマッチ入れるか。
912310
2017/07/22(土) 02:06:09.72ID:6HI7Rmqm 結局40手までランダム+残り20手完全読みな記譜集めて、残り20手の評価関数と
Policyを作ってます。ランダム1000件に対して30件のMCTS自己対戦混ぜたもので
学習してます。ランダムだけで十分学習になるようで、悩むより数を集める方が大事な
感じです。40手以後の評価関数ですが、30手過ぎくらいから、そこそこ使えるみたい
です。
で、これを使ってPUCTな形にしてます。
完全読みが使えないので、20〜40手あたりで最善手(に近い手順)をどうやって
作ろうかという感じです。
まずは、後ろから探索で、何手までまともな手だったか遡るプログラムを作って、
残り25手くらいまで遡れたら良いかなぁと。
つか、強化学習に行っちゃおうかなぁ。
Policyを作ってます。ランダム1000件に対して30件のMCTS自己対戦混ぜたもので
学習してます。ランダムだけで十分学習になるようで、悩むより数を集める方が大事な
感じです。40手以後の評価関数ですが、30手過ぎくらいから、そこそこ使えるみたい
です。
で、これを使ってPUCTな形にしてます。
完全読みが使えないので、20〜40手あたりで最善手(に近い手順)をどうやって
作ろうかという感じです。
まずは、後ろから探索で、何手までまともな手だったか遡るプログラムを作って、
残り25手くらいまで遡れたら良いかなぁと。
つか、強化学習に行っちゃおうかなぁ。
913310
2017/07/22(土) 20:32:19.70ID:6HI7Rmqm 逆順チェックのプログラムして、学習時に、正解手順で遡れる盤面も含むようにして
みました。仕組みとしては、最終盤面からヌルウィンドウサーチして、もっと良い評価に
なる手が無いことをチェックして、OKなら1手遡ります。置換表にてPVの評価は即求まる
のと、ヌルウィンドウサーチを使っているので、25手までなら楽勝です。
MCTSで対戦したデータには27手より前まで遡れるものもあるようですが、丸1日
チェックしても終わりそうにないので、25手で打ち切り処理を入れました。
記譜に正解手順で遡れる手数を持たせて、学習時には、その手番以後の盤面を使用
する事で、30手過ぎの評価の精度を上げられたら良いなぁと思います。
みました。仕組みとしては、最終盤面からヌルウィンドウサーチして、もっと良い評価に
なる手が無いことをチェックして、OKなら1手遡ります。置換表にてPVの評価は即求まる
のと、ヌルウィンドウサーチを使っているので、25手までなら楽勝です。
MCTSで対戦したデータには27手より前まで遡れるものもあるようですが、丸1日
チェックしても終わりそうにないので、25手で打ち切り処理を入れました。
記譜に正解手順で遡れる手数を持たせて、学習時には、その手番以後の盤面を使用
する事で、30手過ぎの評価の精度を上げられたら良いなぁと思います。
914535
2017/07/23(日) 00:28:11.37ID:IndxNOGW 5x5のパターン入れたらむしろ弱くなってるような…
え〜なんで〜?
絶対効果あると思ったのに。
え〜なんで〜?
絶対効果あると思ったのに。
915535
2017/07/23(日) 20:45:11.86ID:IndxNOGW ライフゲーム囲碁も囲連星も完全に手詰まり。
それはそれとしてスレッドリッパーが欲しすぎる。
それはそれとしてスレッドリッパーが欲しすぎる。
916310
2017/07/23(日) 23:50:20.93ID:DIga1NIH 遡りチェックしていたのですが、普通のUCT時代の方が精度が高い。
そこで気合入れてPUCTのチェックをしてみたら、案の定符号がひっくり返って
いる箇所があったり、パスの処理が抜けてたり。
たぶん、これで大丈夫だと思います…。
これでしばらくは、高速化しながら、記譜集めですね。
そこで気合入れてPUCTのチェックをしてみたら、案の定符号がひっくり返って
いる箇所があったり、パスの処理が抜けてたり。
たぶん、これで大丈夫だと思います…。
これでしばらくは、高速化しながら、記譜集めですね。
917535
2017/07/24(月) 21:00:27.54ID:+gAaelkw もうずっと諦めてたディープラーニングに再トライするか…
918310
2017/07/29(土) 22:16:52.30ID:YHqII1DK 遡りチェックの高速化で迷走中。
28手までなら問題なさそうなので、現在チェック中。
28手まで35分で遡れる記譜で29手目が1日経っても最善手か否かがわからない。
あまりに極端な差なので、何か条件があるのか、たまたまそういう記譜なのかを調べる
ために、いったん28手まで遡れる記譜を探すという段取りです。
その間、PPLのキャンセル処理について、厳密に考えていたら、今のやり方ではベータ
カットでのキャンセルが効いていないのではないかという疑念が。ループの中で再帰し
ているので、そこにcancellation_token_sourceオブジェクトを渡してやって、ポーリングを
して、下ノードでもキャンセル処理をしないといけないが、していなかったので結局中断
せずに、普通に終了待ちしてしまっているという事。
で、キャンセル処理を直したのだけど、時間変わらず。メッセージ出すようにしてデバッグ
したところ、ベータカットが1件も起きていないという謎な事態が確認されました。出てくる
答えは合っているので、しばらく考えることになります。
28手までなら問題なさそうなので、現在チェック中。
28手まで35分で遡れる記譜で29手目が1日経っても最善手か否かがわからない。
あまりに極端な差なので、何か条件があるのか、たまたまそういう記譜なのかを調べる
ために、いったん28手まで遡れる記譜を探すという段取りです。
その間、PPLのキャンセル処理について、厳密に考えていたら、今のやり方ではベータ
カットでのキャンセルが効いていないのではないかという疑念が。ループの中で再帰し
ているので、そこにcancellation_token_sourceオブジェクトを渡してやって、ポーリングを
して、下ノードでもキャンセル処理をしないといけないが、していなかったので結局中断
せずに、普通に終了待ちしてしまっているという事。
で、キャンセル処理を直したのだけど、時間変わらず。メッセージ出すようにしてデバッグ
したところ、ベータカットが1件も起きていないという謎な事態が確認されました。出てくる
答えは合っているので、しばらく考えることになります。
919535
2017/08/06(日) 01:16:09.87ID:OuLT6Ytw ここのところさぼりっぱなし
スレッドリッパーも15万以上らしいし
テンション下がる
スレッドリッパーも15万以上らしいし
テンション下がる
920310
2017/08/06(日) 10:08:36.68ID:zi8YR8lq キャンセル処理については確認完了。たぶん大丈夫。
ただ、キャンセルが多発するはずの、最善手じゃなかったときに、通常より時間がかかる
傾向に見えるのが気になる。mctsが間違えるくらい枝分かれが多いからかもしれないけど。
遡りチェックはやはり遡り29手目から日単位で時間がかかるものが出てくる。
28手まで遡ると、最大数時間くらいな感じなので全部チェックするなら28手が限界かも。
当分の間、記譜集めという事になりそうですが、1日動かして数十記譜では終わる目途が立たない。
精度落とせばスピードアップできるけど。
あと、mctsで末端ノード100万単位まで探索して引き分けの時に、完全読みかけるとそう
じゃないときが結構ある。どこかで枝の探索漏れが生じてるっぽい。Policyの方はかなり
小さくても探索はかかってるようなので、Valueの方じゃないかと思う。
ただ、キャンセルが多発するはずの、最善手じゃなかったときに、通常より時間がかかる
傾向に見えるのが気になる。mctsが間違えるくらい枝分かれが多いからかもしれないけど。
遡りチェックはやはり遡り29手目から日単位で時間がかかるものが出てくる。
28手まで遡ると、最大数時間くらいな感じなので全部チェックするなら28手が限界かも。
当分の間、記譜集めという事になりそうですが、1日動かして数十記譜では終わる目途が立たない。
精度落とせばスピードアップできるけど。
あと、mctsで末端ノード100万単位まで探索して引き分けの時に、完全読みかけるとそう
じゃないときが結構ある。どこかで枝の探索漏れが生じてるっぽい。Policyの方はかなり
小さくても探索はかかってるようなので、Valueの方じゃないかと思う。
921310
2017/08/06(日) 21:21:02.06ID:zi8YR8lq 最善手じゃなかったときの時間問題、原因判明。オーダリングでした。
オーダリングでは置換表にあるものを優先していたのですが、遡りチェックの時には
ベータカットを起こすには置換表に無い方から探索しなければいけないわけで。
遡りOKの時は、どういう順番から探索しても、全て探索するしαは更新されないので
かかる時間がほぼ一緒ですから、順番変えてOKです。
でも、これ通常探索時には逆になります。条件的には、ヌルウィンドウサーチの時と
そうじゃないときで区別できそうですが、ちょっと考えてみます。
探索の方の問題は、やはりValueの評価値とRolloutの勝率がともに悪いと、本当は勝ち
手順でも簡単にはチェックがかからなくなってしまうという問題かなと思います。この辺は
精度アップで対応するしかなさそうです。
オーダリングでは置換表にあるものを優先していたのですが、遡りチェックの時には
ベータカットを起こすには置換表に無い方から探索しなければいけないわけで。
遡りOKの時は、どういう順番から探索しても、全て探索するしαは更新されないので
かかる時間がほぼ一緒ですから、順番変えてOKです。
でも、これ通常探索時には逆になります。条件的には、ヌルウィンドウサーチの時と
そうじゃないときで区別できそうですが、ちょっと考えてみます。
探索の方の問題は、やはりValueの評価値とRolloutの勝率がともに悪いと、本当は勝ち
手順でも簡単にはチェックがかからなくなってしまうという問題かなと思います。この辺は
精度アップで対応するしかなさそうです。
922310
2017/08/07(月) 20:08:24.65ID:3J92NhXM オーダリングを詰めて、さらにヌルサーチ専用の処理を追加。
ベータカットが早めに起きるようにしたのもありますが、それ以外の部分でも
倍速近くなっていると思います。が、まあ、それでも28手目以前まで遡りチェック
するのに時間がかかるという点では焼け石に水。
記譜集めからの逃避はこの辺にして、記譜集めに戻らないと…。
ここまで来ると準確定石によるアルファカットも再度実装してみたい。
準確定石を求める処理も、ソースごと消失しています。
以前は盤面与えると都度再計算していましたが、石を置くごとに更新していく
ような方法にできないか考えています。とはいえ、なかなか良い方法が思い
浮かばないので、あくまで記譜集めしながら考えてみる程度ですが。
ベータカットが早めに起きるようにしたのもありますが、それ以外の部分でも
倍速近くなっていると思います。が、まあ、それでも28手目以前まで遡りチェック
するのに時間がかかるという点では焼け石に水。
記譜集めからの逃避はこの辺にして、記譜集めに戻らないと…。
ここまで来ると準確定石によるアルファカットも再度実装してみたい。
準確定石を求める処理も、ソースごと消失しています。
以前は盤面与えると都度再計算していましたが、石を置くごとに更新していく
ような方法にできないか考えています。とはいえ、なかなか良い方法が思い
浮かばないので、あくまで記譜集めしながら考えてみる程度ですが。
923535
2017/08/07(月) 22:11:24.15ID:PWzU5nmf うあああああ、だめだああああ
俺の才能は枯れ果てた
全然何もできない
一歩も進まない
俺の才能は枯れ果てた
全然何もできない
一歩も進まない
924310
2017/08/07(月) 22:15:17.79ID:3J92NhXM がんがれー。
自分も実をいうとかなり行き詰ってるけど、やれることを少しづつやってる感じ。
まあ、一回ソース全滅したの書き直すイベントのおかげで、リセットできたってのもあるけど。
自分も実をいうとかなり行き詰ってるけど、やれることを少しづつやってる感じ。
まあ、一回ソース全滅したの書き直すイベントのおかげで、リセットできたってのもあるけど。
925535
2017/08/11(金) 00:46:45.11ID:gdLNX0jm スレッドリッパー遂に発売ですね。
ベンチによれば1950Xに乗り換えればCPU性能は現状の3倍以上になりそうです。
うーん欲しい。
ベンチによれば1950Xに乗り換えればCPU性能は現状の3倍以上になりそうです。
うーん欲しい。
926310
2017/08/11(金) 17:12:37.06ID:3ANYT76m 自分の場合、何倍になるんだろ。単純に考えて10倍くらいになるのかなw
まあ、アムダールの法則あるから、そこまではいかないだろうけど。
メモリーも、8Gだと遡り30手あたりでスワップ始まるので、もう少しほしいなぁ。
最近、PC通販サイトを時々覗いています。
スレッドリッパーほしいですねぇ。
相変わらず遡りチェックの高速化を地味に実行中。
min-Max探索の並列処理は粒度が大きいので、待ち合わせロスが多くなりますが、
その辺を何とかしました。遡りチェックはヌルサーチにおけるベータカット検出がメイン
であるという点に依存しますので、普通の探索では使えませんが。
平行して確定石の計算作ってますが、なかなかうまくSIMD演算に落とし込めない。
しばし悩み中です。ただ、30手遡りとかまで行くと、確定石を使ったアルファカットが
かなり効きそうなので、早くなんとかしたいです。
まあ、アムダールの法則あるから、そこまではいかないだろうけど。
メモリーも、8Gだと遡り30手あたりでスワップ始まるので、もう少しほしいなぁ。
最近、PC通販サイトを時々覗いています。
スレッドリッパーほしいですねぇ。
相変わらず遡りチェックの高速化を地味に実行中。
min-Max探索の並列処理は粒度が大きいので、待ち合わせロスが多くなりますが、
その辺を何とかしました。遡りチェックはヌルサーチにおけるベータカット検出がメイン
であるという点に依存しますので、普通の探索では使えませんが。
平行して確定石の計算作ってますが、なかなかうまくSIMD演算に落とし込めない。
しばし悩み中です。ただ、30手遡りとかまで行くと、確定石を使ったアルファカットが
かなり効きそうなので、早くなんとかしたいです。
927535
2017/08/12(土) 22:58:25.64ID:BGqwTvwq 確定石という言葉で思い出しましたが
ライフゲーム囲碁にも確定石という概念がありますね
やれる事が一個見つかりました
ライフゲーム囲碁にも確定石という概念がありますね
やれる事が一個見つかりました
928310
2017/08/13(日) 23:11:58.30ID:icrdxDk8 確定石とりあえずできました。
自分の実装で3ステップあるうちの2ステップでSIMD化できましたが、
最後の1つはまだシフトとループの組み合わせです。
で、さっそく敵確定石数からアルファ値アンダー検出のカットロジックを
入れてみましたが、遡りチェックに入れると、途中でバグるという状態。
しばし長考が必要です。
というわけで、記譜集めに戻りましたが、こちらもランダム着手付
の探索で、稀に間違った着手をするというバグが出てます。こちら
も、しばし長考が必要かもしれません。
むむむ。
自分の実装で3ステップあるうちの2ステップでSIMD化できましたが、
最後の1つはまだシフトとループの組み合わせです。
で、さっそく敵確定石数からアルファ値アンダー検出のカットロジックを
入れてみましたが、遡りチェックに入れると、途中でバグるという状態。
しばし長考が必要です。
というわけで、記譜集めに戻りましたが、こちらもランダム着手付
の探索で、稀に間違った着手をするというバグが出てます。こちら
も、しばし長考が必要かもしれません。
むむむ。
929310
2017/08/14(月) 23:05:49.41ID:4KkLvd6h 記譜側のバグ取りしてました。
というか、ランダム着手部分を全面的に作り替えました。かなり簡単になりました。
が、テスト中に突然のあり得ないレベルの速度低下。
原因は、ふと並列探索にできる箇所を追加した事にありましたorz
丸一日大損です。
ついでに速度を調べていたら、ただの探索より置換表の方が遅いという恐るべき事態。
オーダリングもおかしくなっていましたので、ここも修正。
それでも、まだybwc探索と置換表探索の速度が変わらないという問題あり。
あちこちいじりすぎてわけわからなくなってます。むむむ。
というか、ランダム着手部分を全面的に作り替えました。かなり簡単になりました。
が、テスト中に突然のあり得ないレベルの速度低下。
原因は、ふと並列探索にできる箇所を追加した事にありましたorz
丸一日大損です。
ついでに速度を調べていたら、ただの探索より置換表の方が遅いという恐るべき事態。
オーダリングもおかしくなっていましたので、ここも修正。
それでも、まだybwc探索と置換表探索の速度が変わらないという問題あり。
あちこちいじりすぎてわけわからなくなってます。むむむ。
930535
2017/08/17(木) 18:25:09.94ID:3P8/JKah zenおめ
931310
2017/08/19(土) 00:06:36.46ID:+u+2ZNgB なんか優勝したみたいだね。
強いAI同士で戦うと、ぎりぎりの攻防の結果、人間には穴があるように見えて
しまうのかも知れん、と、ふと思ったりして。
強いAI同士で戦うと、ぎりぎりの攻防の結果、人間には穴があるように見えて
しまうのかも知れん、と、ふと思ったりして。
932535
2017/08/20(日) 19:27:44.87ID:6W3WD1Mu 盆休みはまるまるさぼってしまいました。
心機一転なにか始めたいなぁ。
心機一転なにか始めたいなぁ。
933310
2017/08/21(月) 01:03:27.39ID:fSNFfFNF せっかくまともに動いていた記譜集めですが、つい直したくなって直していたら
バグ出る、速度落ちるで、さんざんでした。ようやく落ち着いたかな。
キャンセルメッセージ、再帰処理だと結構混乱してしまう。
最上階層でのβカットの際、キャンセル待ちでかかっていた時間を、ほぼゼロに
短縮しました。たぶん、タイムアップのキャンセル待ちも。ただし、まだ未検証。
とはいえ、まだ記譜数が足りないのか、評価値が安定しない…
バグ出る、速度落ちるで、さんざんでした。ようやく落ち着いたかな。
キャンセルメッセージ、再帰処理だと結構混乱してしまう。
最上階層でのβカットの際、キャンセル待ちでかかっていた時間を、ほぼゼロに
短縮しました。たぶん、タイムアップのキャンセル待ちも。ただし、まだ未検証。
とはいえ、まだ記譜数が足りないのか、評価値が安定しない…
934535
2017/08/22(火) 22:49:19.92ID:79INUlhM ライフゲーム囲碁と畳み込みニューラルネットは相性良さそうなイメージが湧いてきた
ちょっと調べてみるか
ちょっと調べてみるか
935310
2017/08/25(金) 00:10:43.60ID:9p5u+Oh3 スレッドリッパーいきなり値下げですね。秋冬ごろ狙おうかなぁ。
記譜集め開始したら、耐久テスト状態になってバグがちらほら。
ここ1週間くらいで直したところに原因がありました。またか。
困った事に、たまたまエラートラップに引っかからない事があるため、記譜が
全て正しいという保証が微妙な事。仕方ないので、記譜のチェックをしなきゃ
ならん…。
また、やけにおかしいと思っていた評価関数でも、問題が発覚でした。
記譜集め開始したら、耐久テスト状態になってバグがちらほら。
ここ1週間くらいで直したところに原因がありました。またか。
困った事に、たまたまエラートラップに引っかからない事があるため、記譜が
全て正しいという保証が微妙な事。仕方ないので、記譜のチェックをしなきゃ
ならん…。
また、やけにおかしいと思っていた評価関数でも、問題が発覚でした。
936535
2017/08/30(水) 23:19:27.29ID:o4lpiF9I スレッドリッパー欲しいが40万円はおいそれと出せないなあ
冷静に考えると予算20万が限界だなあぶっちゃけ
畳み込みニューラルネットって何十枚もフィルター用意するんです?
計算時間メッチャかかりそうな?
冷静に考えると予算20万が限界だなあぶっちゃけ
畳み込みニューラルネットって何十枚もフィルター用意するんです?
計算時間メッチャかかりそうな?
937310
2017/08/31(木) 22:05:50.41ID:lyHOCTEv スレッドリッパー単体で12万円くらいですからね。
CPUクーラーと電源頑張らないといけないから、それなりの価格にはなっちゃいますね。
畳みこみは3×3を基本にしても、アルファ碁で192フィルターの12段構成とかです。
自分は今のパソコンでオセロの8×8に対して3×3の48フィルタの2段構成で試して
みましたが、学習終わる気配がないので、ペンディング中です。
普通にMNISTの手書き数字認識は、しょせんオートエンコーダの3段とかなので、大した
時間もかからずにできちゃうんですけどねぇ。例題と実践のギャップがでかすぎ。
ただ、畳み込み演算自体は昔からあるもので、たぶんFFTとかでも同じような計算して
いるはずなので、しっかり勉強すれば、何か、計算速度アップの技がありそうな気は
しています。
デバッグ考えると、ハードで頑張った方が精神的に楽ですが。
CPUクーラーと電源頑張らないといけないから、それなりの価格にはなっちゃいますね。
畳みこみは3×3を基本にしても、アルファ碁で192フィルターの12段構成とかです。
自分は今のパソコンでオセロの8×8に対して3×3の48フィルタの2段構成で試して
みましたが、学習終わる気配がないので、ペンディング中です。
普通にMNISTの手書き数字認識は、しょせんオートエンコーダの3段とかなので、大した
時間もかからずにできちゃうんですけどねぇ。例題と実践のギャップがでかすぎ。
ただ、畳み込み演算自体は昔からあるもので、たぶんFFTとかでも同じような計算して
いるはずなので、しっかり勉強すれば、何か、計算速度アップの技がありそうな気は
しています。
デバッグ考えると、ハードで頑張った方が精神的に楽ですが。
938310
2017/09/03(日) 08:52:20.52ID:sEBlGL7A 相変わらず記譜集め中。
オセロの読み切り処理の並列化は、粒度がでかくて、待ち合わせロスが大きいので、
CPUがアイドルしている時間が長く気になります。そこで、スレッド数をチェックしてコア
数を下回っている時は、リーフに近いところでも並列探索に戻るようにしてみました。
PPL機能ではスレッド数は取得不可能で、結局自分で増減カウントしました。
リソースモニター上ではCPU使用率が100%近くに貼りついているいるので、待ち合わ
せロスはほぼゼロになりましたが、早くなったかどうかは未確認です(汗
オセロの読み切り処理の並列化は、粒度がでかくて、待ち合わせロスが大きいので、
CPUがアイドルしている時間が長く気になります。そこで、スレッド数をチェックしてコア
数を下回っている時は、リーフに近いところでも並列探索に戻るようにしてみました。
PPL機能ではスレッド数は取得不可能で、結局自分で増減カウントしました。
リソースモニター上ではCPU使用率が100%近くに貼りついているいるので、待ち合わ
せロスはほぼゼロになりましたが、早くなったかどうかは未確認です(汗
939535
2017/09/04(月) 20:17:25.15ID:BnaFXSEJ 畳み込みニューラルネットの勉強なかなか進みません。
とりあえず、棋譜がなければなにもできないので棋譜取始めました。
質より量優先で1局4秒くらいで生成中。
明日の夕方まで回す予定。
とりあえず、棋譜がなければなにもできないので棋譜取始めました。
質より量優先で1局4秒くらいで生成中。
明日の夕方まで回す予定。
940535
2017/09/05(火) 20:03:48.94ID:a++kwbuh 16万局分くらい棋譜集まりました。質は期待できませんが…
そろそろCNNの勉強を本格的に進めなければ。
そろそろCNNの勉強を本格的に進めなければ。
941310
2017/09/06(水) 00:21:57.37ID:lfEM6HyT 乙です。
こちとら、またまた終盤探索にバグが見つかりまして。
2日ほど根つめてデバッグ。その間記譜収集停止orz
いつも出てくれればよいのに、同じ記譜でも30回に1回とかのレベルで発現する
奴で往生しました。最終的にnull window search専用処理の置換表のどこかが
おかしいだろうというところまで追い詰めましたが、諦めました。時々異常に探索
時間がかかるのも、この処理が原因っぽかったので、やけになって削除。
すっきりしたかもw
なかなか強化学習までたどり着けない…
こちとら、またまた終盤探索にバグが見つかりまして。
2日ほど根つめてデバッグ。その間記譜収集停止orz
いつも出てくれればよいのに、同じ記譜でも30回に1回とかのレベルで発現する
奴で往生しました。最終的にnull window search専用処理の置換表のどこかが
おかしいだろうというところまで追い詰めましたが、諦めました。時々異常に探索
時間がかかるのも、この処理が原因っぽかったので、やけになって削除。
すっきりしたかもw
なかなか強化学習までたどり着けない…
942535
2017/09/07(木) 21:19:23.25ID:QIAny/iA 集めた棋譜を統計取ってみましたが、初手天元が妙に少ない?
という謎の現象がおきたのですが、盤面の対称性を考慮してDBを作ったせいのようです。
天元は対称局面がないが、ほかの局面は対称局面があり、対称局面は合算されるため。
ていうか16万局じゃ全然データ足りないかもw
という謎の現象がおきたのですが、盤面の対称性を考慮してDBを作ったせいのようです。
天元は対称局面がないが、ほかの局面は対称局面があり、対称局面は合算されるため。
ていうか16万局じゃ全然データ足りないかもw
943535
2017/09/07(木) 22:01:51.18ID:QIAny/iA 初期曲面から3手目まで位しか十分な数のデータがないっぽいw
100万局にしても無駄だろうなぁ
100万局にしても無駄だろうなぁ
944310
2017/09/08(金) 00:27:19.31ID:4/v5wLbf 強化学習の準備始めました。
評価関数のファイル名決め打ちしてたり、staticだったりで、あちこち変えなきゃならん。
と、裏で記譜集めをしていたら、またまた問題が。
探索結果は合っているけど、逆順探索などで失敗。
用途の違う置換表を使いまわしちゃいかんという事の模様で、置換表クリアで対応。
mtd(f)で下から寄ったあと、置換表残したままもう一度上から寄せると、探索間違える
現象も確認。良く考えれば何が問題なのかわかりそうだけど、もう飽きた(汗
何回目の「これできっと大丈夫」なのかorz
>>943
局面数的には、全宇宙の原子数でも足りないかと…
特徴抽出と近似による汎化に頼らないと・・・
評価関数のファイル名決め打ちしてたり、staticだったりで、あちこち変えなきゃならん。
と、裏で記譜集めをしていたら、またまた問題が。
探索結果は合っているけど、逆順探索などで失敗。
用途の違う置換表を使いまわしちゃいかんという事の模様で、置換表クリアで対応。
mtd(f)で下から寄ったあと、置換表残したままもう一度上から寄せると、探索間違える
現象も確認。良く考えれば何が問題なのかわかりそうだけど、もう飽きた(汗
何回目の「これできっと大丈夫」なのかorz
>>943
局面数的には、全宇宙の原子数でも足りないかと…
特徴抽出と近似による汎化に頼らないと・・・
946310
2017/09/08(金) 23:49:16.12ID:4/v5wLbf 昨夜いろいろ考えながら寝ていたら、あっとなりまして。
今までmin-maxな部分ばかりデバッグしてましたが、最初にバグに気付いた時に
並列探索かつ置換表な時に問題が起きると気づいていたのに、見るところ間違え
てました。置換表の更新のところで、2重更新の対策してなかった(汗
null window searchとか、冤罪だったんじゃないかと。
まあ、徐々に耐久テストしてみます。
今までmin-maxな部分ばかりデバッグしてましたが、最初にバグに気付いた時に
並列探索かつ置換表な時に問題が起きると気づいていたのに、見るところ間違え
てました。置換表の更新のところで、2重更新の対策してなかった(汗
null window searchとか、冤罪だったんじゃないかと。
まあ、徐々に耐久テストしてみます。
947310
2017/09/11(月) 00:57:10.83ID:ieDiiY3U >>946は潜在的には問題になりえますが、関係なかったorz
都度都度置換表をクリアしながらなら問題が起きないようです。
でも、クリアしなければならない、そもそも今のトリッキーな高速化方法では
かえって低速になる事から、着手リスト作成箇所を全面的に書き直して
しまいました。
現在耐久テスト中。今のところ調子は良さそうです。
記譜集めちんたらやりすぎなので、ちょっと質を落として数を増やしてみます。
都度都度置換表をクリアしながらなら問題が起きないようです。
でも、クリアしなければならない、そもそも今のトリッキーな高速化方法では
かえって低速になる事から、着手リスト作成箇所を全面的に書き直して
しまいました。
現在耐久テスト中。今のところ調子は良さそうです。
記譜集めちんたらやりすぎなので、ちょっと質を落として数を増やしてみます。
948310
2017/09/16(土) 22:09:05.96ID:4ZN/DTXg このまま記譜集めしていても、必要分量まで集めるのにどんだけかかるかわからない
ので、悩んでいましたが、ふと思いつきました。置換表には、読み切り済の記譜が詰まっ
ていると。上限加減のタイプもあるので、全部ではありませんが、これを捨てるのは勿体
ないかなと。で、抜いてみました。25手読み事に大体3000局面の盤面と終局スコアが
得られます。
どういう局面が残るのかは、なんとも言い難いのですが、記譜の足しにはなるというか
結構な分量がたまるなぁという事で、これもとっておいて、再利用できるようにしてみま
した。置換表適用深さ分しかないので、限られてはしまいますが、分量的には結構に
なるので、利用を前提にしてみます。
ので、悩んでいましたが、ふと思いつきました。置換表には、読み切り済の記譜が詰まっ
ていると。上限加減のタイプもあるので、全部ではありませんが、これを捨てるのは勿体
ないかなと。で、抜いてみました。25手読み事に大体3000局面の盤面と終局スコアが
得られます。
どういう局面が残るのかは、なんとも言い難いのですが、記譜の足しにはなるというか
結構な分量がたまるなぁという事で、これもとっておいて、再利用できるようにしてみま
した。置換表適用深さ分しかないので、限られてはしまいますが、分量的には結構に
なるので、利用を前提にしてみます。
949535
2017/09/20(水) 22:11:12.05ID:iovYnC4+ tensorflowやってます。
import numpy as nm
winrate=nm.loadtxt("WINRATE.TXT")
boards=nm.loadtxt("BOARD.TXT")
WINRATE.TXTは読み込めるのにBOARD.TXTは読み込めない。
データがでかすぎるってことだろうか
さてどうするか…
import numpy as nm
winrate=nm.loadtxt("WINRATE.TXT")
boards=nm.loadtxt("BOARD.TXT")
WINRATE.TXTは読み込めるのにBOARD.TXTは読み込めない。
データがでかすぎるってことだろうか
さてどうするか…
950535
2017/09/20(水) 22:23:57.53ID:iovYnC4+ データ半分にしたら通った
まあしょうがないか
まあしょうがないか
951310
2017/09/21(木) 20:15:32.64ID:x7IR5Khh tensorflowですか!
環境整備大変そうだと逃げてます。乙です。
速度感とか教えてください。
こちらは、ようやく強化学習の良い方法を考え付きまして。
とりあえずダミーとの対戦と学習部分までコーディングしてみたところ。
今夜デバッグして、強化部分のコーディングする予定。
rollout部で使用するのはあきらめました。
色々やっていたら、勝率も大事だけど、それよりツリー展開のドライバー
としての速度の方が大事だと言う結論に(汗
環境整備大変そうだと逃げてます。乙です。
速度感とか教えてください。
こちらは、ようやく強化学習の良い方法を考え付きまして。
とりあえずダミーとの対戦と学習部分までコーディングしてみたところ。
今夜デバッグして、強化部分のコーディングする予定。
rollout部で使用するのはあきらめました。
色々やっていたら、勝率も大事だけど、それよりツリー展開のドライバー
としての速度の方が大事だと言う結論に(汗
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… [BFU★]
- アメリカ議会 「中国が台湾武力侵攻する準備を急速進展中」 ★4 [お断り★]
- 外国人の犯罪率は日本人の1.72倍 警察庁が短期滞在者除いた数字を参院内閣委で答弁 [七波羅探題★]
- 止まらぬ「日本売り」 高市財政への懸念で進む金利上昇と円安 [蚤の市★]
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★10 [樽悶★]
- 中国「高市が謝罪しなければ、ハニトラに引っかかった日本の政治家を公表する」 [804169411]
- 【実況】博衣こよりのえちえちカービィのエアライダー🧪
- 【35🌸専】なんG さくらみこ桃鉄配信実況スレ🏡【ホロライブ▶】
- 【悲報】高市政権、ホタテ輸出の支援検討 [834922174]
- 中国「あーあ!もう怒った!ハニトラにかかった日本人議員公開するからな😡」
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
