[過去ログ]
【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
【オセロ,将棋】ボードゲーム【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
462: 460 [sage] 2016/08/02(火) 09:44:26.07 ID:/HFRnWj4 白の得点が微妙にマイナスに傾いているので9手目までランダムに固定しました。 初手はf5なので8手目までだと白の方がランダム手数多くなってしまうことに気づいて・・・ 9手目ランダムだと7手目までの評価値はまともな値にならないのですが、そこはBOOKでどうにかしようかと。 まともな値にならないだけで、互角定石以外に進行したりとかはしないので、とりあえず無視します。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/462
489: 310 [sage] 2016/08/18(木) 15:43:08.07 ID:7GnJQiSP >>488 まだ細々やってます(汗 Eigenの導入と、少しづつ進んでいくC++技術のおかげで、前よりは試行の スピードはアップしていますが、なかなか成果は出ません。まだ、色々な パターンを試しながらディープラーニングって何ぞやを体感しているところ なんだと思います。 少なくとも「簡単に凄い事ができそう」という幻想は捨てる事ができました(汗 ボードゲームがターン制なら、基本はmin-Maxになると思います。 まずは、盤面の状態に(恣意的で構いません)点をつける評価関数作るところ から始めたらどうでしょう? 次のステップで評価関数に統計(線形回帰)を持ち込むと、ディープラーニング じゃなくても、プレイ譜がたくさん必要になります。 オセロの場合は、Buroさんという先人が、実用レベルの評価関数が線形回帰 で作れる事を示してくれています。 僕がディープラーニングを適用しようと思っているのは、ただの思いつきでして。 場合によっては、より軽くて正確評価関数が作れるかと思いましたが、実際に 始めてみると、なかなか評価関数として機能してくれないし、仮にできたとしても 重いものになっちゃいそうという感じです。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/489
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
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
822: 535 [sage] 2017/05/08(月) 22:06:30.07 ID:bLY5QORw ディープラーニングやり直してみました。 与えられた局面の勝率を学習させて、一手読みで打たせてみました。 局面が均衡しているときは結構いい手を返すみたいですが、 不利に傾くと全然おかしい手を打ち始めます。 学習させた棋譜に偏りがあるんだろうか? どちらかに不利に傾いた局面も学習させるべき? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/822
886: 535 [sage] 2017/07/03(月) 22:52:12.07 ID:NTU08E7X 40手もランダムに打たせるんですか?うーん。 にわかには信じられないですが偏らないようにするためには有効なんですかね〜 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/886
900: 535 [sage] 2017/07/11(火) 22:31:32.07 ID:XEOuAfue 本線じゃない分岐の間違いを修正するには指数的な試行回数が必要になるなこれは。 まあしょうがないか。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/900
906: 310 [sage] 2017/07/16(日) 00:06:25.07 ID:z0mkcRg4 なんかもともと関数呼び出しの方が速いという事で数字で実証するサイトがありました。 まあ、コンパイルの最適化のかかり具合なのかなぁ。わからないです。 コンパイラのバージョンで違うのかも。 バグの原因はわかりました。関数呼び出しにするときに、同時にパスの扱いを変えた のが原因だと思います。が、確かめる際にもとに戻したら、普通の関数の方が速かった という結果に。バグってるときの実行時間なので、あてになりませんが。 というわけで、全部もとに戻して、少しだけ確認しましたが、あまり差はない模様orz 記譜の中に間違った読み切り手順が混じってしまったので、全部再計算。 こちらもパスの扱いを変えたのが原因で、別のバグが出ました(汗 二次災害大です。 再計算は2400記譜で1時間半くらいで、着手は最善手の中でのランダムなので、 1回実行してアペンドすると倍、2回で3倍というように、記譜の増殖が可能と思い 当たりました。これを使えば学習データを簡単に増やすことができます。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/906
907: 310 [sage] 2017/07/17(月) 22:52:41.07 ID:GI+vwgP1 評価関数まわりを作ってデバッグ。 その中で致命的がバグが発覚しました。 学習用に溜めた記譜データにおかしなデータがいくつかあるというもの。 学習やり直しです。 記譜データ消した後で気が付きましたが、復旧できないわけではなかった。 後の祭りですorz http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/907
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.030s