[過去ログ] 【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
711
(1): 535 2017/01/30(月)23:07 ID:nIJrclSx(1) AAS
ファイル出力が思いのほか重い。
知識では知ってたけど今回、実感しました。
DB作るときは棋譜をまとめて読み込んで書きこみは1回だけとか工夫しないとだめですな。
712: 310 2017/01/31(火)01:06 ID:tF0OU/RM(1/2) AAS
>>709
ドカンとは強くならないけど、やっている事から推測すると遺伝的アルゴリズムが
合ってそうな気がします。茨の道ですが(汗

>>711
いまどきはメモリが大きいので、全部読み込んで一括処理とか、思いのほか可能ですね。
713: 310 2017/01/31(火)01:17 ID:tF0OU/RM(2/2) AAS
困った。3層MLPで次の1手を、
外部リンク:qiita.com
を参考にして求めている(若干やり方が違う)のだけど、思ったように学習してくれない。

NNの計算どっかおかしい気がしてきたorz
714: 310 2017/02/01(水)15:57 ID:DrzIg7bz(1) AAS
ひょんな事から学習できました。デバッグ用に学習データを減らしてテストをしようとしたら
学習できてしまいまして。件数を増やすとダメになる模様。

これは仮説ですが、多種多様な棋譜を学習させると、ネットワークの自由度が不足して、
ウェイト更新が相互に打ち消し合った結果、ウエイトがゼロ(勾配消失)に陥ってしまうと。
学習に失敗した時は、大半のテストの結果が、全て同じ確率(softmaxのため)となってい
ます。中身は見ていませんが、softmax関数を通す前はオールゼロとなっている事が十分
に想像できます。

今から思うと、NNで評価関数を作ろうとして失敗していた時も、同じ状態だったのかなと。

学習データを減らすと精度が落ちますので、ネットワークをより複雑かつ大規模にしない
といけないのかなぁと。結局、同じ問題(ネットワークを大規模化しなきゃいけないけど、
自前のパソコンでは計算が厳しい上に、結果を使用する方もタイムクリティカルなので
あまりややこしくしたくない)の周りをグルグルしはじめてしまいました(汗
715: 535 2017/02/02(木)23:55 ID:JZtX1mUx(1) AAS
まとめて読むようにしたら3日かかったDB作成が数分で終了しましたw
しかしDBがかなり肥大化してしまいました。
読み込みに5秒くらいかかる。
しかもこの手法だとLV2には勝てるけどLV3には勝てないし。
LV2はパターン少ないからDBで勝利手順なぞれるけどLV3はパターンが多くてカバーできない(多分)。
そろそろ別の手を考えなければ。
716
(1): 535 2017/02/03(金)20:14 ID:jkxdJ711(1/3) AAS
DBを使ってモンテカルロ木探索の探索結果を永続的に蓄積するというのをちょっと思案中。
計算すればするほどDBが洗練されていく感じで。
717: 310 2017/02/03(金)20:39 ID:dv6j41bl(1/2) AAS
>>716
同じ事妄想したけど、それなら後方枝刈付のmin-Maxの探索結果をひたすら
ため込んでいく方が容量的にも速度的にも有利で、それができないからモンテ
カルロだって事に思いいたりました(汗

min-Maxなら、いらない枝カットできるかと思いきや、相手がそこに打っちゃった
時の事を考えたら捨てられない事にも気づきました(汗汗

で、適当なところだけ保存して、残りは別途探索・・・って、これ定石DBやん!

というオチでした。
718: 2017/02/03(金)20:45 ID:jkxdJ711(2/3) AAS
ボツ案でしたか。
でもまあ、とりあえずDBを充実させる方向でやってみます。
他に案がないので。
ディープラーニングがうまくいけばなぁ。
719: 535 2017/02/03(金)20:49 ID:jkxdJ711(3/3) AAS
今のところ黒番対LV2は2勝一敗ペースてな感じです。
もっと勝てるかと思ったけどそうでもないですね。
720: 310 2017/02/03(金)20:58 ID:dv6j41bl(2/2) AAS
こちとらディープラーニングで完全にドツボってますorz
721: 535 2017/02/04(土)19:33 ID:neMma6zi(1) AAS
ディープラーニングは盤面情報だけじゃなくてこちらでなにがしかの特徴量を計算してやって
その数値も食わせたほうがすこしはましになるんだろうか。
722: 310 2017/02/04(土)20:57 ID:ycMSfQXf(1) AAS
オセロではBuroさんの評価関数と同じ特徴を入力にしたMLPで評価関数を作った
オセロプログラムがあります。vsOthaというソフトです。

今回はディープなので、できれば特徴量は自動抽出してもらいたいものではあります。
一応、黒白の盤面情報の他、着手可能位置は与えています。

と、ここまで書いて、着手可能位置を求めるように学習させられるのか、ふと気になった。
何らかの事前学習に使えそうな気がする。

やらずに悶々としているだけなのですが、DCNNの四角い窓ではオセロの特徴はうまく
抽出できないのではないかと思っていますが、他に方法が思いつかないのが悲しい。
723: 2017/02/05(日)08:03 ID:36jlTAsU(1) AAS
そうかそうか
724
(1): 535 2017/02/07(火)20:48 ID:qiXxRrUf(1) AAS
機械学習じゃだめだ、手書き評価関数しかない…
しばらくするといや、手書き評価関数じゃやっぱりだめだ、機械学習だ…
の無限ループw
725: 310 2017/02/08(水)21:46 ID:GrcF81sn(1/2) AAS
昔mnistでオートエンコーダのテストした時のように、学習内容(ウェイト)をBMPにして
可視化してました。テストに時間がかかるので、色々すったもんだバグとりに時間が
かかってましたが、ようやくなんとか表示できるようになりました。で、とりあえず想定より
少な目の隠れ層4096個でテスト開始。

勾配ノイズ(焼きなまし)の設定値もでかすぎたので、設定値を自動計算するようにしたり。
NN復活当初うまく動かなかった原因がこれでした。

で、まだ学習途中なのですが、ウェイトデータ見ると192個(=64×3)毎に1ビットづつ
ずれるパターンに収れんしていっています。192といえば入力データのサイズで、
横に64個づつ並べたビットマップ画像に、まるで光子の回析実験のような縦じまが(汗
そんな周期性が生まれるはずがないので、どこかにバグがあるんじゃないかと。
表示するプログラムのバグかも知れないけど、1エポックに3時間かかるので、止めて
デバッグに入るか、それとも続行するかで悶々中…。

どっちにしても時間がかかるので、裏でDCNNをもう一度コーディング開始。
あまりにネストが深いのでミニバッチは一旦放棄してSGDで。
GoogleのTensorFlowがテンソルな意味が良くわかった。
DCNNだと元データが2次元で、更にチャンネルがある行列では次元が足りないorz

今最大の懸案は、とりあえず隠れ層4096でオートエンコーダの事前 学習しているけど、
それが終わり全体の学習にいって上手く行かなかった時、中間層を増やして再トライ
するか、それともDCNNに行ってしまうか。
726
(1): 310 2017/02/08(水)21:47 ID:GrcF81sn(2/2) AAS
>>724
そこは…絶対的に機械学習である!という信念が必要だと思います(汗
727: 535 2017/02/09(木)22:03 ID:qkkjChao(1) AAS
>>726
そうですかw
まあそんな気もしますが、でも終盤の積みルーチンだけなら手書きでイケそうな気もするんですよねぇ
そこだけでもなんとかできれば…
728: 535 2017/02/10(金)19:40 ID:M6OFVkZO(1) AAS
黒番だとDBのせいで対LV1よりも対LV2のほうが勝率いいみたいw
めちゃくちゃ歪んだAIになってしまったw。
729: 310 2017/02/10(金)23:52 ID:HUcinQI4(1) AAS
3日かけて学習したオートエンコーダ型はやっぱりダメでした。
可能性すら見えなかった。

というわけで、開き直ってDCNN開始。
前回はオセロ専用で展開形を作ってましたが、それではmnistなどでテストできない
ので、max_poolingも含めて、本格的にちゃんとしたものを作ってみました。
とはいえ、まだ畳み込み層の誤差逆伝播の解釈が正しいか、自信はありません。
また、テストで動かしたところ、なんかすごく重い印象です。

ちゃんと動くのかなぁ。
730
(1): 2017/02/11(土)10:06 ID:CnQo/DsP(1) AAS
GGSはmimosaというソフトを使うと入れますよ
731: 310 2017/02/13(月)22:45 ID:d/p+PbrG(1) AAS
>>730
そのmimosaのサイトがリンク切れで見つからないのです。
732: 310 2017/02/14(火)20:21 ID:lpq90WbI(1) AAS
自作ライブラリにDCNNのレイヤーを書いたのですが、あまりの計算時間にデバッグ中に
めげて、試しにtiny_dnnというC++専用のNNライブラリを入れてみましたところ、自作の
10倍以上の速度で・・・こちらに乗り換えです。

で、tiny_dnnでmnistやって感度をつかんだところで、オセロの盤面を変換する処理を
書いて、小手調べに簡単なネットワークで動かそうとしてみたところ・・・盤面データの
変換の段階でメモリーが溢れて盛大にスワップ開始(^^;

5000,000盤面×100マス(Padding含む)×4チャンネル×4バイト(float)でデータだけで
8Gbytes。自分のパソコンのメモリーは8Gで、空いているメモリーは5Gちょいとメモリー
不足が判明しました。

いまどきのパソコンはメモリーでかいから一括でも大丈夫とか言って、このざまです(笑)。

tiny_dnnは全データ一括で渡して指定エポック回してくれる仕組みなのですが、仕方ない
ので、入力データを分割して、自分でループ回します。

α碁のハード環境がうらやましいorz
733: 310 2017/02/15(水)23:06 ID:DozmM7Z3(1) AAS
色々細かく改造。やっぱライブラリがあると気が楽です(汗

簡単なネットワークの初期の学習の具合では正答率50%くらいが上限な印象だったので、
ネットワークを複雑にしてみました。で、1エポック8時間以上かなぁ。

もっとハードを・・・って真剣に思いますorz
734: 2017/02/17(金)23:21 ID:ZDoCs64T(1) AAS
AMDが今度発売するcpuが結構いいかもしれない
735: 310 2017/02/19(日)20:31 ID:PM1ZzNLK(1) AAS
DCNNで学習させてるのですが、あまりに時間がかかるので、裏でもう一度
アルファ碁の論文を。日本語解説ページがいくつかできていて助かります。

で、読んでいたら、ロールアウトポリシーなる線形Softmaxでプレイアウトの
手を選択していると・・・。つまりはオセロ評価関数のような特徴を渡して、線形
回帰の代わりに出力をSoftmaxで確率分布にしたものです。
ロールアウトポリシーは棋譜との一致率が25%程度だけど、計算が圧倒的
に速く、このばらけ具合がちょうど良いとの事。

むむむ。アルファ碁はプレイアウトの手の選択にDCNN使ってないのねorz

日本語解説のおかげで、MCTS部の構造もようやくわかった。
いくらマシンが早くても無理だろと思っていた計算も、これなら何とかなりそう
レベルの構造に落とし込まれていて、納得しました。

でも、実はまだインプットに何を食わせているのかが、よくわからない(汗
736: 535 2017/02/19(日)22:19 ID:FX6EUVR+(1) AAS
ついにアルファ碁論文まで…
英語かつ有料記事ということで私は手を出せずにいましたが日本語サイトもあるんですか。
ちょっとググってみるか…
737: 310 2017/02/20(月)20:05 ID:L40mCRWI(1/2) AAS
論文自体はだいぶ前にダウンロードしてたんですが(汗
MCTSやらない段階では、やはり理解は難しかったと思います。
DCNN部分の投入データあたりは囲碁の知識が必要だったりしますので、
まだよくわからない点が多いです。

で、MCTS的な視点から眺めると、巷の解説とは違うところにフォーカスが
あたったりします。強化学習使ったRL PolicyはValue netの事前学習で
使っていますが、プレイアウトの手の選択では線形Softmax、ノードの分岐
では教師付学習のものを使用しているなど、工夫が見られまして。オセロ
は既に評価関数があるので、無理やりDCNNしなくても応用が効くのでは
ないかと思ったりします。

とはいえ、今学習中の奴は、学習終わるまで1ヶ月くらいかかりそうではあり
ますが、どこまで手の一致率が高められるか、見てみたい気もしています。
738: 310 2017/02/20(月)20:09 ID:L40mCRWI(2/2) AAS
追記。なんか格好良く書きすぎですね。

ちょうど今MCTSで悩んでいる箇所に見事な回答を与えている点に感動。
日本語で読めたので、そこに速攻で気づく事ができたという事で。

とはいえ、アルファ碁の線形SoftmaxによるRollout関数の入力データは、
囲碁の特性がわからない事から、意味不明な事もまだあり、いずれにして
もそのままでは使え無さそうで、オセロに合わせて別途考えるしかなさそうです。
739: 535 2017/02/23(木)20:58 ID:ONUfwXLw(1/2) AAS
連続対戦してると突然落ちるバグがあるっぽいが意図的に再現できない。
どうデバッグすりゃいいんだ。orz.
740: 2017/02/23(木)23:03 ID:ONUfwXLw(2/2) AAS
再現した!
けど一回再現させんのに1時間かかるw
1-
あと 262 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.025s