[過去ログ]
【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
【オセロ,将棋】ボードゲーム【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
710: 310 [sage] 2017/01/29(日) 13:11:46.36 ID:rGbRSmBn enumで__int64使えますね。というか、どこかのバージョンから使えるようになってましたね。 何か裏ワザ的な使い方考え付かないかと思って試しましたが結局ダメで、前から気になって いた箇所をクラス化しだしたら大規模改造になってしまいました。 オブジェクト指向を忠実に実行しようとすると、結局何度もライブラリ作り直す羽目になると いう本末転倒な状態(汗 色々ドタバタしていたので、オセロ共通のクラスのみ修正完了。ロジック部分はこれから。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/710
711: 535 [sage] 2017/01/30(月) 23:07:35.87 ID:nIJrclSx ファイル出力が思いのほか重い。 知識では知ってたけど今回、実感しました。 DB作るときは棋譜をまとめて読み込んで書きこみは1回だけとか工夫しないとだめですな。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/711
712: 310 [sage] 2017/01/31(火) 01:06:15.90 ID:tF0OU/RM >>709 ドカンとは強くならないけど、やっている事から推測すると遺伝的アルゴリズムが 合ってそうな気がします。茨の道ですが(汗 >>711 いまどきはメモリが大きいので、全部読み込んで一括処理とか、思いのほか可能ですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/712
713: 310 [sage] 2017/01/31(火) 01:17:50.59 ID:tF0OU/RM 困った。3層MLPで次の1手を、 http://qiita.com/kanlkan/items/6bff417519ed7d5ce4da を参考にして求めている(若干やり方が違う)のだけど、思ったように学習してくれない。 NNの計算どっかおかしい気がしてきたorz http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/713
714: 310 [sage] 2017/02/01(水) 15:57:52.90 ID:DrzIg7bz ひょんな事から学習できました。デバッグ用に学習データを減らしてテストをしようとしたら 学習できてしまいまして。件数を増やすとダメになる模様。 これは仮説ですが、多種多様な棋譜を学習させると、ネットワークの自由度が不足して、 ウェイト更新が相互に打ち消し合った結果、ウエイトがゼロ(勾配消失)に陥ってしまうと。 学習に失敗した時は、大半のテストの結果が、全て同じ確率(softmaxのため)となってい ます。中身は見ていませんが、softmax関数を通す前はオールゼロとなっている事が十分 に想像できます。 今から思うと、NNで評価関数を作ろうとして失敗していた時も、同じ状態だったのかなと。 学習データを減らすと精度が落ちますので、ネットワークをより複雑かつ大規模にしない といけないのかなぁと。結局、同じ問題(ネットワークを大規模化しなきゃいけないけど、 自前のパソコンでは計算が厳しい上に、結果を使用する方もタイムクリティカルなので あまりややこしくしたくない)の周りをグルグルしはじめてしまいました(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/714
715: 535 [sage] 2017/02/02(木) 23:55:47.04 ID:JZtX1mUx まとめて読むようにしたら3日かかったDB作成が数分で終了しましたw しかしDBがかなり肥大化してしまいました。 読み込みに5秒くらいかかる。 しかもこの手法だとLV2には勝てるけどLV3には勝てないし。 LV2はパターン少ないからDBで勝利手順なぞれるけどLV3はパターンが多くてカバーできない(多分)。 そろそろ別の手を考えなければ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/715
716: 535 [sage] 2017/02/03(金) 20:14:00.97 ID:jkxdJ711 DBを使ってモンテカルロ木探索の探索結果を永続的に蓄積するというのをちょっと思案中。 計算すればするほどDBが洗練されていく感じで。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/716
717: 310 [sage] 2017/02/03(金) 20:39:47.64 ID:dv6j41bl >>716 同じ事妄想したけど、それなら後方枝刈付のmin-Maxの探索結果をひたすら ため込んでいく方が容量的にも速度的にも有利で、それができないからモンテ カルロだって事に思いいたりました(汗 min-Maxなら、いらない枝カットできるかと思いきや、相手がそこに打っちゃった 時の事を考えたら捨てられない事にも気づきました(汗汗 で、適当なところだけ保存して、残りは別途探索・・・って、これ定石DBやん! というオチでした。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/717
718: 名前は開発中のものです。 [sage] 2017/02/03(金) 20:45:51.93 ID:jkxdJ711 ボツ案でしたか。 でもまあ、とりあえずDBを充実させる方向でやってみます。 他に案がないので。 ディープラーニングがうまくいけばなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/718
719: 535 [sage] 2017/02/03(金) 20:49:10.94 ID:jkxdJ711 今のところ黒番対LV2は2勝一敗ペースてな感じです。 もっと勝てるかと思ったけどそうでもないですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/719
720: 310 [sage] 2017/02/03(金) 20:58:39.46 ID:dv6j41bl こちとらディープラーニングで完全にドツボってますorz http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/720
721: 535 [sage] 2017/02/04(土) 19:33:24.33 ID:neMma6zi ディープラーニングは盤面情報だけじゃなくてこちらでなにがしかの特徴量を計算してやって その数値も食わせたほうがすこしはましになるんだろうか。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/721
722: 310 [sage] 2017/02/04(土) 20:57:26.78 ID:ycMSfQXf オセロではBuroさんの評価関数と同じ特徴を入力にしたMLPで評価関数を作った オセロプログラムがあります。vsOthaというソフトです。 今回はディープなので、できれば特徴量は自動抽出してもらいたいものではあります。 一応、黒白の盤面情報の他、着手可能位置は与えています。 と、ここまで書いて、着手可能位置を求めるように学習させられるのか、ふと気になった。 何らかの事前学習に使えそうな気がする。 やらずに悶々としているだけなのですが、DCNNの四角い窓ではオセロの特徴はうまく 抽出できないのではないかと思っていますが、他に方法が思いつかないのが悲しい。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/722
723: 名前は開発中のものです。 [] 2017/02/05(日) 08:03:16.57 ID:36jlTAsU そうかそうか http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/723
724: 535 [sage] 2017/02/07(火) 20:48:43.68 ID:qiXxRrUf 機械学習じゃだめだ、手書き評価関数しかない… しばらくするといや、手書き評価関数じゃやっぱりだめだ、機械学習だ… の無限ループw http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/724
725: 310 [sage] 2017/02/08(水) 21:46:39.89 ID:GrcF81sn 昔mnistでオートエンコーダのテストした時のように、学習内容(ウェイト)をBMPにして 可視化してました。テストに時間がかかるので、色々すったもんだバグとりに時間が かかってましたが、ようやくなんとか表示できるようになりました。で、とりあえず想定より 少な目の隠れ層4096個でテスト開始。 勾配ノイズ(焼きなまし)の設定値もでかすぎたので、設定値を自動計算するようにしたり。 NN復活当初うまく動かなかった原因がこれでした。 で、まだ学習途中なのですが、ウェイトデータ見ると192個(=64×3)毎に1ビットづつ ずれるパターンに収れんしていっています。192といえば入力データのサイズで、 横に64個づつ並べたビットマップ画像に、まるで光子の回析実験のような縦じまが(汗 そんな周期性が生まれるはずがないので、どこかにバグがあるんじゃないかと。 表示するプログラムのバグかも知れないけど、1エポックに3時間かかるので、止めて デバッグに入るか、それとも続行するかで悶々中…。 どっちにしても時間がかかるので、裏でDCNNをもう一度コーディング開始。 あまりにネストが深いのでミニバッチは一旦放棄してSGDで。 GoogleのTensorFlowがテンソルな意味が良くわかった。 DCNNだと元データが2次元で、更にチャンネルがある行列では次元が足りないorz 今最大の懸案は、とりあえず隠れ層4096でオートエンコーダの事前 学習しているけど、 それが終わり全体の学習にいって上手く行かなかった時、中間層を増やして再トライ するか、それともDCNNに行ってしまうか。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/725
726: 310 [sage] 2017/02/08(水) 21:47:47.17 ID:GrcF81sn >>724 そこは…絶対的に機械学習である!という信念が必要だと思います(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/726
727: 535 [sage] 2017/02/09(木) 22:03:30.31 ID:qkkjChao >>726 そうですかw まあそんな気もしますが、でも終盤の積みルーチンだけなら手書きでイケそうな気もするんですよねぇ そこだけでもなんとかできれば… http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/727
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 275 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s