[過去ログ]
【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
【オセロ,将棋】ボードゲーム【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
691: 310 [sage] 2017/01/16(月) 13:21:19.22 ID:Cfoi8GBB カーネルサイズとかチャンネルとかフィルターのあたりですか? 僕の方は・・・モンテカルロだから間違えると思って、思考時間を増やしたり、末端ノードで 1回づつじゃなくて、100回づつプレイアウトするようにしたりして、プレイアウト回数を稼い だところ、「同じところで同じように安定的に間違える」ようになってしまいまして(汗。 プレイアウトは適当でも、とにかくツリー展開させるか、それともプレイアウトである程度 正確な勝率を得るけど、ツリー展開は減らさないように努力するのか。その辺で、また 悩み始めてしまいまして。edaxの引き分けBOOKから何か情報が取れないかと頑張って ますが・・・。そろそろ飽きてきちゃったんだよなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/691
692: 535 [sage] 2017/01/16(月) 21:00:44.96 ID:UThQer2a 専門用語はよくわかりませんが、付属のサンプルコードをなんとなく動かしてます。 行列と誤差関数を定義してやればtensorflowが勝手に最適化してくれるとか。 成果でないとめげてきますよね。 ここらで一発アルファ碁級のブレークスルーが欲しいですねw http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/692
693: 310 [sage] 2017/01/16(月) 22:06:12.04 ID:cVXIBPCK あれはやっぱマシンパワーが・・・ 一旦計算できちゃってもそれなりの重さなんだけど、学習しようと思うと重さにめげます。 というか、やる気すら起きないレベルorz とりあえず、実際の最善手順が、ヒューリスティックの何番目かを統計的に処理して、 プレイアウト関数の手のバラつきを表現しようかと思って、プログラム作ってEXCELで 集計して、それなりに計算が簡素にできる形に変形してなんてやりましたが、やった 所で、何番目を選ぶかはランダムではなくて理由があっての事なんだよなぁと… ちっとマシなヒューリスティックとか言い出すと…できない事をしようとしている事に深く 思い至るわけで。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/693
694: 310 [sage] 2017/01/17(火) 00:25:27.65 ID:SLwZ7IwS 統計処理して作ったプレイアウト関数も結局ダメでしたorz 最後はやっぱりBOOK頼みになっちゃいます。 もう一回NNに行って次の1手計算させてみるべかな。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/694
695: 535 [sage] 2017/01/17(火) 21:19:41.12 ID:wCDEMY6U モンテカルロ木探索ってわざと悪い手打ってる?ていうぐらい期待外れの手を打ちますねw プレイアウトの質改善が必須か… http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/695
696: 310 [sage] 2017/01/17(火) 22:04:13.23 ID:SLwZ7IwS 例えば40手目くらいの盤面で、UCTの選択基準であるところの実行回数で次の1手を 並べると、トータルではzebraの完全読みの良い手から順に並んでくるんだけど、ところ どころ順位が入れ替わるんだよね。その入れ替わる場所が、1位と2位とかだと−2して しまうし、時々−10くらいの手を選んでしまったりする。 囲碁のプレイアウトをちょっと調べたら、やっぱり盤面のパターンを評価して、次の 1手の順位を決めて、点数に応じて着手確率を変えたり、あからさまに悪い手はカット するみたいな事をしている。そちらの知見では、良いプレイアウトなら回数は少なくて も何とかなるみたいな話になってる。 今の相手着手可能数ベースで、edaxのpvbook_2009の最善手順を評価すると、1位の手 が選ばれている確率は42%くらいで、2位で17%と、思いのほか手が散っているんです。 これ、同点1位は、ソート順で2位以下にするのではなく1位にまとめるようにしてあるから、 マッチング率が想像していたより悪いって事になります。 別の方法で次の1手ヒューリスティックを作って、一致率を例えば75%〜80%くらいに までできないかなぁと思いまして。結局、もうしばらくモンテカルロを継続する事にしました。 NNに行く前に、縦横斜めのパターンでベースとなる一致率を作ってみようかなと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/696
697: 535 [sage] 2017/01/21(土) 14:40:41.23 ID:7GkfgTKT プログラム作るなら単体テストは必須ですね… 後から後からバグが溢れてくる… http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/697
698: 535 [sage] 2017/01/21(土) 15:30:15.75 ID:7GkfgTKT 机上デバッグはいやだお…T△T 辛すぎる… http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/698
699: 310 [sage] 2017/01/22(日) 23:15:41.71 ID:7cgxubHE 思いっきり同感だけど、結局サボるというorz 実はモンテカルロやってるから見なかった事にしているけど、Solverにバグがあります。 発生する条件も薄々わかっています。いつの間にバグを仕込んだのか。 さて、プレイアウトのヒューリスティックですが、縦横斜めのラインで、その形が現れた 回数、着手された回数のデータベースを作って、プレイアウトの次の1手の時に、それ ぞれの確率を縦横斜めで集計して、その高い順にsoftmaxで確率分布にして、着手を 選択させる形にしました。 結果は・・・。ヒューリスティックの次の1手としての精度はいまいちですが、それでも 上位3〜4位くらいには最善手が入ってる感じになります。でも、評価値が極端に出過ぎ ている感じで、ダメダメな感じになりました。確率のバラつきが小さいように感じたので、 ちょっと修正してみましたがダメなので、思い切って累積確率50%でカットしてみました。 この辺で大体3〜4位までの着手になります。少しマシになったけど、やはりダメ。 softmaxの計算が重いため、プレイアウト回数が1/7くらいに減ってしまうんだけど、それを 補う精度が出ていない感じです。楽ちんなのでunordered_map使ってますが、もっと速度を 出そうと思うんなら、他の方法を考えた方が良いかも。 簡潔なプレイアウトで秒間プレイアウト数を稼いで、枝を伸ばす方向に逃げたい気持ちを ぐっと抑えつつ、引き続いてニューラルネット系で次の1手を求めてみたいと思います。 更にスピード低下するので、いま以上に精度が出ないと・・・。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/699
700: 535 [sage] 2017/01/23(月) 23:10:08.18 ID:ii9ofJgq 黒番限定ですがLV2に勝ち越せる?というところまで来ました。 何をやっているかというとLV2とLV3を対戦させた棋譜を大量に集めて、 LV2に勝てる手順のDBを作ってナゾルということをやっていますw まあほとんどチートみたいなものですが、棋譜を集めれば集めるほど 勝てるようになるのでなかなか面白いです。 白番だとLV2が盤の中央からゲームを始めないのでうまくいかなかったりしますw http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/700
701: 名前は開発中のものです。 [sage] 2017/01/23(月) 23:46:45.10 ID:ii9ofJgq 勝利手順のDBからディープラーニングで評価関数を抽出することを考えていますが 今のところ全くうまくいく気配がありませんT△T http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/701
702: 310 [sage] 2017/01/26(木) 21:23:21.53 ID:foYEIc8+ >>700 Buroさんは逐次的にBOOK学習やってました。 僕は論文が理解しきれなかったのと、それやると特定AI相手だけに強いAIが作れて しまうので禁じ手にしちゃいましたが、オセロというゲームの底の浅さからすると、 それが正解かも知れない(汗 デバッグ兼ねてZebraと対戦していたら、ZebraのBOOKが強化されていくのが実感 できてしまいました。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/702
703: 310 [sage] 2017/01/26(木) 21:32:27.07 ID:foYEIc8+ さて、本日は非常にショックな事が判明しました。 次の1手を求めるNNを作って、大体できたのでAIに組み込んでました。 NNは以前にEigenで作ったものの流用改造。とりあえず学習結果が確認できる ところまでやったら、コンパイルが通らない。C2059というエラー。前にも何回か 出ていて、ライブラリの順番いじると直るので放置していた奴。何かの名前が 組み込んだライブラリ間で衝突していると起きるらしい。それが途中からどうにも 直らなくなってしまった。 で、ようやく重い腰をあげて何が衝突しているのか調べたら、A1とかC1とかの 着手位置を表す#defineの定義が、Eigenの内部の型か何かの定義と被ってる。 こちらは#defineなのでnamespaceで回避できない。 楽に回避できる方法を色々考えたあげく、結局、C++良く知らなくてCとしてプログラム 書いていた頃から引きずって#defineを使っているのが悪いのだと気が付いて、 クラスとenumで対処するという、全面作り替えにする事にしてしまいました。 というわけで、修正に3日くらいかかりそうですorz http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/703
704: 名前は開発中のものです。 [sage] 2017/01/26(木) 21:36:49.48 ID:NsrLS1+v 乙 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/704
705: 535 [sage] 2017/01/26(木) 21:43:44.99 ID:NsrLS1+v >特定AI相手だけに強いAIが作れて ディープラーニングが成功すれば汎用度もちっとは違うのかもですが。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/705
706: 535 [sage] 2017/01/26(木) 21:54:02.30 ID:NsrLS1+v 強い詰みルーチンが欲しいですねぇ。 DBでほぼ勝ちという局面にもっていってもポロッと落とすことが結構ある。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/706
707: 310 [sage] 2017/01/26(木) 21:56:01.75 ID:foYEIc8+ あ、もしかしてenumってunsigned __int64が使えないのか・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/707
708: 535 [sage] 2017/01/26(木) 23:23:42.26 ID:NsrLS1+v DBは勝率で手を選ぶよりも累計勝利数で手を選んだほうが良いっぽい。 そのほうが勝利再現率が上がるっぽい。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/708
709: 535 [sage] 2017/01/29(日) 01:07:10.63 ID:uZb/TXFd 負けた手順に対して手動でDBを修正するという汎用性がみじんもない作業を始めましたw なにかドカンと強くなる方法ないかなぁ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/709
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 293 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.039s