[過去ログ]
【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
【オセロ,将棋】ボードゲーム【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
814: 310 [sage] 2017/05/05(金) 08:31:32.47 ID:Orwfb9MI >>813 どうもです。早速見てみました。 自分のPCは2コアの擬似4コアなので恩恵なさそうです(汗 つか、並列化についてはPPLにお任せしちゃってるので、あまり要点が わかっていないかも。 しかし、GPS将棋のクラスタすげーと思っていた時代は、一瞬で過去の ものになってしまったのですねぇ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/814
815: 310 [sage] 2017/05/05(金) 17:24:07.29 ID:Orwfb9MI elmo優勝でPonanzaが2位みたいですね。 なんか、将棋も強くなるスピードが尋常じゃない感じ。 目標設定して(前年比9割勝利とか)、マシンパワーとか確実性が ある所にも、資源を振り向けて達成しているみたいにも見えますが。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/815
818: 310 [sage] 2017/05/05(金) 20:43:38.31 ID:Orwfb9MI >>816 自己対局で作った自作定石のDB積んでるみたいです。 ディープラーニングの使う場所は、オーダリングくらいしかなさそうなので、 実はオーバーヘッドとの兼ね合いが微妙じゃないかと疑ってます。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/818
821: 310 [sage] 2017/05/06(土) 09:41:02.64 ID:eGOwqfr/ >>816 相性が悪いというより、効果を出し切れるところまで行かなかったのかも知れませんね。 Ponanzaは2位とはいえ、他の人には全部勝っているわけで、弱くなったわけではないと 思います。 elmoは予選で1敗しているので、予選時にponanzaに勝ったのまぐれかもと思っていたけど 直接対決2連勝で、決勝は全勝なので、やはりelmoの1年間での進歩が凄いかと。 1年間という時間制約の中で、レート向上の目標を200くらいとして、それを何で達成 するかと考えた時に、ディープラーニングを使わなくても同じくらいの向上はできたのかも 知れませんね。 とはいえ、今年は十分に活用しきれなかったけど、適用の仕方を煮詰める事で、来年から はボーナスのレート向上が見込めるとか、そういう事はあるかも知れませんね。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/821
823: 310 [sage] 2017/05/08(月) 23:27:34.27 ID:Byk3wJkT 悩ましいところですね。偏った棋譜を学習させるべきか、否か。 相手も弱いから、偏った棋譜になるわけで、そういう時にも問題が起きないように 探索と組み合わせるわけで。そう考えたら、そのままで良いのかも知れないし、 やってみないとわからないかも。自分的には、MCTSにおいてモンテカルロの 問題(隘路の騙し構造)に対して、先に避けるために、選択肢を偏らせるモノだと 認識していますので、拮抗している時に正しい手を返せばよいかと思っています。 自分は、Buroさんの特徴量をベースにしたMLPで評価関数作っているのだけど、 傾向としては線形回帰と変わらない印象です。与えている元データの偏りなのか、 それとも特徴量の選択の問題なのか、悩み中です。DCNNで特徴量抽出まで やらせたいと、をもう一度試そうかなと言う機運になってます。 ただ、頭の中に、ワンチップマイコンで学習外だしというのがチラついていまして、 そこに入り込むと数か月、下手したら半年はとられるなぁと悶々中。 そうそう。アルファ碁のバリューネットの勝率ですが、割引率を考えたら… という点に思い至りまして。普通勝率の評価関数はロクなもんじゃないのですが、 強化学習とセットなら、ありかもとちょっと思っています。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/823
824: 310 [sage] 2017/05/15(月) 09:41:45.01 ID:hagdu+z8 オライリーさんのところのディープラーニング本(Pythonで学ぶ奴)を読んでみました。 自分で実装する人には、なかなか良いです。Python知らないですが、説明だけで結構 おなか一杯になります。 オライリー本で、畳み込み演算の実装(行列に落とし込む)の良い方法がわかりました。 自分が以前やって放置した展開形よりもっと良い方法があるんですね。ちと畳み込む気 が湧いてきました。 現在MLP版のポリシーネットを学習させていますが、テストデータに対して60%越え まで来ました。一方で入力データサイズが89万(特徴)×16万(ミニwバッチ)とか わけわからん事になっていて、もう畳み込んでも処理量大差ないんじゃないかと思って いたところですので、学習限界が見えたら、畳み込みに行ってみようかと思います。 あと、やっぱり強化学習ですね。既存データで学習していても埒があかない気が強くして きました。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/824
826: 310 [sage] 2017/05/16(火) 09:54:31.52 ID:Vk+2t4O7 >>825 問答無用で後者です。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/826
829: 310 [sage] 2017/05/19(金) 20:14:05.97 ID:skXdWaLK 結局、tiny_dnnでDCNNを組んでテスト開始。 ウィンドウサイズ3で、Conv7層+fullcon2層構成。 隠れ層のチャンネル数は暫定で32。 入力は自分・相手・空白・着手可能位置の64×4個。 入力データをDCNN用に展開すると、メモリーに収まりきらずに盛大にスワップ。 BITBOARDの64ビットデータ(unsigned int64)が、32ビット(float)×64個のvectorに 膨らんでしまうのが原因です。 仕方がないので、ファイルを適当なサイズごと読み込みながら、中間バッチを作って、 それを順次学習する形にしました。 で、中間の時間を計ってみたところ、1エポック分学習するのに数日という予想に。 全く非実用的です。どうしよう。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/829
831: 310 [sage] 2017/05/21(日) 16:44:31.83 ID:kUdqCG8C ちょこっと直して学習して様子を見てとかやってるうちに、学習しない時間かかると 言う酷い状況に陥りました。最初にテストで1バッチやった時は18分で35%程度の 正答率だったのに。いまでは1バッチ1時間の癖にNaNになったり、正答率3%程度に 落ち着いちゃったり。いわゆる勾配消失になってる模様です。学習進めば進むほど、 勾配消失も進むので、活性化関数をLeaky_ReLUとかにしなきゃいけないかも。 で、段々と強化学習方向に逃げはじめました。 かなり小さいDCNNで学習できるかテストするつもりで、強化学習のプログラム書き はじめました。まあ、学習するにも、余計時間かかりそうですが。 マジで、デスクトップ欲しいです・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/831
836: 310 [sage] 2017/05/27(土) 20:17:57.81 ID:TGXtrM6M 強化学習に大きく方向転換。 最初、ポリシーネットを模して学習しようとしたけど、出力がソフトマックスの時 負け側の教師データをどうするのか不安があったので、まずは普通にQ学習で 勝率を学ぶ事にしました。 ざっと作ったところでデバッグに時間がかかりまして、ようやく多分ちゃんと学習して いるんじゃないかと思うところまで来ました。が、初期の学習をしないでランダム初期化 のまま開始してしまいましたので、学習はしているみたいだけど、実用レベルの学習 をするまで、どれくらいかかるのか、想像もつきません(汗 100回対戦して、1エポック学習するのに、大体8〜10分くらい。控えめに見て 1000万対戦としても、10万分。つまり2か月強必要です。アルファ碁は初期値を 学習した上で追加の強化学習が確か数千万対戦だから、年単位でも足りないかも(笑) 手を完全に固定(ランダム要素排除)した状態で学習により勝つ方向に遷移する事 は確認しましたが、最初の方をランダムにしたりε-greedyしたりして局面が偏らない ようにしてから、1万対戦しても勝率が良くなる気配が無いので、まだすごく不安です。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/836
837: 310 [sage] 2017/05/28(日) 21:36:00.20 ID:354vTA35 ちょっと学習データの保管期限長くしたら100ゲーム14分になった。 あと、テストゲームで動くはずのない側(学習していない方)の手が変わったので 変だなと確認したら、バグ発見。後手番になっても、先手のAIを使用していた(汗 数万ゲーム行っていたのに、また一から学習しなおし。 どうせ適当に構成しているので、少しネットワークを簡素にしてみるかな。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/837
839: 310 [sage] 2017/05/30(火) 23:20:25.76 ID:rROdfu2T バグ取りしながら、色々いじったら、バグとる前に別のバグを仕込んで・・・ と、長らくデバッグしてましたが、ようやくいじりたくなるところが収束し、バグが とれて、学習が進むようになりました。 100ゲームプレイして学習のサイクル1回が4分弱になりましたので、 結構気持ちが楽になりました。とりあえず1週間くらい学習させてみます。 一通りできたら、ポリシーの方にもトライしてみようと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/839
847: 310 [sage] 2017/06/05(月) 19:52:31.59 ID:PVR4/NQn 強化学習にトライ中。 最初の勝敗をQ学習する方法は目に見えて学習できていそうだったのですが、 ネットワークが小さすぎたのか、比較的早い段階で飽和。ネットワークを深くして 再試行しようかと思ったのですが、せっかくなのでポリシーの学習にトライ。 しかし、Q学習と違って、学習が上手く進みません。 初期値問題かと思って、最初に教師あり学習をさせてみましたが、やはり勝率が 上がらないというか、30%近辺に落ち込んだまま浮かんでも50%くらいにしか ならない感じ。このまま続けたら、どこかで戻ってくるのか。100対局の強化学習 で30分かかるので、どうしようかと。 Q学習の方は、比較的簡単に、対象のAIに勝てるようになっていて、世代の追加が 順調に進んでいました。ポリシーだと何故ダメなのか考えれば考えるほど、頭が 混乱してます。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/847
848: 310 [sage] 2017/06/06(火) 20:05:14.75 ID:6owNcmqA バグ見つけた。簡単かつ破壊力があるやつ。 教師あり学習の一致率が試行回数少ないのに85%とかになっていて おかしいとは思っていたんだけど。教師付学習も強化学習も同じバグ。 自分の盤面のところに、次の着手(要するに教師データ)を入れてた。 というわけで、教師付学習からやり直しています。 雰囲気的には、今のネットワークで一致率50%近くまで行きそうです。 あと、GitHUBでAlpha Goクローンを作っているプロジェクトを発見。 解説ページで評価関数部分を結構細かく解説してくれています。 そこで、ポリシーネットの負けた側について「学習率をマイナス」にして 学習すると書かれていて(@o@)。こんなスマートな方法があったとは やられました。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/848
851: 310 [sage] 2017/06/06(火) 20:47:41.56 ID:6owNcmqA それだす。 一致率は45%で頭打ち。 時間かけずに一致率上げる工夫方面に転進します。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/851
855: 310 [sage] 2017/06/10(土) 16:27:27.71 ID:PCeXyVVE こちらはかなり迷走中。精度を求めるとCNN時間がかかりすぎ。 やっぱり、Buroさんの評価関数の特徴を入力にして、畳み込み演算を使用しない方向で 進めるのが吉ではないかと思い始めています。最終的にオセロAIの中で実用的な速度で 答えが出せるものでないと使い物にならないので。 Buroさん特徴型でポリシーが作れるか。 バリューに相当する勝率ネットワークを作った時、その勝率が使い物になるのか? それらを強化学習で強化できるのか。 この辺に目標を切り替えます。 ちなみに、今のはBuroさん型評価関数の、評価値(終局時の石数差の予想)を、適当な 線形変換で−1〜1の勝敗の確率っぽい数字とみなして使用していますので、そこの 精度はよくなるのではないかと期待。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/855
858: 310 [sage] 2017/06/11(日) 23:00:35.72 ID:8gFXyRd+ Buroさん特徴型で2層パーセプトロン型のポリシー作って学習開始。 1エポック目でテストデータに対して正答率48%超え(汗 当然ながらスピードも速い。 やっぱBuroさん凄い。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/858
864: 310 [sage] 2017/06/22(木) 17:10:28.77 ID:nCVESNnQ 昨日の大雨が原因か、ノートパソコンがダメっぽいです。サーフェースなので、SSDの中身が取り出せるか微妙。多分アウト。 という訳で、ソース全滅を半ば覚悟してます(>_<) しばらく立ち直れないかも。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/864
866: 310 [sage] 2017/06/22(木) 21:45:09.96 ID:qlJt6F9H bitlockとかいうセキュリティ保護状態になったのですが、そんな設定してないのです。解除には、解除コードが必要なのですが、そんなの設定してないし。ディスク初期化すれば復活するとの事なので、諦めて初期化しちゃいました。 ビットハックしまくったコードなので、再度コーディングするの面倒です。 ソース保管のためにも、別のPC買うべかなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/866
871: 310 [sage] 2017/06/25(日) 22:19:41.68 ID:rGuWTts8 地道にオセロライブラリ再構築中。 ビットボード回りのビットハックな処理部分は大体できて、着手までできるようになった。 ついでにちょっとだけ改良になりそうな変更を加えた。 ネットで調べていたらmobility関数は、もう少し性能アップしそうな方法があったけど、 ソースコピペではうまく動かなかったので後回し。 ところで、非常に大きな問題があります。 この数年で、多くのオセロ関係サイトが閉鎖されていまして…。 記譜データが集められなくなりました。 50万記譜計画も、EdaxのPVBOOKもアクセス不能です。 MCTSだと評価関数なしでもプレイはできるのですが、そこから記譜を 作るしかないのかなぁ。 つか、オセロやめて、いっそ囲碁に…。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/871
873: 310 [sage] 2017/06/26(月) 23:49:18.52 ID:GJUXvwb3 藤井君凄かったね。 abemaの解説でも言ってたけど、互角のまま進行していたのに、 気が付いたら圧勝の情勢になるとか、AIチックな差し回しだよね。 じわじわとライブラリ構築中。 オセロ専用ライブラリはほぼ完成。 明日から終盤読み切り処理に取り掛かります。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/873
880: 310 [sage] 2017/07/01(土) 02:11:20.40 ID:HltHgVcC 終盤探索とりあえずのところまで完成。 盤面の持ち方をちょっと変えて__mm128iにしてみた。 パスの処理を変えてみた。 これで、FFO#40で時間計測。 YBWCで1200msくらい 置換表までで、1800msくらい negascoutまでで、2200msくらい nodeカウントを入れると15%くらいスピードダウンする(汗 そこから逆算して、200万nps以上出てる。 まあ結構な速度になりました。 偶数理論も作ってみましたが、空白マスを連続する単位で分離するオーバーヘッド が大きく、採用すると70万nps程度に落ちてしまう。この処理の良い方法が見つから ないため、いまだに偶数理論は使っていません。むむむ。 現在、素のMCTSに着手してます。 これができたら、対局集めて、EigenでMLPのライブラリ作って、評価関数(仮)作成。 評価関数をもとにPUCTにアップグレードして強化学習という予定です。 まだ先は長い(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/880
881: 310 [sage] 2017/07/01(土) 02:18:02.59 ID:HltHgVcC >>877 自己対局だと局所解にはまっちゃう時ありますよね。 DBの内容がわからないので、以下頓珍漢かもしれませんが。 解消法としては、開始後数手については、ランダム着手にする。 途中でε-greedyみたいに、ランダムな着手を挟む。 こういった方法で、局所解から外れたところも学習対象に入れる工夫があります。 気持悪いやり方だけど、5手目だけif分で強制的に直して修正済み自己対戦データ を蓄えて学習するという方法もあります。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/881
885: 310 [sage] 2017/07/03(月) 20:45:11.36 ID:rpYi4lNg MCTS自己対戦させながらデバッグ。そろそろバグはなくなりましたが… 勝っていると緩んで、負けているとギャンブルする癖と、お互いに緩みあっている間に 引き分けに収束してしまう事から、そのままでは記譜に使えない事を自覚中。 とはいえ、記譜を真面目にZebraで並べて見てしまうと、疑問手だらけで、そこを直したく なって、強化学習にならなくなってしまいますね。 序盤はMCTSで探索し、残り20手で終盤探索して後半中心の評価関数をまず作る事かな。 もともと、前半の何手かはランダム着手して、オープニングの種類が偏らないようにしよう かと思っていましたが、この調子だと、最初の40手はランダム着手にして、残り20手を 読み切りにした方が、記譜数が稼げる気がしてきました(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/885
887: 310 [sage] 2017/07/06(木) 23:41:11.66 ID:uY9At7Gi 終盤20手の盤面集めなので、ばらけた方がよいし、ランダム着手の方が速いかなと。 とはいえ、今はMCTS5秒読み+残り20マス完全読みで記譜集めしてます。 1譜3分弱で、今のところ重複記譜なしで、700譜くらい集まったところです。 さっきまで藤井四段のabemaTVにCPUを15%くらい持っていかれていました(汗 改良したいところはあちこちありますが、とりあえずニューラルネットのライブラリに専念。 optimizerをどうやって作ったか、まったく思い出せない(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/887
888: 310 [sage] 2017/07/08(土) 20:32:28.67 ID:bOmPmg/w ニューラルネットの計算でけました。たぶん。 頭が行列に切り替わるまでが憂鬱なんだよなぁ。 optimizerは計算式なぞるだけで楽勝でした。が、理解しないまま行列計算 に置き換えているので、何が何だかわからなくて、忘れちゃうんでしょうね。 続いて、tiny_dnnのstl的なインターフェースに憧れて、ミニバッチの処理 とかのインターフェースに凝りだしてしまった。 本当はレイヤー階層定義のところも凝りたかったのだけど、今のところ MLPレベル(2層)までしかやらないと自分に言い聞かせて自粛中。 学習データは1200局くらい集まりましたが、全滅の時の完全読み切り の手順取得処理にバグがあって、無限ループ入り。せっかくの全滅に 至る記譜が採れませんでした。無念。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/888
890: 310 [sage] 2017/07/10(月) 00:58:02.21 ID:NRizRRec 自分のはロールアウト関数がボトルネックなので、木が深くなると速度が上がっていき ます。MCTSの設定も、どんどん深く行く方向で調整してます。UCBの計算は普通に cmathのlogとかsqrtとか使ってます。 結局、今日は一日、ニューラルネットのライブラリのインターフェースをしこしこと 作って直して、してました。template使いまくりです。 まだやりたい事があるのですが、今の状況では不要だし、泥沼に入りそうなので、 いったんこの辺で。 記譜は1500超えたので、明日から終盤の評価関数作ってみる予定。 できたようなら、MCTSの探索方法を変えて、更に良い記譜を集めるか、それとも 置換表付き完全読み切りのバグを探すか。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/890
901: 310 [sage] 2017/07/12(水) 20:10:09.86 ID:b5nvOjQF 直ったようで何より(^^/ 自分は合流させてません。 合流させるメリットよりデメリットの方が大きそうだったので考える事をやめました。 モンテカルロ木DB化って、よくよく考えたらQ学習みたいなものではないかと思います。 Q学習だと全部のノードにQ値を持つので、結局全局面保持することになります。 現在Deep Q学習が主流になってるのは、Q値をディープラーニングで近似計算する 事で、全局面のQ値を保持しなくても良くするためという側面もあるかと思います。 で、Q学習だと考えるなら、時々変な手を混ぜて木をきちんと分岐させるってのが、 強化学習の肝ではないかと思います。 当方、完全読み切りのバグとり完了。 ニューラルネットのライブラリも大体できて、1900譜で40手目以後を学習してみました。 やっぱ、疎行列対応の行列パッケージでの計算は、tiny_dnnと比較して圧倒的に早い です。 データが少ないのと、同一の記譜内からテストデータ取っているのもあるのですが、 テスト誤差は十分小さな値になるのですが、FFOの盤面を評価させると、いまいち 合っていない感じで、あまり汎化できていない感じす。もっと記譜増やします。 やっつけで作ったmcts部分をきちっとさせるのと、とりあえず持っている評価関数 で、puct化できるか、ロールアウトの後半の精度を上げられるか、検討開始です。 強化学習までまだ遠いなぁ。でも、少し背中が見えてきたかな。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/901
902: 310 [sage] 2017/07/12(水) 20:27:07.87 ID:b5nvOjQF 記譜集めですが、8手までランダム着手していたら、 9手目で白全滅という記譜が取れました(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/902
904: 310 [sage] 2017/07/15(土) 02:17:52.56 ID:qcpUcaKf 再帰呼出は関数オブジェクトを使うと速いというのを見つけて、あちこち試してみました。 static constな再帰関数は速くなるみたい。 クラス内でthisを参照するような類は効果が無いようです。 が…、なんか数か所おかしいような。 やっぱり、どこかでバグを仕込んでしまった模様。むむむ。 続きは明日だなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/904
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.169s*