【オセロ,将棋】ボードゲーム Part2【囲碁,War】
■ このスレッドは過去ログ倉庫に格納されています
比較的地味なボードゲーム専用のスレが欲しくて立ててみました。
前スレ
【オセロ,将棋】ボードゲーム【囲碁,War】
http://mevius.2ch.net/test/read.cgi/gamedev/1057763418/ 五目系なら、周辺5マスが把握できていればよいかもよ。
比較検証しなきゃわからんけど。 うーん、そうなんですか?。
ライフゲーム囲碁はもろ周辺5マスなんですけどね。
囲連星成功したらライフゲーム囲碁もやりたいですね。 くそ〜何時まで経っても一手の重みみたいなものを理解してくれないorz.
なんか足の遅い打ち方するんだよなぁ。
もういっそ20層にしちゃおうかな orz ん、ちょっとづつだけど強くなってる気がする。。。
くそ〜Googleの計算リソースがあれば30分くらいで名人超えるんだろうけど。。。 自己対戦が勝率100%行ってしまいました。
対戦相手も更新されていくなら勝率100%は行かないと思うんですが。
もともとの実装がなにかおかしいのだろうか… まだ公式AIに勝てないけど毎日ちょっとづつ進歩しているのは感じる。
まだ希望はある。 Alpha Zeroのアルゴリズムは囲連星よりもライフゲーム囲碁に向いてる気がする。 FacebookがELF OpenGoというのを公開したとか。
プロ棋士にも勝てるみたいですね。 ELF OpenGo もGPU 2000台とか使わないと強くならないみたい?
は〜絶望する。 昔のLeela zeroもそうでしたがシチョウが読めてないっぽいですねぇ でもちょっとづつでも確かに前進してる気がします。
ロールアウトの回数増やしたら学習の質も上がるかなぁ?
やってみるか。。。 ん、lossとentropyがかなり増えてますね。
ロールアウトを増やしたえいきょうだろうか? ネットワークを192 * 20 にしたい衝動に駆られるw
危険な賭けだが… キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
公式AIに初勝利!
内容としては相手のミスに助けられただけだけどそれでも格段に進歩してる!
(
;FF[1]GM[1]SZ[9]
;B[fe];W[fc];B[de];W[dc];B[ed];W[ec]
;B[gc];W[gb];B[ee];W[cb];B[ce];W[hb]
;B[ge];W[fh];B[be];W[gd];B[he]) 惜しい!惜しいなぁ。
中盤まで内容は圧倒しておきながら最後の盤端のシチョウが読めずに逆転負け。
学習途中のAlpha Zero系の弱点が出てしまいました。
でも、ここ克服したら100戦100勝もあり得るかも。
(
;FF[1]GM[1]SZ[9]
;B[df];W[fe];B[de];W[cg];B[ef];W[hg]
;B[ff];W[gf];B[cf];W[gd];B[fg];W[gh]
;B[dg];W[gc];B[gg];W[ge];B[dc];W[hb]
;B[dd];W[dh];B[db];W[da];B[eh];W[ha]
;B[eg];W[hc];B[he];W[ie];B[hf];W[if]
;B[hd];W[id];B[he];W[ch];B[hf];W[hd]
;B[he];W[hf];B[di];W[he]) 本来負けてたはずのゲームですが逆転勝利しました!
以前より大分、棋理のようなものが身についてきている感じがします。
ロールアウト増やしたのが効いたかな?
(
;FF[1]GM[1]SZ[9]
;B[df];W[fb];B[ef];W[ff];B[fe];W[ge]
;B[fg];W[gf];B[gg];W[cg];B[cf];W[hg]
;B[fd];W[gd];B[gc];W[hc];B[fc];W[hb]
;B[hf];W[hd];B[he];W[eg];B[dg];W[hh]
;B[eh];W[eb];B[dd];W[gb];B[db];W[dc]
;B[ec];W[de];B[cc];W[bc];B[ed];W[id]
;B[ce];W[ie];B[ei];W[bh];B[ee];W[ba]
;B[eg]) ぼちぼちウインドウズに移植することも考え始めなければ… 毎日棋風がすこしずつ変わっていくな。
面白い。
3線を重視し始めたようだ。 なんかネットワークの規模が足りてない気がしてきたわ。orz orz orz
一気に256 * 20くらいに増やしてみようかな?
気が早いかな〜 うーん、どうせやり直すなら早いほうがいいよね?
でもこのまま学習続けたら何が起こるかも知りたいし…
悩ましい。 思い切ってネットワーク構成を256 * 24 にしました。
激遅になりそうだが… ネットワークを192 * 6 から 256 * 24 にしたら計算量は(256*24)/(192*6)=5.333倍であってる?
まさか指数的に計算量増えたりしないよね? メモリが足らんといわれたぜwww
12GBも割り当てたのにwwww
こりゃニューマシン買うしかないな。 とりあえず、64 * 24 にしてみました。
これでも6GB位メモリ食う。
まじでスレッドリッパーに128GB積みたい衝動に駆られるw やっぱ24層は無理かもorz
全然学習が進んでるように見えないorz 残り28手のところで1か月足踏み。やっと記譜がたまってきた。
残り30手まで行くのに半年くらいかかりそうw
というか、まだまだパターンが足りていないかも。
>>396
隠れ層のサイズは2乗で効いてくるから、256^2/192^2。
深さは単純に計算量が4倍になるとして、ざっと7倍くらいになるのでは?
学習は深さが増えるとどんどんきつくなるかと。
誤差逆伝播の宿命です。 >隠れ層のサイズは2乗で効いてくるから
おお、そうなんですか。ありがとうございます。
>学習は深さが増えるとどんどんきつくなるかと。
24層は諦めました。
今12層くらいで試行錯誤しています。 うーん、極めて微妙なバランス調整を強いられるのか?これは マシンパワーが潤沢にあれば、かなり大きいネットワークから学習させて、
最低限どれくらいの大きさなら弱くならないかが求められるんだけどねぇ。
Googleみたいに。 そういえば新しいスレッドリッパーは32コアになるとか。
うーん欲しい。 あんまりうまくいかないから気分が萎えてきちゃった。
少し気分転換するか… 層を9層に減らして再チャレンジ
どんどん後退していくが仕方ない くそーどうにもうまく行かね〜
一回試すのに結構時間かかるのも痛いorz あんまり上手くいかないんで頭おかしくなりそう
ちょっと休憩します >>411 くそー
パラメータ100種類くらい用意して同時に実行したい orz CPU Ryzen 2700X
GPU Geforce 1080
Memory 64GB
SSD 500GB
これを満たそうとするとやはり40万円近くなる。
厳しい。 フロンティアってショップかなり安くない?
なんか裏があんのかな? フロンティアと言えば懐かしのフロンティア神代(こうじろう)かなと思ったらビンゴでした。
Wikipedia情報によると、フロンティア神代はヤマダ電機に吸収されて解散していて、
BTOショップにフロンティアという名前だけ残っているみたいです。
ヤマダ電機なので裏は無いでしょうね。
7980XEに1080Tiで128Mとかにしていくと、だいぶ価格差は詰まっていきますが、
それでも多少安いみたいですね。というか、8700Kだったらかなり安いかも。 pytorchってAMDのGPU使えないよね?
Cudaだよね? 多層を重ねるのは諦めてフィルタ数で勝負というのもあるだろうか? 実はこっそり再開してましたが9層からさらに後退すべきか悩んでます。
ここから1層づつ減らしていって学習がまともに進むところまで後退するのを考えています。 8層も望み薄
7層は囲連星が7目並べだからあるいみちょうどいいかも? でも6層でだめで7層でOKというのもちょっと考えづらいといえば考えづらいんだよなぁorz. ゲームとして必要最低限と思われる最低限の層数から1層づつ増やして行って、
一つ前の奴に有為に勝てる様になるまでの学習時間を図っていくという手もある
かなと思います。
面倒でやりたくないですが。
自分はひたすら記譜作成。
少しづつ改良を加えていますが、残り28手(読み切りとしては27手)で足踏みして
います。早ければ6分程度で終わるのですが、いかんせん25〜26手目の評価
関数が穴だらけみたいで、長いと4時間とかかかってしまい、なかなか棋譜が集め
切れません。記譜が集まると速くなるのですが、集まるまでの時間がかかりすぎ。 パラメータ調整ってプログラミング本来の楽しみがほとんどなくてそこが辛い。
とくに他人のコードだと。
弱くてもオリジナルのヒューリスティック実装するのは楽しいんだよなぁ。
うーん。 すごくわかりますorz
だから、非効率でも、自分でNNのライブラリ作っちゃおうとしたりするのでする。 7層も駄目っぽいorz orz orz
もう少し粘るか悩むorz orz orz そこそこ上手くいってた6層のバックアップを引っ張り出して続きの学習をさせてみることにしました。
結局、全部無駄だった orz orz orz 長いと4時間…
出張中に丸48時間動かしっぱなしにしましたが、3つしかできなかった。
一つ16時間w なんか異様に辺の星を重視するようになった。
ちょっと単純化しすぎな気がするが、やっぱ層が足りてないのか? んあ、なんか一線打つようになった?
過学習かなんかか? 結局6層も駄目なのかなぁ orz orz orz
アルファゼロのポテンシャルはこんなものではないはずだが。orz orz orz もうちょっと粘ってみるけど、アルファゼロ(少なくとも>>214のプログラム)からの撤退も考え始めてるorz orz orz お、すごい!
まだ詰めはあまいけど、まるで地を取ることはいいことだという棋理を理解したような打ち方で勝った!
まだ希望はある!
(
;FF[1]GM[1]SZ[9]
;B[ee];W[eg];B[ec];W[ff];B[gd];W[dg]
;B[cd];W[cg];B[fd];W[dd];B[de];W[fh]
;B[gg];W[gh];B[hh];W[gf];B[hg];W[dc]
;B[hf];W[bg];B[he];W[ah];B[hc];W[hd]
;B[id];W[ba];B[hb];W[bi];B[hd]) ネイティブリナックスにしたら再起動なくなるんだろか ふと思ったけど詰みルーチンをルールに組み込んで詰みがあるときは詰みを打たなきゃいけないルールにして学習させて
十分学習したら詰みルールを外したら学習時間短縮できたりしないんだろうか?
ルールが違ったら全く重みが役に立たなくなっちゃうかな? 2線を重視し始めたようです。
毎日棋風が変わっていくな。
AIが自らいろいろ試してるみたいでホントに知性があるかのような錯覚を覚える。 相変わらず隅のシチョウが読めてないですね。
7連を作るにはほぼ必須なので克服してほしい。 圧勝の形勢を築いておきながら隅の石が取れずに逆転負け。
ここは何としても克服せねばなりませんなぁ。
(
;FF[1]GM[1]SZ[9]
;B[hh];W[df];B[cg];W[fg];B[gc];W[ef]
;B[gf];W[ge];B[cc];W[fc];B[ce];W[ed]
;B[cf];W[cd];B[bd];W[dd];B[bc];W[bh]
;B[bg];W[ff];B[fb];W[eh];B[ec];W[fi]
;B[fd];W[dc];B[db];W[eb];B[ea];W[cb]
;B[bb];W[dh];B[be];W[bf];B[ca];W[gb]
;B[cb];W[ch];B[gh];W[hb];B[de];W[ee]
;B[af];W[ba];B[fh];W[hc];B[ah];W[hd]
;B[eg];W[dg];B[gg];W[fe];B[ei];W[gd]
;B[ig];W[bi]) 強化学習は一通り失敗をして、ダメな手を覚えていくものですからね。 過去に途中でプログラム止めて、中途半端な状態になっている記譜(棋譜としては
成立しているけど、他の記譜との接点が無い)を見つけて、続きを実行するような
仕組みを作りました。
これで心置きなく途中で止められる。 いったん学習中断します。
気分を変えて囲連星やめてライフゲーム囲碁に逃げようかと思ってます。
プログラムもgithubから別の拾ってこようかと思います。
マルチスレッドに対応してて大規模ネットワークを想定してそうな奴。 githubに落ちてて大規模ネットワークに対応してるとなるとleela zero とかだろうか? んんん、AQってヒューリスティックてんこ盛りなんですかね?
他ゲームに応用が利かなさそうな怪しげなコードが見受けられるw
シチョウのコードとかあるっぽいし。
つっても囲連星なら応用効くだろうけど。
逆に19路囲連星に走るというのも考えられるw あかん、これは相当キツイわw
まあ勉強にはなるかもしれんがモノになるかは微妙だww やる気が出なくて、昔作ったモンテカルロのAIを動かしたりしていますが
モンテカルロでも割といい線行ってたんだとちょっと思いました。
なにかもう一度動き出すきっかけが欲しい。 相変わらずひたすら記譜作成中。
現状の記譜の中に、ランダム着手の記譜が混じっていて、そいつらを
遡るのにものすごく時間がかかる事が経験的にわかっています。
つまり、そこそこ最善に近い手を打っている記譜の遡りは早く、悪い手
ばかりの記譜は遅い。
現状、最善に近い手に対しては、そこそこまともな評価関数になっている
という事は言えるので、一旦遡り対象の記譜を消して、この評価関数で
作られる新しい記譜で継続学習させた方が良いかもと思い始めています…。 だめぽ
3連休も無為に過ごしてしまったorz
あと一日あるけど 棋譜作成のロジックをだいぶ変更。
過去の奴に当てはめると結構面倒な事になるので、
>>449の予告通り記譜はいったんリセット。
あと、パブリックドロー(残り40手最善)な記譜が
いくつか見つかったので、そいつらも棋譜に混入。
もっとパブリックドローな記譜が欲しい。 reinforcement learningとやらについてやさしく書かれた書籍ないかなぁ 勉強として>>214のソースちゃんと解読してみようかなぁ
やりっぱなしじゃ勿体ないかもしれないし。 熱暴走なのかpcが急に再起動したw
もし学習連続運転してたら火吹いて火事にでもなってたかもな pcが起動しないorz
電源ボタン押すとファンが少し動いて止まってを繰り返す
暑さで逝ってしまったか? あれれ。大変ですね。
うちは、ここ2〜3日回線ダウンでした。本日ようやくNTTに連絡して再開。
暑さでONUが死んでたみたいです。
棋譜作成は、結局元の棋譜もマージしてしまいました。
おかげさまでえらく時間がかかっています。 活動やめたら楽チンすぎてなかなか復帰する気になれないw
何かに追われるように毎日過ごしてましたからね。
メインマシンも壊れたまんまだし。
それはそうと13日にスレッドリッパー発売ですね。
金がないから買えないけど1ファンとして楽しみにしてます。 最近はボーっとしながらひたすら棋譜作成です。
そろそろハイクラスPCを買って、完全に放置プレーしようかと思っていたりします。
DCNNに対する興味はすっかり薄れてしまいました。
しばらくはゆっくりしたいですね。 NVIDIAからグラボの新作がでるとか。
それを機にPC新調してこのスレに復帰するか… メインマシン復活させようと思ってたぶん壊れたのHDDだと予想して
新しいHDD買ってきて動かしてみたけどはずれだった見たいorz
あんまハードウェアのトラブルシュートの経験ないんだよなぁ とりあえず外付の光学ドライブからlinuxの何か適当なデストリで起動させてみるべきでしょ お、レス付いてる。
ありがとうございます。
しかし、BIOSの画面すら立ち上がらない状態なのでどうしたものか… PC新調するとか言って、またプログラムいじってます。
もうやる事はないだろうとか思っても、なんか出てくるんですよね。 BIOS上がらないんだとすると、保証期間があるうちに
販売店に持ち込んでチェックしてもらった方が良いかと思う。
ハード障害の切り分けとかスキルとしては面白いけど、今の本題じゃないし。 うーん。もう保証書とかどっかいっちゃってますねorz
まあ、やはりここはしばらくお休みをいただいて
Geforce 2080のレビューが出るのをまって
よさそうだったらPC新調してそれから復帰します。
Geforce人工知能系も強化されてるとのうわさもありますし。 Geforceの発売が迫ってますね。
性能もいいけど値段もいい値段するとかって話で悩ましいですね。
しばらく様子見か。 新Geforce、とりあえずpytorchが対応するのかどうか、
対応したとしてどれくらい性能上がるかみきわめてからですかね?
仮に大金だして買うとしても。 ご無沙汰です。
地味に棋譜作成を続けていますが、そろそろ色々と重くなってきたので、
裏で新バージョンを作り始めています。探索に関係ないところは、色々
整理して結構軽くなった(と思う)のですが、探索部分の速度が大幅に
低下してしまって悩み中。
現バージョンとまったく同じ条件で比較したところ中盤探索で3倍弱は遅い。
比較してないけど終盤探索は下手すると10倍近く遅い感じ。
中身はほぼ一緒なので、何が原因で遅くなっているのか不明。
コンパイルオプションなんかは一緒。共通で使用しているclassのどこかに
原因が潜んでいそうなんだけど、違いが見当たらない… まさかまさかの__vectorcallが原因だった。
全部取っ払ったら中盤探索については逆に速度30%アップ。
変な事考えないでコンパイラに任せましょうというお話でした。 28コア56スレッド…
18コア36スレッドが安くなるかなぁ。
棋譜作成を新バージョンに乗り換えました。
全体的に速くなる修正については、10〜20%程度なので効果不明。
あと特定の条件で遅くなる原因を見つけて地味に潰しています。
後者については、一つ原因わかっていて直しようが無いものが。
並列処理にPPL使っているのですが、parallel_forではせっかく並び替えしても
ランダムに処理が走ってしまう事。ybwcなのでPVを最初に実行する事は保証され
ているのですが、PVが間違っていた時に、parallel_for内部で2番目の順位の
スレッドがいつキックされるのかわからないどころか、最悪一番最後の可能性も
ある点です。null window searchでβカットに強く依存しているので、ここは非常に
困ります。
解決策1)parallel_forの改良版を自分で書く
解決策2)スレッド数の多いPCに乗り換えて、この問題が起きる確率を下げる
どうしよう(汗 9900Kも結構面白いかも?
結局新PC購入に踏み切れてないけど、
来るべきその日のためにGithub漁るところから再スタートしようかなぁ 結局あきらめて解決策3)初段のみYBWCのお兄さんを2人にして様子を見てます。
forwardのロジック(最善手の手順で着手可能な手を展開)を全面改訂。
今まで降りていく手を、BitboardのLSBに近い方から1つだけ選択してましたが、
これによって局面の偏りが生じていたようなので、全て展開するようにしました。
棋譜の増殖が凄い事になっちゃうんだけど、仕方ありません。
同じ仕掛けでbackwardも書き直し。
Eigenの並列化、リソースモニタ見ても2コアしか使っていない感じ。4コア使う指定
しているのに。謎。
その他、並列化できるところは並列化を検討。
やっぱPC欲しい…12コアくらいでも良いかという気がしてきた。 局面の偏りが結構酷い事になっていました。
新しいforwardでは反復深化の評価値を表示するようにしたのですが、探索が進む
ほどに0になっていきます。そこで盤面のパターンが一回も出てこないケース(0値)
を調べたところ、後ろの方が大量に…。前回書いたLSB問題の影響がかなり大きい
という事です。
というわけで、棋譜作成の時には、少なくとも複数選択しあるときにはランダムに
選択するように変更し、既存の棋譜については、仕方がないので後ろの方をランダム
を導入した仕組みで再探索したものを追加していく事にしました。
1件1秒程度でできるので、折に触れてランダム化していこうと思います。
全部展開すると件数が大変な事になるので、様子を見ながらこの辺でお茶を濁して
みようと思います。 ■ このスレッドは過去ログ倉庫に格納されています