1 名前:名前は開発中のものです。 [2017/10/15(日) 17:34:58.03 ID:RaMh0le2.net] 比較的地味なボードゲーム専用のスレが欲しくて立ててみました。 前スレ 【オセロ,将棋】ボードゲーム【囲碁,War】 mevius.2ch.net/test/read.cgi/gamedev/1057763418/
129 名前:535 mailto:sage [2017/12/07(木) 20:11:24.86 ID:+QWWXInu.net] あ〜ツリーのノードに親ノードポインタ入れてなかったわw 変だと思ったw。 でも対称局面合流させちゃってるから親が一意にならないな。。。 どうしよう。。
130 名前:535 mailto:sage [2017/12/07(木) 20:23:43.87 ID:+QWWXInu.net] 親ポインタは諦めてほかの方法でごまかそうw
131 名前:535 mailto:sage [2017/12/07(木) 21:27:59.88 ID:+QWWXInu.net] なんか、UCTって初期の探索で間違った結果出ると挽回するの凄い大変なのかね? それこそ修正に指数的な試行が必要になっているような…
132 名前:535 mailto:sage [2017/12/07(木) 21:35:42.53 ID:+QWWXInu.net] おっと、なんか挽回してきたw それはそうとして、メモリが欲しいですねぇ。1TBくらい
133 名前:535 mailto:sage [2017/12/07(木) 22:05:33.83 ID:+QWWXInu.net] うーん、局所解にずっぽり嵌ったっぽいorz 地力で脱出してくれないかな〜
134 名前:310 mailto:sage [2017/12/07(木) 22:57:44.09 ID:JixNNylG.net] >>129 大変です(汗
135 名前:535 mailto:sage [2017/12/07(木) 23:14:30.29 ID:+QWWXInu.net] うおお、メモリ消費がじわじわ増えてきてる。 今晩一晩耐えられるかは微妙なラインだなぁ。
136 名前:535 mailto:sage [2017/12/08(金) 21:44:38.57 ID:rkwPxGLh.net] あれえ、おかしいな。 かなり学習いい感じで進んだと思ったのに、公式AIに全く歯が立たない。 やっぱ読めてない局面に分岐されると無力なのかなぁ
137 名前:535 mailto:sage [2017/12/08(金) 21:55:53.54 ID:rkwPxGLh.net] DBだけじゃ無理か。 期待が高かっただけにガックリ。
138 名前:535 mailto:sage [2017/12/08(金) 22:03:23.60 ID:rkwPxGLh.net] ここでヒューリスティックに走るかDBの更なる肥大化に走るかCNNとかに手を出すか。 分岐点やな。
139 名前:535 mailto:sage [2017/12/09(土) 11:22:20.19 ID:L/Fjd2gI.net] 当たりの石をつがないなぁなぜか。 ロールアウトで当たりの石を抜く確率と当たりの石をつぐ確率増やすか。
140 名前:535 mailto:sage [2017/12/09(土) 19:05:03.36 ID:L/Fjd2gI.net] キター!初勝利! 最終的にはアルファ碁みたいに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])
141 名前:535 mailto:sage [2017/12/09(土) 20:29:04.06 ID:L/Fjd2gI.net] 酷いバグ発見w 8近傍求める関数間違ってたw
142 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 21:36:39.83 ID:L/Fjd2gI.net] ロールアウトの着手確率いじったら黒番の勝率5%だと…? 何が起こってるんだ…
143 名前:535 mailto:sage [2017/12/09(土) 22:53:03.29 ID:L/Fjd2gI.net] 着手不能点を着手候補にしてたw だからか。
144 名前:535 mailto:sage [2017/12/10(日) 21:26:16.30 ID:ecwKDJmF.net] 局所解に落ち込むとなかなか抜け出せないのでUCB1のバイアス係数を思いっきり上げてみた。 これで局所解抜けてくれればいいが…
145 名前:310 mailto:sage [2017/12/10(日) 22:11:20.32 ID:3vDAj4sl.net] MLP版の評価関数がNaN地獄
146 名前:に落ちてた。 何回かやり直したけど、結構簡単にNaN地獄に落ちるので、一旦仕切り直しで、 線形回帰な評価関数に注力する事にしました。 MCTSでテストすると、途中まで割と見知ったオープニングになってきているけど、 評価値自体はあんまり安定していない感じ。まあ、相対関係があっていれば、 絶対値はずれていても関係ないといえば関係ないけど。 しばらく強化学習を続けながら、ちっと別な事を考えてみます。 というか、Alpha Zeroの強化学習の回数が、思ったより少ないなぁと思ったけど、 自分がこれまでにやった回数を概算で考えてみたら、桁が2〜3くらい少なかったorz やっぱマシンパワーは正義だなぁ。 [] [ここ壊れてます]
147 名前:535 mailto:sage [2017/12/10(日) 22:51:07.98 ID:ecwKDJmF.net] 今晩一晩ながして局所解抜け出せなかったら別の方法考えなきゃな… zen+が超絶スペックという噂が流れてますが、デマリークともいわれていて、 本当だったらいいなあと思っている今日この頃。
148 名前:535 mailto:sage [2017/12/11(月) 21:43:28.43 ID:fAOHhVpN.net] お、局所解抜けてる。 DBがTXTで1GB行っちゃったてへぺろ。
149 名前:535 mailto:sage [2017/12/11(月) 21:49:20.78 ID:fAOHhVpN.net] お、凄い、いい感じの勝ち方した。 これの凄さが分かってくれる人がどれだけいるかわからないが… ( ;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])
150 名前:535 mailto:sage [2017/12/11(月) 22:02:11.19 ID:fAOHhVpN.net] 白番でも勝てるかもと思ったがそんなに甘くなかったw
151 名前:535 mailto:sage [2017/12/11(月) 22:20:09.34 ID:fAOHhVpN.net] うあああ、白番で惜しいところまで行ってバグで不正終了w とりあえずバグとらなきゃorz
152 名前:535 mailto:sage [2017/12/11(月) 22:31:43.51 ID:fAOHhVpN.net] うーんまだまだだなぁ。 >>146 はたまたまかorz.
153 名前:535 mailto:sage [2017/12/12(火) 19:50:54.43 ID:sU/cgenP.net] 新しいパソコン欲しいな〜 現実的な線でいってもメモリ64GBくらい積みたい。
154 名前:535 mailto:sage [2017/12/12(火) 23:05:56.72 ID:sU/cgenP.net] DB作成をマルチスレッド化したいな〜 でもMCTSのマルチスレッド化って結構難しんだよな〜
155 名前:310 mailto:sage [2017/12/13(水) 00:38:18.63 ID:oWC3TnL7.net] MCTSのマルチスレッド化は簡単だと思う… マルチコンピュータは難しいけど。 強化学習がなんかおかしい感じだったので、記譜学習で上書きしたら かなり過学習になってしまった。強化学習で戻せばよいかと思ったけど なんかなかなか戻らないorz 強化学習どっかおかしいのかもしれない。
156 名前:535 mailto:sage [2017/12/13(水) 20:33:14.21 ID:6thdoy0s.net] えーそうですか? 排他制御とかしたら性能出なさそう
157 名前:535 mailto:sage [2017/12/13(水) 21:57:53.75 ID:3yqEn+ak.net] ID違うと思うけど535です。 DBがTXTで1.7GBに。 実行時7GB程になりました。 std::mapを別のコレクションに変えたらメモリ使用量減らないかな〜?
158 名前:535 mailto:sage [2017/12/13(水) 22:15:01.22 ID:3yqEn+ak.net] unordered_mapにしてみたけどあんま変わんないやorz
159 名前:310 mailto:sage [2017/12/14(木) 00:19:28.11 ID:9pKHf6s7.net] 排他制御は、まあ普通にしてますけど、PPLのcritical_sectionでlockしたり、 int型ならatomic<int>していたりで、並列ライブラリにお任せです。 またVirtual Lossという方法があって、ツリーを下っていく時は、先に負けた事にして 降りて行って、末端から戻ってくる時に正しい勝敗に置き換える事で、並列探索 の各スレッドが同じ枝に集中しないようにして、排他がかかる可能性を減らしてます。 あとは、排他制御が必要な領域を細かい単位に分割する事ですかね。 #と思って、ソース見たらVirtual Drawになっていた(汗 あ、そうか。DB化しているって事は、合流ありだし、盤面をキーにしなきゃならないから そうなるとちょっとややこしいのかな? 自分は合流無視で、各ノードに盤面情報を保持していません。直前着手のみ持って いて、ノードをたどる時に盤面情報を更新しながら降りていきます。着手もBITBOARD の64bitは無駄なので、char型にしちゃってます(内部的にはintなんだろうけど)。
160 名前:535 mailto:sage [2017/12/14(木) 21:56:41.20 ID:IX7WwuCO.net] PPLなんてのがあるんですね。 頭の片隅に入れておきます。 とりあえず、子ノードへのポインタが結構メモリを食ってるような気がします。 これを無くして毎回子局面を計算するようにしてメモリ節約するという手もありますがあんまりやる気がしないなぁ。
161 名前:310 mailto:sage [2017/12/15(金) 10:32:05.09 ID:+7BwQo/4.net] PPLはVC++専用の並列処理ライブラリです。 Intel TBBとかと中身はほぼ同じだと思います。 かなり抽象されていて、わかりやすいです。 自分はこれなしでは並列化できません(汗 ツリー構造だと子ノードへのポインタが一番大事な情報になっちゃいますね。 その場合ポインターと直前着手があれば盤面情報は不要になります。 一方で、ハッシュテーブル構造だと、子ノードポインタ不要で、キー(と衝突検出) のために盤面情報が必須になります。 DB化するんならハッシュテーブルとかの方が向いていますよね。 自分はMCTSでツリーを作ったり消したりなので、ツリー型にしています。 shared_ptr使って、不要になったノードはシステム任せで自動的に削除して貰って います。ハッシュテーブルだと、そう簡単にはいきませんね。
162 名前:310 mailto:sage [2017/12/17(日) 00:21:31.98 ID:qILmYkkQ.net] ノートPCの冷却用(動作周波数に結構影響する)にUSB扇風機使ってましたが、 結構サイズでかくて持ち運び面倒だし、ノートPCのUSBポートに刺していると 安全装置が働いてしまうので、別途電源取っていました。 で、どうせ強化学習回しておくだけで暇だったので、専用のクーリングファンを 自作してみました。 タカチのアルミケースをぴったりサイズに切り欠いて、USBコネクタと5Vの クーリングファンをセット。ノートPCに装着するとファンが回って冷却開始。 製作時間1時間程度。材料費は3000円くらい。 雑に作った割にはうまくできた。
163 名前:310 mailto:sage [2017/12/17(日) 02:09:30.95 ID:qILmYkkQ.net] EigenのSparseMatrixのサイズ制限を変える方法が見つかりました。 現在、簡易版と詳細版の2種類の評価関数を学習していますが、 これにより詳細版を完全にBuroさんモデルにする事ができるように なりました。 というわけで、詳細版は再度学習し直しです。 簡易版は、多少癖があるようだけど、そこそこまともになっています。 一方、詳細版は何度もやり直し中(汗
164 名前:535 mailto:sage [2017/12/17(日) 19:24:13.96 ID:QB4rs7DZ.net] DBはメモリの勝負になる。 やはりCNNなどでメモリを圧縮する必要がある。
165 名前:535 mailto:sage [2017/12/17(日) 20:37:59.85 ID:QB4rs7DZ.net] うお、試行回数0回のデータ削除したらメッチャメモリ使用量減ったw これで当分DBで押せるww
166 名前:535 mailto:sage [2017/12/18(月) 21:48:20.69 ID:2VaG9uC3.net] ちょっとづつ良くなってるとは思うけど今一歩だな〜 もうちょっとヒューリスティック入れたほうがいいかな〜
167 名前:310 mailto:sage [2017/12/19(火) 00:06:06.27 ID:jyMFUoq3.net] 気が付いたらTensorFlowがWindows対応になってるね。 New PC欲しい病再発の兆し・・・
168 名前:535 mailto:sage [2017/12/19(火) 22:55:01.32 ID:BAiqwtex.net] とりあえず、ヒューリスティックのアイディアが2つあるんだが、 下手に手を加えないでDB肥大化で押したほうが、 真の棋理に近づくのかもしれないなどとも思ったり。 悩ましい。
169 名前:535 mailto:sage [2017/12/20(水) 00:23:35.05 ID:S+Iz2Vgy.net] ヒューリスティック一個仮組みしてみたけど上手くいかないや。 がっかりorz.
170 名前:535 mailto:sage [2017/12/20(水) 22:02:26.64 ID:S+Iz2Vgy.net] ちなみに仮組したヒューリスティックの内容は 適当な回数プレイアウトして7連が一番多くできたところ付近にしぼって モンテカルロ木を展開するというもの。
171 名前:535 mailto:sage [2017/12/21(木) 20:13:56.96 ID:TDrdSCuN.net] 序盤はそんなに悪くないんだけど終盤がなぁ やっぱ9路でも必至、詰めろルーチンいるなぁ
172 名前:535 mailto:sage [2017/12/21(木) 20:14:37.01 ID:TDrdSCuN.net] でも遅くなるの見えてるからちょっとなぁ。
173 名前:535 mailto:sage [2017/12/22(金) 21:57:55.17 ID:fGil/O5L.net] なんか落ちるバグがあるな。 そういえば直してなかった。 は〜
174 名前:310 mailto:sage [2017/12/23(土) 09:08:48.88 ID:V4gvcHPy.net] ノードを完全読み切りまで展開した時に、末端ノードの評価が狂う時があるという バグが以前ありました。おそらく並列処理による2重更新問題だろうと言う事で、 UCT探索の排他部分を強化して対応していましたが、ここにきてまた発生。 昨日原因が判明しました。まさかの、浮動小数点誤差の問題でした。 スコアの合計値と、試行回数を持っていて、合計値÷試行回数で平均スコアを 計算しているのですが、合計値が3500万を超えたあたりで+2をしてもfloat的 には、その2差を表現できる精度が無くなって、少しづつ合計値が不足していく 状態になっていました。 とりあえずfloatをdoubeにしてみましたが、案の定メモリーを消費する速度が大幅 増加してしまいました。小数点以下1桁もあれば十分なのでintに10倍値を持つ ようにしてみようかなぁと思っています。
175 名前:310 mailto:sage [2017/12/24(日) 00:22:00.25 ID:XlhSPCGK.net] intに変更。桁溢れが無ければ、これで大丈夫だと思います。 ついでに速度アップしている分だけ、自己対局の探索時間を短くしました。 評価関数を簡易版・詳細版2種類使っていましたが、詳細版も十分に学習 できたようなので、詳細版一本に絞りました。というか、そろそろ追い抜いた と思えるようになってきました。とはいえ自己対局の評価値を見ていると 30手目以後はそこそこまともな感じですが、序盤はまだデタラメかなぁ。 完全読み切りですが、30手より前に遡る事がなかなかできません。評価関数 の精度のためか、残り28手あたりから急激に読み切り時間がかかるようになり ます。評価関数の精度が悪いのでオーダリングが正しくできていないからでは 無いかと想像しています。強化学習で補えるかと思っていますが、まだまだの ようです。 現在、記譜学習は完全読み切りができている盤面しか使用していませんが、 せめてMCTS探索が始まって以後の盤面も学習に使用してみようか悩み中。 これ以上の精度を求めると、やはりDLに行かざるを得ないですね。 今の探索でもツリーがメモリー内に収まるギリギリに係数を設定しているので 探索延長が起きるとあっという間にスワップ開始になってしまいます。 というわけで大きなメモリーが欲しい今日この頃です。
176 名前:535 mailto:sage [2017/12/25(月) 21:28:02.81 ID:iTZFwLsg.net] すっごい微妙な駆け引きができるようになって会心の勝利! と思いきや勝利目前でバグが出てパス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])
177 名前:535 mailto:sage [2017/12/26(火) 21:57:37.38 ID:vTaELiqs.net] 勝利が目前に近づくとパスする。 マジ原因がわからんorzorzorz ログでも仕込むか?
178 名前:535 mailto:sage [2017/12/26(火) 22:08:58.18 ID:vTaELiqs.net] 石を取って必勝形になる形だとパスするのか? 条件絞り込みがムズイ。 とりあえず、ログかなぁ?
179 名前:535 mailto:sage [2017/12/27(水) 20:40:10.55 ID:SLxZ+o46.net] ログ仕込んだら計ったように再現しなくなったwwww しばらく対局しまくるしかないか
180 名前:535 mailto:sage [2017/12/27(水) 21:31:50.30 ID:SLxZ+o46.net] バグの原因わかりました。 ノードに盤面情報登録し忘れてるパスがあった。 これで落ちずに連続対戦できるようになるかな。
181 名前:535 mailto:sage [2017/12/27(水) 22:15:38.79 ID:SLxZ+o46.net] 連続対戦上手く動いてるっぽいです。 今のところ黒番で8勝2敗 かなりいい感じ。
182 名前:535 mailto:sage [2017/12/27(水) 22:57:18.00 ID:SLxZ+o46.net] 黒番で13勝7敗 だいぶ追い上げられたorz でも連続対戦ちゃんと動いてるようで嬉しい。
183 名前:310 mailto:sage [2017/12/28(木) 00:14:18.22 ID:p44JRClR.net] やっぱりintでオーバーフローしてた(汗。仕方無いのでint64で。doubleでも メモリーサイズは一緒だけど、intの方がオーバーフローがわかりやすい。 あと、効果あるかわからないけど、置換表再利用回りをちょっと機能追加。 途中でゲーム終了になった時のスコアカウントですが、FFO計算をチェックに 使っている関係で空白マスを勝者総取りにしています。しかし、学習の時には 空白マスを含めない方が回帰の計算的には良いのではないかなと思い始め ています。MCTS的には終局判定を入れてあり正しく終局時スコアを返すので、 あくまで学習時だけの話です。 ただ、記譜を経由していればスコア再計算で良いのですが、置換表に溜まって いる盤面情報では、アメリカルールのスコアを割り出しようが無いという…。
184 名前:535 mailto:sage [2017/12/30(土) 18:56:09.79 ID:YPjfi6f/.net] 実家に帰省しました。 DB作成を流しっぱなしにしてきたので 正月あけどれくらいデータ取れてるか楽しみ
185 名前:名前は開発中のものです。 [2017/12/31(日) 18:54:54.44 ID:/rN76OKL.net] 簡単にお金が稼げる方法興味ある人だけ見てください。 グーグル検索⇒『来島のモノノリウエ』 G32792G4ML
186 名前:535 mailto:sage [2018/01/04(木) 19:09:06.91 ID:mx9U9VEK.net] ふむう。学習は大分進んだと思うのですが、勝率が思うように上がりませんね。
187 名前:535 mailto:sage [2018/01/04(木) 19:40:03.61 ID:mx9U9VEK.net] もうちょいヒューリスティック入れるか…
188 名前:535 mailto:sage [2018/01/04(木) 20:05:05.60 ID:mx9U9VEK.net] leela zeroがもう有段者くらいの実力をつけているらしい。 もういちどleela zeroパクれるか検討するか? うーむ。
189 名前:310 mailto:sage [2018/01/05(金) 08:48:12.97 ID:DiPIPsFr.net] 年末年始で学習進めてました。 学習が進んだ結果、33〜35手目あたりは正確になり、評価値の精度が上がった 事からオーダリングが機能するようになり、遡りチェックの時間は少しづつ減ってきて いる感じですが、30〜32手目以前はまだまだばらつきがある感じです。 また、以前から気になっていたのですが、MCTSによる記譜作成では35手目以後で 急に頻繁に手を間違える症状が出ています。記譜を膨らますにはちょうど良いので 放置していましたが、いよいよバグ探しを開始。やっぱり、並列処理の排他が不十分 で、末端ノードまでたどり着いて同じノードに探索が集中した時に、スコアの更新が ぶつかっておかしな値になる事で、別のノードを探索。また探索が集中し、スコアが 狂い別のノードを探索という感じになっていた模様です。 修正したら大幅スピードダウンしてしまいましたが、精度は上がりました。 速度を持ちなおせるか色々調べましたが、ちょっと厳しい感じです。
190 名前:310 mailto:sage [2018/01/08(月) 02:22:41.34 ID:hx3YjBuD.net] 記譜作成ですが、スコア差が大きなものが少ないため、ランダム着手の所に手を 加えてみましたが、今度は極端になりすぎて、パーフェクト勝敗な記譜が増えて しまいました。どうしよう。 スピードダウンの影響は結構大きく、探索の終盤で、同じツリーに対する探索が集中 するためか、さらに大きく速度低下し、今度はそちらが原因で終盤間違えるように なった感じです。あちらを立てればこちらが立たずです。 当初は、こういう問題はなかったはずなので、過去のソースを見直してみるつもり。
191 名前:535 mailto:sage [2018/01/08(月) 19:56:33.71 ID:NhsCP7en.net] alpha zero を参考にしたプロジェクトがgithubにいくつかあるんですがパクれないか物色中。 オセロやコネクト4もあるみたいですね。
192 名前:310 mailto:sage [2018/01/08(月) 21:48:13.88 ID:hx3YjBuD.net] ありゃ。すでにあるんだ。 たぶんディープラーニングしてるんだろうなぁ。 そりゃそうと、CPUのバグの影響どうなんでしょね。 あまりに時間がかかるので、ちょっと辛い。 記譜作成やめて、ひたすら強化学習にしてみようかなぁ。 後は細かい精度なので、その方が早い気がしてきた。
193 名前:310 mailto:sage [2018/01/08(月) 22:10:59.88 ID:hx3YjBuD.net] わかりにくい文章でした。 「あまりに時間がかかるので、ちょっと辛い。」 は、現状の学習方法だとあまりに時間がかかるので、やはり新PC欲しいんだけど、 CPUバグの話が出たので、ちょっと様子見すべきかどうかって事です。 ただ、MCTSで排他待ち合わせによる速度低下が出ているのと、読み切り探索では 並列探索の効果が頭打ちになりやすいので、本当にCPUに投資した効果があるの かが不安になってきている面もあります。 むむむ。
194 名前:535 mailto:sage [2018/01/08(月) 23:14:47.03 ID:NhsCP7en.net] 並列化で速度出すのは結構難しいですよねぇ まあメモリ増やすだけでも大分違うかもですが。 python 読めるようになったほうが後々いいんだろうなぁ でもメンドクサイw
195 名前:535 mailto:sage [2018/01/10(水) 22:40:05.04 ID:woZtUoWo.net] アルファゼロを参考にしたコネクト4のプロジェクトのパイソンコード読んでるんですが パイソンということを差し引いても結構難しいんだろうなって感じ
196 名前:535 mailto:sage [2018/01/10(水) 23:42:39.94 ID:woZtUoWo.net] パイソンだからコード眺めるだけでどうせ動かせないやと諦めるのではなく 実際に実行できるところまでこぎつけるべきだろうか
197 名前:535 mailto:sage [2018/01/10(水) 23:57:49.33 ID:woZtUoWo.net] うーんこれlinux用なのかなぁ Cygwinじゃきびしいかなぁ
198 名前:310 mailto:sage [2018/01/11(木) 22:33:43.61 ID:TAFrfVFR.net] しばらく学習しっぱなしというか、デバッグしながら中途半端に遡り状態で放置した 記譜をガッツリ遡りチェック中なので暇です。で、よからぬ蟲が疼きだして、そろそろ ボードを作ろうかと思い始めました。ソース消失前は、min-Max版時代のボードが あったのですが、また作り直しです。 オセロにも碁盤ソフトみたいなのがあれば良いのですが、無いようなので自作を検討。 囲碁のGTPみたいなプロトコルを作って、思考エンジンとGUIを分離できたら良いなぁと。 というわけで、匿名パイプを使ったプロセス間通信について勉強してました。 サンプルコードが10年前のC言語しかなくて解読に苦労しましたがエコーサンプル を修正しながらテスト。coutとcerrを別パイプに分離して、スレッド管理はPPLにお任せ にするところまでやって、ようやく納得。 ボードGUI作って、プロトコル決めて、AIエンジン部を対応させてと、まだまだやる事が ありますが、最終的には自動対局までできたら良いなあと。リソースの限界はあります が、パラメータで強弱が出そうなので、客観的に評価したい。 というか、GUIの作り方から学習し直しだ… GUI触りたくないからボードソフト探していたのに、無いから自分で作るという罠。
199 名前:310 mailto:sage [2018/01/11(木) 22:48:49.47 ID:TAFrfVFR.net] >>191 色々見直して、若干速度は回復しましたが、最初にRollout外した時のびっくりする ほどの速度は出なくなっちゃいました。ただ、時々瞬間的に速い時があるので、 単純ではないかもしれません。 30手過ぎるとどんどん選択しが狭まっていきますので、ツリーサイズは小さくなって いきます。ここで、一部の手に探索が集中して、100万探索単位で追加探索したとき にようやく他の枝を調べ始めるようで、それでもツリーサイズはそれほど大きくならない ので、メモリーはそれほどボトルネックになっていない感じです。 UCB1のCをいじったり、ポリシーの探索比率をいじったりして様子をみていますが、 あまりフラットに探索すると、正解にたどり着けないまま終盤を迎えてしまうし、 かといってスティープに探索すると、間違いを訂正するまでの追加探索が大量に 必要になるしで、調整が難しいです。そもそも評価関数の精度が十分じゃないと 言う事なんだと思います。
200 名前:535 mailto:sage [2018/01/13(土) 21:35:44.20 ID:yngzNrQg.net] コネクト4、マルチスレッド化されてるみたいですね。 何か読みにくいと思ったら。
201 名前:535 mailto:sage [2018/01/13(土) 22:44:48.29 ID:yngzNrQg.net] 多分、コードに飛びつくのはまだ時期尚早なんだろな。 もうちょっとAlphaZeroの基本アイディアを理解してからじゃないと。
202 名前:310 mailto:sage [2018/01/14(日) 01:33:25.53 ID:Wql34YtP.net] コネクト4のGitHUBってどこにありますか? ちょっと見てみたいかも。 GUI作ろうと思って調べたら、VS2017からなんかだいぶ変わっているみたいです。 MFCは非推奨との事で、ユニバーサルWindowsとかってやつと、あとはCLRですか。 両方試してみようとしたのですが、ユニバーサルWindowsはWindows10じゃないと ダメっぽい。CLRはなんかエラーで動かない…。他にもC#だと楽だとか色々ある みたい。MFCは使えるのですが、もう忘れたし、面倒くさかった記憶しかない(汗 C#で作るって手もあるみたい。 とりあえずC#を勉強してみようかなぁというところです。 脱線しすぎだなぁ。
203 名前:535 mailto:sage [2018/01/14(日) 17:46:25.82 ID:NeYy2Zy+.net] https://github.com/Zeta36/connect4-alpha-zero これです
204 名前:名前は開発中のものです。 [2018/01/15(月) 19:10:16.04 ID:SOjHonZe.net] >>310 オセロ用の確立された GUI はありませんが、 nboard www.orbanova.com/nboard/ xboard / winboard (alien edition) hgm.nubati.net/alien.html Othello Engine Protocol (cassio) cassio.free.fr/engine-protocol.htm Edax はいずれもサポートしているので、プロトコルは ソースでも見られます。
205 名前:535 mailto:sage [2018/01/15(月) 22:46:04.01 ID:iBxpq5YC.net] 310さんと私以外の書き込みがあるとは珍しいですね。 実はROMも意外といるんだろうか
206 名前:310 mailto:sage [2018/01/16(火) 01:56:04.23 ID:8d/ib1bw.net] >>200 どもです。ダウンロードしてみました。 酔っぱらって帰ってきたところなので、明日以後見てみます。 >>201 ありがとうございます。 cassioはmin-Max前提みたいですね。 nboardとxboardは明日以後見てみます。 とはいえ、もうすでに作り始めてしまいました(汗 c#はVBみたいな感じですね。10年くらいVBも触っていないので、VB自体も 昔とはだいぶ違うんだと思いますが。 まずは匿名パイプでのやり取りまで確認できました。 色々なソースのつぎはぎでわけわからんけど、何とかC++とAPIで作ったサーバ 側と同じ動作するものが動いています。
207 名前:535 mailto:sage [2018/01/18(木) 00:27:09.66 ID:+dGVWc2f.net] GitHubでウインドウズでも簡単にビルドできそうなAlphaZeroクローンを物色中。
208 名前:201 [2018/01/19(金) 19:49:16.63 ID:nx2VVS4x.net] ところで、 Learning to Play Othello with Deep Neural Networks https://arxiv.org/abs/1711.06583 はチェックされていますか?
209 名前:310 mailto:sage [2018/01/20(土) 13:01:59.38 ID:Zq3gts8j.net] >>205 ありがとうございます。 さっそくダウンロードしました。
210 名前:535 mailto:sage [2018/01/20(土) 23:55:57.24 ID:1Kz+zB3+.net] いろいろ試してみてるけどスキルが足りなくてどれもうまくいかないデスネ。 今これ見てます。 https://github.com/adepierre/Caffe_AlphaZero
211 名前:535 mailto:sage [2018/01/21(日) 00:31:51.93 ID:qH0IRvSF.net] ん〜なんかアンチウイルスソフトが警告だしてきたorz どうしようかな…
212 名前:535 mailto:sage [2018/01/21(日) 23:00:34.14 ID:qH0IRvSF.net] gflagsとかglogとかいうのが必要らしいんだが アンチウィルスソフトが勝手に何か裏で削除してるらしく うまくmakeできないorz なんなんだこれは?
213 名前:535 mailto:sage [2018/01/25(木) 20:47:17.06 ID:deBVwh8E.net] モチベ保てなくてガッツリサボリ中w 仕事が忙しいのもあるけど
214 名前:310 mailto:sage [2018/01/27(土) 00:56:40.42 ID:0QPAoXtC.net] 自分もGUIでモチベ保てず、がっつりさぼり中。 技術的に難しそうな事は気合入るんだけど、どっちが黒番とかのラジオボタン をどうしようかとか考え出すと、思考が止まってしまう(汗 一つの項目で諦めがつくまでに3日づつかかっていますorz
215 名前:535 mailto:sage [2018/01/27(土) 23:18:12.98 ID:EzLPwnOa.net] postd.cc/alphago-zero-how-and-why-it-works/ これ読んでます。 とりあえず、一旦コードから離れて基礎知識を充実させる方向で。
216 名前:310 mailto:sage [2018/01/28(日) 17:18:05.66 ID:0oeW9Kee.net] GUIのパスの処理を真剣にチェックしだしたら、特定のケースで動作が おかしいので、丸々一晩デバッグしていました。ケースは特定できてた のですが、ぱっと見まったく原因がわからず。 C#はオブジェクトを代入すると参照になるのでした。やられた。 やっぱCというのは名前だけですね。
217 名前:535 mailto:sage [2018/01/28(日) 23:56:16.68 ID:yuGXDS1r.net] https://github.com/junxiaosong/AlphaZero_Gomoku すいません。またコード見始めてます。 多分これがウィンドウズで動かすの一番簡単な奴な気がするw
218 名前:535 mailto:sage [2018/01/29(月) 20:05:24.91 ID:WXPd8Jtc.net] human_play.pyでモンテカルロAIは動いたけど深層学習AIが動かないorz. theanoとかいうライブラリが上手くインストールできてないっぽいorz
219 名前:535 mailto:sage [2018/01/29(月) 20:08:40.86 ID:WXPd8Jtc.net] うう、心が折れそうorz
220 名前:535 mailto:sage [2018/01/29(月) 21:03:35.36 ID:WXPd8Jtc.net] こんなエラーが出るんだが何がないって言われてるのかわからん。 誰かわかる人いる? ... File "C:\Python27\lib\site-packages\theano-1.0.1+unknown-py2.7.egg\theano\gof\ lazylinker_c.py", line 127, in <module> preargs=args) File "C:\Python27\lib\site-packages\theano-1.0.1+unknown-py2.7.egg\theano\gof\ cmodule.py", line 2359, in compile_str (status, compile_stderr.replace('\n', '. '))) Exception: Compilation failed (return status=1): /usr/x86_64-w64-mingw32/bin/ld. exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory. collect2: error: ld returned 127 exit status.
221 名前:535 mailto:sage [2018/01/29(月) 23:39:21.86 ID:WXPd8Jtc.net] ライブラリに互換性がないって言われてるような気がする。 Cygwinに入ってるライブラリは互換性ないってことか? どこでライブラリ入手すりゃいいんだ??
222 名前:310 mailto:sage [2018/01/31(水) 00:01:03.41 ID:EjEC4Ae7.net] すまん。わからんけど、collecdt2というフォルダ(ファイルかも)が無いと言ってる? こちらは、どうしても画面が崩れてしまうので、最初から作り直し。 原因は、トップのFormでauto resizeをtrueにしていた事でした。 ゲームの進行を上手に管理する方法が無いか考えていると、つい寝てしまうorz
223 名前:535 mailto:sage [2018/01/31(水) 20:29:33.40 ID:u/gx4uXy.net] すいません。 コマンドプロンプトで実行したら>>217 のようなメッセージでライブラリ名わからなかったのですが Cygwinで実行したらライブラリ名が出てきました。 それぞれ4行づつ同じ行が出るのですが1行に削って張ります。 library stdc++ is not found. library mingw32 is not found. library gcc_s is not found. library gcc is not found. library moldname is not found. library mingwex is not found. library msvcrt is not found. library advapi32 is not found. library shell32 is not found. library user32 is not found. library kernel32 is not found. library mingw32 is not found. library gcc_s is not found. library gcc is not found. library moldname is not found. library mingwex is not found. library msvcrt is not found. これに続いて同じ名前のライブラリはあるけどコンパチブルでない的なメッセージが出ています。
224 名前:535 mailto:sage [2018/02/04(日) 02:31:39.86 ID:8N3h1IXY.net] キタ━━━━━━(゚∀゚)━━━━━━ !!!!! 動いたっぽいです。 Theanoってライブラリのバージョンが0.7.0じゃないといけないみたいです。 ここまでめっさ時間かかったorz 遅れを取り戻さんとな。
225 名前:535 mailto:sage [2018/02/04(日) 18:58:20.09 ID:8N3h1IXY.net] せっかく動いたけどpython読む根性がなかなか湧いてこない。 つか多分pythonじゃなくても読むのしんどいんだけど。
226 名前:310 mailto:sage [2018/02/04(日) 20:16:17.17 ID:Wmf+lsae.net] 他人のコードは読みづらいですよね。 1年前に書いた自分のコードもですがorz Theano動作おめでとうございます。良かったです。 こちらは…GUI作るのに嫌気がさして、学習部をいじっていましたが、 そろそろ〜30手の評価関数もそれほど酷いものではなさそうな気がしてきて、 中盤探索9手読み(なんの工夫も無し)で記譜作れる事に思い至りまして。 つまり、MCTSより短時間で記譜作成できると…。 この学習で、もし中盤探索の読みがそこそこな精度になってしまったら、 そもそもMCTSにする意味ないじゃんという現実からいかに目を背け続けるか という戦いが始まりました(涙
227 名前:535 [2018/02/05(月) 18:27:38.68 ID:Q1ssK5oS.net] やはりこの業界で生きていくには パイソンの習得は必須…
228 名前:535 mailto:sage [2018/02/05(月) 20:15:05.78 ID:kkO201mJ.net] ということでパイソンの入門本買ってきました。 とりあえず囲連星のルールを実装してみます。
229 名前:310 mailto:sage [2018/02/05(月) 23:37:11.58 ID:tGe3CIWd.net] 相変わらず、GUIから逃げています。 アルファ碁でいうところのポリシーネットの学習を放棄して、代わりに評価値から P(UCT探索に対する絞り込み項)を生成していましたが、これをQ(UCT探索の 予想スコア:これまでの探索の加重平均)から、1プレイアウト毎に再計算するよう にしてみました。 多少探索速度は落ちますが、良い感じかなぁ。