[過去ログ]
【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
【オセロ,将棋】ボードゲーム【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
661: 310 [sage] 2016/11/16(水) 09:03:26.60 ID:uZWbEwsE 自分のつたないオセロ力では、モンテカルロが着手した手が良いのか悪いのか わからないので、どうしようかと寝ながら考えました。 まず考えたのは、完全読み切りルーチンを作って、終盤に限っては正解着手も 探索してみる事。でも、最終的には終盤は完全読み切り使った方が、正確で早い ので、そちらを使用。中盤や序盤の具合がわからない以上、ほぼ意味なし。 続いて、WZebraにある「解析機能」を実現できないかと考えました。中身はわからない ので想像。使用して感動した経験あり。 「後ろから解析」なら、αβを後ろから回し、自分が着手した手より良い手が無ければ βカット、あればそれで生じたスコアの増減を記録という形で、中盤のある程度のところ までは、遡りつつ誤着手を検出できるんじゃないかなと。棋譜にある着手はこのロジック で評価が定まっているので、探索を省く事ができます。評価関数を持っていないので、 遡れても30〜35手目くらいまでかと思いますが、読み切りルーチンをいじれば作れ そうなので、トライしてみようと思います。 誤着手率がわかっても、簡単に直らないのがモンテカルロですが…。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/661
662: 535 [sage] 2016/11/19(土) 18:30:11.32 ID:X8ZFdPyh ん〜Zen負けちゃった。 期待してたんだが。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/662
663: 310 [sage] 2016/11/19(土) 20:47:46.55 ID:F+e1LSRb とりあえずWZebra相手に戦ってみたのですが、全滅しない程度に負けますw 評価値が全然違うというか、自分は有利なつもりで進んでいても、Zebra的には +50とかになってます。40〜50手目付近で末端までツリーを展開してようやく 気づくみたいな。そこまで行くと、ほぼ間違えなくなる(当たり前)のですが、序盤 中盤があまりに酷いので、定石ルーチンで助けられないレベルかなと。 そもそも評価値が間違いまくりで、自分のAIは少し有利くらいの勝率になっている のに、zebraは既に+30とか+50とか。形を見ても、素人目にも全く不利な形に。 ランダム着手で勝率や平均スコア求めても意味が無いかも、という本質的な 課題に突き当たってしまいました。 ツリー依存度を上げようと閾値を下げてツリー展開しやすくすると、あっという間に メモリが溢れてしまいますので非現実的。本来はucb1の計算が機能して、変な ツリーに手を回さないのですが、むしろ変な手にロックオンしてしまいがち。 囲碁みたいに、1手の価値や、最終的な形が同じなら着手する順番関係ないよう なゲームじゃないと厳しいのかなと思い始めています。 相手の入力待ちの時のバックグラウンド探索では、敢えて初手についてのみ全て の手に均等に割り振って、ツリー展開を進めさせてみたのですが、これもやりすぎ ると簡単にパンクしてしまうので、ほどほどにという感じです。 アンドゥ機能を消して、終わったツリーをバサバサ消す仕様に変更です。 というわけで、解析とか後回しして、強さを上げられないか検討です。 ヒューリスティックな手法で、プレイアウトをもう少し現実的に。同様にUCB1に多少 細工して、よさそうな手の割り当てを増やせないか検討してみます。といっても、 相手の着手可能位置の数を減らすような手を優先するくらいしか、アイデアはあり ませんが。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/663
664: 310 [sage] 2016/11/20(日) 16:54:24.84 ID:4i7ILKOH 「相手の打てる箇所が少ない手を確率的に増やす」程度では全くダメでした。むむむ。 脳内では、プレイアウトの次の1手を決めるのにDCNNでみたいな…本末転倒な対策が 渦巻いてきています(汗。手元にある囲碁のモンテカルロ本(彩の解説、技術的な種本) でも、自分の石の周辺のパターンを統計的に処理して着手確率を計算みたいな事をして いまして。オセロでいうと評価関数みたいな事をしていたりします。 オセロは、着手する石の価値が重すぎるので、モンテカルロが向かないって当たり前の 結論ではあるのですが。それにしても、あまりに弱い。 というわけで、ダメ元でプレイアウト時に開放度で着手確率を変える方法を試してみつつ、 技術的勉強で、もう一度、きちんとツリー並列で並列化を実装してみようかなと思ってます。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/664
665: 535 [sage] 2016/11/20(日) 21:28:29.17 ID:gm8FgHLO も〜インテルさん早く1ThzのCPU出してよ〜w http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/665
666: 535 [sage] 2016/11/23(水) 19:46:23.65 ID:/Z9U4oFa Zen負けちゃったか〜 でも一勝しただけでもすごい。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/666
667: 310 [sage] 2016/11/23(水) 23:37:07.28 ID:wq9OFZ+n うむぅ。アルファ碁があるから期待高いけど、互先で1勝したのは凄いよね。 まだ伸びしろありそうだから、次回に期待ですね。 こちらは、モンテカルロがあまりにダメダメで悩み中です。 煮詰まってしまったので、ツリー並列をきちんと実装したり、終盤探索作ったりしてました。 終盤探索は、ようやく>>460さん指摘の偶数理論を実装しました。どうやるのかなかなか 思いつかなかったけど、手を動かしだしたらわかるものですね。Zebraとかのソース見て いないので、もっと良いやり方があるかも知れませんが。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/667
668: 535 [sage] 2016/11/25(金) 20:21:12.84 ID:udjtSdAy 終盤の打ち方はまあまあいいんだが序盤が致命的すぎる。 思考時間もめちゃめちゃ長いし。 あと強化学習やりたいけどアイディア湧いてこないなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/668
669: 535 [sage] 2016/11/26(土) 14:07:56.90 ID:3TEfCPcy LV2が思考速くて強いからってLV2の棋譜大量に集めたら学習が偏りそう? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/669
670: 310 [sage] 2016/11/28(月) 13:44:46.30 ID:moEHPVOW >>669 やってみないとわからないけど、棋譜は質が良くて偏らないってのが基本だからね。 間違えたら間違えたなりに、負けてくれる棋譜じゃないと、変な学習しちゃうかも。 この辺の兼ね合いが難しい。 ただ、スタートの棋譜をその辺にして、だんだん更新しつつ、強くしていくって方法も あるかと思う。 こちらは、終盤探索に手こずっています。 AVX2命令をオペレーターオーバーロードして使っているのですが、グローバルなのが 気持ち悪くて、クラスに変更。ついでに見直しをしていたら、過去にどうしてもわからなくて 別の方法で逃げてしまったバグをようやく解消。速度には大した影響ないですが。 一番の問題は、評価関数を持っていないので、MPCが使えない事。MPCのスレッショルド を広げながら置換表使って、moveorderを最適化していたので。他の方法で速度アップを 考えないといけない。逃げてを考えると、結局、NNなりなんなりで別の評価関数なり、次の 1手ヒューリスティックが欲しくなります。もともとNN方面に行ったのは、そこが目的だった 事を思い出しました(汗 モンテカルロは、プレイアウトを疑っているので、いずれきちっとやり直してみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/670
671: 535 [sage] 2016/11/28(月) 22:46:28.36 ID:nf8GSvVi NN興味ありますねぇ。 Zenチームの人とかがわかりやすい解説本書いてくれないかなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/671
672: 535 [sage] 2016/12/02(金) 21:41:56.73 ID:Vv9WnV3F モンテカルロはやはりプレイアウトの質がカギか? 軽くて良いヒューリスティックが欲しいところだ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/672
673: 535 [sage] 2016/12/02(金) 22:02:53.36 ID:Vv9WnV3F モンテカルロは良い枝をカットしないこともかなり重要とみた。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/673
674: 310 [sage] 2016/12/04(日) 20:20:17.67 ID:E6FCgpFL うーん。モンテカルロはFFOなんかで残り20手くらいから戦うと、結構まともな着手を するんだけど、10〜30手目付近がわざとじゃないかというくらい悪い手ばかり選択する。 残り10手くらいまで行けば完璧。 序盤は次の1手が多すぎるのと、プレイアウトで回す回数が単純に多いので、ツリー部が なかなか深くならないし、あまり簡単に深くするとすぐにメモリーオーバーフローしちゃうし で難しい。 >>673 UCTではカットはしません。単純にプレイアウトの割り当ての順番がなかなか回ってこなく なるだけです。良い手に優先的に割り当てさせるためには、やはりプレイアウトで良い手は 良いと、悪い手は悪いと評価できなきゃならんわけで。それが難しいからモンテカルロだと 言う矛盾。 まあ、オセロの場合は、伝家の宝刀評価関数があるので、プレイアウトを20手くらいで 打ち切って、評価値を返すとか…MPCみたいな事をして無駄な着手を回避させるか… と、本末転倒な妄想をしてます(汗。良くなる点は、時間管理が易しくなるくらいかな(涙。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/674
675: 310 [sage] 2016/12/06(火) 00:37:18.95 ID:zUbz1knV モンテカルロが弱い理由を探ってます。 WZebraと対戦させると、一番顕著なのは、モンテカルロは辺に着手したがり、その結果 WZebraに内側に潜りこまれて選択肢が減っているという事です。流石に×とかCには 簡単には打ちませんが、序盤からあっさり中辺に出て行き、更にあっさり辺に打ちます。 相手もランダムに着手したとすると、辺の石は1方向からしか返せない(内側は4方向) ので、プレイアウトでは残りやすくなると言う仮説を立ててみました。つまり全部で28石 ある辺の攻防が相対的に下手くそになるため、プレイアウトの結果が楽観的になりすぎ ているのではないかと言う事です。 残り20手切ってくると、ツリー展開できているので、min-Max的に攻防できるけど、それ より前の段階ではプレイアウトで、相手のミスを咎めるような手を打たないといけないと 言う事かなと思います。 これをどう次の1手の確率分布に表現するかですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/675
676: 310 [sage] 2016/12/11(日) 01:06:32.29 ID:8cq3+Gjk なんか袋小路に入ってます(汗 プレイアウトの改良は速度低下との戦いになり、効果が出ません。 結局、とにかく無駄をそぎ落とし、単純化してプレイアウト回数を稼いで、なおかつ ツリー展開の閾値を下げて、ツリーに頼る形になりました。 が、ここでメモリーパンクとの戦いが始まります(涙 中盤の分岐が多い局面だと、あっという間にツリー部で8ギガくらい使ってしまいます。 更に処理を単純化してメモリー使用量削減に走る事に。 結局、40手目以後なら使えるけど、それ以前ではあまり精度が期待できないという、 当初やりたかった、少しマシな序盤・中盤探索という目論見は崩れてしまいました。 評価関数があるんだったらαβの方がマシという当たり前の結論に傾きつつあります(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/676
677: 310 [sage] 2016/12/11(日) 23:57:52.07 ID:8cq3+Gjk たった一晩で楽観してきました。 今までsoftmaxで確率分布を変えていましたが、あまり大きな差はついていないようだった ので、この際、思いっきり割り切ってみました。1位に70%、2位に25%、残り5%で他の 手に均等割り。イメージとしては1σ、2σ、その他って感じです。ヒューリスティックは αβのmoveorderのものを使用。 もちろんzebraにはぼろ負けですが、今までと違うのは、相手を囲んで着手可能位置を 減らしてしまう事が無くなりました。ちょっとした手ごたえを感じています。これをスタート に、ヒューリスティックに終盤変化を組み込んだり、序盤は開放度にしてみたりして検証 しようかと思っています。プレイアウトの精度があがったら、無駄にツリー展開しなくて 済むので、メモリーにも優しくなれるかも。 また、敗勢での発狂モードや、勝勢での手抜きモードの原因は、勝敗が明らかになり、 手毎の勝率の差がなくなる事が原因です。プレイアウト回数が多いからか、評価値は かなりデジタルに変化するので、25%、75%などを境目に、石差評価に変更すると、 ある程度回避できるんじゃないかと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/677
678: 310 [sage] 2016/12/19(月) 00:57:35.60 ID:V27xPT8O 地味に色々改良。素UCTに色々追加してます。 ・uctの終盤にsolverを組み込んだ ・手の割り振りに全手均等な部分を作って読み抜けの可能性を減らした の2点が主な追加点です 当初想定していたより結構強くなったと思います。 AI黒番30秒探索。zebra思考中にもMAX30秒探索で、zebraに対しては20石強負け くらい。序盤1回間違えて、中盤ジワジワ差が広がって、40手前後で読み切りできず に間違う感じ。序盤は定石で回避できると思いますが、中盤の間違いは2番手の手を 選んでしまいます。修正は難しい感じ。終盤はチューニングか、探索時間延長で対応 できないか検討。 テストで作った20手目で黒+12(zebra評価値)程度の盤面からは、zebraが間違える のか、終盤に入るところまで、かなり押してまして、読み切りミスで22石差→16石差と ぬるい手を打ちましたが、勝ち切る事ができるようになりました。 ここから先は、レーティングが欲しいなぁ。 オセロでAI使用OKなところないですかね? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/678
679: 310 [sage] 2016/12/22(木) 01:29:32.37 ID:4YVdXlZ1 地味に色々改良した結果、あらかたボツにしてます(汗 発狂モード対策でスコア最大化を図ろうとしていましたが、極端なスコアが悪さしている ようなので、結局勝率のみに限定しました。この時点で終盤はsolver任せに方針転換。 で、勝敗のみにした事で、solverの探索範囲を+-1のシングルウィンドウにできて スピードアップしたのでプレイアウトのラスト7手くらいでも使用する事にしました。 プレイアウトでは、moveorder順の下位はバッサリカットしました。酷い手が混入する とスコアが散らかるので。 uctのif分ネストがスパゲッティ化したので、処理順を大幅に見直したら、時々落ちるように なってしまった。並列化が原因かそれともshared_ptrの使い方が悪いのか、散々調べた 結果、ちゃんと全体をリビルドすれば回避できる事が判明。俺の時間を返せorz テストで使用している引分手順30手目から開始すると、たいていは負けてしまうけど、 希にzebraが認識していない勝利手順を見つけて勝つようになった。乱数の具合なので 再現性は低いけど、zebraの評価値にも間違いがある事を実感した。 ここのところ30手目〜40手目をターゲットに改善していたけど、それなりに成果が出た。 40手目以後はsolverを使用し、対局開始は定石DBを20手分くらい用意したら、まあまあ なAIになるかなぁと思い始めました。ただ、1手30秒考えるのは長すぎるなぁ。 あと、正しい手順を見つけ勝率も上回って来ているのに、探索時間が足りずにプレイアウト 回数で負けて最善手が選ばれないケースが散見されます。ものの本だと、そういう時は 探索時間を延長するとか書かれていますので、対応してみようかと思っています。 というわけで、なんか行けそうな気がしてきた。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/679
680: 310 [sage] 2016/12/27(火) 01:58:53.16 ID:lSRXuhfg uctの探索部分がある程度できたので、とりあえずDOS窓ベースでゲームとして成り立つ ようにしました。edax-pvbook_2009.wtbから作った40手分の定石DBをつけて、終盤探索 は40手目からsolverで。multi probe cutできないので、FFO#40で1.3秒程度の性能です。 その他諸々。探索時間延長とか。タイマーを作り直してプログレスバーつけたり。 WZebraの20手読み、定石DB変化大相手に、まれに勝ちます。直接対決はまだして ませんが、以前自分が作ったmin-Max版よりちょっと弱いくらいかなという感触です。 モンテカルロは乱数がらみで、ナチュラルに変化しちゃうので、5〜10手に1回程度は ミスをしちゃう感じです。 プレイアウトはもう少し詰められそうだけど、まあこの辺が潮時かなぁ。 次は何しようかな。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/680
681: 名前は開発中のものです。 [sage] 2016/12/27(火) 06:12:54.86 ID:A0w16iJG Vectorとかで配布しては? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/681
682: 310 [sage] 2016/12/28(水) 10:02:51.11 ID:8e16q4EG vectorは考えてないですが、どこかでソース晒しても良いかなと思っています。 しばし検討。 なおUCT探索の探索時間は30秒にしてます。微妙な時は10秒づつ探索延長します。 また、人間が長考すると、その分だけバックグラウンドで探索が進んで強くなります。 気が長い人におすすめです。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/682
683: 名前は開発中のものです。 [sage] 2016/12/29(木) 00:29:19.19 ID:T+iok27x GGSってまだあるんだっけか トッププログラムの開発者はみんなあそこで対戦しつつ改良してる http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/683
684: 310 [sage] 2016/12/30(金) 02:11:45.43 ID:iZpfxqhq >>683 GGS探したけど見つかりません。 オセロのAI自体、行き着くところまで行っちゃってるからなぁ。 コメントの整備をしていたら、細かいところが気になって、あちこち手を入れています。 手を入れながら、UCTの探索結果があるので、それでmoveorderすれば良い事に気が つきまして。SOLVERが少し早くなったので、終盤探索は38手に格上げ。 しかし、テストプレイしていたら、SOLVERのバグ発見。終局まで打ち続けると、50手目 近辺で間違えます。並列探索部分で、negaScout的に再探索かかったあたりにバグが ありそうという所まで絞り込みましたが、ちょっと厄介な感じ。 ソース晒す用に昔使ってたDTIのホームページを使えないか調べたら、サービスごと 終了してました(汗。 久々にオセロAIで検索したら、MLPでAIのテストをしている人がいました。評価関数では なく、次の1手で使っているようです。比較的軽い構成なので、気が向いたらもう一度、 トライしてみようかと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/684
685: 310 [sage] 2016/12/30(金) 20:08:38.43 ID:iZpfxqhq バグ直りました。数日前に速度アップできると思いつきで直したところでした。 直ったは良いけど、何故バグるのか理解できないorz http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/685
686: 名前は開発中のものです。 [sage] 2017/01/01(日) 01:33:49.09 ID:AXNNcWXn 個人的にはディープラーニングやって欲しい http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/686
687: 310 [sage] 2017/01/02(月) 09:01:41.61 ID:YMPtqKka いま、Bloogerにサイトを作ってやっつけで解説文を作ってます。 あらかたできたら公開します。 が、解説していると細かいバグを見つけて、直して確認が必要になるという…。 やっぱ次はディープラーニングですよね。Eigen使ったMLPで次の1手をやってみます。 DCNNももう一度トライしたいと思っていますが、貧弱なパソコン環境ではどうにもならない かも知れない。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/687
688: 535 [sage] 2017/01/06(金) 21:06:02.45 ID:/dmWmgCn ネット碁でアルファ碁が無双してるみたいですね。 60連勝?とか凄すぎw http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/688
689: 310 [sage] 2017/01/09(月) 14:10:27.74 ID:kUxHCmxW 60連勝の相手が、マジトップ棋士だってんだから、あきれるしかないですね(笑 解説書きながらソース見てたら、色々直したくなってしまい、泥沼化しています(汗 強くなったと思ったら弱くなっていたというのの繰り返しです。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/689
690: 535 [sage] 2017/01/15(日) 01:15:01.84 ID:FqCBSr/V TensorFlowで学ぶディープラーニング入門って本読んでます。 かなり易しく書こうとしてるのが伝わってくる本なんですがそれでも難しい。orz http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/690
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 312 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s