[過去ログ]
【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
【オセロ,将棋】ボードゲーム【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
490: 488 [sage] 2016/08/19(金) 23:15:11.39 ID:i9HkvHw2 >>489 手動評価関数はかなり昔五目並べで書いたことあります。 min-maxで思考時間が1手5分くらいかかったけど、 自分でプレーして負かされることもあるくらいの強さにはなりました。 そのBuroさんの線形回帰とやらはWebで論文とか見れたりしますか? 読んでも多分理解できないだろうけどちょっと興味あります。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/490
491: 488 [sage] 2016/08/19(金) 23:23:27.55 ID:i9HkvHw2 ぐぐったらこんなのがあったけど多すぎ。 https://skatgame.net/mburo/publications.html http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/491
492: 310 [sage] 2016/08/20(土) 16:51:13.03 ID:m44rb9b4 >>490 Buroさんが作った伝説のオセロプログラムがLogistelloです。 Thellというオセロプログラムの作者の方が日本語で解説してくれています。 http://sealsoft.jp/thell/learning.pdf 5.2の計算の高速化のところの説明(P.8の冒頭)のところ。 自分なりに解釈したら、自分が解釈違いしたのか、説明がおかしいのか、 この通りではなかった記憶があります。 とはいえ、これはオセロの考え方であって、将棋なんかだとbonanzaなどを 参考にすべきだし、全く別のゲームであったら、別な事
を考えなければなり ませんね。当たり前ですが。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/492
493: 488 [sage] 2016/08/20(土) 20:33:47.55 ID:+7ONDgCM >>492 パターンの重みの線形和が評価関数になる的なことが書いてあるっぽいですけど、 パターンというのは人間が与えてやるわけですよね? そのパターンすら学習で求めるというのがディープラーニングなのかと思ってますけど。 まあディープラーニングにはロマンがありますね。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/493
494: 310 [sage] 2016/08/20(土) 21:29:23.21 ID:m44rb9b4 >>493 ですです。 あと、Deepじゃなくても、2層以上のパーセプトロンだと、線形分離不可能問題の 分類ができるようになります。XORの学習が典型ですね。 ところが、パターンの部分まで学習で求めてくれるってのは、やっぱり幻想でして。 ある程度パターンを想定しながら、ネットワークを作らないといかんのではないか という事に思い至っています。 例えば畳み込みニューラルネットワーク(CNN)で、何故畳み込みをするのかという と、縦線横線などの隣接ドット同士もつながりを識
別してもらうためですし。そもそも 畳み込みのフォワード計算自体が、画像に対して例えば輪郭線強調といったフィル ターかけるのと、プログラム的に同じものだったりします。学習対象は、フィルターに なります。 オセロは、囲碁とかと違って、石の色がコロコロ変わるので、隣同士の石のつながで 判断するCNN的なネットワークをそのまま適用できないよなぁというのが、最近の諦め ポイントであります。 じゃあ、何に頼るかというと、自分はオセロ弱いので・・・No ideaだったりします。 あんな簡単な(DeepLearningと比較して)線形和でBuroさんの評
価関数ができています ので、パターンを活かして、まずはそこに点数を割り振るところをMLPなんかでできない かなぁと思っています。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/494
495: 488 [sage] 2016/08/21(日) 00:04:33.21 ID:EnsCDbgT >>494 >ところが、パターンの部分まで学習で求めてくれるってのは、やっぱり幻想でして。 >ある程度パターンを想定しながら、ネットワークを作らないといかんのではないか >という事に思い至っています。 ふーむそうなのか。残念。 聞きかじった知識だと夢のような技術なのかと思っちゃったけど、 実戦してみるとなかなか難しいのかぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/495
496: 名前は開発中のものです。 [sage] 2016/08/21(日) 21:39:11.08 ID:EnsCDbgT いくらオセロの盤面が小さいからってシングルスレッドで 10000Knps〜15000Knpsというのはとてつもなく速く感じるんだが。 どうやったらそんな速度がでるんだ? オセロ業界じゃ普通なのか? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/496
497: 310 [sage] 2016/08/22(月) 02:41:50.59 ID:2ubnBUwd Kが余計で3桁間違えているんじゃないかと(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/497
498: 310 [sage] 2016/08/22(月) 02:46:41.58 ID:2ubnBUwd あ、違った。自分が3桁間違えていた。 全然おかしくないです。自分の2コアで13000Kくらい出てます。 シングルで同等の速度ですから、かなり速いとは思いますが、 敢えて言うなら2倍程度なら縮められないとは思えない差です。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/498
499: 460 [sage] 2016/08/22(月) 08:13:03.66 ID:yZES3OuI 終盤MPCを実装完了してFFOを測定してみました。。 残すのはFFO#57のみですが、この時点で9364秒と1万秒を割ってるので 10%程度の高速化は期待できそうです。(評価テーブルは64ビット移行+120万局から変更なし) http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/499
500: 460 [sage] 2016/08/22(月) 09:20:01.85 ID:qlwiS2PE >>496 簡単な実装だと終盤探索は2000万ノード/秒いけますね。 合法手生成が将棋などより速いので。 とはいえ、中盤探索だと色々やるので5000knps程度に落ちてしまってます。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/500
501: 496 [sage] 2016/08/22(月) 21:10:28.52 ID:WzxI/O2e 2000万ノード/sとかってsseやavx使って始めて可能になるレベル? オセロの合法手の実装になにかすごい効率的なビット演算やってるとか? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/501
502: 460 [sage] 2016/08/23(火) 11:44:32.28 ID:sSUGbl7L >>501 終盤探索だと合法手生成は葉ノードの近くでは使わないので、ループや条件分岐を使ったコードでなければアセンブラでなくても速度はそれなりに出ますよ。 こことかが参考になります。 http://d.hatena.ne.jp/ainame/touch/20100426/1272236395 自分はこんな感じのコードをアセンブラに落として少し改変したものを使ってますー http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/502
503: 460 [sage] 2016/08/23(火) 11:47:50.11 ID:sSUGbl7L 置換表に超大バグがあることに気づき修正したらFFO45が32秒になりました…w 180万局の学習を朝に終えたので今晩再度FFOを測定しようと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/503
504: 310 [sage] 2016/08/23(火) 13:54:12.88 ID:LVh7XLe+ >>502 そのサイトは知りませんでしたが、同じことやっています。 自分の場合は、それをAVX2命令で1,7,8,9ビットシフトを4つ並列で動かす様にして、 右シフト左シフト2回の演算をC++で組んでます。並べて書くと混乱しそうだったので 演算オーバーライドしまくりで、バグ防止しました。 やっぱりアセンブラの方が速いんでしょうね。 ディープラーニングな評価関数の方ですが、突然収束を始めました。 まだ途中ですが、見た感じざっくりで、平均二乗誤差の平方根(σ)が0.6石程度に
収まりそうです。2σで1石、スコアは2づつ変わるので、評価逆転が起きる確率を 数%程度にするには、0.5石以下にしたい。 肝はミニバッチのサイズだった様です(謎)。ハイパーパラメータとしては考慮対象外 でしたが、テスト用に小さくすると収束が悪くなる感触があったので、思い切って大き くしてみたところ…大きくすればするほど記録を更新していくという状態。ついに212640 件という特大バッチサイズにしてしまいました。メモリー的にはまだいけるかも。 今までの比較検討データは全てパーになったので、検討済のネットワークも、バッチ サ
イズ変えて再評価です。今やってるのは、Buroさんパターンがベースのネットワーク ですが、もしかしたら入力ベタ打ちで「勝手に特徴抽出してくれる。すげー!」に戻るかも(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/504
505: 名前は開発中のものです。 [sage] 2016/08/23(火) 19:39:22.88 ID:1+aieVpn >>502 ループはおろか条件分岐すらいらんのか(驚愕) >>504 おお、ディープラーニング期待してます。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/505
506: 名前は開発中のものです。 [sage] 2016/08/23(火) 21:26:59.10 ID:KqeLXU8U 文系の俺には全然分からん。 もっと簡素な3目並べなら勝てるAIとか作れないかな(´;ω;`) http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/506
507: 名前は開発中のものです。 [sage] 2016/08/23(火) 21:47:29.66 ID:1+aieVpn ちょっと興味が湧いたんでとあるオセロアプリ落としてやってみた。 弱設定AIが程よく負けてくれて嬉しいw 一方的にボコされたら詰まらんよな一般人は。 オセロAIはもう神の領域だし。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/507
508: 460 [sage] 2016/08/24(水) 01:02:17.32 ID:elb1k4A2 色々チューニングしてトライしましたが、FFO57を大きく落としてしまい、放心中ですw FFO57以外は全体的に高速化しているのですが、合計としてはあまり変わらない結果に・・・ 終盤MPC探索中にa6とg7でかなりふらつくので、置換表に次善手も入れておかないとダメかもしれません。 とりあえずEdaxとゼブラのオーダリングあたりのソースを見直す予定です。 name move time[s] node[Mn] FFO#40 a2:+38 1.05 10.61 FFO#41 h4:+0 3.23 37.85
FFO#42 g2:+6 2.43 31.69 FFO#43 G3:-12 7.69 79.04 FFO#44 D2:-14 5.09 48.95 FFO#45 b2:+6 30.21 409.43 FFO#46 b3:-8 7.23 78.8 FFO#47 G2:+4 3.1 38.9 FFO#48 F6:+28 19.58 207.46 FFO#49 e1:+16 45.11 527.45 FFO#50 d8:+10 144.14 1330 FFO#51 E2:+6 39.91 502.74 FFO#52 a3:+0 52.56 687.22 FFO#53 d8:-2 617.63 8360 FFO#54 c7
:-2 944.7 13410 FFO#55 G6:+0 測定中 FFO#56 H5:+2 262.85 3410 FFO#57 a6:-10 1523.67 19710 FFO#58 g1:+4 674.09 9760 FFO#59 g8:+64 1.08 5.57 合計4385.35[s](FFO55未測定) 合計ノード数:58645.71[Mn] http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/508
509: 310 [sage] 2016/08/24(水) 10:40:19.04 ID:GpcelPIW こちらも大バグを見つけて放心中です(汗 ミニバッチサイズごときで収束具合が大きく変わるのがおかしい点。 ミニバッチサイズを大きくすると、収束点がかなり規則的に減少していくように見える点。 この2点から、寝ながらデバッグしてたんですが、テストデータの件数で平均を出すべき ところで、ミニバッチサイズで割っていた事に思い当りました。 で、修正して、行列の列数で割るようにしたのですが、今度は列数がリセットされていない 事が判明。どうもポインタ渡しで行列を渡した時に
行数・列数が正しく引き継がれないよう な現象のようです。 というわけで、一瞬大喜びしましたが、全くのやり直しとなりました。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/509
510: 460 [sage] 2016/08/24(水) 14:56:52.40 ID:Kkx6VEyM >>509 学習プログラムのバグはやっかいですよね。 自分も何回ひどい目に遭ったか… 今でもまだありそうな気がして怖いですw http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/510
511: 460 [sage] 2016/08/24(水) 22:16:05.70 ID:elb1k4A2 FFO57をどうにかしようとチューニングをして、なんとかFFO57が1200秒台に縮まりました。 ある程度縮まったので、期待せずにもう一度全部を測定してみると 全体がかなり高速化されていて、FFO55がまさかの3774秒までに縮まりました!(奇跡) とりあえずこれをオーダリングの暫定最終結果として、次は並列化に手を出してみようと思います。 まずはYBWCアルゴリズムの実装方法の検討から・・・ FFO#40 (a2:+38) 1.05s FFO#41 (h4: +0) 3.19s FFO#42 (G2: +6) 2.55s FFO#43 (G3:-12) 7.82s F
FO#44 (D2:-14) 4.18s FFO#45 (b2: +6) 29.77s FFO#46 (b3: -8) 6.99s FFO#47 (G2: +4) 3.10s FFO#48 (F6:+28) 19.49s FFO#49 (e1:+16) 36.63s FFO#50 (d8:+10) 128.15s FFO#51 (E2: +6) 50.46s FFO#52 (a3:+0) 36.88s FFO#53 (d8:-2) 427.77s FFO#54 (c7:-2) 730.26s FFO#55 (G6:+0) 3774.07s FFO#56 (H2:+0) 185.22s FFO#57 (a6:-10) 1281.31s FFO#58 (g1:+4) 556.86s FFO#59 (g8:+64) 1.08s 合計:7286.83[s] http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/511
512: 310 [sage] 2016/08/25(木) 00:17:23.06 ID:ZE8G6YuY >>510 Eigen導入前のプログラムみたいにFFOの盤面渡して評価値見るようにしていれ ば良かったのですが、あまりに収束しないので、収束の兆しが見えてからやろう なんて放置していたのが失敗でした。あまりに急速に状況が改善していったので、 0.5石切るか知りたくなって、確認が後回しになってました。反省orz ちなみに、列数がリセットされない問題も、原因がわかりました。 これも自分のミスというか、Eigenの使い方間違ってました。 Eigen便利すぎて、少なくとも行列演算部分
に関してはバグフリーで、簡単に先に 進めちゃうので、細かいところがなおざりになっていたような感じです。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/512
513: 460 [sage] 2016/08/25(木) 11:20:22.96 ID:PNQVZmVa そういえばFFOに夢中すぎて中盤の強さ評価を忘れていました。 現在は180万局の学習が終わっていますが、ゼブラ(24手読みBookなし中盤誤差なし)と黒と白で戦い、 それぞれ+8と-2という結果になりました。 完全にBook無しだと、白黒両方とも虎定石からのe3酉定石に分岐するため、 金魚や大量取りなどの主要な引き分けオープニングからの勝率を測定しようと思います。 あとHTML5版のMasterReversiレベル3とも対戦してみましたが、白黒両方とも-2という結果に…orz Book構築方法もそのうち考えよ
うと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/513
514: 460 [sage] 2016/08/27(土) 00:02:49.98 ID:ct+QEGYU 学習プログラムのバグが怖くなって見直してたら超大バグを見つけました・・・ パターンモデルのうち、triangle(Thellが用いているモデル)だけが 局面出現数のカウントリセットされておらず延々と増え続けていましたw あと同じ棋譜が結構あり、ダブった棋譜を全て除去すると180万局よりも10%程度減りそうです。 とりあえず除去中の150万局の棋譜でもう一度再学習します・・・orz http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/514
515: 460 [sage] 2016/08/27(土) 13:15:04.86 ID:ct+QEGYU 学習プログラムのバグを直して再学習させたWZebraとの対局結果ですが、芳しくないです。。 棋譜生成で次善手を選ぶ時、打った後の7手読み(対局が8手読みなので)評価値で全ての手をソートしてから 2番目を選んでいるのですが、評価誤差を全く気にせずに選んでいました。 最善手が+10でも次善手が-4とかいう局面も結構あるので、そういった誤差が大きい手を選んでしまうと棋譜の質が低下します。 なので、最善手と次善手との誤差が-2以下の場合のみ次善手を打つようにしました。 その代わり8
5%で1回打つという処理を単に5%で打つように変えています。 これでなんとか中盤が強くなればいいですが・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/515
516: 460 [sage] 2016/08/27(土) 13:18:13.50 ID:ct+QEGYU WZebra24手読みBOOK無し評価誤差なしとの対局結果 ゼブラは評価誤差がEdaxやMasterReversiに比べて大きいので、本来負けちゃいけないんですよね。。 実際50万棋譜計画のやつで学習させた場合はほとんど勝っていました。(負けても-8とかはありえない) 牛定石[f5f6d6] 黒持ち:+2 白持ち:+0 酉フック[f5d6c3d3c4f4c5b3c2e3] 黒持ち:+8 白持ち:-8 金魚[f5d6c3d3c4f4c5b3c2e6] 黒持ち:-2 白持ち:+4 FJT[f5d6c3d3c4f4c5b3c2e6] 黒持ち:-4 白持ち:+2 コンポス[f5d6c3d3c4f4f6] 黒
持ち:-2 白持ち:-6 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/516
517: 名前は開発中のものです。 [sage] 2016/09/01(木) 22:33:13.77 ID:PkLGbL4G マイナーゲームで良質の棋譜が大量にない場合、どうやって学習させればいいんだろう? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/517
518: 名前は開発中のものです。 [sage] 2016/09/02(金) 09:47:35.76 ID:+DjGOwAN 事前学習じゃなくて、強化学習な手法を試したら良いのではないかな。 何をどうすれば良いのか、俺はわからんけど。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/518
519: 名前は開発中のものです。 [sage] 2016/09/03(土) 00:54:14.21 ID:lICUKSF2 うおお線形回帰とか最小二乗化とかわかんねぇぇ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/519
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 483 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.022s