[過去ログ]
【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
【オセロ,将棋】ボードゲーム【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
748: 535 [sage] 2017/03/02(木) 19:55:15.50 ID:ejFPCGdH がっつり連続対戦中。黒番対LV2だけ流し終わった。 100局目 黒(airandom.dll)の勝利回数: 73 白(ai-lv2.dll)の勝利回数: 27 なお他のレベルも平行して回してるけどいま黒番対LV3に1勝54敗中w なんでこんなに差がでるのかなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/748
749: 535 [sage] 2017/03/02(木) 20:08:53.54 ID:ejFPCGdH 対LV2はかなり同じパターンで勝ってるな。 勝利手順DBにずっぽり嵌ってくれてる感じだ。 LV3は嵌ってくれない。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/749
750: 535 [sage] 2017/03/02(木) 21:41:10.44 ID:ejFPCGdH 序盤用DBはそこそこうまく動いているが 中盤〜終盤用のDBのせいで致命的に打ち手が狂ってるように見える。 LV3に勝てないのは多分これだな。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/750
751: 535 [sage] 2017/03/02(木) 23:28:08.02 ID:ejFPCGdH ずいぶん昔に書いたコードにバグがあった。 ビビるくらい致命的な奴。 よく今まで動いてたな。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/751
752: 310 [sage] 2017/03/03(金) 01:05:23.13 ID:0ijSS6CX 次の1手もDCNNもなんか上手くいかないので、アルファ碁の原点に戻りました。 アルファ碁のMTCSとしての特徴は、各ノードで評価関数を動かして、そのノードに 点をつけて勝率と50%混合する事で、ノードの選択に事前に差をつけてしまう事に あります。これによって、負けが多いけど1手だけ良い手があるルートを正しく評価 する可能性を高めていると解釈しています。 で、評価関数はオセロでは線形和で確立されているので、昔の奴をと思ったのですが、 どうせならMLPのライブラリ使ってしまえばEigenが使えるので信頼性高い上に、学習 率の最適化でモーメンタムどころかSMORMS3が使えるようになります。インプットが とても疎なので、EigenのSparseMatrixを使って高速化を図ります。 早速作って学習させてみたところ…僕の記憶が確かなら以前のプログラムの数十倍 くらいの速度で動いています(汗。これなら100エポックくらい楽勝。 今は評価値を計算させていますが、一旦できたら、次のステップで勝率を計算させられ ないかなぁと。ただ、評価値がある程度正確なら、勝率ではなく平均スコアでプレイアウト しても良いのかなと思っています。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/752
753: 535 [sage] 2017/03/04(土) 22:29:00.76 ID:ZrhUKe4E DB初期化に35秒かかる。 コンパイラを64bit版に変えると11秒になる。 なぜこんなに差が… ちなみに囲連星本体が32bitプログラムだからコンパイラ変えられないT△T なんとかならんか? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/753
754: 535 [sage] 2017/03/05(日) 03:39:08.88 ID:LufQ1oMY コンパイラの問題じゃなくてライブラリを静的リンクするか動的リンクするかの違いみたいです。多分。 かなり早くなった^_^ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/754
755: 535 [sage] 2017/03/06(月) 18:17:26.36 ID:XCrs8w8i 思考時間は試行回数に直結する 重いモンテカルロは一旦封印する http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/755
756: 310 [sage] 2017/03/10(金) 01:25:20.88 ID:4qfAid0y 評価関数の作り直しを始めたら、計算してはやり直しの繰り返しです。 計算速度が上がったので、比較的気楽に再計算できちゃうのがいかん。 勝率の計算もしてみましたが、結果は似たようなものでした。 いずれにせよ、もう少し精度を上げたいなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/756
757: 535 [sage] 2017/03/14(火) 22:28:17.78 ID:KNe/k0R5 LV1の棋譜はDBから削除したほうがいいみたい。 いいとこどりとはいかないか。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/757
758: 535 [sage] 2017/03/15(水) 21:45:36.14 ID:gknDrLfY 囲連星のルールは囲碁と共通部分があるから囲碁AIを参考にするのが良いと思っていたが 7連を作れば勝ちというのは王様を詰ませれば勝ちという将棋のゲーム性に近いものがあるのかもしれない。 将棋AIの手法も調べてみるべきか? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/758
759: 535 [sage] 2017/03/18(土) 23:34:35.11 ID:VnDB8sqw 手書き評価関数やっぱうまくいかないな。 LV0やLV1も実は結構強かったんだな。 反省。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/759
760: 535 [sage] 2017/03/19(日) 00:56:20.04 ID:y6fifsqj やっぱ機械学習しかない。(無限ループ) http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/760
761: 535 [sage] 2017/03/21(火) 22:23:02.18 ID:xGpFrIPp 特徴量と棋譜は用意できる。 棋譜の勝者の着手に対してどの特徴量が優先的に選択されたか?を計算したい。 どうすればいいかな? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/761
762: 名前は開発中のものです。 [sage] 2017/03/22(水) 00:39:02.37 ID:/GDSNvuJ 優先的とか無いでしょ 評価関数は全ての特徴量に対応する評価点を合計するだけ その各評価点の絶対値が大きくて評価値に割と大きな影響を与えるとかゼロに近いとかはあるけど http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/762
763: 310 [sage] 2017/03/22(水) 09:25:05.89 ID:sNSr7O3Z >>761 それを統計的に処理して求めるのが線形回帰。 収束アルゴリズムは最急降下法を使用するのが普通。 特徴量あり1、無し0で特徴量並べたベクトルを食わせて、 荷重値であるウェイトを同数用意して内積計算。 出て来たスカラ値が、教師データに合うようにウェイトを収束計算させる。 出て来たウェイトが対応する各特徴量の重要度を表す。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/763
764: 535 [sage] 2017/03/22(水) 20:48:28.79 ID:rRrXmS1r 自力で線形回帰を実装するのはしんどそう。 なにかいいライブラリないですか? >>535のMM法が動いてくれれば話は早かったのになぁ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/764
765: 535 [sage] 2017/03/22(水) 21:25:31.00 ID:rRrXmS1r もう一度MM法トライしてみるか… http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/765
766: 310 [sage] 2017/03/23(木) 17:35:49.51 ID:xjqriUpX 線形回帰というか、最急降下法自体はたいした事ないよ。 ひたすらループ回して、答えを出して、教師データとの差に比例して ウェイトを調整するだけ。ニューラルネットになるとバックプロパゲーション が出てくる(これも似たようなものだけど)違いがあるけど。 とりあえず実装の参考にするならこれ。 http://sealsoft.jp/thell/learning.pdf GitHUBとかで探すとなんかあるかも。裏ワザではMLPのライブラリ落として 来て、1層の活性化関数無しの全結合層で計算させるって手もある。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/766
767: 310 [sage] 2017/03/23(木) 17:40:46.97 ID:xjqriUpX こちらは、線形回帰の評価関数を作り直して、勝率と石差の2つ用意して、 アルファ碁っぽくMCTSに組み込んでみました。 で、テスト開始したらやたらと落ちる。 線形回帰の計算にEigen(行列パッケージ)を使用していたんだけど、こいつ が並列処理に対応していないのが原因臭い。 というわけで、学習部分と、MCTSで使う評価関数を切り分けて、評価値を 求める時はEigenを使わないように改造中です。 果たして強くなっているのか。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/767
768: 535 [sage] 2017/03/23(木) 20:11:41.72 ID:rddo+SDA >>766 ありがとうございます。 さらっと読んでみました。 いい感じの文章ですね。 なんとなくイメージは掴めましたが、実際実装するのは結構大変そうな気がします。 まずはMM法でやり直してみて、駄目だったら手を出してみます。 すいません。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/768
769: 310 [sage] 2017/03/25(土) 10:29:51.08 ID:8t9unId8 学習時と使用時の評価関数の切り分け。簡単にやるつもりだったのに、 バグ一杯出してデバッグで大変な事に。 デバッグが行き詰ると、気になっていた箇所を綺麗に直して手を動かし 続けたくなるんだけど、つい計算結果に影響が出てしまうところまで 手を入れてしまい、結局また再度学習しなおしです。 一応バグは解消したと思っていますが・・・ この土日に確認まで行けるか微妙。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/769
770: 名前は開発中のものです。 [] 2017/03/25(土) 15:51:24.00 ID:eEMcRod/ 自作アナログゲームを投稿・共有できる「紙ゲー.net」がオープン http://www.moguragames.com/entry/kamigame-analog-game/ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/770
771: 535 [sage] 2017/03/25(土) 21:50:08.29 ID:S05KfsXi 特徴量、用意できるって言ったけど、いざ作ろうとすると迷うw あれもほしい、これもほしいとなって発散してしまう。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/771
772: 310 [sage] 2017/03/25(土) 23:15:01.53 ID:8t9unId8 特徴量の選択はね・・・ 実際にその特徴量を使って統計処理(線形回帰でもMLPでもDCNNでも何でも可)して みて、結果の精度に効くものを残して、効かないもの(ウェイトがゼロになるとか、外して も精度が変わらないとか)を外して、結果的に決まるものじゃないかと思います。 そういう意味じゃ、仮説検証でトライアンドエラーしないといかん。 オセロではBuroさんが論文書いてくれているので、皆それをベースに小修正程度で、 ほぼ同じ精度のものができちゃいますが、そういう先行者がいないゲームだと、自分で やらないといけないので大変だと思います。 DCNNで「特徴量を自動的に決めてくれる」ってのに、皆が胸熱になったのは、そういう 事です。自分はオセロに応用しようとして、失敗して、後回しにしちゃいましたが。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/772
773: 310 [sage] 2017/03/27(月) 01:55:55.89 ID:n7C1rJ6D アルファチックなMCTSオセロですが、とりあえず途中まで学習してテストしたところ・・・。 終局しているのに両者パスでツリーが伸びて行ってしまう(汗 何度チェックしても原因不明。ブレークポイントでチェックすると、あり得ない場所で ボードデータが書き換わっているように見えますが…。並列探索が原因かと思い、 シングル動作にしてみましたが、それでも同じ。かなり重症です。 が、それを除くと、途中までテストした感じでは、最善手を打てている模様。 まだ序盤なのにツリー成長が尋常ではなく、終局までツリーができています。 不要な手をカットする仕組みとして、十分すぎる性能になっています。 とはいえ、勝率判定はそれほど正確ではないので、変な局面に誘導されると、 読み抜けが問題になってくるかも知れません。 もしかしたら、終局後もパスでツリーが伸びている問題は、これまでもあったけど、 終盤完全読みにしていて見えなかっただけかも知れません。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/773
774: 310 [sage] 2017/03/28(火) 03:12:19.93 ID:Cq+qEzvW パスが伸びる原因は判明。 着手後の盤面を返す関数で、合法手じゃない着手を要求された時を エラーにせず、元の盤面をそのまま返していたため、手が進まなくなって いたのが原因だった。 が、そもそも合法手以外の手を渡すはずがないから、エラートラップして いなかっただけで・・・ まだ根本原因にはたどり着けず。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/774
775: 535 [sage] 2017/03/29(水) 21:27:24.43 ID:a7v8cJOT MM法動きました! でも全然強くないw 特徴量が悪いのか棋譜が足りないのか… http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/775
776: 310 [sage] 2017/03/29(水) 21:53:37.26 ID:4lOT7Sa+ 大体バグがとれました。 Zebraの学習モードと対局。 F5-D6から10手目までは定石使用。その後40手目まで新AIで手を分析。 途中数回-2の手を打つものの、そのまま終盤まで行き、−4〜−6くらいで安定。 40手前に負け趨勢が判明(勝率30%くらいかな?)するとご乱心モード入り(汗 というわけで、Zebraレベルまで、もう少しという感じです。 評価関数を使用したプレイアウトは、重すぎる上に結果も散々で、結局のところ 以前の角評価付相手着手可能数ヒューリスティックで3手を選択し、75%20% 5%で振り分けるものを使用しています。評価関数型の方は多分softmaxで 使うexpの計算が重いと思うので、テーブル化を検討してみようかと思います。 一番の改善点は・・・。評価関数で悪いと評価された手には、プレイアウトを割り当て ないので、とにかくツリー展開が縦深します。30秒思考で12〜14手目には、一番 読んでいる枝は終局に達しています。これで、モンテカルロの偶然がかなり減って いる印象です。また、余計な横枝が伸びていないので、メモリーにも優しいです。 2手ほど間違えるのは、ツリー展開の初期値で与える評価値の誤差が原因と思います。 ここは、今の評価関数では、これ以上精度出せないので、何か手を考える必要あり。 あと、いくつかの定数調整かな。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/776
777: 310 [sage] 2017/03/31(金) 20:13:06.62 ID:Hurb1/nC expの計算は重さの原因ではありませんでした。やはり単純に評価関数が重い模様。 プレイアウトはヒューリスティックのsoftmax版に変更。 ツリーの初期の評価値は、数手読む事で精度アップを図ってみましたが、3手も読む とかなり時間がかかって、プレイアウト回数が1/10以下になってしまうので、バランス 見て2手読みにしてみましたが、これで強さが変わるのか不明。 10〜15手目で1回。35手前後で1回づつ間違えて、負けを確信したところで乱心。 試しに15手まで定石DBを使うようにしてみたところ、35手目まで引き分けで行けました。 やはり35手目で間違えて−6。むむむ。 40手までの棋譜。 F5 D6 C3 D3 C4 F4 C5 B5 B4 B3 E7 C6 B6 E6 F6 D7 C8 A6 C7 E3 F3 G4 G3 E2 H3 G5 G6 F7 E8 B7 F2 B8 D1 F1 A8 A7 A5 D8 A4 A3 35手目のA8以下を、A5 A4 E1 C1 A8 A7としていれば引分でした。 評価の順番はA8/E1/A5と、正解を3番手に予想しています。 Zebraの中盤20手読みでもE1と間違える局面で24手読みだと正解するみたいです。 実をいうと、途中で邪魔が入って放置している間に、バックグラウンド探索で1000万 プレイアウトの上限に2回達しています。強さ図る時はバックグラウンド探索を止めない と意味ないかも。 囲碁AIの本を読んでいたら、プレイアウトの精度の検証に、プレイアウト結果盤面を 統計的に処理して、終局予想図を出す方法と、重要な手を見つけるクリティカリティと 言う概念の説明がありました。この辺使って、プレイアウトの弱点探してみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/777
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 225 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s