X



【オセロ,将棋】ボードゲーム Part2【囲碁,War】
レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。
垢版 |
2017/10/15(日) 17:34:58.03ID:RaMh0le2
比較的地味なボードゲーム専用のスレが欲しくて立ててみました。

前スレ
【オセロ,将棋】ボードゲーム【囲碁,War】
http://mevius.2ch.net/test/read.cgi/gamedev/1057763418/
0002535
垢版 |
2017/10/16(月) 21:32:43.84ID:nZcg7vL7
ここって書きこみないと落ちちゃうとかあるんでしたっけ?
とりあえず、スレたて乙です。
0003535
垢版 |
2017/10/16(月) 22:46:32.02ID:nZcg7vL7
どこかにtiny-dnnのまとまったドキュメントないですかね〜
とりあえずvec_tというのが何者かわからないorz.
0004名前は開発中のものです。
垢版 |
2017/10/16(月) 22:57:12.10ID:hLbjq5wm
どもです。

強化学習ですが、まだまだ時間がかかりそうで、業を煮やして学習率あげたら、
バリューが発散してやり直し(汗

ちょっと工夫を加えて、強化学習を数回したら、MCTSで自己対戦して記譜作成。
記譜を見て学習の進捗を計りながら、過去に採取した記譜で軽く教師付き学習
させて、学習の方向性を補正しつつう、後半部分の精度を少しづつ上げて、強化
学習がはかどるようにしようとしてます。

というわけで、純粋な強化学習ではなくなってしまった。
0005535
垢版 |
2017/10/16(月) 23:09:26.31ID:nZcg7vL7
名前はどうしましょうかね〜
新スレだし310,535を名乗るのもなんですね…
0006名前は開発中のものです。
垢版 |
2017/10/16(月) 23:10:47.72ID:hLbjq5wm
>>3
日本語紹介記事
https://qiita.com/nyanp/items/11c6bb6fb539486c5069

作者の実装ノート
https://github.com/tiny-dnn/tiny-dnn/wiki/%E5%AE%9F%E8%A3%85%E3%83%8E%E3%83%BC%E3%83%88

英語
https://github.com/tiny-dnn/tiny-dnn/wiki
http://tiny-dnn.readthedocs.io/en/latest/how_tos/How-Tos.html

こんなの見てました。

vec_tについては、3番目のwikiのData-Format
> https://github.com/tiny-dnn/tiny-dnn/wiki/Data-Format
に、vector<double>であると書かれています。

なんちゃらparserってのは、外部のデータをtiny_dnnの内部形式である、
vec_tやlabel_tに変換するユーザ関数で、用途に合わせて自分で書かなけ
ればならないものです。入力データが2次元であっても、左上から右下に
一列のベクトルとしてセットして、縦横の情報はレイヤー定義で与えます。
0007535
垢版 |
2017/10/16(月) 23:18:52.91ID:nZcg7vL7
おお、ありがとうございます。
読んでみます。
0008535
垢版 |
2017/10/19(木) 00:44:02.75ID:NEwsyYTL
気が散ってほかのことをしてしまうorz.
先延ばし先延ばしにしてしまうorz.
0009535
垢版 |
2017/10/19(木) 00:44:48.21ID:NEwsyYTL
IDがNEWSや!
0010名前は開発中のものです。
垢版 |
2017/10/19(木) 15:52:29.71ID:ETYZ9m/m
アルファ碁ZEROだそうな。
自己対局の強化学習のみだそうな。
レート5000越えだそうな。

囲碁AIやらなくてよかった・・・
0011535
垢版 |
2017/10/19(木) 17:50:51.04ID:9y30JekY
旧アルファ碁に100戦100勝て
宇宙やばいってレベルじゃねーぞ?
0012名前は開発中のものです。
垢版 |
2017/10/20(金) 15:58:45.15ID:AyXCD9Rq
掲示板情報を総合するとMCTSなんだけどRolloutを使っていないという事らしい。
現在出張中なので、論文ダウンロードを躊躇しているけど、読みたいなぁ。

自分のオセロでは、スピードを稼ぐためにRolloutにヒューリスティックスな次の1手
を使用しているけど、自己対戦見ていると序盤良い感じで来ていると、Rolloutが間違
えて、負け手順に入る事が多い。それで、Rolloutせずに(したふり)Valueの遡りだけ
でQ値を計算したらどうかと思っていたんだけど、そういう事なのかなぁ。Rolloutを
省略しちゃうと、ものすごいスピードアップするので、探索が深くなるんだよなぁ。

先にやっちゃえばよかった(汗
0013535
垢版 |
2017/10/20(金) 22:03:42.47ID:NnxpZZEA
すいません、310じゃなくてもいいのでなんかコテつけてくれませんか?
どうせ2人しかいないからわかるっちゃわかるけどw
0014310
垢版 |
2017/10/20(金) 22:21:51.68ID:AyXCD9Rq
あ、つけ忘れ失礼。

Rollout無し版を試してますが、何故か最近静まっていた終盤読み切りのエラーが(汗
撲滅していたはずなんですが・・・
0015名前は開発中のものです。
垢版 |
2017/10/24(火) 00:38:25.07ID:lvcSYEt0
Rollout無しのMCTSは圧倒的な探索深さを実現できるかわりに、今までRolloutで
修正かけていた評価値の誤りがダイレクトに出て、読み間違いは相変わらずです。

強化学習が進めば治るはずですが、SGDでは遅々として学習が進まないので、
optimizerをSMORMS3に戻して、一旦記譜学習を増やしてみました。やはり学習速度
が圧倒的に違います。そして、このやり方でも大丈夫っぽいです。

どうも遠回りしていたようです(汗
0016535
垢版 |
2017/10/25(水) 20:54:40.99ID:atHU9A83
なんだろう、このtiny-dnnの得体のしれぬハードルの高さは…
パッと見、すごくよさげに見えるのに全然前に進めない。
なんだろう…なんだろう…
0017535
垢版 |
2017/10/26(木) 00:13:05.87ID:vVm7O/8N
とりあえず、mnistのやつは正解をlabel_tで渡すみたいだけど
局面の勝率を正解にしたい場合はどうすればいいんだろう?
ラベルと勝率じゃデータ構造違うよね多分?
それとも同じなんだろうか…
0018535
垢版 |
2017/10/26(木) 00:16:30.06ID:vVm7O/8N
内積とると考えれば勝率を一次元のベクタと見なせばつじつまが合うのか?
0019名前は開発中のものです。
垢版 |
2017/10/26(木) 09:53:53.13ID:43FvyXwK
>>17
mnistは、分類器(他クラス分類)なので、活性化関数はsoftmaxになり、教師データ
はlabel_tで与えます。別にvec_tでも良いですが、例えば3という答えに対して、
label_tは{3}なのに対し、vec_tは{0,0,0,1,0,0,0,0,0,0}などとなって冗長なので、label_tが
用意されているわけです。他にも、誤差の計算方法が違うなんてのもあります。

一方、ゲームの勝敗予想は2値分類問題なので、活性化関数はsigmoidで、教師
データはvec_tとして、勝利を{1}、敗北を{0}として与えて学習させます。

オセロには引き分けがあるので、引き分けは{0.5}としてみましたが、勝率50%と引き
分けでは意味がまったく違うのが悩みの種です。2人ゼロ和完全情報ゲームでは
勝率50%というのは理論上存在しないのですが、強化学習の途中などでは生じます
からね。

なお、tiny_dnnでは2値分類や回帰の学習には入力データも教師データもともにvec_t
で与えてfitを用い学習します。mnistのような他クラス分類でlabel_tで教師データを与え、
学習をする時はtrainを使用します。
0021535
垢版 |
2017/10/26(木) 21:09:13.33ID:vVm7O/8N
おおーありがとうございます。
trainの代わりfitってのがあるんですね。
ドキュメント読もうとしても英語ということを差し引いても
気が散っちゃって目が滑っちゃってどうにも駄目です。

試してみます。
0022名前は開発中のものです。
垢版 |
2017/10/26(木) 22:02:22.81ID:/MbW7Vlw
CNNの例題は大抵が多クラス分類問題ですからね。
説明がfit中心になりがちです。
つか、僕もかなり目が滑りました(汗
0023535
垢版 |
2017/10/26(木) 23:07:10.48ID:vVm7O/8N
うお、コンパイル通ったけど不正終了するorz
ネットワークの形が不整合起こしてるのかなぁ
0024535
垢版 |
2017/10/26(木) 23:47:16.17ID:vVm7O/8N
動いた!
入力の形がおかしかったみたい。
0025535
垢版 |
2017/10/27(金) 00:51:01.21ID:DjbLG1y4
cross_entropyだと動くのにmseだと落ちる
完全に意味不明
0026535
垢版 |
2017/10/27(金) 01:02:07.81ID:DjbLG1y4
cross_entropyでも動かなくなったw
なんなのwww

もう寝る
0028名前は開発中のものです。
垢版 |
2017/10/27(金) 01:34:38.06ID:3GgMcLzr
rollout無しにして探索速度がかなり上がったのですが、10手目近辺には
ツリーの深さが50手まで達してしまいまして、今度はスワップとの闘いに
なりつつあります。探索幅をケチればスワップは回避できるのですが、
そうすると読み漏れが・・・。

8ギガ程度じゃこの速度を活かせません(汗
0029310
垢版 |
2017/10/27(金) 09:09:34.47ID:InThdIzI
あれれ。また名前が消えていた(汗
お分かりの通り、今のところ名無しは310です。
0030535
垢版 |
2017/10/27(金) 21:44:23.84ID:DjbLG1y4
なんかキャッチできたみたいです。
bad allocation
だそうです。

いまはmain全体をtryでくくっているのでどこで例外が出ているのかよくわからないですね。
まずはそこの絞り込みですかね。
0031535
垢版 |
2017/10/27(金) 22:06:52.63ID:DjbLG1y4
なんかスタックオーバーフローっぽい。
0032535
垢版 |
2017/10/27(金) 22:12:35.89ID:DjbLG1y4
盤面のデータをvectorに突っ込んで返す関数があるのですが、
盤面のデータがでかすぎるってことみたいですね。どうやら
0033535
垢版 |
2017/10/27(金) 22:13:39.78ID:DjbLG1y4
>>27
解決したみたいです。
ありがとうございました。
助かりました。
0034535
垢版 |
2017/10/27(金) 22:45:06.44ID:DjbLG1y4
スタックオーバーフローじゃなくて32bitだとメモリが足りないってことみたい。
64bitでコンパイルしたら正常に動いたみたいです。
0035535
垢版 |
2017/10/27(金) 23:11:51.03ID:DjbLG1y4
動いてるように見えるけどエポックが進んでも損失が変わらない。。。
何を間違えてるんだろう?
0036535
垢版 |
2017/10/28(土) 01:11:42.69ID:MUiBaiII
ネットワーク少し複雑にしたら激遅になったorz.
も〜ムカつく。
0037535
垢版 |
2017/10/28(土) 01:24:04.86ID:MUiBaiII
ん、これシングルスレッドで動いてるん?
マルチスレッドに出来るのかな…

もう今日は寝ます。
0038310
垢版 |
2017/10/28(土) 13:51:26.14ID:rt9aGKVT
ネットワーク1段増やすだけで信じられないくらい遅くなりますよね。
最初に十分に深くして学習させて、だんだん減らしながら適切な深さを
求めたいんだけど、この速度低下を考えると、本当に学習できるのか
わからないままだんだん深くしていくしか無いというのが萎える点です。

スレッドについては、リソースモニターで確認するとわかりますね。

ヘッダのどこかに並列化の設定があったはずです。
コンパイラがVSならOpenMPのオプションを設定します。

コンパイラのオプションの方もOpenMPの設定をお忘れなく。
0039535
垢版 |
2017/10/28(土) 22:22:00.33ID:MUiBaiII
一応マルチスレッドで動いてるみたいですけど、CPUが50%位しか行かないですね。
あと、エポックが進んでも損失が変わらない原因がさっぱりわからないorz.
0040535
垢版 |
2017/10/28(土) 23:21:37.85ID:MUiBaiII
畳み込み層の設定がおかしいみたい。
畳み込み層外したら損失減った。
0041310
垢版 |
2017/10/28(土) 23:37:15.46ID:rt9aGKVT
CPU使用率はそんなもんかも。
ヘッダの話、Eigenとごっちゃになってるかも。

強化学習ですが、徐々に進んでいます。もっと早くSMORMS3にしとけば良かった。

終盤読み切りのソート順に評価値を使用しているのですが、目に見えて速度が
上がってきています。また自己対局の精度も上がってきたようで、遡りチェックで
30手まで何度か行きました。逆に記譜収集の方は、スコアのばらつきが無くなって
きて、記譜的に良い事なのか不安。

というわけで、手ごたえを感じつつ、現状に合わせて若干設定変更。
0042535
垢版 |
2017/10/29(日) 00:36:11.21ID:zJx7nuOS
なんか畳み込みにこだわらなくても全結合でも結構いい線いきそうな?
まあ試しに全結合で進めてみるか。
0043535
垢版 |
2017/10/29(日) 18:55:23.53ID:zJx7nuOS
AIに組み込んでみましたが全く強くなってないですw
そういえば、ライフゲーム囲碁はDBつかっても強くならないんだったww

囲連星に転進するか…
0044535
垢版 |
2017/11/01(水) 00:19:41.19ID:M72WSH0d
囲連星のDB全部vec_tに変換したらメモリパンクした^^
学習しないな俺w

マジでスレッドリッパーに128GB積みたい気分
0045535
垢版 |
2017/11/01(水) 00:42:51.08ID:M72WSH0d
データ減らしたら動き始めました。
でも遅いな〜こりゃそう簡単には終わらんぞorz.
まあ今晩一晩流してみますが…
0046310
垢版 |
2017/11/01(水) 01:06:46.90ID:FDjtq7R7
バラして部分づつ学習する手もあるかも。
あ、元データはランダムに並び替えた方が良いですよ。
わかってると思いますが。


こちらは、しばらく強化学習していたら、それなりに学習が進んだ結果、
対戦相手側の手のばらつきが足りなくなって、局所解に陥ってた感じ。
急きょばらつきを広げて学習再開させたところです。

バリューの方は地道に損失が減っているんだけど、ポリシーの損失が
増えてきた。ポリシーはsigmoidがあるので、ウェイトが絶対値でとてつも
なく大きくなって、なかなか修正しきれない状況になってるかもしれない。

一旦リセットすべきか悩み中。
0047535
垢版 |
2017/11/01(水) 19:51:55.33ID:M72WSH0d
1エポック5000秒、しかも損失があんまり減っていかないorz
これはかなり厳しい
0048535
垢版 |
2017/11/01(水) 20:00:50.18ID:M72WSH0d
ネットワークの大幅な簡素化が必要か?
でも今のネットワークでも損失が減っていかないところを見るとそれも望み薄かなぁ
0049310
垢版 |
2017/11/01(水) 20:13:34.50ID:A50hx8cn
たぶん、損失の減り方は最初はゆっくりだと思います。
「特徴抽出しながら」誤差修正していってますから。

僕と同じ悩みですね。
ネットワークの大幅簡素化の結果、最終的に線形回帰まで戻ってしまいました(汗
もっとも、オセロはBuroさんの特徴抽出があったから線形回帰まで戻れたのですが。

スリッパとGPUが呼んでます(笑)
でも、もしかしたらAMDよりINTELの方が良いかもしれない。
高いけど。
0050535
垢版 |
2017/11/01(水) 23:16:09.92ID:M72WSH0d
簡素化してみました。
1エポック650秒位。
損失はあんまり減っていかない。
うーん。
0051535
垢版 |
2017/11/01(水) 23:18:55.84ID:M72WSH0d
>>49
買うとしてもZen+まで待ちます。
0052535
垢版 |
2017/11/02(木) 20:54:58.92ID:PGhNTWut
60エポック回したけど損失減らずorz
くそ〜どうすりゃいいのさ
0053535
垢版 |
2017/11/02(木) 21:57:25.36ID:PGhNTWut
ライフゲーム囲碁は結構損失減ったのになぜ囲連星はあんまり損失が減らないんだろう?
入力のサイズがでかいのは確かにあるけど。
0054535
垢版 |
2017/11/02(木) 22:35:50.49ID:PGhNTWut
石を中央寄せにして19x19の盤面を9x9くらいに削ってみるか…
0055535
垢版 |
2017/11/02(木) 23:58:27.26ID:PGhNTWut
お、損失ちょっと減った。
これで一晩回してみるか
0056535
垢版 |
2017/11/03(金) 20:29:00.55ID:MdRaqfZr
うーん。学習率がでかすぎるっぽい?
0057535
垢版 |
2017/11/03(金) 20:40:20.21ID:MdRaqfZr
ユニット数少な目段数多めがいいみたい?
0058535
垢版 |
2017/11/03(金) 21:52:31.44ID:MdRaqfZr
ミニバッチサイズも何気に速度に影響ありですねぇ
ここでもパラメータいじりの沼か。。。
0059535
垢版 |
2017/11/04(土) 20:21:38.30ID:N2Ul/N+d
あかん、まったく使い物にならないっぽい。orz
学習が足りないだけなのか根本的に無理筋なのか。。。
0060535
垢版 |
2017/11/04(土) 21:18:12.47ID:N2Ul/N+d
勝率予想だからダメなのか?
次の一手予想のほうがいいんだろか?
うーん。
0061535
垢版 |
2017/11/04(土) 22:07:45.27ID:N2Ul/N+d
あとは畳み込み試してないか…
畳み込みに賭けるか…
0062535
垢版 |
2017/11/05(日) 00:31:37.24ID:BZBdQob/
お、畳み込み動いた。
後はどれだけ損失が減ってくれるかだな…
0063310
垢版 |
2017/11/05(日) 01:04:52.45ID:BooXEMcV
同じ道をたどってますね(汗

こちらは、MCTSで構築したツリーを使って、完全読み切りが速くならないか
試していますが、謎のバグのオンパレードでかなり戦線縮小。一応、それなり
に動作するレベルまで撤退してテストしていますが、なんとなく速度アップは
している模様。

ただ、バグの過程で置換表データに変なものが混じったらしく、学習させると
異常終了になります。記譜は1700件くらい集まっているので、一旦全消去して
しまいました。
0064310
垢版 |
2017/11/05(日) 17:40:16.26ID:BooXEMcV
ツリー探査がおかしくなる状態を確認。
けど、カーっとなって即座に終了してしまったので、詳細判明せず。
なんとなく症状は見えたので、しばらく目視デバッグします。

というか、これにより直近に遡りチェックやった記譜の正確さに不安が生じてます。
やけに遡りチェックが簡単に通るなぁと思っていたけど、これが原因かもしれない。
というわけでタイムアウトまで行った記譜を50件ほど再チェックしなきゃならん。
全部で54時間くらいかかる予想。今週はまるまるパーになりそうです。

その分、良質な置換表データが補えるんだけど。
0065310
垢版 |
2017/11/05(日) 17:50:28.12ID:BooXEMcV
計算間違い。全部で80時間くらいだorz
0066535
垢版 |
2017/11/05(日) 20:13:01.98ID:BZBdQob/
畳み込み駄目でしたorz
くそ〜ディープラーニングからは一時撤退するか…
0067310
垢版 |
2017/11/05(日) 23:36:09.29ID:BooXEMcV
ぬがーーーーーーーーーーーー!
バグって、記譜データがすべて上書きされて消えてしまったorz

ツリー利用探索のデバッグ用にput処理にエラートラップ仕掛けた時に
やっちゃいました。

学習済のデータが残っているのだけが救いだ・・・。
ここから記譜作ると、そこそこ精度が良い記譜になるはずなのが救いだ…。
0068535
垢版 |
2017/11/06(月) 20:40:50.16ID:opZqsFg1
バックアップ取れしw
一回コード全飛ばししてるでしょうに。
0069535
垢版 |
2017/11/06(月) 21:50:55.01ID:opZqsFg1
アルファ碁Zeroの手法まねできないかなぁ
でも論文読んでもわかんねぇだろうなぁ
ていうかGoogleがライブラリとして公開してくんねかなぁw(他力本願)
0070310
垢版 |
2017/11/07(火) 15:06:28.24ID:8EOI4Ksy
>>68
おっしゃる通りですorz

評価関数の方は要所要所でコピー残していたのに、記譜はなめてました。

>>69
ライブラリ公開されても、実行できる環境構築の方がハードル高いかなと。

論文はいまだに読んでいませんが、rollout無し(バリューネットに100%依存)
はうまく機能しています。圧倒的にツリー探索性能がアップしているため、評価関数
の精度の低さを、力技でカバーしている感じですが。

とはいえまだ30手以前の評価値はでたらめに近い状態なので頻繁に間違えます。
強化学習でここまで治るのにどれくらいの時間がかかるのかは不明。後ろの方の
精度が上がらないと、前の方は間違った学習を繰り返すことになりますので。

後ろの方の評価関数がそこそこまともになったので、読み切り処理や遡りチェックの
時間はかなり早くなりました。タイムアウト1時間設定で時々空白31マスまで遡れる
ようになってきています。
0071535
垢版 |
2017/11/09(木) 21:31:59.52ID:H3GhZh8x
とりあえず、ディープラーニングは一時中断します。
囲連星の序盤のDBは非常にうまく動いてるので、
終盤もDBを生かせないか検討中です。
それと同時にLV3 vs LV3の棋譜取も再開しました。
データは多いほどいいので。

あと310さんの遡りチェックというワードが気になってます。
例えば囲連星の終盤DB作るときにどこから勝負ありの状態になったか
チェック出来たらどうだろう。とか考えています。
0072535
垢版 |
2017/11/10(金) 23:45:05.32ID:8vC+UsNi
天頂7買ってみました。
9段に5子置きで勝てましたが4子で勝つのは相当厳しそう。
天頂6より「あ〜そこ大きそうだよね」ってところを的確に打ってくるみたいです。
0073535
垢版 |
2017/11/12(日) 20:00:47.41ID:UqBtKmZ3
終盤DBの試作、作ってみましたがあんまり上手く動いてないみたい。
データが終局までの手数しかないのがまずいのかも。
0074535
垢版 |
2017/11/12(日) 21:02:51.28ID:UqBtKmZ3
将棋電王戦あったみたいですね。
ポナンザは優勝ならずみたいですね。
0075310
垢版 |
2017/11/12(日) 22:19:15.47ID:Uu7EAeJ9
しばらく出張してました。

終盤DBといえばチェスですかね。
遡りチェックは詰みを回避できるかチェックになるのかなぁ。
オセロだと何にも考えずに終局の石差でやっちゃうので。
言われてみて気付いたけど、ゲームの種類によって結構違う考えが必要なんですね。

最近、藤井四段に触発された友人の影響で将棋を始めました。
負けたくないので、3手詰め問題解いていると、どうやってプログラムしようか
とか雑念が沸いてきてしまいます(汗
0076310
垢版 |
2017/11/12(日) 22:31:15.55ID:Uu7EAeJ9
MCTSのツリーを使ったオーダリングは、たぶんバグが取れたと思います。
が、なんか別のところで意味不明の動作をして、速度が出せませんorz

また、テストの際に半日経っても終了しなかった盤面を使ってしまい、
何度もやり直しをしていたために、強化学習が滞ってしまいました。

これ曲者過ぎるので、今夜一晩解かせてパスしたい。
朝までにとけなかったらどうしよう。
0077535
垢版 |
2017/11/13(月) 23:59:34.34ID:0hUAGldi
試しにMCTSとか必至ルーチンとか重い処理全部取っ払ってみたけど思ったより弱くならなかった。
思ったよりってだけで弱いことは弱いけど。
0078535
垢版 |
2017/11/14(火) 00:20:44.53ID:7RkiqcHt
LV1,LV2にも負け越すみたい。
やっぱ弱いわw
勝負が十数秒でつくのは面白いけど。
0079310
垢版 |
2017/11/14(火) 00:31:34.47ID:ZeqYQGfh
重い局面は6〜7時間くらいかけてクリアしました。

MCTSの速度が出ない問題は、解消というか、原因不明のまま別の方法で回避。
parallel_forの問題かと思っていたけど、shared_ptrの方の問題だったっぽい。
遡りチェックの時、PVは探索せずに、その他の手をチェックしていくので、他の手
にも探索を振り向けたかったのですが、単純に1手先の局面からUCTを実行すると
10万プレイアウトくらいで突然数十秒宇固まったようになって、それを何度も繰り
返す結果、まったくツリー探索が進まないという症状です。UCT探索の方に1回目
だけランダムに着手する関数を作って、そちらを呼び出したところ、固まらなくなり
ました。

ようやくまともにツリーをオーダリングに再利用できるようになったのですが、要所
要所で極端に探索が遅くなって、逆に時間がかかります。
今しばらく調査が必要な模様。
0080535
垢版 |
2017/11/14(火) 00:38:47.74ID:7RkiqcHt
途中経過

70局目
黒(airandom.dll)の勝利回数: 29
白(ai-lv2.dll)の勝利回数: 41

61局目
黒(ai-lv2.dll)の勝利回数: 53
白(airandom.dll)の勝利回数: 8

58局目
黒(airandom.dll)の勝利回数: 18
白(ai-lv1.dll)の勝利回数: 40

46局目
黒(ai-lv1.dll)の勝利回数: 26
白(airandom.dll)の勝利回数: 20
0081535
垢版 |
2017/11/14(火) 08:46:58.91ID:7RkiqcHt
途中経過

311局目
黒(airandom.dll)の勝利回数: 97
白(ai-lv2.dll)の勝利回数: 214

275局目
黒(ai-lv2.dll)の勝利回数: 237
白(airandom.dll)の勝利回数: 38

259局目
黒(airandom.dll)の勝利回数: 114
白(ai-lv1.dll)の勝利回数: 145

213局目
黒(ai-lv1.dll)の勝利回数: 144
白(airandom.dll)の勝利回数: 69
0082310
垢版 |
2017/11/14(火) 23:35:06.48ID:ZeqYQGfh
MCTSのツリーを使用する奴は、どうも挙動が変なのですが原因不明なので後回し。

アルファ碁Zeroでは、強化学習に軽い探索を取り入れたというのを見かけたので、
想像で真似してみる事にしました。

序盤はランダム着手。そこから5手読みの中盤探索を入れて、残り10手完全読み。
評価関数はValueを使用。たぶん、学習はマシになると思います。

もっと精度が上がったら、3手読みにしてスピードアップしたいです。
今はまだ結構ボロボロなので、これで我慢。
0083535
垢版 |
2017/11/15(水) 00:08:07.85ID:hR/pxKTk
丸一日回してみました。
1000局くらい軽くいくだろうと思ってたけど意外と時間かかってますね。
これはこの辺にしておきます。

533局目
黒(airandom.dll)の勝利回数: 175
白(ai-lv2.dll)の勝利回数: 358

475局目
黒(ai-lv2.dll)の勝利回数: 407
白(airandom.dll)の勝利回数: 68

450局目
黒(airandom.dll)の勝利回数: 198
白(ai-lv1.dll)の勝利回数: 252

365局目
黒(ai-lv1.dll)の勝利回数: 252
白(airandom.dll)の勝利回数: 113
0084310
垢版 |
2017/11/17(金) 23:19:33.73ID:0nQ3gtJu
浅い探索付き強化学習は結構有効に機能しているようです。
学習の速度が明らかに上がったし、精度も良くなっているようで、テスト盤面の
誤差が結構減りました。ただ、そろそろ飽和したか、局所解に入ったような印象。

で、色々考えたあげく、線形回帰ではこの辺が限界かもしれないという事で、
評価関数をmlpにしてみました。valueの方がうまく学習しなかったので、回帰型
ではなくsigmoid出力にして0〜1の数字を石差に変換かけてます。
強化学習は、回帰版の評価関数の結果をそのまま利用してます。

そろそろそこそこ使えそうな誤差になってきたようだし、強化学習は自分に対して
行った方が良いはずなので、全面的にmlpに移行しちゃおうか悩み中。
0085535
垢版 |
2017/11/17(金) 23:58:50.71ID:8tEb8SWm
やっぱ思考時間短いといろいろいいんだよなぁ。
モンテカルロは確かにある程度強さ出せるけど
遅いのどうやって克服していいかわからんし。
悩ましい。
0086310
垢版 |
2017/11/18(土) 20:23:37.47ID:TwYSqk9E
やっぱスピードは万能ですよねぇ。

モンテカルロですが、評価関数ができたら、アルファ碁Zero方式で(汗
緩やかに読み筋を絞り込みながら、有望な手を深読みする形になります。

mlp版を試していますが、中間層を64にしたら、学習は良いのですが、
モンテカルロが劇遅になりました…。今、中間層8で強化学習していますが、
なんか早々と線形回帰と同様に飽和状態になってしまった模様。

速度的には8が限界な気がする。

途中まで線形回帰の強化学習記譜で学習させていて、同じような癖がついて
しまったのかもしれないので、今晩一晩まっさらから学習させてみようかな。
0087310
垢版 |
2017/11/19(日) 15:23:45.94ID:O7LFJYCP
あちゃー。

学習がいまいち変に感じていたのは、これは恥ずかしくて言えないレベルの
仕様ミスでした。あれ?と思って、良く考えずに念のため追加したコードが
数か所。ことごとく悪さしていました。

数日損をしたなぁ。
0088310
垢版 |
2017/11/20(月) 22:18:43.00ID:/GG7G9SR
ぎゃー。

評価関数に入れるデータの変換テーブルに間違い見つけた。
評価関数がいまいち収束しなかったのはこれが原因かも。

もともとの線形回帰版の時代から隠れていたものなので、
線形回帰版も計算し直しです。

というわけで、数日パーどころか1か月単位でパーですorz
0089310
垢版 |
2017/11/20(月) 22:23:13.40ID:/GG7G9SR
申し遅れましたが、これにて評価関数は最初から計算しなおしです。

幸い、記譜が60件+遡り時の訂正前分100件ほどの合計160件と、
置換表から拾ったものが10万件単位でありますので、最近得ていた
感触だと、これをベースに強化学習で補えそうだというのが、
唯一の救いです。
0090535
垢版 |
2017/11/21(火) 23:12:52.06ID:orTiLUyu
やっぱアルファ碁ゼロは理想形なんだよなぁ。
全てが理想的すぎる。
まあ必要計算資源があれですが。。
0091535
垢版 |
2017/11/23(木) 19:54:22.22ID:5nKVQF7K
アルファ碁ゼロには興味あるが詳細情報は意外とWebで探すの大変ですね。
かといってネイチャー買うのも金もかかるし読んでも多分理解できないからなぁ。
でも終盤DBとかやってても全然成果あがらなさそうだし生きてて辛い。
0092535
垢版 |
2017/11/23(木) 21:16:22.89ID:5nKVQF7K
囲碁ソフトにLeela Zeroというオープンなフリーソフトがあるそうな。
何か参考になるだろうか?
0093310
垢版 |
2017/11/23(木) 21:17:40.34ID:A/JPNP9D
アルファ碁ゼロの論文はまだ読んでませんが、アルファ碁の正常進化ですよ。
自分はDeep Learningのところは「しかと」しているので、MCTSの進化形として
とらえてみると、まあ想像ですうが、当たり前の事を当たり前にやっただけかなぁ
と思っています。

それより大問題が…
また、評価関数の入力データ作るための変換に間違いを見つけてしまいました。
前回どころではない大きな間違いで、良くこの評価関数でそこそこ収束していたなぁ
というレベルの間違いでした。ソース喪失して書き直していたところから仕込まれて
いたんだと言う事で。

なんか入力いい加減でもそこそこな評価関数ができちゃう事にびっくり。
今度こそ大丈夫と信じて・・・
0094535
垢版 |
2017/11/24(金) 22:55:40.11ID:QoCCcG2C
なんかleela zeroのreadme読んでみたけど、一般人が買えるハードウェアだと
アルファ碁zeroの強さを再現するのに1700年トレーニングしなきゃならんとかw
は〜絶望するわ。
0095535
垢版 |
2017/11/24(金) 23:04:07.44ID:QoCCcG2C
結局、仮に大金つっこんでスレッドリッパーとか買ったとしても到底無理ってことじゃん。
まあ、まったくの無駄になるとは思わないけど。
0096535
垢版 |
2017/11/24(金) 23:04:57.72ID:QoCCcG2C
なんかIDにCがいっぱいあるな。
0097310
垢版 |
2017/11/25(土) 00:38:47.57ID:Dx7Nr2Ji
もういっちょ間違い発見orz

ソース喪失後焦って数日でパーッと書いて、そのまま学習させて、そこそこ
収束していたから放置していたのを思い出してきた。今度は全部チェックした。

しかし、いい加減な評価関数でも、結構収束していたってのが凄いな。
そこはかとなく表現力不足を感じていたのはその辺が原因かなぁ。

記譜と置換表データで1から学習させるのに、一気に500回学習させたら、
思いっきり過学習になってしまった。現在、強化学習で解きほぐし中。
回帰の方はほぼほぐれたけど、MLPの方はまだ時間がかかりそう。
0098310
垢版 |
2017/11/25(土) 00:54:30.38ID:Dx7Nr2Ji
>>95
某スレをウォッチしていたら、前から気になっていた事を指摘していた人がいた。
スレッドリッパーはAVX2命令の中に遅いものがあって、一つ下のインテルの奴の
方が、この手の計算は速いらしい。

あと、GPUをどう使うかだね。
けど学習だけならTensor Flowにやらせちゃえばよいのだろうけど、学習データを
使うところまで行ったら、GPU使った非同期並列処理とか考えなきゃならないし。
CUDAだっけ?GPU専用にコード書かないといけないし。

なんか道筋というか、そこまでやってる自分の姿がイメージしきれない(汗

その前に詰将棋を解くプログラム開発してそう(笑)
0099535
垢版 |
2017/11/25(土) 01:01:08.99ID:ekS5f4AB
某スレってどこですか?
GPGPUはもうちょっとハードル下がってほしいですねぇ
CPUよりも何十倍も速くなるケースもあるらしいし興味ありますね
CUDAをごりごり書くのは難しそうですがライブラリとかに期待。
0100310
垢版 |
2017/11/25(土) 01:26:03.49ID:Dx7Nr2Ji
コンピュータ囲碁か何かのスレです
この1か月くらいのカキこのどこかにありました(汗
0101535
垢版 |
2017/11/25(土) 23:11:08.18ID:ekS5f4AB
ちょっと目先を変えて9路囲連星やってみようかな。
9路なら序盤DBだけで押し切れそうな気がするw。
0102535
垢版 |
2017/11/25(土) 23:33:24.64ID:ekS5f4AB
310さんみたいに既存コード全捨てでやってみようかなぁ?
もう一度まっさらな気持ちになって…
0103535
垢版 |
2017/11/25(土) 23:53:52.98ID:ekS5f4AB
まっさらな状態から書いてみようとしたけど、
めんどくさくなってすぐ昔のコード確認しちゃうw
駄目すぎるw
0104310
垢版 |
2017/11/26(日) 13:10:07.09ID:kav93n5u
ソース喪失以外の時は、結構コピペしていますよw

書き直しの時は、たいていあちこちで使用しているクラスの構造変え
たりする類の後戻りが難しい変更加える時なので、中の関数は一緒です(汗

新しい評価関数は、だいぶ落ち着いてきましたが、遡り28手くらい
でタイムアウトになります。並べ替えに使っているので精度が上がる
と速度が速くなるのです。前は29手、調子が良い時は30手くらい
まで行っていたので、まだ精度が追い付いていないみたいです。

これでしばらく強化学習の具合見ながら待つだけになっちゃいました。

5×5の囲碁くらいならCNNで評価関数作れないかなぁとか、詰将棋を
作るならBitboardを2バイトに拡張しなきゃとか、悪い虫が疼き始めて
います。
0105535
垢版 |
2017/11/26(日) 21:08:25.02ID:wxjv7tgm
後のコード書きやすいように柔軟性のある設計にするかゴリゴリの最適化を目指すか悩み中w
0106535
垢版 |
2017/11/26(日) 21:53:28.37ID:wxjv7tgm
ああ、最適化の誘惑に駆られるw
0107310
垢版 |
2017/11/26(日) 22:28:47.97ID:kav93n5u
僕が読んだ本では、

最適化するな。アルゴリズムを考えろ。
アルゴリズムなら桁単位で速度アップし、過去に行った最適化は無駄になる。

と言うよな事がトップに書いてあって、それ以来(自分の)読みやすさ優先にしている。

BITBOARDのAVX2命令とか、その辺でいくつかの関数のみ、ゴリゴリにしている。
とはいえ、その辺も一応アルゴリズムの範疇かなぁ。
演算子のオーバーロードとか関数で隠ぺいしているしね。

問題は、最初にクラスの構造とかあんまり考えてないので、あとでごちゃごちゃに
なってしまう事。それで何度か書き直ししている。
0108535
垢版 |
2017/11/26(日) 22:35:57.72ID:wxjv7tgm
まあ、そのセオリーは私もどこかで聞いたことありますがw
アルゴリズムでの改善が行き詰まると結局泥臭い最適化に手を出すことにww
すでに一回実装したことのあるプログラムだしある程度勘所というか見通しは立つかなーと
0109535
垢版 |
2017/11/27(月) 23:15:23.55ID:jINzvSI7
勢いでコード書きなおしてるけどテストするのが面倒くさいw
言ってもしょうがないけどw
0110310
垢版 |
2017/12/01(金) 20:29:48.04ID:ONM9KZwZ
またしても問題発覚。

タイムアウトなどでキャンセルしたとき、探索途中の中途半端な評価値の置換表
が作成されている模様。対象の特定はできないため、置換表データをいったん
削除して、全データに対して再度遡りチェックを実施する事で、置換表データを
再作成する事にしました。

むむむ。

評価関数はそれなりの精度になっているので、それなりの速度ではチェックできる
はずですが、またしても…って感じでがっかりです。

同一評価値で変化がある分、記譜は多少は膨れるはずなので、そちらに期待。
0111535
垢版 |
2017/12/05(火) 23:23:49.29ID:CujvIJMm
9路囲連星、一応ルールと簡単なモンテカルロAIはちゃんと動いたっぽいです。
ここからどう展開するか。
0112310
垢版 |
2017/12/05(火) 23:36:41.89ID:5HB6IIYO
とりあえず軽く遡りチェック完了。28〜30まで遡ると時間かかるので当面25前後まで。
もっとも誤着手なしタイムアウト無しだと30手だろうと遡れちゃうから、28手あたりの
適度なところで止めちゃいましたが。

で、置換表データ激減。いままで間違ったものを相当学習に取り込んでいたっぽい。

あと、MCTSのツリーの末端(以後終盤探索しているので数値確定)の評価が時々
狂う問題がありまして、いつもではなかったので目をつぶってましたが、暇だった
ので着手。原因不明なれど、二重更新問題っぽかったので、ツリー部分のコード
を整理してみたところ、何故か治ってしまった模様。
本当に直っていたら自己対局の精度も少し良くなるはず。

つか、羽生永世7冠誕生ですね。
記譜みてみましたが、何が何だかわけわからんけどw
0113310
垢版 |
2017/12/05(火) 23:43:42.63ID:5HB6IIYO
Buroさん型特徴の評価関数もそろそろ限界っぽいのと、今のままだと強化学習にも
かなり時間がかかるので、新しいパソコンが欲しくなってきました。やはりCNNに行く
しかないかもという事で。

ものは試しにi9-7980でパソコン組んだら幾らになるのか、ネットで見積もってみた
のですが…そっと閉じてしまいました(汗

クロック数とか見ると、10コア20スレッドくらいの奴が、一番よさそうな気がするんだ
けど、どうなんだろう。
0114535
垢版 |
2017/12/06(水) 00:45:59.31ID:D/I5x6A8
メモリも山盛り積みたいですよね〜
GPGPUも考えられるし。
0115535
垢版 |
2017/12/06(水) 21:27:03.05ID:D/I5x6A8
アルファ将棋爆誕w
0116310
垢版 |
2017/12/06(水) 21:37:40.75ID:fJiMVswg
今見たorz

夢想段階にあったものをことごとく圧倒的な力量でやられてしまふ。
そのうち、5分でオセロ作ったよとか言われるんだろうなぁ。

学習と評価の実行が完全に二分された今となっては、
学習に使用するハード性能は正義だと思い知らされる。
0117535
垢版 |
2017/12/06(水) 21:39:44.94ID:D/I5x6A8
グーグルのアルゴリズムはマジ万能なんですかね〜?
必要マシンパワーがあれですが、ムーアの法則が解決するでしょう。
0118535
垢版 |
2017/12/06(水) 21:49:23.90ID:D/I5x6A8
そんなに万能ならライブラリとして公開してくれw
囲連星とライフゲーム碁を学習させたいww
0119535
垢版 |
2017/12/06(水) 22:03:23.36ID:D/I5x6A8
いっそ完全解析してくれたら諦めつくんですけどねw
0120535
垢版 |
2017/12/06(水) 22:49:40.35ID:D/I5x6A8
9路囲連星のDB作りはじめました。
何日かぶん回そう。
0121310
垢版 |
2017/12/06(水) 23:02:24.56ID:fJiMVswg
non-MonteCalroなツリー探索(勝手にそう呼んでる)は、MCTSがロールアウト
関数さえ作れれば万能なように、完全情報ゲームでは万能だと思う。
あと強化学習による評価関数の作成も。

ただ、まだAlpha碁Zeroの論文読んでないからわからないけど、CNNの入力
については、人間が介在しているかもしれない。少なくともアルファ碁の段階
では、ちょっと特殊な入力データを用意していた。

それと、完全情報ができない以上、強さの地平線を広げたに過ぎないのも確か。
それを実現するために圧倒的なマシンパワーを使っているわけで。そのマシン
パワーを前提に、それを完全に活かせるアルゴリズムにしたってところが、評価
ポイントなのかもしれない。

かなり悔し紛れな評価だけどorz
0122535
垢版 |
2017/12/06(水) 23:52:04.64ID:D/I5x6A8
ガンガンツリー展開して全部DBに突っ込んでたら意外と早くメモリがパンクした。
相変わらず学習しない俺w
しょうがないからDBに入れるのは序盤だけにするか。
0123310
垢版 |
2017/12/07(木) 00:22:37.97ID:EKyZH2pF
Googleがやらかしてから、後だしで俺も考えていたとか悔しいので、
前から思っている事をボソっと書いとく。

十分に深いDCNNの場合、表現の自由度が高いから、強化学習を繰り返す
事で過学習になる事が、起こりうる局面の大半を内部に保持する事につな
がっていて、実は汎化性能ガン無視で良いのではないか。起こりにくい局面の
評価値はグチャグチャでも構わないという事で。

と思っていたりする。
0124535
垢版 |
2017/12/07(木) 00:55:58.10ID:+QWWXInu
修正してみたけど、8プロセス並列で動かすと意外とまだメモリがきついな。
しょうがないから1プロセスだけで流すか。
0125535
垢版 |
2017/12/07(木) 01:11:55.19ID:+QWWXInu
うーん、なんか同じ局面しか選ばなくなっちゃう。
これは致命的な欠陥だなぁ。
どうしよう?
0126535
垢版 |
2017/12/07(木) 01:18:35.82ID:+QWWXInu
駄目だ分からん。
諦めて今日は寝よう。
0127535
垢版 |
2017/12/07(木) 20:11:24.86ID:+QWWXInu
あ〜ツリーのノードに親ノードポインタ入れてなかったわw
変だと思ったw。
でも対称局面合流させちゃってるから親が一意にならないな。。。
どうしよう。。
0128535
垢版 |
2017/12/07(木) 20:23:43.87ID:+QWWXInu
親ポインタは諦めてほかの方法でごまかそうw
0129535
垢版 |
2017/12/07(木) 21:27:59.88ID:+QWWXInu
なんか、UCTって初期の探索で間違った結果出ると挽回するの凄い大変なのかね?
それこそ修正に指数的な試行が必要になっているような…
0130535
垢版 |
2017/12/07(木) 21:35:42.53ID:+QWWXInu
おっと、なんか挽回してきたw

それはそうとして、メモリが欲しいですねぇ。1TBくらい
0131535
垢版 |
2017/12/07(木) 22:05:33.83ID:+QWWXInu
うーん、局所解にずっぽり嵌ったっぽいorz
地力で脱出してくれないかな〜
0132310
垢版 |
2017/12/07(木) 22:57:44.09ID:JixNNylG
>>129
大変です(汗
0133535
垢版 |
2017/12/07(木) 23:14:30.29ID:+QWWXInu
うおお、メモリ消費がじわじわ増えてきてる。
今晩一晩耐えられるかは微妙なラインだなぁ。
0134535
垢版 |
2017/12/08(金) 21:44:38.57ID:rkwPxGLh
あれえ、おかしいな。
かなり学習いい感じで進んだと思ったのに、公式AIに全く歯が立たない。
やっぱ読めてない局面に分岐されると無力なのかなぁ
0135535
垢版 |
2017/12/08(金) 21:55:53.54ID:rkwPxGLh
DBだけじゃ無理か。
期待が高かっただけにガックリ。
0136535
垢版 |
2017/12/08(金) 22:03:23.60ID:rkwPxGLh
ここでヒューリスティックに走るかDBの更なる肥大化に走るかCNNとかに手を出すか。
分岐点やな。
0137535
垢版 |
2017/12/09(土) 11:22:20.19ID:L/Fjd2gI
当たりの石をつがないなぁなぜか。
ロールアウトで当たりの石を抜く確率と当たりの石をつぐ確率増やすか。
0138535
垢版 |
2017/12/09(土) 19:05:03.36ID:L/Fjd2gI
キター!初勝利!
最終的にはアルファ碁みたいに100戦100勝したいな。

(
;FF[1]GM[1]SZ[9]
;B[de];W[dg];B[ef];W[cc];B[eg];W[fd]
;B[ec];W[eh];B[ed];W[ch];B[eb];W[fe]
;B[ee];W[ea];B[fa];W[hh];B[da];W[ac]
;B[ea])
0139535
垢版 |
2017/12/09(土) 20:29:04.06ID:L/Fjd2gI
酷いバグ発見w
8近傍求める関数間違ってたw
0141535
垢版 |
2017/12/09(土) 22:53:03.29ID:L/Fjd2gI
着手不能点を着手候補にしてたw
だからか。
0142535
垢版 |
2017/12/10(日) 21:26:16.30ID:ecwKDJmF
局所解に落ち込むとなかなか抜け出せないのでUCB1のバイアス係数を思いっきり上げてみた。
これで局所解抜けてくれればいいが…
0143310
垢版 |
2017/12/10(日) 22:11:20.32ID:3vDAj4sl
MLP版の評価関数がNaN地獄に落ちてた。
何回かやり直したけど、結構簡単にNaN地獄に落ちるので、一旦仕切り直しで、
線形回帰な評価関数に注力する事にしました。

MCTSでテストすると、途中まで割と見知ったオープニングになってきているけど、
評価値自体はあんまり安定していない感じ。まあ、相対関係があっていれば、
絶対値はずれていても関係ないといえば関係ないけど。

しばらく強化学習を続けながら、ちっと別な事を考えてみます。

というか、Alpha Zeroの強化学習の回数が、思ったより少ないなぁと思ったけど、
自分がこれまでにやった回数を概算で考えてみたら、桁が2〜3くらい少なかったorz
やっぱマシンパワーは正義だなぁ。
0144535
垢版 |
2017/12/10(日) 22:51:07.98ID:ecwKDJmF
今晩一晩ながして局所解抜け出せなかったら別の方法考えなきゃな…
zen+が超絶スペックという噂が流れてますが、デマリークともいわれていて、
本当だったらいいなあと思っている今日この頃。
0145535
垢版 |
2017/12/11(月) 21:43:28.43ID:fAOHhVpN
お、局所解抜けてる。
DBがTXTで1GB行っちゃったてへぺろ。
0146535
垢版 |
2017/12/11(月) 21:49:20.78ID:fAOHhVpN
お、凄い、いい感じの勝ち方した。
これの凄さが分かってくれる人がどれだけいるかわからないが…

(
;FF[1]GM[1]SZ[9]
;B[ee];W[eg];B[df];W[fd];B[dc];W[dg]
;B[fe];W[ge];B[gd];W[gf];B[fc];W[cd]
;B[ed];W[cc];B[cg];W[ch];B[bg];W[fg]
;B[gc];W[gh];B[bh];W[hh];B[ai];W[ba]
;B[fd])
0147535
垢版 |
2017/12/11(月) 22:02:11.19ID:fAOHhVpN
白番でも勝てるかもと思ったがそんなに甘くなかったw
0148535
垢版 |
2017/12/11(月) 22:20:09.34ID:fAOHhVpN
うあああ、白番で惜しいところまで行ってバグで不正終了w
とりあえずバグとらなきゃorz
0149535
垢版 |
2017/12/11(月) 22:31:43.51ID:fAOHhVpN
うーんまだまだだなぁ。
>>146はたまたまかorz.
0150535
垢版 |
2017/12/12(火) 19:50:54.43ID:sU/cgenP
新しいパソコン欲しいな〜
現実的な線でいってもメモリ64GBくらい積みたい。
0151535
垢版 |
2017/12/12(火) 23:05:56.72ID:sU/cgenP
DB作成をマルチスレッド化したいな〜
でもMCTSのマルチスレッド化って結構難しんだよな〜
0152310
垢版 |
2017/12/13(水) 00:38:18.63ID:oWC3TnL7
MCTSのマルチスレッド化は簡単だと思う…
マルチコンピュータは難しいけど。

強化学習がなんかおかしい感じだったので、記譜学習で上書きしたら
かなり過学習になってしまった。強化学習で戻せばよいかと思ったけど
なんかなかなか戻らないorz

強化学習どっかおかしいのかもしれない。
0153535
垢版 |
2017/12/13(水) 20:33:14.21ID:6thdoy0s
えーそうですか?
排他制御とかしたら性能出なさそう
0154535
垢版 |
2017/12/13(水) 21:57:53.75ID:3yqEn+ak
ID違うと思うけど535です。
DBがTXTで1.7GBに。
実行時7GB程になりました。
std::mapを別のコレクションに変えたらメモリ使用量減らないかな〜?
0155535
垢版 |
2017/12/13(水) 22:15:01.22ID:3yqEn+ak
unordered_mapにしてみたけどあんま変わんないやorz
0156310
垢版 |
2017/12/14(木) 00:19:28.11ID:9pKHf6s7
排他制御は、まあ普通にしてますけど、PPLのcritical_sectionでlockしたり、
int型ならatomic<int>していたりで、並列ライブラリにお任せです。

またVirtual Lossという方法があって、ツリーを下っていく時は、先に負けた事にして
降りて行って、末端から戻ってくる時に正しい勝敗に置き換える事で、並列探索
の各スレッドが同じ枝に集中しないようにして、排他がかかる可能性を減らしてます。
あとは、排他制御が必要な領域を細かい単位に分割する事ですかね。

#と思って、ソース見たらVirtual Drawになっていた(汗

あ、そうか。DB化しているって事は、合流ありだし、盤面をキーにしなきゃならないから
そうなるとちょっとややこしいのかな?

自分は合流無視で、各ノードに盤面情報を保持していません。直前着手のみ持って
いて、ノードをたどる時に盤面情報を更新しながら降りていきます。着手もBITBOARD
の64bitは無駄なので、char型にしちゃってます(内部的にはintなんだろうけど)。
0157535
垢版 |
2017/12/14(木) 21:56:41.20ID:IX7WwuCO
PPLなんてのがあるんですね。
頭の片隅に入れておきます。

とりあえず、子ノードへのポインタが結構メモリを食ってるような気がします。
これを無くして毎回子局面を計算するようにしてメモリ節約するという手もありますがあんまりやる気がしないなぁ。
0158310
垢版 |
2017/12/15(金) 10:32:05.09ID:+7BwQo/4
PPLはVC++専用の並列処理ライブラリです。
Intel TBBとかと中身はほぼ同じだと思います。
かなり抽象されていて、わかりやすいです。
自分はこれなしでは並列化できません(汗


ツリー構造だと子ノードへのポインタが一番大事な情報になっちゃいますね。
その場合ポインターと直前着手があれば盤面情報は不要になります。
一方で、ハッシュテーブル構造だと、子ノードポインタ不要で、キー(と衝突検出)
のために盤面情報が必須になります。

DB化するんならハッシュテーブルとかの方が向いていますよね。

自分はMCTSでツリーを作ったり消したりなので、ツリー型にしています。
shared_ptr使って、不要になったノードはシステム任せで自動的に削除して貰って
います。ハッシュテーブルだと、そう簡単にはいきませんね。
0159310
垢版 |
2017/12/17(日) 00:21:31.98ID:qILmYkkQ
ノートPCの冷却用(動作周波数に結構影響する)にUSB扇風機使ってましたが、
結構サイズでかくて持ち運び面倒だし、ノートPCのUSBポートに刺していると
安全装置が働いてしまうので、別途電源取っていました。

で、どうせ強化学習回しておくだけで暇だったので、専用のクーリングファンを
自作してみました。

タカチのアルミケースをぴったりサイズに切り欠いて、USBコネクタと5Vの
クーリングファンをセット。ノートPCに装着するとファンが回って冷却開始。
製作時間1時間程度。材料費は3000円くらい。

雑に作った割にはうまくできた。
0160310
垢版 |
2017/12/17(日) 02:09:30.95ID:qILmYkkQ
EigenのSparseMatrixのサイズ制限を変える方法が見つかりました。

現在、簡易版と詳細版の2種類の評価関数を学習していますが、
これにより詳細版を完全にBuroさんモデルにする事ができるように
なりました。

というわけで、詳細版は再度学習し直しです。

簡易版は、多少癖があるようだけど、そこそこまともになっています。
一方、詳細版は何度もやり直し中(汗
0161535
垢版 |
2017/12/17(日) 19:24:13.96ID:QB4rs7DZ
DBはメモリの勝負になる。
やはりCNNなどでメモリを圧縮する必要がある。
0162535
垢版 |
2017/12/17(日) 20:37:59.85ID:QB4rs7DZ
うお、試行回数0回のデータ削除したらメッチャメモリ使用量減ったw
これで当分DBで押せるww
0163535
垢版 |
2017/12/18(月) 21:48:20.69ID:2VaG9uC3
ちょっとづつ良くなってるとは思うけど今一歩だな〜
もうちょっとヒューリスティック入れたほうがいいかな〜
0164310
垢版 |
2017/12/19(火) 00:06:06.27ID:jyMFUoq3
気が付いたらTensorFlowがWindows対応になってるね。

New PC欲しい病再発の兆し・・・
0165535
垢版 |
2017/12/19(火) 22:55:01.32ID:BAiqwtex
とりあえず、ヒューリスティックのアイディアが2つあるんだが、
下手に手を加えないでDB肥大化で押したほうが、
真の棋理に近づくのかもしれないなどとも思ったり。
悩ましい。
0166535
垢版 |
2017/12/20(水) 00:23:35.05ID:S+Iz2Vgy
ヒューリスティック一個仮組みしてみたけど上手くいかないや。
がっかりorz.
0167535
垢版 |
2017/12/20(水) 22:02:26.64ID:S+Iz2Vgy
ちなみに仮組したヒューリスティックの内容は
適当な回数プレイアウトして7連が一番多くできたところ付近にしぼって
モンテカルロ木を展開するというもの。
0168535
垢版 |
2017/12/21(木) 20:13:56.96ID:TDrdSCuN
序盤はそんなに悪くないんだけど終盤がなぁ
やっぱ9路でも必至、詰めろルーチンいるなぁ
0169535
垢版 |
2017/12/21(木) 20:14:37.01ID:TDrdSCuN
でも遅くなるの見えてるからちょっとなぁ。
0170535
垢版 |
2017/12/22(金) 21:57:55.17ID:fGil/O5L
なんか落ちるバグがあるな。
そういえば直してなかった。
は〜
0171310
垢版 |
2017/12/23(土) 09:08:48.88ID:V4gvcHPy
ノードを完全読み切りまで展開した時に、末端ノードの評価が狂う時があるという
バグが以前ありました。おそらく並列処理による2重更新問題だろうと言う事で、
UCT探索の排他部分を強化して対応していましたが、ここにきてまた発生。
昨日原因が判明しました。まさかの、浮動小数点誤差の問題でした。

スコアの合計値と、試行回数を持っていて、合計値÷試行回数で平均スコアを
計算しているのですが、合計値が3500万を超えたあたりで+2をしてもfloat的
には、その2差を表現できる精度が無くなって、少しづつ合計値が不足していく
状態になっていました。

とりあえずfloatをdoubeにしてみましたが、案の定メモリーを消費する速度が大幅
増加してしまいました。小数点以下1桁もあれば十分なのでintに10倍値を持つ
ようにしてみようかなぁと思っています。
0172310
垢版 |
2017/12/24(日) 00:22:00.25ID:XlhSPCGK
intに変更。桁溢れが無ければ、これで大丈夫だと思います。
ついでに速度アップしている分だけ、自己対局の探索時間を短くしました。

評価関数を簡易版・詳細版2種類使っていましたが、詳細版も十分に学習
できたようなので、詳細版一本に絞りました。というか、そろそろ追い抜いた
と思えるようになってきました。とはいえ自己対局の評価値を見ていると
30手目以後はそこそこまともな感じですが、序盤はまだデタラメかなぁ。

完全読み切りですが、30手より前に遡る事がなかなかできません。評価関数
の精度のためか、残り28手あたりから急激に読み切り時間がかかるようになり
ます。評価関数の精度が悪いのでオーダリングが正しくできていないからでは
無いかと想像しています。強化学習で補えるかと思っていますが、まだまだの
ようです。

現在、記譜学習は完全読み切りができている盤面しか使用していませんが、
せめてMCTS探索が始まって以後の盤面も学習に使用してみようか悩み中。

これ以上の精度を求めると、やはりDLに行かざるを得ないですね。
今の探索でもツリーがメモリー内に収まるギリギリに係数を設定しているので
探索延長が起きるとあっという間にスワップ開始になってしまいます。
というわけで大きなメモリーが欲しい今日この頃です。
0173535
垢版 |
2017/12/25(月) 21:28:02.81ID:iTZFwLsg
すっごい微妙な駆け引きができるようになって会心の勝利!
と思いきや勝利目前でバグが出てパス2回した後エラーはいて落ちたorz
くそくそくそくそ!
いい加減直さなきゃだけど再現性低いからバグ潰すの難しいんだよなぁ
(
;FF[1]GM[1]SZ[9]
;B[ee];W[dc];B[de];W[ce];B[ge];W[df]
;B[hc];W[fg];B[gd];W[gf];B[cf];W[eg]
;B[gg];W[gh];B[cd];W[fe];B[fd];W[dd]
;B[ff];W[hg];B[be];W[cg];B[];W[gg]
;B[];W[dg])
0174535
垢版 |
2017/12/26(火) 21:57:37.38ID:vTaELiqs
勝利が目前に近づくとパスする。
マジ原因がわからんorzorzorz
ログでも仕込むか?
0175535
垢版 |
2017/12/26(火) 22:08:58.18ID:vTaELiqs
石を取って必勝形になる形だとパスするのか?
条件絞り込みがムズイ。
とりあえず、ログかなぁ?
0176535
垢版 |
2017/12/27(水) 20:40:10.55ID:SLxZ+o46
ログ仕込んだら計ったように再現しなくなったwwww
しばらく対局しまくるしかないか
0177535
垢版 |
2017/12/27(水) 21:31:50.30ID:SLxZ+o46
バグの原因わかりました。
ノードに盤面情報登録し忘れてるパスがあった。
これで落ちずに連続対戦できるようになるかな。
0178535
垢版 |
2017/12/27(水) 22:15:38.79ID:SLxZ+o46
連続対戦上手く動いてるっぽいです。
今のところ黒番で8勝2敗
かなりいい感じ。
0179535
垢版 |
2017/12/27(水) 22:57:18.00ID:SLxZ+o46
黒番で13勝7敗
だいぶ追い上げられたorz
でも連続対戦ちゃんと動いてるようで嬉しい。
0180310
垢版 |
2017/12/28(木) 00:14:18.22ID:p44JRClR
やっぱりintでオーバーフローしてた(汗。仕方無いのでint64で。doubleでも
メモリーサイズは一緒だけど、intの方がオーバーフローがわかりやすい。

あと、効果あるかわからないけど、置換表再利用回りをちょっと機能追加。

途中でゲーム終了になった時のスコアカウントですが、FFO計算をチェックに
使っている関係で空白マスを勝者総取りにしています。しかし、学習の時には
空白マスを含めない方が回帰の計算的には良いのではないかなと思い始め
ています。MCTS的には終局判定を入れてあり正しく終局時スコアを返すので、
あくまで学習時だけの話です。

ただ、記譜を経由していればスコア再計算で良いのですが、置換表に溜まって
いる盤面情報では、アメリカルールのスコアを割り出しようが無いという…。
0181535
垢版 |
2017/12/30(土) 18:56:09.79ID:YPjfi6f/
実家に帰省しました。
DB作成を流しっぱなしにしてきたので
正月あけどれくらいデータ取れてるか楽しみ
0182名前は開発中のものです。
垢版 |
2017/12/31(日) 18:54:54.44ID:/rN76OKL
簡単にお金が稼げる方法興味ある人だけ見てください。

グーグル検索⇒『来島のモノノリウエ』

G32792G4ML
0183535
垢版 |
2018/01/04(木) 19:09:06.91ID:mx9U9VEK
ふむう。学習は大分進んだと思うのですが、勝率が思うように上がりませんね。
0184535
垢版 |
2018/01/04(木) 19:40:03.61ID:mx9U9VEK
もうちょいヒューリスティック入れるか…
0185535
垢版 |
2018/01/04(木) 20:05:05.60ID:mx9U9VEK
leela zeroがもう有段者くらいの実力をつけているらしい。
もういちどleela zeroパクれるか検討するか?
うーむ。
0186310
垢版 |
2018/01/05(金) 08:48:12.97ID:DiPIPsFr
年末年始で学習進めてました。
学習が進んだ結果、33〜35手目あたりは正確になり、評価値の精度が上がった
事からオーダリングが機能するようになり、遡りチェックの時間は少しづつ減ってきて
いる感じですが、30〜32手目以前はまだまだばらつきがある感じです。

また、以前から気になっていたのですが、MCTSによる記譜作成では35手目以後で
急に頻繁に手を間違える症状が出ています。記譜を膨らますにはちょうど良いので
放置していましたが、いよいよバグ探しを開始。やっぱり、並列処理の排他が不十分
で、末端ノードまでたどり着いて同じノードに探索が集中した時に、スコアの更新が
ぶつかっておかしな値になる事で、別のノードを探索。また探索が集中し、スコアが
狂い別のノードを探索という感じになっていた模様です。

修正したら大幅スピードダウンしてしまいましたが、精度は上がりました。
速度を持ちなおせるか色々調べましたが、ちょっと厳しい感じです。
0187310
垢版 |
2018/01/08(月) 02:22:41.34ID:hx3YjBuD
記譜作成ですが、スコア差が大きなものが少ないため、ランダム着手の所に手を
加えてみましたが、今度は極端になりすぎて、パーフェクト勝敗な記譜が増えて
しまいました。どうしよう。

スピードダウンの影響は結構大きく、探索の終盤で、同じツリーに対する探索が集中
するためか、さらに大きく速度低下し、今度はそちらが原因で終盤間違えるように
なった感じです。あちらを立てればこちらが立たずです。

当初は、こういう問題はなかったはずなので、過去のソースを見直してみるつもり。
0188535
垢版 |
2018/01/08(月) 19:56:33.71ID:NhsCP7en
alpha zero を参考にしたプロジェクトがgithubにいくつかあるんですがパクれないか物色中。
オセロやコネクト4もあるみたいですね。
0189310
垢版 |
2018/01/08(月) 21:48:13.88ID:hx3YjBuD
ありゃ。すでにあるんだ。
たぶんディープラーニングしてるんだろうなぁ。

そりゃそうと、CPUのバグの影響どうなんでしょね。
あまりに時間がかかるので、ちょっと辛い。

記譜作成やめて、ひたすら強化学習にしてみようかなぁ。
後は細かい精度なので、その方が早い気がしてきた。
0190310
垢版 |
2018/01/08(月) 22:10:59.88ID:hx3YjBuD
わかりにくい文章でした。

「あまりに時間がかかるので、ちょっと辛い。」

は、現状の学習方法だとあまりに時間がかかるので、やはり新PC欲しいんだけど、
CPUバグの話が出たので、ちょっと様子見すべきかどうかって事です。

ただ、MCTSで排他待ち合わせによる速度低下が出ているのと、読み切り探索では
並列探索の効果が頭打ちになりやすいので、本当にCPUに投資した効果があるの
かが不安になってきている面もあります。

むむむ。
0191535
垢版 |
2018/01/08(月) 23:14:47.03ID:NhsCP7en
並列化で速度出すのは結構難しいですよねぇ
まあメモリ増やすだけでも大分違うかもですが。

python 読めるようになったほうが後々いいんだろうなぁ
でもメンドクサイw
0192535
垢版 |
2018/01/10(水) 22:40:05.04ID:woZtUoWo
アルファゼロを参考にしたコネクト4のプロジェクトのパイソンコード読んでるんですが
パイソンということを差し引いても結構難しいんだろうなって感じ
0193535
垢版 |
2018/01/10(水) 23:42:39.94ID:woZtUoWo
パイソンだからコード眺めるだけでどうせ動かせないやと諦めるのではなく
実際に実行できるところまでこぎつけるべきだろうか
0194535
垢版 |
2018/01/10(水) 23:57:49.33ID:woZtUoWo
うーんこれlinux用なのかなぁ
Cygwinじゃきびしいかなぁ
0195310
垢版 |
2018/01/11(木) 22:33:43.61ID:TAFrfVFR
しばらく学習しっぱなしというか、デバッグしながら中途半端に遡り状態で放置した
記譜をガッツリ遡りチェック中なので暇です。で、よからぬ蟲が疼きだして、そろそろ
ボードを作ろうかと思い始めました。ソース消失前は、min-Max版時代のボードが
あったのですが、また作り直しです。

オセロにも碁盤ソフトみたいなのがあれば良いのですが、無いようなので自作を検討。
囲碁のGTPみたいなプロトコルを作って、思考エンジンとGUIを分離できたら良いなぁと。

というわけで、匿名パイプを使ったプロセス間通信について勉強してました。
サンプルコードが10年前のC言語しかなくて解読に苦労しましたがエコーサンプル
を修正しながらテスト。coutとcerrを別パイプに分離して、スレッド管理はPPLにお任せ
にするところまでやって、ようやく納得。

ボードGUI作って、プロトコル決めて、AIエンジン部を対応させてと、まだまだやる事が
ありますが、最終的には自動対局までできたら良いなあと。リソースの限界はあります
が、パラメータで強弱が出そうなので、客観的に評価したい。

というか、GUIの作り方から学習し直しだ…
GUI触りたくないからボードソフト探していたのに、無いから自分で作るという罠。
0196310
垢版 |
2018/01/11(木) 22:48:49.47ID:TAFrfVFR
>>191
色々見直して、若干速度は回復しましたが、最初にRollout外した時のびっくりする
ほどの速度は出なくなっちゃいました。ただ、時々瞬間的に速い時があるので、
単純ではないかもしれません。


30手過ぎるとどんどん選択しが狭まっていきますので、ツリーサイズは小さくなって
いきます。ここで、一部の手に探索が集中して、100万探索単位で追加探索したとき
にようやく他の枝を調べ始めるようで、それでもツリーサイズはそれほど大きくならない
ので、メモリーはそれほどボトルネックになっていない感じです。

UCB1のCをいじったり、ポリシーの探索比率をいじったりして様子をみていますが、
あまりフラットに探索すると、正解にたどり着けないまま終盤を迎えてしまうし、
かといってスティープに探索すると、間違いを訂正するまでの追加探索が大量に
必要になるしで、調整が難しいです。そもそも評価関数の精度が十分じゃないと
言う事なんだと思います。
0197535
垢版 |
2018/01/13(土) 21:35:44.20ID:yngzNrQg
コネクト4、マルチスレッド化されてるみたいですね。
何か読みにくいと思ったら。
0198535
垢版 |
2018/01/13(土) 22:44:48.29ID:yngzNrQg
多分、コードに飛びつくのはまだ時期尚早なんだろな。
もうちょっとAlphaZeroの基本アイディアを理解してからじゃないと。
0199310
垢版 |
2018/01/14(日) 01:33:25.53ID:Wql34YtP
コネクト4のGitHUBってどこにありますか?
ちょっと見てみたいかも。

GUI作ろうと思って調べたら、VS2017からなんかだいぶ変わっているみたいです。
MFCは非推奨との事で、ユニバーサルWindowsとかってやつと、あとはCLRですか。
両方試してみようとしたのですが、ユニバーサルWindowsはWindows10じゃないと
ダメっぽい。CLRはなんかエラーで動かない…。他にもC#だと楽だとか色々ある
みたい。MFCは使えるのですが、もう忘れたし、面倒くさかった記憶しかない(汗
C#で作るって手もあるみたい。

とりあえずC#を勉強してみようかなぁというところです。
脱線しすぎだなぁ。
0202535
垢版 |
2018/01/15(月) 22:46:04.01ID:iBxpq5YC
310さんと私以外の書き込みがあるとは珍しいですね。
実はROMも意外といるんだろうか
0203310
垢版 |
2018/01/16(火) 01:56:04.23ID:8d/ib1bw
>>200
どもです。ダウンロードしてみました。
酔っぱらって帰ってきたところなので、明日以後見てみます。

>>201
ありがとうございます。
cassioはmin-Max前提みたいですね。
nboardとxboardは明日以後見てみます。

とはいえ、もうすでに作り始めてしまいました(汗
c#はVBみたいな感じですね。10年くらいVBも触っていないので、VB自体も
昔とはだいぶ違うんだと思いますが。

まずは匿名パイプでのやり取りまで確認できました。
色々なソースのつぎはぎでわけわからんけど、何とかC++とAPIで作ったサーバ
側と同じ動作するものが動いています。
0204535
垢版 |
2018/01/18(木) 00:27:09.66ID:+dGVWc2f
GitHubでウインドウズでも簡単にビルドできそうなAlphaZeroクローンを物色中。
0205201
垢版 |
2018/01/19(金) 19:49:16.63ID:nx2VVS4x
ところで、
Learning to Play Othello with Deep Neural Networks
https://arxiv.org/abs/1711.06583
はチェックされていますか?
0206310
垢版 |
2018/01/20(土) 13:01:59.38ID:Zq3gts8j
>>205
ありがとうございます。
さっそくダウンロードしました。
0208535
垢版 |
2018/01/21(日) 00:31:51.93ID:qH0IRvSF
ん〜なんかアンチウイルスソフトが警告だしてきたorz
どうしようかな…
0209535
垢版 |
2018/01/21(日) 23:00:34.14ID:qH0IRvSF
gflagsとかglogとかいうのが必要らしいんだが
アンチウィルスソフトが勝手に何か裏で削除してるらしく
うまくmakeできないorz
なんなんだこれは?
0210535
垢版 |
2018/01/25(木) 20:47:17.06ID:deBVwh8E
モチベ保てなくてガッツリサボリ中w
仕事が忙しいのもあるけど
0211310
垢版 |
2018/01/27(土) 00:56:40.42ID:0QPAoXtC
自分もGUIでモチベ保てず、がっつりさぼり中。

技術的に難しそうな事は気合入るんだけど、どっちが黒番とかのラジオボタン
をどうしようかとか考え出すと、思考が止まってしまう(汗

一つの項目で諦めがつくまでに3日づつかかっていますorz
0213310
垢版 |
2018/01/28(日) 17:18:05.66ID:0oeW9Kee
GUIのパスの処理を真剣にチェックしだしたら、特定のケースで動作が
おかしいので、丸々一晩デバッグしていました。ケースは特定できてた
のですが、ぱっと見まったく原因がわからず。

C#はオブジェクトを代入すると参照になるのでした。やられた。
やっぱCというのは名前だけですね。
0215535
垢版 |
2018/01/29(月) 20:05:24.91ID:WXPd8Jtc
human_play.pyでモンテカルロAIは動いたけど深層学習AIが動かないorz.
theanoとかいうライブラリが上手くインストールできてないっぽいorz
0216535
垢版 |
2018/01/29(月) 20:08:40.86ID:WXPd8Jtc
うう、心が折れそうorz
0217535
垢版 |
2018/01/29(月) 21:03:35.36ID:WXPd8Jtc
こんなエラーが出るんだが何がないって言われてるのかわからん。
誰かわかる人いる?

...
File "C:\Python27\lib\site-packages\theano-1.0.1+unknown-py2.7.egg\theano\gof\
lazylinker_c.py", line 127, in <module>
preargs=args)
File "C:\Python27\lib\site-packages\theano-1.0.1+unknown-py2.7.egg\theano\gof\
cmodule.py", line 2359, in compile_str
(status, compile_stderr.replace('\n', '. ')))
Exception: Compilation failed (return status=1): /usr/x86_64-w64-mingw32/bin/ld.
exe: error while loading shared libraries: ?: cannot open shared object file: No
such file or directory. collect2: error: ld returned 127 exit status.
0218535
垢版 |
2018/01/29(月) 23:39:21.86ID:WXPd8Jtc
ライブラリに互換性がないって言われてるような気がする。
Cygwinに入ってるライブラリは互換性ないってことか?
どこでライブラリ入手すりゃいいんだ??
0219310
垢版 |
2018/01/31(水) 00:01:03.41ID:EjEC4Ae7
すまん。わからんけど、collecdt2というフォルダ(ファイルかも)が無いと言ってる?

こちらは、どうしても画面が崩れてしまうので、最初から作り直し。
原因は、トップのFormでauto resizeをtrueにしていた事でした。

ゲームの進行を上手に管理する方法が無いか考えていると、つい寝てしまうorz
0220535
垢版 |
2018/01/31(水) 20:29:33.40ID:u/gx4uXy
すいません。
コマンドプロンプトで実行したら>>217のようなメッセージでライブラリ名わからなかったのですが
Cygwinで実行したらライブラリ名が出てきました。
それぞれ4行づつ同じ行が出るのですが1行に削って張ります。

library stdc++ is not found.
library mingw32 is not found.
library gcc_s is not found.
library gcc is not found.
library moldname is not found.
library mingwex is not found.
library msvcrt is not found.
library advapi32 is not found.
library shell32 is not found.
library user32 is not found.
library kernel32 is not found.
library mingw32 is not found.
library gcc_s is not found.
library gcc is not found.
library moldname is not found.
library mingwex is not found.
library msvcrt is not found.

これに続いて同じ名前のライブラリはあるけどコンパチブルでない的なメッセージが出ています。
0221535
垢版 |
2018/02/04(日) 02:31:39.86ID:8N3h1IXY
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
動いたっぽいです。
Theanoってライブラリのバージョンが0.7.0じゃないといけないみたいです。
ここまでめっさ時間かかったorz
遅れを取り戻さんとな。
0222535
垢版 |
2018/02/04(日) 18:58:20.09ID:8N3h1IXY
せっかく動いたけどpython読む根性がなかなか湧いてこない。
つか多分pythonじゃなくても読むのしんどいんだけど。
0223310
垢版 |
2018/02/04(日) 20:16:17.17ID:Wmf+lsae
他人のコードは読みづらいですよね。
1年前に書いた自分のコードもですがorz

Theano動作おめでとうございます。良かったです。

こちらは…GUI作るのに嫌気がさして、学習部をいじっていましたが、
そろそろ〜30手の評価関数もそれほど酷いものではなさそうな気がしてきて、
中盤探索9手読み(なんの工夫も無し)で記譜作れる事に思い至りまして。
つまり、MCTSより短時間で記譜作成できると…。
この学習で、もし中盤探索の読みがそこそこな精度になってしまったら、
そもそもMCTSにする意味ないじゃんという現実からいかに目を背け続けるか
という戦いが始まりました(涙
0224535
垢版 |
2018/02/05(月) 18:27:38.68ID:Q1ssK5oS
やはりこの業界で生きていくには
パイソンの習得は必須…
0225535
垢版 |
2018/02/05(月) 20:15:05.78ID:kkO201mJ
ということでパイソンの入門本買ってきました。
とりあえず囲連星のルールを実装してみます。
0226310
垢版 |
2018/02/05(月) 23:37:11.58ID:tGe3CIWd
相変わらず、GUIから逃げています。

アルファ碁でいうところのポリシーネットの学習を放棄して、代わりに評価値から
P(UCT探索に対する絞り込み項)を生成していましたが、これをQ(UCT探索の
予想スコア:これまでの探索の加重平均)から、1プレイアウト毎に再計算するよう
にしてみました。

多少探索速度は落ちますが、良い感じかなぁ。
0227535
垢版 |
2018/02/08(木) 20:36:12.73ID:BwB5Lh8w
パイソン入門本、一回通して読もうとしてますが、ページ数あって結構大変。
コード書きながら読んだほうがいいかなぁ。
0228310
垢版 |
2018/02/09(金) 23:42:10.85ID:XzN5+u9b
新言語習得はストレスですよね。
C#ですら混乱して、C++に帰りたくなってます(汗

というか、メモリー管理できないC#にいらついて、記譜作成回りをいじって
慰みにしています。中盤探索に置換表を足して、反復深化っぽくしてみま
したが、あんまり早くならなくてがっかり。


Python本はまだ買ってません。ウェブ上の入門を眺めたくらいです。

Pythonは構造やら変数の型の考えやら、落とし穴になりそうなところが
色々とありますね。計算式だけ見ていればわかったような気になりますが、
どういう順番で処理が進むのか、慣れないとわからん感じ。
0229535
垢版 |
2018/02/10(土) 21:27:45.30ID:DQEki32w
パイソン、変数の型の宣言がないから他人のコード超読みずらいorz
引数に何与えていいのかとかパッとわからないorz
0230535
垢版 |
2018/02/12(月) 00:17:40.24ID:eWCzbr3d
9路囲連星の最低限のルールをパイソンに移植しました。
これからテストします。
0231535
垢版 |
2018/02/12(月) 02:17:04.85ID:eWCzbr3d
おおむねバグ取れたっぽい
あとはこれを>>214に移植できれば…
0232535
垢版 |
2018/02/12(月) 20:42:28.11ID:eWCzbr3d
他人のコード読むの辛いおT△T
これはかなり時間かかる…
0233535
垢版 |
2018/02/12(月) 22:23:10.54ID:eWCzbr3d
うーん、なんかこのコード五目並べのルールにべったり依存してる感じなのかなぁもしかして。
複数のゲームに対応しているAlpha Zeroプロジェクトのコードを見たほうがゲームのルールが分離されてるのかもしれないなぁ
一応、別のプロジェクトに手を出すことも視野に入れるか…
0234535
垢版 |
2018/02/12(月) 23:45:59.40ID:eWCzbr3d
アルファゼロって数手前の履歴情報が必要らしいけどなんでこんなものがいるんだろう?
謎だ…
0235310
垢版 |
2018/02/13(火) 13:07:22.56ID:SwoVylIU
アルファ碁の論文に書いてあったかな。次の1手的には意味なさそうだけど、
有った方が強くなるので外せなかったみたいな事が書いてあったような。

今現在の思いつきですが、ツリーサーチの末端近くでは、手の流れに応じて
点数が変わる事で、そのツリーのルート側の評価(加重平均)に影響が出てくる
可能性はある。

囲碁の場合、同一盤面が出る可能性が非常に高いのだけど、そこに至る経路で
隙があると、相手にその隙を突かれて、分岐が生じる事で、その点数は無意味に
なる。けど、それは途中の分岐をしっかり読まないと判明しない。経路情報によって
評価値(評価関数直)を下げてしまえば、プレイアウトの振り分けが減って、別の
もっと良い手に集中させることができる。こういう事かなぁ。

ま、本当に今思いついたばかりですが。

GUIに気が進まないまま、ぼーっと学習を見ていると、何故か(効果は微妙だけど)
速度アップの方法を思いついてしまうもので…。地味に色々改良しています。
0236535
垢版 |
2018/02/13(火) 22:47:18.55ID:75Woy+K4
310さんほどのプログラマがGUIで躓くというのも謎ですね。
単に凝り性なだけですかね。
0237310
垢版 |
2018/02/14(水) 20:49:32.16ID:I/pUqAGs
単にGUIが嫌いなんですorz

凝りたい気持ちと、画面遷移の罠から、心がデッドロックを起こして、
しまいに面倒くさくなってしまうという。
0238535
垢版 |
2018/02/14(水) 21:17:25.33ID:XBQY5lLn
オセロで画面遷移なんてほぼいらんでしょうに。
まいいけど。
0239535
垢版 |
2018/02/14(水) 22:23:18.42ID:XBQY5lLn
五目並べのプロジェクトだとコウの扱いがよくわからないな
囲碁のプロジェクトもgithubで漁るか…
0240535
垢版 |
2018/02/17(土) 21:19:34.66ID:9/16YNby
藤井聡太さん朝日杯将棋オープン戦優勝ですか
すごいすな
0241310
垢版 |
2018/02/17(土) 21:53:57.13ID:vz2S+0Ke
ドタバタしながら音だけ聞いていたけど、なんか普通に互角から徐々に優勢を
築いて、相手の奇手にも動ぜずにさばいて、勝利って感じで、強さが際立って
いましたね。

これで勝っても漫画なら編集長にバカにされるレベルと言われていましたが、
本当に笑うしかないですね。
0242535
垢版 |
2018/02/19(月) 21:32:59.37ID:k/eP19bS
>>214のプロジェクトに囲連星ルールを移植してみまして、モンテカルロAIが動いたみたいです。
ただし超絶遅い。絶望しかないってくらい遅い。
10プレイアウトで10秒くらいかかります。
デフォルト1000プレイアウトになっていたのでそれぐらいないとまともな強さは出ないんでしょう。
となると1手1000秒か?
絶望しかない。
orzorzorzorzorz
0243535
垢版 |
2018/02/19(月) 21:45:50.40ID:k/eP19bS
小路盤五目並べとかConnect4とかtic tac toe くらい小さなゲームじゃなきゃまともに動かんぞこれ
0244535
垢版 |
2018/02/19(月) 21:53:01.97ID:k/eP19bS
      ,.‐''" ̄`丶、         ひどい…!ひどすぎるっ……!
    /        \          こんな話があるかっ…!
 /´           \
 /    |\_>、_ 、r‐、    \     命からがら… やっとの思いで…
  レ! ||_| |/_ ヽ\}      \    辿り着いたのに… やり遂げたのに……
  |八|-/>、∪_ u`i  ト、      \
    / / ,くィ夕u' |   |/ ``‐- 、_.、__\      実行速度っ…!
     |/ / /_ヽ┐u |  ,|  /  ,-,.=====ゝ
    ヾ' / r┘|.l__人 |  /\//      \ あの計算量がもぎ取ってしまった……!
      \ ) |   N /  //\./´ ̄`丶
      |u  |  /|(l(l「|  | |   |       せっかく手にした
       | u| / | ヾ-イ .||  l、            俺の未来…希望…
       _|   |/| |  \_|_|,. く. \
      ハ.___ハ     >、 \ \  \      Alpha Zero AI を……!
0245535
垢版 |
2018/02/19(月) 22:39:02.94ID:k/eP19bS
つか連想配列とか見るからに遅そうなクラス使いまくりなんだよなぁ
こうなったらC++に移植する方向で考えるか??
0246535
垢版 |
2018/02/19(月) 22:59:04.05ID:k/eP19bS
囲連星ルール部分をC++で書きなおしてパイソンと結合させるという手もあるんだろか??
とにかく今のままじゃ遅すぎる
囲連星ルール部分がどれくらいネックになってるかもよくわからないですが多分相当遅い
0247535
垢版 |
2018/02/19(月) 23:28:23.57ID:k/eP19bS
五目並べルールだとそこそこのスピード出ますね
当たり前か…

やっぱ囲連星ルール実装がネックか〜
は〜
死にたい
0248310
垢版 |
2018/02/19(月) 23:48:36.73ID:KY7Wcd5F
PythonからC++関数を呼べるみたいですね。
C++からPythonも呼べるみたいです。
前にPythonに手を出そうかと思った時にググったら出てきました。
前者の方が解説が多かったと思います。

自分はBitboardを使いまくりなので、Pythonに手を出しあぐねていました。
また、評価関数の学習部と、評価値計算をうまく分離できれば、前者を
Python、後者をC++で書けないかなぁと思っていますが、im2col関数の
うまい実装を考えるのが面倒で、放置になっています。
0249310
垢版 |
2018/02/19(月) 23:56:04.01ID:KY7Wcd5F
ここ数日強化学習の結果がよさげになってきたので、結果の良かった学習方法に
集中させたら、また変な学習になってしまったようで、迷走中です。

学習の具合が良いと、色々な探索も速度アップするんだけど、具合が悪いと全部
悪循環になってしまうという。

仕方無いので、中盤探索の反復深化を作り、その結果を置換表に溜めてオーダ
リングを行うようにしてみましたが、効果があったのかよくわからない罠。
こちらも、学習の具合が良くなったら、急激に効果が表れるのではないかと期待
しているんだけど。
0250535
垢版 |
2018/02/21(水) 01:00:17.47ID:65PdIEqg
SWIGっての調べてます。
なかなか手ごわい
0251535
垢版 |
2018/02/21(水) 22:17:30.79ID:65PdIEqg
まずは簡単なC++関数一個だけのパイソンモジュール作成に成功しました。
つぎは囲連星ルールパイソンモジュールの作成ですね〜
0252535
垢版 |
2018/02/21(水) 23:35:14.72ID:65PdIEqg
なんかdeepcopyとかいうのに対応しなきゃいかんようなのだが。
0253310
垢版 |
2018/02/22(木) 01:36:26.61ID:pKMuaeJh
評価関数がどんどん悪化していく罠。
頭に来たので、評価関数をステージ分割。

ステージ分割すると学習部分の全面書き直しとなる。
どうせニューラルネットは使わないと決めたので、線形回帰にスケールダウン。

またしてもゴチャゴチャしてきた部分を全面書き直しパターンへ。

もうGUIはすっかり忘れていますorz
0254535
垢版 |
2018/02/24(土) 00:20:19.52ID:23+l5SrV
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
動きました!
C++版囲連星ルールパイソンモジュール!!!
10倍くらい速くなりました!
でも1000プレイアウト1手約100秒
まだまだ遅い
でもこれ以上速くするアイディアもないし、とりあえず、これで進めるか。
0255535
垢版 |
2018/02/24(土) 00:49:09.02ID:23+l5SrV
なんかトレーニングが不正終了しますね。。。
zipから解凍したソースそのままで実行しても不正終了になるのでちょっと謎ですね。
0256535
垢版 |
2018/02/24(土) 17:22:36.17ID:23+l5SrV
なんかteanoてライブラリが悪いっぽいorz
上手くインストールできたと思ってたけど実はまだ駄目だったのかなぁorz
0257535
垢版 |
2018/02/24(土) 20:56:43.77ID:23+l5SrV
あかん、さっぱりわからんorzorzorz
0258535
垢版 |
2018/02/24(土) 23:35:51.51ID:23+l5SrV
teano.functionってのが悪いっぽい
0260535
垢版 |
2018/02/26(月) 23:09:59.32ID:iAzX3KQf
Linuxインストールしてみようかなぁ(ボソ
0262535
垢版 |
2018/02/28(水) 21:53:14.78ID:EHGfbJ7U
linux入れるならVMWareお勧め?
他に候補ある?
0263535
垢版 |
2018/02/28(水) 21:54:21.00ID:EHGfbJ7U
ちなみにHDDはパーティション切りなおすのメンドイ
0264310
垢版 |
2018/02/28(水) 22:12:43.27ID:4D1Jf52Q
評価関数変更ついでにまるっと作り直してます。
自己対戦など、汚いコードを綺麗に書き直し。
かけた工数的には自己対戦の方が大変だったかも。

評価関数を1手毎のステージ分割で60ステージにして、学習し直しです。
これで序盤を学習させると終盤が狂う問題は解消されると信じていますが、
学習に60倍の時間がかかる事が予想されるという状態で、記譜を幾ら作って
も追い付かない感じなので、強化学習主体にするつもりです。

というか、まだ、UCTの所は作りこんでいない。
まあ、ほとんどコピペですが。

で、ここまで来たところで、もういっちょ改造したくなってきた…。
0265535
垢版 |
2018/02/28(水) 23:51:16.48ID:EHGfbJ7U
MVWareでubuntu入れました。
0266535
垢版 |
2018/03/01(木) 00:04:15.57ID:Jxqcd31Q
ubuntuだと>>214のプログラム問題なく動くみたいですね
素晴らしい。
0267535
垢版 |
2018/03/01(木) 21:09:31.45ID:Jxqcd31Q
囲連星ルールをubuntuに移植してみましたがエラーが出ますね。
合法手が無い、みたいな感じに見えますが…
0268535
垢版 |
2018/03/01(木) 21:31:25.39ID:Jxqcd31Q
くそ〜結局コツコツソース読み解くしかないかorz
いい線行ってると思うんだけどなぁ
0269535
垢版 |
2018/03/01(木) 21:44:17.24ID:Jxqcd31Q
うおお、しんどい、これはしんどいorzorzorz
0270535
垢版 |
2018/03/01(木) 23:35:08.53ID:Jxqcd31Q
ん、human_play.pyは動きますね…
train.pyと何が違うんだろう?
0271535
垢版 |
2018/03/03(土) 00:08:46.84ID:nviHj1ts
C++のクラスをディクショナリのキーに突っ込んでさらに参照しようとしたときにキーの比較に失敗してるっぽく見える
0272535
垢版 |
2018/03/03(土) 01:00:19.05ID:nviHj1ts
__hash__と__eq__を定義するといいみたいです。
__eq__はC++のoperator==で良いみたいです。
0273535
垢版 |
2018/03/03(土) 01:33:37.87ID:nviHj1ts
まだエラー出ますね。
行ったと思ったのにorz
0274535
垢版 |
2018/03/03(土) 19:12:35.59ID:nviHj1ts
お、処理が進み始めました。
Board.init_boardでC++のオブジェクトを初期化してなかったのがエラーの原因だったみたいです。
0275535
垢版 |
2018/03/03(土) 19:51:05.26ID:nviHj1ts
やっぱ小路盤五目並べと比べて時間かかりますね。
焦れるw
とりあえず、これでウェイトファイルが出力されれば第一段階クリアですが…
0276535
垢版 |
2018/03/03(土) 20:18:47.79ID:nviHj1ts
あ〜これシングルスレッドなんですね。
まあ確かにコード読んでてもマルチスレッドには見えなかったけど。
0277535
垢版 |
2018/03/06(火) 20:34:35.86ID:4NZM8BU2
ベストポリシーとか言うファイルは出力されましたが…
いかんせん遅すぎますねぇ
並列化してハードも強化してあと30倍は速くしないと…
0278535
垢版 |
2018/03/06(火) 22:28:34.91ID:4NZM8BU2
んんん、もしかして仮想環境だとディスクアクセスめっちゃ重くなる?
CPUがほとんど仕事してないんだが…
0279535
垢版 |
2018/03/06(火) 22:40:05.64ID:4NZM8BU2
こりゃネイティブLinux環境構築も考えるか…
0280535
垢版 |
2018/03/07(水) 20:16:56.97ID:Xay4EsKj
ディスクアクセスが100近くいって処理がほとんど進まなくなっちまったorz
いったん止めるべきかな〜
0281310
垢版 |
2018/03/08(木) 00:53:26.17ID:KJS05rsc
新評価関数版ようやく一通りできた。
強化学習にすごーく時間がかかりそう(汗

というわけでNew PC見繕ってます。
ノートPCでi7-8700Kの6コア12スレッドにメモリー32メガで
GTX1080搭載のノートPCがある。

むむむ。
0282535
垢版 |
2018/03/08(木) 18:17:36.63ID:GeAn+CtF
お高いんでしょう?
0283535
垢版 |
2018/03/08(木) 19:23:50.24ID:MQ3zVdYu
帰ってきてパソコン見てみたら学習が強制終了してました。
土曜からずっと動かしっぱなしでしたが、ここにきて強制終了は痛いですね。
解決しようにも再現させるだけで数日かかってしまうし目星を付けることすら難しそう。
0284535
垢版 |
2018/03/08(木) 20:05:12.94ID:MQ3zVdYu
途中で出力されたポリシーモデルで対戦してみましたが、
予想してたよりずっとまともな手を返してきますね。
ほぼランダムに着手すると思ってました。
これはちゃんと学習できる環境整えればかなり期待できるかも!
0285535
垢版 |
2018/03/08(木) 20:11:16.29ID:MQ3zVdYu
俺も良い目のノート一台買ってLinux入れようかなぁ
デスクトップ2台は手狭だからなぁ
0286535
垢版 |
2018/03/08(木) 21:30:30.05ID:MQ3zVdYu
とりあえず、Linuxならパイソン動くことはわかったから
他のもっと高速化に力入れたalpha zeroプロジェクトも試してみようかな
0287310
垢版 |
2018/03/08(木) 23:33:49.98ID:KJS05rsc
どもです。
お高いですが、デスクトップのフルスペックの1/3以下で済むようです。

回しっぱなしの奴がレアケースで異常終了すると萎えますね。
自分の奴は、たぶん怪しいところはほぼ蓋をしているので、今は安心しています。

とはいえ、評価値の保存に数秒かかるようになってしまったので、保存中にうっかり
終了してウェイトファイルを破壊しないように、いくつか策を講じました。最近はOSの
アップデートで勝手に再起動されちゃうので。
0288535
垢版 |
2018/03/09(金) 20:26:00.14ID:wTwCUiOb
デスクトップの1/3って性能がですか?
0289310
垢版 |
2018/03/10(土) 19:53:38.63ID:jEGGoWyJ
あ、価格と性能です(^^;

強化学習に凡ミス発見。
強化学習が良いのは、学習し続ければ何とか復旧できると思えるところorz
0290535
垢版 |
2018/03/10(土) 20:42:21.57ID:MfccYD4W
価格コムで調べたら>>281って50万以上ですよね?
0292535
垢版 |
2018/03/11(日) 00:26:26.59ID:Rh0MFs+Y
>>291
ほほう?
ハイスペックノートの割には確かに安いですね。
0293535
垢版 |
2018/03/12(月) 23:17:36.89ID:t7pU5NWq
うわパイソン部分でルール間違ってたorz
やっぱ軽くでもテストはやっておかないとあかんなorz
0294310
垢版 |
2018/03/14(水) 21:17:53.41ID:Hsr0gVbu
うぬぬ。強化学習でどこかおかしい。
強化学習単純化しすぎちゃったかなぁ。

暫定的にひたすら記譜作成&記譜学習に戻しました。
遡り30手が鬼門。記譜学習で、ここをクリアする事を当面の目標にします。

とはいえ、残り29手完全読み切りの記譜がそれなりにあるのは、以前では
考えられない状況ではありますが。
0295310
垢版 |
2018/03/15(木) 22:46:56.01ID:CxmBs8oA
強化学習がおかしいというより、記譜のパターンが圧倒的に足りていなかった
のかもと思い始めました。それによって、着手して分岐しても±0となっている
みたいな。

とりあえず、記譜の増殖手段を模索中。
今は、ヌルウィンドウサーチを使用して、遡り探索を行っている関係で、間違った
着手(石損となる手)を捨ててますが、ある程度までその手も読み切って、記譜に
加えても良いのかなぁと思っています。

とりあえず、βカット(もっと良い手があった)時の評価関数は明らかに読み間違い
をしているので、そこ限定で記譜に加えていますが、ある程度以上の手数は全て
付け足しても良いのかなぁと。
0296310
垢版 |
2018/03/17(土) 02:14:23.31ID:Foa7nGV6
なんとなく想像しただけですが、何が悪かったのかわかり始めました。
今の学習は「良い手」しか学習していないという事です。

序盤はある程度ランダムな着手を入れて、結果がばらつくようにしていますが、
途中から読みを入れて、良い手だけで着手し、その結果を遡りで訂正しています。
遡りが有効なのは30手くらいまでで、序盤のランダムは20手程度までに抑えて
あります。とすると、遡れる範囲では、悪手を打ったらどういう事になるのかという
学習が抜けている。間違えた着手もちょっとだけ悪いだけでです。結果、最善手の
評価値はそこそこ正確なのですが、極端な悪手も、評価値としてはちょっとだけ
悪い数字でも問題が起きないという事になります。

これはこれで順序付けさえ合っていればそれで良いのですが、ちょっと学習が
進んで、微妙に係数が変わった時に、計算上0.1程度しか悪くない相当な悪手
をうっかり選択しやすくなってしまうという事で、これがオーダリングで悪さをして、
探索時間を長引かせてしまう可能性があります。

恐らく評価関数のステージ分割で、表現力がかなりアップした事から、こういう
学習漏れみたいな事が起きてくるのかなぁと。ほんと、評価関数はスカスカです。

というわけで、昨夜書いたように、ある程度深さを捨てて分岐をすべて記譜に残す
ようにしてみようかなぁと思っています。しばらく記譜作成しながら、この事を踏まえ
た強化学習をちょっと考えてみたいと思っています。
0297535
垢版 |
2018/03/18(日) 22:34:31.76ID:tUeDVO3T
結果が出るまで時間がかかり過ぎるなぁ。
もうちょっと様子見るけど。。。
やっぱマルチスレッド化された別のalpha zeroプロジェクト探そうかな…
0298535
垢版 |
2018/03/20(火) 21:45:14.39ID:/Ra5toxr
駄目だぁ、強くなる気配がないorz
別のalpha zero プロジェクト本気で探すか…
ここまで来てもったいない気もするけど…
0299535
垢版 |
2018/03/23(金) 21:13:02.23ID:Z4T42krD
なんかバグ直して再学習したら、ランダムに打ったほうがマシ、くらいに変な手(1の1とか)打つんだが?
もう嫌になっちゃう。
0300535
垢版 |
2018/03/23(金) 21:21:30.45ID:Z4T42krD
そういやLeela Zeroも学習過程では一線うってたな。。。
逆にいい傾向なのか???
0301310
垢版 |
2018/03/25(日) 02:23:39.84ID:Yig4cMbl
分岐をすべて記譜にリストアップするようにしてから、爆発的に記譜が増えてます。
2000程度だったのが、15000超えました。

が、まだまだスカスカみたいです。

ここまでするんなら、真面目に自己対戦して遡りせずに、ランダム着手に対して
分岐をリストアップさせても一緒というか、早い気がしてきています(汗
0302310
垢版 |
2018/03/31(土) 01:38:59.31ID:h3UgGfs1
ランダム着手も追加して記譜増殖中。ただいま32000超え。
もっとも、残り数手とかの記譜もあるけど(汗

ステージ分割しているので、記譜がなかなか生成されない25〜30手近辺で
非常に少ない教師データで何度も学習する事になり、そのあたりが極端な
過学習になってしまった。

解消方法をいくつか検討中です。
1)時間かかっても良いので、25〜30手の記譜ができるまで頑張る
2)前後の盤面を混ぜて、教師データを増やしてみる
3)ランダム強化学習してみる。

2)3)をやると、おそらく、平均化されて評価値がフラットになるが大小関係は
治ってくると思う。

というわけで、今夜は2)3)を試してみる予定。
0303310
垢版 |
2018/03/31(土) 01:43:35.07ID:h3UgGfs1
あと、時々スコア指定(ヌルウィンドウサーチ)の記譜作成処理で
エラー(スコア間違い)が出る時がある。

運が悪い事にハンドリングミスその他で、記譜を残せていないので、
現象の特定ができていない。

頻度としては数日に1回くらい。

たぶん、全滅と直前のパスがらみだと思うんだけど。
0304535
垢版 |
2018/03/31(土) 23:42:05.28ID:4ltMn3J2
Geforce GTX 1060を増設しました。
>>214をpytorchで学習してみます。
0305535
垢版 |
2018/03/31(土) 23:46:58.88ID:4ltMn3J2
んーうごかん。
GPUありとなしでポリシーファイルに互換性がないんですかね?
もしかして。
初めからやり直すか…
0306310
垢版 |
2018/04/01(日) 01:07:10.57ID:OBeH+1OH
おお。どんどん進んでますね。

こちらは、昨夜のバグの現象は特定しました。
スコアが62や−62で、mtd(f)の探索開始が64や−64の時に、
置換表に残った64や−64が悪さして、64や−64と誤答する模様。

とはいえ、どこを直すべきかはわかりません。探索開始が64や−64
の時に、62や−62にしてやる事で、姑息的に回避はできるので後回し。

あと、記譜作成に色々機能を加えていたら、どこかがおかしそうだという
不安な状態になってしまいまして。このまま記譜学習を進めて良いか自信
が無いので、今までのデータで安全な部分をテスト用に回して、新たに
記譜を作成開始。34手目までは全探索しながら普通に遡れる感じです。

33手目から先は探索時間がしんどいので、ひとしきり落ち着いてから、もう
一度、遡りチェックのプログラムをきちっと見直して、追加していこうかな
と思っています。この間に、強化学習混ぜて、過学習部分を解消して
いこうと思います。
0307535
垢版 |
2018/04/01(日) 12:43:33.62ID:lACu3cfl
お、ちゃんと時間測ってないからあれだけど、気持ち速くなってる気がする。
ちゃんと時間測りたいなぁ。
0308310
垢版 |
2018/04/01(日) 13:49:33.48ID:DAl+8Sdv
バグ問題は、結局姑息的手段では回避できず。
全滅がらみでほかのケースでも誤答するケースが発生しました。
元々FFO#59用にmin-Max探索に入れていた、全滅時の処理くらいしか
原因となりそうなものが思い当たらなかったので、とりあえずコメントアウト
して様子見です。全滅時の探索が速度低下しますが、仕方がありません。
0309310
垢版 |
2018/04/02(月) 20:15:06.48ID:9LYme7cN
結局バグ問題は…迷宮入り臭いです。

記譜作成で負荷テスト並みに探索を繰り返すと、全滅絡まなくても間違うケースが
出てきました。再現性が無いのが辛いところ。

その昔悩んでいた時も、やっぱり置換表がらみの問題で迷宮入りでしたが、
今回も、ケチって置換表を極力クリアせずに使用していた事から、何らかの
矛盾が起きているようです。それを言っちゃうと、置換表付mtd(f)でf値を変え
ながら探索することも、またその時に作成された置換表を流用して記譜作成
兼ねた読み切り処理を速度アップすることも、怪しいという事になるわけで。
間違えてしまった事が判明した時点で、その探索は捨てるくらいしか対策が
無いという事になります。

ネットで調べたら、将棋AI界隈でも置換表の問題点を書いている人がいまして。
少なくとも深さがあっていない置換表データは使うべきではない模様。

今の調子だと一晩動かすと結構な頻度で朝見たら止まっているとい状態なので
せめて発生率を下げるべく、mtd(f)に入る前に置換表をクリアする事にしました。
なぜしなかったかというと、記譜データからスコアが確定している盤面を置換表に
入れて、それを見ながら既に読み切りしている盤面は飛ばす処理をしていたから
です。置換表をクリアして盤面再構築に時間がかかるためです。別途盤面キャッシュ
を持って、そちらは追記、置換表は毎回クリアという形に変更しました。
0310535
垢版 |
2018/04/02(月) 22:24:32.85ID:3iK+AnRP
Leela ZeroがKGSでかなり強くなってる。
俺がパクったプログラムも学習し続けたらあれくらい強くなるんだろうか?
0311535
垢版 |
2018/04/04(水) 20:42:51.24ID:Y0WMbzNW
え、ちょっとまってよ。
GPUありなしでポリシーファイルが違うってことは
成果物を配布しようとしたらGPU持ってる人しか遊べないってこと?
0312535
垢版 |
2018/04/04(水) 20:54:25.72ID:Y0WMbzNW
しかもCUDAとかも一緒にインストールしてもらわないといけない?
ええぇ?
0313310
垢版 |
2018/04/06(金) 22:00:28.44ID:952uhqxW
誤答問題は、置換表クリアで解消しました。
違う局面の探索で使用した置換表データは使いまわしてはいけないという事で。
なんか、結果的に、2年くらい前にも同じ事で騒いでいたような。

色々整ってきたので、あとはひたすら記譜作成しながら学習を回すだけになって
しまって、暇になってます。別PC買ってそっちで学習させながら、別の事をはじめ
ようかなぁと思い始めています。
0314535
垢版 |
2018/04/07(土) 20:43:17.69ID:SqbCC315
うーん、つよくならないorz
学習は継続しつつ別のalpha zero プロジェクトも物色するか…
0315535
垢版 |
2018/04/08(日) 22:10:18.77ID:ZB9Bj6DG
ん、なんかメモリリークあんのかな…
swigでC++から移植したクラスってデフォルトでガベージコレクトされないのかなぁ?
もしかして。
0316535
垢版 |
2018/04/08(日) 22:43:04.99ID:ZB9Bj6DG
VMWareの設定がメモリ1GBになってた。
とりあえず8GBに増やしてみた。
0317535
垢版 |
2018/04/08(日) 22:53:48.62ID:ZB9Bj6DG
お、メモリ増やして再起動かけたら結構いい感じで進みだした?
メモリ増やしたのと再起動かけたのどっちが効いたのかわからんが。
0318535
垢版 |
2018/04/09(月) 20:58:16.91ID:500BArdX
くそ〜ベストポリシー更新が全く来ないorz
もう何回目だ?TT
0319535
垢版 |
2018/04/11(水) 20:46:51.70ID:uiOmKVU+
お、メモリ増やしたせいか連続運転が安定している。
しかしベストポリシー更新は相変わらずなしorz
0320535
垢版 |
2018/04/11(水) 23:07:04.06ID:uiOmKVU+
もしかして、ネットワークの初期値が糞すぎるんだろうか。
でも確かめようがないorz
0321535
垢版 |
2018/04/15(日) 20:07:24.81ID:8sCJrZFg
ベストポリシー更新まじコネ〜
でも他のプロジェクトに浮気しようにもなかなか手ごろなのがないんだよなぁ
0322535
垢版 |
2018/04/15(日) 20:21:37.51ID:8sCJrZFg
いっそ実績のあるLeelaZeroを本気でパクりに行ってみるべきか…
でも多分、難解なんだろうな〜
0323535
垢版 |
2018/04/16(月) 20:30:05.64ID:6KBtspgu
あんまりおかしいんでソースをオリジナルとdiffとったら学習係数が1/100になってたんだがwww
え〜何時いじったかな全く記憶にないwww
これで学習が進んでくれれば!!
0324535
垢版 |
2018/04/16(月) 23:37:28.33ID:6KBtspgu
loss も entropyも減ってきてる!
これでベストポリシー更新が来れば!!
0325535
垢版 |
2018/04/17(火) 22:16:19.94ID:E16XJnGD
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
ベストポリシー更新きました!
次の切りのいいところで止めてプレーしてみよう
0326535
垢版 |
2018/04/17(火) 22:34:03.78ID:E16XJnGD
それはそうとzen+の発売日が迫ってますね。
金がないから買えないけど情報だけは追っかけてみます。
爆速だといいな。
0327535
垢版 |
2018/04/18(水) 23:48:24.10ID:7NtNWbU1
あとちょっとだけ待とう
終局までの手数も順調に減ってきてるから意味のある手を打ってるんだろう多分
ワクワク
0328535
垢版 |
2018/04/19(木) 20:50:17.33ID:lyvIQrMy
打ってみました。
序盤、中盤は棋理の芽生えみたいなものが感じられました。
伸ばせそうなところを伸ばすとか伸ばされそうなところを止めに来るとか
でもわざと負けようとしても5連までは積極的に作りに来るのにそこからパタッと伸ばすのをやめて7連を作ってくれませんw
なぜw?

でもまあ、希望は感じられました。
もうすこし学習してみます。
0329535
垢版 |
2018/04/19(木) 23:51:35.82ID:lyvIQrMy
zen+なかなかよさげですね。
前世代と比べて一割前後性能アップ?
0330310
垢版 |
2018/04/20(金) 09:40:06.18ID:HgLFJ5UM
うーん。AMDはSIMD命令で遅い命令があって、速度低下するかもって
どこかで読んじゃったからなぁ。


こちらは地道に記譜作成しながら学習させてます。
深さ優先で記譜作成すると、分岐が少ない手筋ばかり増えていくので、
幅優先で、同じ深さである程度記譜溜まってから、次の深さとするように
したのですが、空きマス27からの記譜展開で、時間がかかるようになって
なかなか空き28マスに行けない。オーダリングの精度が出ていないから
だと思いますが、同時に選択肢も増えてきて、余計時間がかかる感じ。

空き30マス突破したら、かかる時間の増加率は下がるはずなんだけど。
0331535
垢版 |
2018/04/20(金) 22:59:48.32ID:1YRRGto3
もしかして終盤はあえてランダム性を残すことによって学習が進みやすくなるなどの深い理由があるのだろうか?
わからんが。
0332535
垢版 |
2018/04/20(金) 23:02:21.21ID:1YRRGto3
それとも序盤は同一局面のデータがたくさん現れるから学習できるけれど
終盤に行くとデータが散らばっちゃって学習できなくなるということだろうか
0333名前は開発中のものです。
垢版 |
2018/04/20(金) 23:03:29.26ID:1YRRGto3
あるいは一線や二線は打たないほうがいいと学習してしまっているがため、7連を作れないのだろうか?
0334310
垢版 |
2018/04/21(土) 20:32:42.81ID:AdkW58BW
オセロは記譜生成させてるだけで暇なので、将棋の事を考えてました。

KKPとかよくわからないし、同じ事をやってもつまらないので、利きを点数化
しようかと考えてみまして、実際の計算方法を考えていたら、自玉周辺と
相手玉に対する利きがKKPなのではないかと思い至ってしまいました。

持ち駒の点数は駒種毎に固定で振られていて、駒同士のぶつかりによる優劣
特に駒交換はmin-Maxにて補間しているのかなと。評価関数自体は意外と単純
な事しか学習していない感じで、探索で補っている部分が大きいように感じます。

こうやって見ると、上手く単純化しているなぁと。
自分で勝手に想像した内容に感心してしまいました。

ただ、これならこれで、自玉KPと相手玉KPの合算で、2駒関係に次元を落とせ
そうではないかと思ってしまいました。まあ、無理なんでしょうけど。

自分がやる上での一番のネックは、オセロの評価関数が点数だったために、
なんちゃって強化学習しかやった事がな点ですね。あと、みなさんライブラリ化
されていて、それに則れば色々な人の考えた高速化・高効率化のネタが利用
できる点で、一から車輪の再発明していては追い付けないよなぁと。
0335535
垢版 |
2018/04/21(土) 20:39:59.86ID:8g8p+RpI
ほう、将棋に進出ですか。
将棋AI界はオープンソースが進んでる感じなんですかね。
0336535
垢版 |
2018/04/21(土) 20:50:54.10ID:8g8p+RpI
alpha zero のパクりプログラムgithubから丸パクしてきたわけだけど
そろそろちゃんとソース読み解いてみようかな。難しいだろうけど

丁寧な解説がどこかにあればいいんだけどね
0337535
垢版 |
2018/04/22(日) 17:35:27.70ID:QOhFsFyf
お、AIが7作った。
いままではわざと負けようとしても勝ってくれなかったけど今回は勝ってくれた。
まだまだ弱いけどもっと学習させてみよう
0338535
垢版 |
2018/04/22(日) 19:13:47.98ID:QOhFsFyf
俺も学習見守るだけで暇になっちゃったからなんか始めたいけど
計算リソースが学習にもってかれちゃってるからそこどうするか。

やっぱPC新調か?

グラボも効果あるみたいだし今度はGeforce 1080 Tiとか試してみたいな。

金がないけど。
0339310
垢版 |
2018/04/22(日) 19:48:13.41ID:wf3ukgDl
だよね。自分も脳内妄想で我慢です。
PC新調しちゃうか思いっきり悩み中。
0340535
垢版 |
2018/04/25(水) 20:09:35.29ID:QZIUF0Ri
もっとネットワーク大きくしてみたいな。
でもさらに学習時間がかかると思うと躊躇する。
0341535
垢版 |
2018/04/27(金) 21:32:10.80ID:b1G/gV5U
お、損失が3点台だったのが2点台になった。
いい感じなんじゃないでしょうか?
0342535
垢版 |
2018/04/28(土) 17:38:12.12ID:MUOfiFNK
ジムケラーがインテルに来たとか。
いいCPU作ってくれるならどこでもいいけどね。
0343535
垢版 |
2018/04/29(日) 20:30:57.65ID:mX318X6T
序盤は素晴らしい棋理の芽生えを感じるが、いかんせん終盤がなぁ
ほかのアルファゼロクローンも似たような感じなのだろうか?
0344535
垢版 |
2018/04/29(日) 20:50:13.18ID:mX318X6T
公式AIともやってみたけど序盤センスは互角以上と感じられる。
実際、必至をかける一歩手前まで行った。
終盤力さえ磨かれればおそらく公式AI越えはある。
0345535
垢版 |
2018/04/30(月) 22:51:47.16ID:qAJqtYoj
学習が1000エピソード突破。
1500が規定値だから最後まで回したいな。
0346535
垢版 |
2018/05/01(火) 21:34:25.66ID:bYHVWZMu
もっとパワー、速度が欲しいな。
こんなことなら最初から1080 Ti いっときゃ良かったかな?
0347535
垢版 |
2018/05/03(木) 10:58:16.57ID:gNd8xJ5s
ちょっと思うところがあって、思い切ってネットワーク大きくしてみました。
学習最初からやり直しです。

さて吉と出るか凶とでるか。
0348535
垢版 |
2018/05/03(木) 13:28:58.30ID:gNd8xJ5s
ん、ネットワーク構成変えたら学習率もいじらないと上手くいかないのか?
ネットワークでかくしたら学習率は大きくすればいいのか小さくすればいいのか…
0349535
垢版 |
2018/05/03(木) 13:42:41.42ID:gNd8xJ5s
ネットワークでかくしたら学習率は小さくするのがいいみたい?
0350310
垢版 |
2018/05/03(木) 20:31:46.75ID:EAR7zekO
なんか順調でうらやましい。
俺もやっぱGPU付きのPC買うべかな。

一般的にLRでは、学習率は発散しない限界まで大きくするのが良いらしく、
昔は、最初大きく、試行回数増えるごとにだんだん小さくみたいな事をしてました。
NNではRMSPropとかADAMとかで自動調整する流れだと当時理解していました。
ただ、Googleの論文読むと、普通に学習率固定っぽく読めてしまうんですよね。
強化学習だと学習率固定が良いのかも知れません。

表現力大きいからあんまり問題ない気がするのですが、学習率は小さくすると
学習に時間がかかる代わりに、収束しやすくなります。局所解には陥りやすく
なるのではないかと愚考しますが、強化学習における局所解と、教師付学習に
おける局所解は現象が違うから、よくわかりません。
0351310
垢版 |
2018/05/03(木) 20:37:19.91ID:EAR7zekO
こちら、例によってひたすら分岐付き記譜を作成しています。
空きマス27の所(完全読みとしては26)のところから、計算時間が案の定すごく
かかるようになってしまって、遅々として進まなくなりました。

最後の手段でとっておいた、UCT探索で仮PV作成し、それでmtd(f)にて評価値を
迅速に確定して、その評価値で正しいPVを求めるという流れにしたところ、恐らく
数倍程度に高速化され、それによって記譜が集まり正確になる事で、評価関数の
精度が上がって、仮PVが正確になりという好循環に、ようやく入る事ができました。

ただ、それでもまだ時間はかかるというか、今空きマス28まで持っていったら、
また時間がかかる地獄に入りそう。最低でも空きマス30までは持っていきたい。

つか、待っている時間が長い…セカンドPCが欲しい。
0352310
垢版 |
2018/05/03(木) 20:41:41.51ID:EAR7zekO
>>351
>数倍程度に高速化され

あくまで仮PVが数手分合っている時の話で、仮PVが間違っていると、
むしろ遅くなる可能性があります。


あと、一つの局面に対し、最善手が複数あるケースでは、例えば最善手
が2つあると2倍程度時間がかかるという問題があるのは認識していて、
対策は可能なのですが、そうするとバグった時にβカットのエラーを吐か
ないという恐ろしい状態になってしまうので躊躇しています。
0353310
垢版 |
2018/05/04(金) 19:57:24.12ID:5CQB8Di3
世界コンピュータ将棋選手権の2次予選までで強さをみせつけている
T.N.K(通称たぬき)ですが、DL勢にして高速評価関数という事なので
アピール文書を見てみました。

これ、CNNではなく、全結合のDeep Networkの模様。追加で論文も
出ているので、見たところ5層のMLPです。

入力層に玉との2駒関係を使っていて、そこは計算量が多いので、
ここだけ差分計算で高速化しているとの事。自分は行列をEigenに
任せちゃってるので差分計算していませんが、オセロでも結構使え
るはず。

もう一度オセロをMLPに拡張したくなってきた(汗
0354535
垢版 |
2018/05/07(月) 20:19:04.83ID:m+uVPKyG
ネットワーク大きくすると学習が収束する確率下がるんですかね?
なんか学習がうまく進んでないようです。
0355535
垢版 |
2018/05/08(火) 00:21:37.96ID:VKk6NsC2
もしかして学習率だけでなく、ほかのパラメータにも手を加えなければならないってことですかね?
0356310
垢版 |
2018/05/08(火) 01:01:09.30ID:6noaUyVY
バックプロパゲーションで計算している以上、深さが深くなると、
その分初段まで誤差を遡らせるのに時間がかかるから、収束が
遅くなって当然かと思います。

あと、初期値のランダム値の幅も、適切に設定しないとなかなか
収束しなくなりますし、それでも初期値の運が悪いとまったく収束
しないなんて事もあり、ちょこっと不安定なところがあります。

XavierとかHeとか初期値の設定項目はありませんか?
本で読んだ知識なので、現実にどれくらい影響するのか良くわかりませんが(^^;
0357535
垢版 |
2018/05/08(火) 19:21:19.88ID:3yhYJr6O
おお、ありがとうございます。
しらべてみます。
0358535
垢版 |
2018/05/09(水) 21:58:37.29ID:53SriW94
パソコン壊れたかと思ったが放電したらなおった
あー怖かったTT
0359535
垢版 |
2018/05/10(木) 20:05:15.86ID:X+P+UxO/
学習率の変動率?を下げたら結構うまく動いてるっぽいです。
0360535
垢版 |
2018/05/11(金) 20:15:31.62ID:TPpBGuAT
loss とか entropyはいい感じに減ってるのに自己対局の結果がついてこないですね。
うーん、なんだろう?
0361535
垢版 |
2018/05/12(土) 17:16:50.40ID:UY4N1vvW
いや、自己対局もちょっとづつ改善してるみたいです。
もっと時間が必要かな。
0362535
垢版 |
2018/05/13(日) 18:33:11.99ID:jNzVm6ts
windowsがたまに夜中に勝手に再起動してしまうんだが?
マジむかつく(怒
0363310
垢版 |
2018/05/13(日) 19:53:17.92ID:i+O998yE
Windows Updateかな?
俺は通知もらうだけにして、タイミング見て自分で再起動かけてる。
まあ、24時間経つとカウントダウンが始まるので、早目に再起動する事になるけど。
0364535
垢版 |
2018/05/16(水) 19:41:44.02ID:zhHRqcbt
いままで50エピソード毎に自己対戦してたけど、自己対戦がかなり重いから200エピソード毎に自己対戦にしたらなかなかいい感じ。
0365535
垢版 |
2018/05/16(水) 20:52:45.23ID:zhHRqcbt
ネットワーク大きくしても詰めが甘いのはかわらないですねorz.
公式AIに勝つチャンスあったのに勝ちを逃してしまいました。
0366310
垢版 |
2018/05/17(木) 20:16:35.67ID:3wU0adoY
Surfaceの電源ケーブル、そろそろ断線しそうだなぁと思っていたら、
PCをひょいと動かした瞬間に、まさかの電源落ち。

ウェイトデータ書き込み中に停まらないように色々工夫していても、
この手の落ちには対処できるわけもなく、また大変に運が悪い事に
またしても後半10ステージ程度のウェイトデータが飛んでしまい
ました。バックアップとっていたのですが、気づかずにいたので、既に
上書き済みという罠。

後ろ10ステージ分のみゼロクリアして、そこだけ今のデータで再度
学習する羽目になりました。

orz
0367535
垢版 |
2018/05/17(木) 20:37:00.03ID:anbc4vLN
乙w
0368535
垢版 |
2018/05/17(木) 23:06:00.81ID:anbc4vLN
これはNew マシンを買えとの神のお告げww
0369535
垢版 |
2018/05/18(金) 20:48:52.38ID:UxmUzKYy
まただよw(再起動)
0371535
垢版 |
2018/05/19(土) 20:01:16.80ID:PB1pw3rI
むう、AlphaZeroのポテンシャルはこんなものではないはずだが。
でも100万局くら学習させないと真価は発揮できないかもなぁ。
0372535
垢版 |
2018/05/20(日) 23:46:47.79ID:A2GqvvmZ
19路囲碁だと20層くらい層がないと駄目だとか。
うーん20層は厳しい。。。
0373310
垢版 |
2018/05/21(月) 20:17:29.25ID:aDShJzMX
畳み込み窓が3×3で、隣との関係を1マス分づつ認識しているとすると、19路で
19層必要で、出力の全結合層つけて20層って事なのかなぁ。

あとフィルタ数も大事だと思う。フィルタで認識する特徴の種類が決まっていると思う。

なんとなくだけど、こう仮定している。検証はしていない(汗
0374535
垢版 |
2018/05/21(月) 21:00:41.57ID:9qAF6usq
いまのところ192 * 6 でやってます。
9路だから192 * 10 にすればよかったかなぁ
0375310
垢版 |
2018/05/22(火) 20:12:53.71ID:do1nJaPu
五目系なら、周辺5マスが把握できていればよいかもよ。
比較検証しなきゃわからんけど。
0376535
垢版 |
2018/05/22(火) 20:18:42.34ID:025jAm4L
うーん、そうなんですか?。
ライフゲーム囲碁はもろ周辺5マスなんですけどね。
囲連星成功したらライフゲーム囲碁もやりたいですね。
0377535
垢版 |
2018/05/23(水) 23:49:25.39ID:z+TgzaXz
くそ〜何時まで経っても一手の重みみたいなものを理解してくれないorz.
なんか足の遅い打ち方するんだよなぁ。
もういっそ20層にしちゃおうかな orz
0378535
垢版 |
2018/05/24(木) 20:38:02.47ID:g5FOS6wP
ん、ちょっとづつだけど強くなってる気がする。。。
くそ〜Googleの計算リソースがあれば30分くらいで名人超えるんだろうけど。。。
0379535
垢版 |
2018/05/24(木) 20:57:44.30ID:g5FOS6wP
自己対戦が勝率100%行ってしまいました。
対戦相手も更新されていくなら勝率100%は行かないと思うんですが。
もともとの実装がなにかおかしいのだろうか…
0380535
垢版 |
2018/05/25(金) 23:18:10.63ID:Wo9ACErv
まだ公式AIに勝てないけど毎日ちょっとづつ進歩しているのは感じる。
まだ希望はある。
0381535
垢版 |
2018/05/26(土) 20:20:48.78ID:qA0Nw26t
Alpha Zeroのアルゴリズムは囲連星よりもライフゲーム囲碁に向いてる気がする。
0382535
垢版 |
2018/05/26(土) 21:33:20.38ID:qA0Nw26t
FacebookがELF OpenGoというのを公開したとか。
プロ棋士にも勝てるみたいですね。
0383535
垢版 |
2018/05/27(日) 19:07:25.97ID:kULpg0Pw
ELF OpenGo もGPU 2000台とか使わないと強くならないみたい?
は〜絶望する。
0384535
垢版 |
2018/05/28(月) 22:00:33.18ID:hqRKJ+dG
昔のLeela zeroもそうでしたがシチョウが読めてないっぽいですねぇ
0385535
垢版 |
2018/05/28(月) 22:12:43.53ID:hqRKJ+dG
でもちょっとづつでも確かに前進してる気がします。
ロールアウトの回数増やしたら学習の質も上がるかなぁ?
やってみるか。。。
0386535
垢版 |
2018/05/29(火) 20:13:27.71ID:LETTkqJf
ん、lossとentropyがかなり増えてますね。
ロールアウトを増やしたえいきょうだろうか?
0387535
垢版 |
2018/05/29(火) 21:44:21.56ID:LETTkqJf
ネットワークを192 * 20 にしたい衝動に駆られるw
危険な賭けだが…
0388535
垢版 |
2018/05/30(水) 22:20:56.63ID:s+sw+z1r
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
公式AIに初勝利!
内容としては相手のミスに助けられただけだけどそれでも格段に進歩してる!

(
;FF[1]GM[1]SZ[9]
;B[fe];W[fc];B[de];W[dc];B[ed];W[ec]
;B[gc];W[gb];B[ee];W[cb];B[ce];W[hb]
;B[ge];W[fh];B[be];W[gd];B[he])
0389535
垢版 |
2018/05/31(木) 22:06:07.55ID:CLpDRjz4
惜しい!惜しいなぁ。
中盤まで内容は圧倒しておきながら最後の盤端のシチョウが読めずに逆転負け。
学習途中のAlpha Zero系の弱点が出てしまいました。
でも、ここ克服したら100戦100勝もあり得るかも。

(
;FF[1]GM[1]SZ[9]
;B[df];W[fe];B[de];W[cg];B[ef];W[hg]
;B[ff];W[gf];B[cf];W[gd];B[fg];W[gh]
;B[dg];W[gc];B[gg];W[ge];B[dc];W[hb]
;B[dd];W[dh];B[db];W[da];B[eh];W[ha]
;B[eg];W[hc];B[he];W[ie];B[hf];W[if]
;B[hd];W[id];B[he];W[ch];B[hf];W[hd]
;B[he];W[hf];B[di];W[he])
0390535
垢版 |
2018/06/01(金) 22:15:38.64ID:i1DTZ7p0
本来負けてたはずのゲームですが逆転勝利しました!
以前より大分、棋理のようなものが身についてきている感じがします。
ロールアウト増やしたのが効いたかな?

(
;FF[1]GM[1]SZ[9]
;B[df];W[fb];B[ef];W[ff];B[fe];W[ge]
;B[fg];W[gf];B[gg];W[cg];B[cf];W[hg]
;B[fd];W[gd];B[gc];W[hc];B[fc];W[hb]
;B[hf];W[hd];B[he];W[eg];B[dg];W[hh]
;B[eh];W[eb];B[dd];W[gb];B[db];W[dc]
;B[ec];W[de];B[cc];W[bc];B[ed];W[id]
;B[ce];W[ie];B[ei];W[bh];B[ee];W[ba]
;B[eg])
0391535
垢版 |
2018/06/02(土) 21:54:09.55ID:GZGHIXxE
ぼちぼちウインドウズに移植することも考え始めなければ…
0392535
垢版 |
2018/06/04(月) 20:50:12.16ID:Hw4HpbU5
毎日棋風がすこしずつ変わっていくな。
面白い。
3線を重視し始めたようだ。
0393535
垢版 |
2018/06/04(月) 21:29:44.63ID:Hw4HpbU5
なんかネットワークの規模が足りてない気がしてきたわ。orz orz orz
一気に256 * 20くらいに増やしてみようかな?
気が早いかな〜
0394535
垢版 |
2018/06/04(月) 21:42:52.90ID:Hw4HpbU5
うーん、どうせやり直すなら早いほうがいいよね?
でもこのまま学習続けたら何が起こるかも知りたいし…
悩ましい。
0395535
垢版 |
2018/06/04(月) 22:55:50.50ID:Hw4HpbU5
思い切ってネットワーク構成を256 * 24 にしました。
激遅になりそうだが…
0396535
垢版 |
2018/06/04(月) 23:05:36.60ID:Hw4HpbU5
ネットワークを192 * 6 から 256 * 24 にしたら計算量は(256*24)/(192*6)=5.333倍であってる?
まさか指数的に計算量増えたりしないよね?
0397535
垢版 |
2018/06/04(月) 23:18:15.88ID:Hw4HpbU5
メモリが足らんといわれたぜwww
12GBも割り当てたのにwwww

こりゃニューマシン買うしかないな。
0398535
垢版 |
2018/06/05(火) 00:01:42.42ID:2ipfQYrF
とりあえず、64 * 24 にしてみました。
これでも6GB位メモリ食う。

まじでスレッドリッパーに128GB積みたい衝動に駆られるw
0399535
垢版 |
2018/06/06(水) 21:01:18.82ID:/EVpmksK
やっぱ24層は無理かもorz
全然学習が進んでるように見えないorz
0400310
垢版 |
2018/06/06(水) 21:38:17.47ID:dXECgVmr
残り28手のところで1か月足踏み。やっと記譜がたまってきた。
残り30手まで行くのに半年くらいかかりそうw

というか、まだまだパターンが足りていないかも。

>>396
隠れ層のサイズは2乗で効いてくるから、256^2/192^2。
深さは単純に計算量が4倍になるとして、ざっと7倍くらいになるのでは?

学習は深さが増えるとどんどんきつくなるかと。
誤差逆伝播の宿命です。
0401535
垢版 |
2018/06/06(水) 22:38:14.91ID:/EVpmksK
>隠れ層のサイズは2乗で効いてくるから
おお、そうなんですか。ありがとうございます。

>学習は深さが増えるとどんどんきつくなるかと。
24層は諦めました。
今12層くらいで試行錯誤しています。
0402535
垢版 |
2018/06/07(木) 00:15:51.92ID:FD/EuCH4
うーん、極めて微妙なバランス調整を強いられるのか?これは
0403310
垢版 |
2018/06/07(木) 22:47:08.28ID:3tsX2weq
マシンパワーが潤沢にあれば、かなり大きいネットワークから学習させて、
最低限どれくらいの大きさなら弱くならないかが求められるんだけどねぇ。
Googleみたいに。
0404535
垢版 |
2018/06/07(木) 22:50:20.44ID:FD/EuCH4
そういえば新しいスレッドリッパーは32コアになるとか。
うーん欲しい。
0405310
垢版 |
2018/06/08(金) 09:01:40.50ID:kLQfp5L9
今見た。64スレッドだってw
0406535
垢版 |
2018/06/08(金) 21:09:32.65ID:sd8J+TAa
あんまりうまくいかないから気分が萎えてきちゃった。
少し気分転換するか…
0407535
垢版 |
2018/06/09(土) 22:29:54.70ID:E47zq0gI
層を9層に減らして再チャレンジ
どんどん後退していくが仕方ない
0409535
垢版 |
2018/06/11(月) 20:34:52.58ID:CmwqwxJa
くそーどうにもうまく行かね〜
一回試すのに結構時間かかるのも痛いorz
0410535
垢版 |
2018/06/12(火) 18:16:53.37ID:ZNBJ6nca
あんまり上手くいかないんで頭おかしくなりそう
ちょっと休憩します
0411310
垢版 |
2018/06/12(火) 22:17:08.85ID:tW9CPEWd
NNの罠ですな。
自分が逃げたのは、それです(汗
0412535
垢版 |
2018/06/12(火) 22:59:32.98ID:0htatJhS
>>411 くそー
パラメータ100種類くらい用意して同時に実行したい orz
0413535
垢版 |
2018/06/15(金) 20:18:16.05ID:8McWyxkP
CPU Ryzen 2700X
GPU Geforce 1080
Memory 64GB
SSD 500GB

これを満たそうとするとやはり40万円近くなる。
厳しい。
0414535
垢版 |
2018/06/15(金) 23:05:29.07ID:8McWyxkP
フロンティアってショップかなり安くない?
なんか裏があんのかな?
0415310
垢版 |
2018/06/16(土) 09:22:12.72ID:zNyAzUlc
フロンティアと言えば懐かしのフロンティア神代(こうじろう)かなと思ったらビンゴでした。
Wikipedia情報によると、フロンティア神代はヤマダ電機に吸収されて解散していて、
BTOショップにフロンティアという名前だけ残っているみたいです。

ヤマダ電機なので裏は無いでしょうね。

7980XEに1080Tiで128Mとかにしていくと、だいぶ価格差は詰まっていきますが、
それでも多少安いみたいですね。というか、8700Kだったらかなり安いかも。
0416535
垢版 |
2018/06/16(土) 23:00:41.95ID:Xmjs3i0Q
pytorchってAMDのGPU使えないよね?
Cudaだよね?
0417535
垢版 |
2018/06/16(土) 23:08:34.52ID:Xmjs3i0Q
多層を重ねるのは諦めてフィルタ数で勝負というのもあるだろうか?
0418535
垢版 |
2018/06/17(日) 20:06:40.29ID:S/cw4ZOV
実はこっそり再開してましたが9層からさらに後退すべきか悩んでます。
ここから1層づつ減らしていって学習がまともに進むところまで後退するのを考えています。
0419535
垢版 |
2018/06/18(月) 21:07:45.14ID:Wo5CnXra
8層も望み薄
7層は囲連星が7目並べだからあるいみちょうどいいかも?
0420535
垢版 |
2018/06/18(月) 23:34:21.39ID:Wo5CnXra
お、7層はうまくいくかも
まだわからないけど
0421535
垢版 |
2018/06/18(月) 23:35:41.11ID:Wo5CnXra
でも6層でだめで7層でOKというのもちょっと考えづらいといえば考えづらいんだよなぁorz.
0422310
垢版 |
2018/06/19(火) 00:55:25.28ID:FOfYGuya
ゲームとして必要最低限と思われる最低限の層数から1層づつ増やして行って、
一つ前の奴に有為に勝てる様になるまでの学習時間を図っていくという手もある
かなと思います。

面倒でやりたくないですが。

自分はひたすら記譜作成。
少しづつ改良を加えていますが、残り28手(読み切りとしては27手)で足踏みして
います。早ければ6分程度で終わるのですが、いかんせん25〜26手目の評価
関数が穴だらけみたいで、長いと4時間とかかかってしまい、なかなか棋譜が集め
切れません。記譜が集まると速くなるのですが、集まるまでの時間がかかりすぎ。
0423535
垢版 |
2018/06/19(火) 22:25:49.15ID:pDwqV+QB
パラメータ調整ってプログラミング本来の楽しみがほとんどなくてそこが辛い。
とくに他人のコードだと。
弱くてもオリジナルのヒューリスティック実装するのは楽しいんだよなぁ。
うーん。
0424310
垢版 |
2018/06/19(火) 23:13:29.58ID:FOfYGuya
すごくわかりますorz
だから、非効率でも、自分でNNのライブラリ作っちゃおうとしたりするのでする。
0425535
垢版 |
2018/06/20(水) 20:38:16.59ID:HpjQCtCz
7層も駄目っぽいorz orz orz
もう少し粘るか悩むorz orz orz
0426535
垢版 |
2018/06/20(水) 21:21:48.36ID:HpjQCtCz
そこそこ上手くいってた6層のバックアップを引っ張り出して続きの学習をさせてみることにしました。
結局、全部無駄だった orz orz orz
0427310
垢版 |
2018/06/23(土) 00:43:44.99ID:MYOaLSBl
長いと4時間…

出張中に丸48時間動かしっぱなしにしましたが、3つしかできなかった。
一つ16時間w
0428535
垢版 |
2018/06/24(日) 23:17:32.46ID:+0RpmqDG
なんか異様に辺の星を重視するようになった。
ちょっと単純化しすぎな気がするが、やっぱ層が足りてないのか?
0429535
垢版 |
2018/06/25(月) 20:09:56.17ID:EkJF+fRZ
んあ、なんか一線打つようになった?
過学習かなんかか?
0430535
垢版 |
2018/06/25(月) 20:42:46.09ID:EkJF+fRZ
結局6層も駄目なのかなぁ orz orz orz
アルファゼロのポテンシャルはこんなものではないはずだが。orz orz orz
0431535
垢版 |
2018/06/25(月) 21:48:22.04ID:EkJF+fRZ
もうちょっと粘ってみるけど、アルファゼロ(少なくとも>>214のプログラム)からの撤退も考え始めてるorz orz orz
0432535
垢版 |
2018/06/26(火) 21:04:26.12ID:1tkUkpm5
お、一線に打つのは治ったようです。
0433535
垢版 |
2018/06/27(水) 21:01:58.89ID:dPu535sz
お、すごい!
まだ詰めはあまいけど、まるで地を取ることはいいことだという棋理を理解したような打ち方で勝った!
まだ希望はある!
(
;FF[1]GM[1]SZ[9]
;B[ee];W[eg];B[ec];W[ff];B[gd];W[dg]
;B[cd];W[cg];B[fd];W[dd];B[de];W[fh]
;B[gg];W[gh];B[hh];W[gf];B[hg];W[dc]
;B[hf];W[bg];B[he];W[ah];B[hc];W[hd]
;B[id];W[ba];B[hb];W[bi];B[hd])
0434535
垢版 |
2018/06/28(木) 21:14:27.14ID:Owd80tJ7
まただよ(再起動)
0435535
垢版 |
2018/06/28(木) 21:14:59.02ID:Owd80tJ7
ネイティブリナックスにしたら再起動なくなるんだろか
0436535
垢版 |
2018/06/29(金) 21:22:30.04ID:24sRxbs9
ふと思ったけど詰みルーチンをルールに組み込んで詰みがあるときは詰みを打たなきゃいけないルールにして学習させて
十分学習したら詰みルールを外したら学習時間短縮できたりしないんだろうか?
ルールが違ったら全く重みが役に立たなくなっちゃうかな?
0437535
垢版 |
2018/06/29(金) 22:02:45.79ID:24sRxbs9
2線を重視し始めたようです。
毎日棋風が変わっていくな。
AIが自らいろいろ試してるみたいでホントに知性があるかのような錯覚を覚える。
0438535
垢版 |
2018/06/29(金) 22:37:39.80ID:24sRxbs9
相変わらず隅のシチョウが読めてないですね。
7連を作るにはほぼ必須なので克服してほしい。
0439535
垢版 |
2018/06/30(土) 22:29:57.74ID:8vhkC7kM
圧勝の形勢を築いておきながら隅の石が取れずに逆転負け。
ここは何としても克服せねばなりませんなぁ。

(
;FF[1]GM[1]SZ[9]
;B[hh];W[df];B[cg];W[fg];B[gc];W[ef]
;B[gf];W[ge];B[cc];W[fc];B[ce];W[ed]
;B[cf];W[cd];B[bd];W[dd];B[bc];W[bh]
;B[bg];W[ff];B[fb];W[eh];B[ec];W[fi]
;B[fd];W[dc];B[db];W[eb];B[ea];W[cb]
;B[bb];W[dh];B[be];W[bf];B[ca];W[gb]
;B[cb];W[ch];B[gh];W[hb];B[de];W[ee]
;B[af];W[ba];B[fh];W[hc];B[ah];W[hd]
;B[eg];W[dg];B[gg];W[fe];B[ei];W[gd]
;B[ig];W[bi])
0440310
垢版 |
2018/07/01(日) 09:58:13.46ID:rTgUJVKi
強化学習は一通り失敗をして、ダメな手を覚えていくものですからね。
0441310
垢版 |
2018/07/01(日) 16:25:08.28ID:rTgUJVKi
過去に途中でプログラム止めて、中途半端な状態になっている記譜(棋譜としては
成立しているけど、他の記譜との接点が無い)を見つけて、続きを実行するような
仕組みを作りました。

これで心置きなく途中で止められる。
0442535
垢版 |
2018/07/01(日) 23:21:40.95ID:1CvUBjWR
いったん学習中断します。
気分を変えて囲連星やめてライフゲーム囲碁に逃げようかと思ってます。
プログラムもgithubから別の拾ってこようかと思います。
マルチスレッドに対応してて大規模ネットワークを想定してそうな奴。
0443535
垢版 |
2018/07/04(水) 19:57:24.45ID:t+xDGMvg
githubに落ちてて大規模ネットワークに対応してるとなるとleela zero とかだろうか?
0444535
垢版 |
2018/07/04(水) 21:32:30.05ID:t+xDGMvg
とりあえずAQって囲碁ソフトのソース見てます。
0445535
垢版 |
2018/07/04(水) 21:43:59.79ID:t+xDGMvg
んんん、AQってヒューリスティックてんこ盛りなんですかね?
他ゲームに応用が利かなさそうな怪しげなコードが見受けられるw
シチョウのコードとかあるっぽいし。
つっても囲連星なら応用効くだろうけど。

逆に19路囲連星に走るというのも考えられるw
0446535
垢版 |
2018/07/04(水) 23:19:04.05ID:t+xDGMvg
あかん、これは相当キツイわw
まあ勉強にはなるかもしれんがモノになるかは微妙だww
0447535
垢版 |
2018/07/08(日) 22:10:22.48ID:cyFrinl7
がっつりさぼってますw
0448535
垢版 |
2018/07/12(木) 22:46:30.45ID:sqTgsSS4
やる気が出なくて、昔作ったモンテカルロのAIを動かしたりしていますが
モンテカルロでも割といい線行ってたんだとちょっと思いました。

なにかもう一度動き出すきっかけが欲しい。
0449310
垢版 |
2018/07/12(木) 23:01:05.40ID:x4U4b182
相変わらずひたすら記譜作成中。

現状の記譜の中に、ランダム着手の記譜が混じっていて、そいつらを
遡るのにものすごく時間がかかる事が経験的にわかっています。
つまり、そこそこ最善に近い手を打っている記譜の遡りは早く、悪い手
ばかりの記譜は遅い。

現状、最善に近い手に対しては、そこそこまともな評価関数になっている
という事は言えるので、一旦遡り対象の記譜を消して、この評価関数で
作られる新しい記譜で継続学習させた方が良いかもと思い始めています…。
0450535
垢版 |
2018/07/15(日) 19:54:25.23ID:I+Rk5Prr
だめぽ
3連休も無為に過ごしてしまったorz
あと一日あるけど
0451310
垢版 |
2018/07/16(月) 22:12:02.39ID:99JpH5NZ
棋譜作成のロジックをだいぶ変更。
過去の奴に当てはめると結構面倒な事になるので、
>>449の予告通り記譜はいったんリセット。

あと、パブリックドロー(残り40手最善)な記譜が
いくつか見つかったので、そいつらも棋譜に混入。

もっとパブリックドローな記譜が欲しい。
0452535
垢版 |
2018/07/19(木) 22:43:05.06ID:7AkuvwH4
reinforcement learningとやらについてやさしく書かれた書籍ないかなぁ
0453535
垢版 |
2018/07/22(日) 21:40:49.08ID:W18yPuDN
勉強として>>214のソースちゃんと解読してみようかなぁ
やりっぱなしじゃ勿体ないかもしれないし。
0454535
垢版 |
2018/07/23(月) 21:26:02.08ID:h2uxnpW8
熱暴走なのかpcが急に再起動したw
もし学習連続運転してたら火吹いて火事にでもなってたかもな
0455535
垢版 |
2018/07/24(火) 21:22:08.00ID:65EBIksd
pcが起動しないorz
電源ボタン押すとファンが少し動いて止まってを繰り返す
暑さで逝ってしまったか?
0456535
垢版 |
2018/07/25(水) 21:55:40.30ID:P+agX1Gu
しばらく活動出来ませんねこれは、、、
0457310
垢版 |
2018/07/27(金) 22:29:42.44ID:yYgmXJLn
あれれ。大変ですね。
うちは、ここ2〜3日回線ダウンでした。本日ようやくNTTに連絡して再開。
暑さでONUが死んでたみたいです。

棋譜作成は、結局元の棋譜もマージしてしまいました。
おかげさまでえらく時間がかかっています。
0458535
垢版 |
2018/08/08(水) 19:39:47.19ID:O1x6YwVI
活動やめたら楽チンすぎてなかなか復帰する気になれないw
何かに追われるように毎日過ごしてましたからね。
メインマシンも壊れたまんまだし。

それはそうと13日にスレッドリッパー発売ですね。
金がないから買えないけど1ファンとして楽しみにしてます。
0459310
垢版 |
2018/08/09(木) 22:24:55.93ID:86sArqqe
最近はボーっとしながらひたすら棋譜作成です。
そろそろハイクラスPCを買って、完全に放置プレーしようかと思っていたりします。
DCNNに対する興味はすっかり薄れてしまいました。

しばらくはゆっくりしたいですね。
0460535
垢版 |
2018/08/15(水) 22:34:00.44ID:BoOe3LxW
NVIDIAからグラボの新作がでるとか。
それを機にPC新調してこのスレに復帰するか…
0461535
垢版 |
2018/08/25(土) 20:51:29.15ID:rZw/NWPD
メインマシン復活させようと思ってたぶん壊れたのHDDだと予想して
新しいHDD買ってきて動かしてみたけどはずれだった見たいorz
あんまハードウェアのトラブルシュートの経験ないんだよなぁ
0462名前は開発中のものです。
垢版 |
2018/08/26(日) 10:48:28.72ID:FqCSlXSS
とりあえず外付の光学ドライブからlinuxの何か適当なデストリで起動させてみるべきでしょ
0463535
垢版 |
2018/08/27(月) 00:06:58.09ID:JrsDI1JE
お、レス付いてる。
ありがとうございます。
しかし、BIOSの画面すら立ち上がらない状態なのでどうしたものか…
0464310
垢版 |
2018/08/27(月) 09:30:35.26ID:QOs+gZK+
PC新調するとか言って、またプログラムいじってます。
もうやる事はないだろうとか思っても、なんか出てくるんですよね。
0465310
垢版 |
2018/08/27(月) 09:34:46.66ID:QOs+gZK+
BIOS上がらないんだとすると、保証期間があるうちに
販売店に持ち込んでチェックしてもらった方が良いかと思う。

ハード障害の切り分けとかスキルとしては面白いけど、今の本題じゃないし。
0466535
垢版 |
2018/08/27(月) 21:13:56.92ID:JrsDI1JE
うーん。もう保証書とかどっかいっちゃってますねorz
まあ、やはりここはしばらくお休みをいただいて
Geforce 2080のレビューが出るのをまって
よさそうだったらPC新調してそれから復帰します。

Geforce人工知能系も強化されてるとのうわさもありますし。
0467535
垢版 |
2018/09/18(火) 20:53:46.52ID:vzQA+msr
Geforceの発売が迫ってますね。
性能もいいけど値段もいい値段するとかって話で悩ましいですね。
しばらく様子見か。
0468535
垢版 |
2018/09/21(金) 21:09:54.51ID:2dO4A596
新Geforce、とりあえずpytorchが対応するのかどうか、
対応したとしてどれくらい性能上がるかみきわめてからですかね?
仮に大金だして買うとしても。
0469310
垢版 |
2018/10/02(火) 09:01:31.04ID:Rgg2Um0o
ご無沙汰です。

地味に棋譜作成を続けていますが、そろそろ色々と重くなってきたので、
裏で新バージョンを作り始めています。探索に関係ないところは、色々
整理して結構軽くなった(と思う)のですが、探索部分の速度が大幅に
低下してしまって悩み中。

現バージョンとまったく同じ条件で比較したところ中盤探索で3倍弱は遅い。
比較してないけど終盤探索は下手すると10倍近く遅い感じ。

中身はほぼ一緒なので、何が原因で遅くなっているのか不明。
コンパイルオプションなんかは一緒。共通で使用しているclassのどこかに
原因が潜んでいそうなんだけど、違いが見当たらない…
0470310
垢版 |
2018/10/02(火) 23:18:16.56ID:odJoEjbT
まさかまさかの__vectorcallが原因だった。
全部取っ払ったら中盤探索については逆に速度30%アップ。

変な事考えないでコンパイラに任せましょうというお話でした。
0471310
垢版 |
2018/10/10(水) 09:51:58.44ID:+G+W4fz+
28コア56スレッド…
18コア36スレッドが安くなるかなぁ。

棋譜作成を新バージョンに乗り換えました。

全体的に速くなる修正については、10〜20%程度なので効果不明。
あと特定の条件で遅くなる原因を見つけて地味に潰しています。
後者については、一つ原因わかっていて直しようが無いものが。

並列処理にPPL使っているのですが、parallel_forではせっかく並び替えしても
ランダムに処理が走ってしまう事。ybwcなのでPVを最初に実行する事は保証され
ているのですが、PVが間違っていた時に、parallel_for内部で2番目の順位の
スレッドがいつキックされるのかわからないどころか、最悪一番最後の可能性も
ある点です。null window searchでβカットに強く依存しているので、ここは非常に
困ります。

解決策1)parallel_forの改良版を自分で書く
解決策2)スレッド数の多いPCに乗り換えて、この問題が起きる確率を下げる

どうしよう(汗
0472535
垢版 |
2018/10/12(金) 21:02:40.65ID:ji0aAVVe
9900Kも結構面白いかも?
結局新PC購入に踏み切れてないけど、
来るべきその日のためにGithub漁るところから再スタートしようかなぁ
0473310
垢版 |
2018/10/12(金) 23:00:16.66ID:CTNeLPXP
結局あきらめて解決策3)初段のみYBWCのお兄さんを2人にして様子を見てます。

forwardのロジック(最善手の手順で着手可能な手を展開)を全面改訂。
今まで降りていく手を、BitboardのLSBに近い方から1つだけ選択してましたが、
これによって局面の偏りが生じていたようなので、全て展開するようにしました。
棋譜の増殖が凄い事になっちゃうんだけど、仕方ありません。

同じ仕掛けでbackwardも書き直し。

Eigenの並列化、リソースモニタ見ても2コアしか使っていない感じ。4コア使う指定
しているのに。謎。

その他、並列化できるところは並列化を検討。

やっぱPC欲しい…12コアくらいでも良いかという気がしてきた。
0474310
垢版 |
2018/10/14(日) 23:06:48.18ID:Z3+yTgkQ
局面の偏りが結構酷い事になっていました。

新しいforwardでは反復深化の評価値を表示するようにしたのですが、探索が進む
ほどに0になっていきます。そこで盤面のパターンが一回も出てこないケース(0値)
を調べたところ、後ろの方が大量に…。前回書いたLSB問題の影響がかなり大きい
という事です。

というわけで、棋譜作成の時には、少なくとも複数選択しあるときにはランダムに
選択するように変更し、既存の棋譜については、仕方がないので後ろの方をランダム
を導入した仕組みで再探索したものを追加していく事にしました。

1件1秒程度でできるので、折に触れてランダム化していこうと思います。
全部展開すると件数が大変な事になるので、様子を見ながらこの辺でお茶を濁して
みようと思います。
0475名前は開発中のものです。
垢版 |
2018/10/18(木) 01:59:08.41ID:VXZ7Gx+W
ずっと昔にオセロを作っていた者です。
久しぶりに再燃したので熱があるうちに…
50万棋譜計画のバグっている棋譜、被っている棋譜を消去して、22マス空きからの読み切り訂正をやってます
プログラムを3つほど立ち上げて一日9万局…めどは一ヶ月ぐらい
最近寒くなってきたのでちょうどいいかなとw

FFO45が32秒ぐらいで、まだまだトッププログラムには及びませんけど、
この棋譜訂正で大幅に縮まらないかと希望を持ちつつ進めてます
0476535
垢版 |
2018/10/20(土) 22:43:08.00ID:T970svPP
zen2まで待つのはさすがに待ちすぎかなぁ?w
とりあえずAQのコードに結構詳細なコメントが付いてることにいまさらながら気づいて
もう一度チャレンジしてみるかどうか迷ってるところ。
0477310
垢版 |
2018/10/21(日) 22:20:35.21ID:wV/AjJxk
>>475
はじめまして。新規参入嬉しいですね。

50万記譜計画の記譜は今はHPからダウンロードできないですね。懐かしい。

評価関数が正しくないと、探索時間かかりますからね。
自分は今は、自作の記譜を後ろから順番に訂正していってます。
が、やはりすごく時間がかかりまするorz
0478310
垢版 |
2018/10/21(日) 22:39:45.97ID:wV/AjJxk
先日、局面の偏りで反復深化で評価値がゼロになっていく件を書きましたが、
もっと大きな問題な気がしてきました。

マイナスの評価値になるはずの局面から、中盤探索を反復深化で深くしていく時、
途中で評価関数的に未知の局面に入って、評価値0を返すようになる事があります。
もともと期待される評価値はマイナスなので、評価値0のルートに乗り換えてしまい
ます。どうもこの様な現象が起きる事で、探索を間違える事がありそうです。

これから、デバッグ用のプログラム書いて、現象を確認してみようと思います。

もしかしたら、評価関数の初期値をゼロから始めるのが、良くないのかもしれません。
初期値を−1にすると、未知の局面は−66点(パターンの種類)になるし、1つ2つ
混入したくらいでは、評価値への影響も小さいのかなと思っています。

評価関数のゼロデータを−1にして動かしてみる方が早いかなぁ?
0479310
垢版 |
2018/10/22(月) 22:40:29.62ID:cyPX+oid
一応、ゼロデータをすべて−1に置き換えてみたところ、それなりな感じで、
頻度はだいぶ減りました。が、まだ時々おかしな時があります。

デバッグ用のプログラムが案外簡単にできたので、評価値の計算を確認して
みたところ、反復深化の計算のどこかにバグがありそうだという結論に…。
ただ、ほとんどのケースでは正しそうなんだなぁ。
0480310
垢版 |
2018/10/22(月) 22:53:50.11ID:cyPX+oid
ソース見てたら、一瞬で判明(汗
ほぼtypoの類でしたorz

これで探索少し早くなるかな?
0481310
垢版 |
2018/10/23(火) 01:08:22.60ID:rwBd0O0t
ウェイトのゼロデータを−1にしてみましたが、関係なさそうなので0に戻しました。
原理的にはマイナス評価値の問題は起きそうなのですが、評価値ゼロはあまり
発生していない感じです。


残り27手読み切りあたりから今のやり方では追い付かなくなって来ていますので、
MPCモドキの導入を考えています。MPCのスレッショルドの計算を真面目に
やると、それだけで日が暮れてしまいそうなので、あくまでモドキですが(汗

置換表から作り直しになるし、記譜作り直しで、まだ27手まで時間がたっぷりある
ので、1週間くらいじっくり考えてから始めようかと思います。
0482535
垢版 |
2018/10/28(日) 21:48:30.83ID:X2c31b1r
うう、やっぱPCに30万はおいそれと出せないorz orz orz
しかし、何もしないままでただ時間が過ぎていくほうが怖いような気もする。
0483535
垢版 |
2018/10/30(火) 23:21:10.12ID:pl1cfUhR
なんかRTXに不具合があるとか何とか
マジ?
もうしばらく様子見が正解か…
0484310
垢版 |
2018/11/01(木) 00:10:54.87ID:D90j6hyj
MPCですが、完全読み切りをIterative Wideningで速度アップするためのProbCutを
作ってます。とりあえずスレッショルド計算のところまでできました。線形近似と誤差の
標準偏差の計算ですが、以前はループでゴリゴリ計算してました。今回はEigen使って
行列で計算するようにしたら超簡単でびっくりするほど早くなりました。
結局、計算時間の大半は浅い探索になります。

で、結果を見れば見るほど、無理に計算しなくてよいのではないかと思えてきます(汗
誤差は1σ=4〜5程度の固定値。線形近似は、1次係数は1.0で0次の定数(バイアス)
を、深さが偶数で+1〜+2、奇数−1〜−2くらい。探索の深さを変えると、誤差は
減っていきますが、あまり頑張るとオーバーヘッドになります。

そもそもIterative Wideningでは、探索精度ではなく、徐々に探索対象を広める事で、
置換表の精度を上げていく事で高速化をしますので、アドホックな値でも良いのかなと。
誤差やバイアスは今の自分の評価関数での値ですが、気が向いた時に再度チェック
するくらいで良いのかなと思う次第。

というわけで、大幅に簡素化・定数化して、読み切り処理の方に移る事にしました。
0485535
垢版 |
2018/11/02(金) 23:35:29.24ID:1vnWpGba
9900K発売ですか。
かなり入手困難みたいですね。
0486535
垢版 |
2018/11/04(日) 21:31:50.64ID:AYd3OzR3
11/6にAMDからなにか発表があるとか
ZEN2くるかなー?
とりあえず今は待ちか。
0487535
垢版 |
2018/11/08(木) 22:14:39.88ID:l30eANOm
結局zen2は春ごろなんですかね?
いまはRyzen 2700xを買っていつでも乗り換えられる体勢を取るのが正解かなぁ?
0488310
垢版 |
2018/11/10(土) 22:53:18.40ID:MAqAiuT/
ぬぬぬ。

ProbCutのバグ取りに時間がかかりました。というか、なかなか高速化できません。
むしろ倍以上時間がかかってしまいます。

もっとひどい事に、今までのやり方のうち、比較的単純なやつが最も早い可能性が
高いという事に気が付いてしまいました…。下手すると40%くらい早いかも。
ProbCut比では3〜4倍速いという事です。

もともとProbCu自体は中盤探索で前方枝刈するための仕組みです。
これを読み切りしながら順次探索範囲を広げる事でソート順を修正する方向で
活用しようとしているのですが、下位のところを何度も読むオーバーヘッドがあり、
そこを置換表で高速化と考えていましたが、どこかがおかしい…。
そうこうするうちに、評価関数の精度が上がって、反復深化で十分実用になる
ソート順がセットできる事になった模様です。

まだバグの可能性は捨てきれませんが、一旦諦めようかな。
0489310
垢版 |
2018/11/15(木) 23:13:39.64ID:Gy98Zi+i
ProbCutは一旦放置して、地道にSolverの速度アップを始めました。

作り直した時に、末端ノードの処理を結構簡素化しちゃったので、やり直しです。
で、Zebraの初期バージョンのオーダリングを日本語で解説した資料を見つけて
色々とノウハウを得まして、Fastest Fastの処理を見直したり、その他色々やった
ところ、速度が倍になりました。

が、見たくない現実としては、まだZebraの当時のFFOテストより若干遅い感じです。
以前はFFO#20限定で0.3秒くらいまで行っていたのですが、まだ1〜2秒前後。
ちなみに、似たスペックのPCでの計測値が公表されているマスターオセロは、
更に10倍程度高速です。ぬぬぬ。

棋譜作って学習していくと、探索時間が地味に短くなっていくし、時にはオーダリング
の間違いが直ってジャンプするように特定の盤面で高速化する事がありますので、
まだまだ辛抱かなぁ。
0490名前は開発中のものです。
垢版 |
2018/11/17(土) 11:28:45.78ID:8gp5y6uH
なんとか棋譜訂正が終わりました
それだけだと終盤探索にあまり効き目はなかったようです…
これで終わりたくなくて色々見直したところ、なんとかFFO55が6000秒から2500秒切るレベルまで高速化されました
ただ問題があって、空きマスリストを用意していない影響で、空きマスが2つになるまでビット演算で着手番号を取得してるので、NPSがかなり低くなっています
ここを改善するだけでも20%ぐらいは高速化するのではないかと…今週はそのへんやってみようかと思います
0491名前は開発中のものです。
垢版 |
2018/11/17(土) 11:43:10.64ID:8gp5y6uH
テスト結果を載せます
ここから2倍ぐらいになれば、MasterReversiの背中が見えてくるレベル・・・まだまだです
YBWCとかやらないとなぁ

Microsoft Windows 10
Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
キャッシュサイズ256MB

FFO#40 ( Exact:(a2:+38) 1.19sec node: 12.33[Mn] nps:10323[Knps] )
FFO#41 ( Exact:(h4: +0) 2.99sec node: 35.31[Mn] nps:11825[Knps] )
FFO#42 ( Exact:(g2: +6) 2.86sec node: 39.98[Mn] nps:13961[Knps] )
FFO#43 ( Exact:(G3:-12) 2.49sec node: 25.47[Mn] nps:10236[Knps] )
FFO#44 ( Exact:(D2:-14) 4.08sec node: 40.86[Mn] nps:10006[Knps] )

FFO#45 ( Exact:(b2: +6) 29.92sec node: 449.45[Mn] nps:15022[Knps] )
FFO#46 ( Exact:(b3: -8) 7.48sec node: 87.43[Mn] nps:11687[Knps] )
FFO#47 ( Exact:(G2: +4) 3.71sec node: 49.65[Mn] nps:12851[Knps] )
FFO#48 ( Exact:(F6:+28) 18.78sec node: 216.42[Mn] nps:11523[Knps] )
FFO#49 ( Exact:(e1:+16) 53.12sec node: 655.97[Mn] nps:12350[Knps] )
FFO#50 ( Exact:(d8:+10) 141.11sec node: 1.39[Gn] nps: 9873[Knps] )

FFO#51 ( Exact:(E2:+6) 39.81sec node: 509.68[Mn] nps:12804[Knps] )
FFO#52 ( Exact:(a3:+0) 54.33sec node: 725.60[Mn] nps:13355[Knps] )
FFO#53 ( Exact:(d8:-2) 774.22sec node: 10.74[Gn] nps:13873[Knps] )
FFO#54 ( Exact:(c7:-2) 965.65sec node: 14.37[Gn] nps:14973[Knps] )
FFO#55 ( Exact:(G6:+0) 7124.95sec node: 105.41[Gn] nps:14794[Knps] )

FFO#56 ( Exact:(H5:+2) 244.72sec node: 3.22[Gn] nps:13475[Knps] )
FFO#57 ( Exact:(a6:-10) 926.60sec node: 11.06[Gn] nps:13352[Knps] )
FFO#58 ( Exact:(g1:+4) 551.11sec node: 8.16[Gn] nps:14803[Knps] )
FFO#59 ( Exact:(g8:+64) 0.94sec node: 5.28[Mn] nps: 5626[Knps] )
0492名前は開発中のものです。
垢版 |
2018/11/17(土) 11:45:17.49ID:8gp5y6uH
間違えて前のバージョンを載せてしまいましたw
今回はこちらです。比較になってちょうどよかったかも

FFO#40 ( Exact:(a2:+38) 1.29sec node: 10.63[Mn] nps: 8244[Knps] )
FFO#41 ( Exact:(h4: +0) 2.97sec node: 25.54[Mn] nps: 8599[Knps] )
FFO#42 ( Exact:(g2: +6) 2.24sec node: 20.58[Mn] nps: 9189[Knps] )
FFO#43 ( Exact:(C7:-12) 2.54sec node: 19.23[Mn] nps: 7572[Knps] )
FFO#44 ( Exact:(B8:-14) 4.32sec node: 32.07[Mn] nps: 7418[Knps] )

FFO#45 ( Exact:(b2: +6) 27.68sec node: 294.61[Mn] nps:10644[Knps] )
FFO#46 ( Exact:(b3: -8) 7.56sec node: 68.56[Mn] nps: 9070[Knps] )
FFO#47 ( Exact:(G2: +4) 3.25sec node: 36.70[Mn] nps:11293[Knps] )
FFO#48 ( Exact:(F6:+28) 21.11sec node: 195.99[Mn] nps: 9286[Knps] )
FFO#49 ( Exact:(e1:+16) 34.84sec node: 346.90[Mn] nps: 9958[Knps] )
FFO#50 ( Exact:(d8:+10) 108.94sec node: 960.91[Mn] nps: 8820[Knps] )

FFO#51 ( Exact:(E2:+6) 36.21sec node: 378.54[Mn] nps:10453[Knps] )
FFO#52 ( Exact:(a3:+0) 63.95sec node: 730.82[Mn] nps:11429[Knps] )
FFO#53 ( Exact:(d8:-2) 545.77sec node: 6.17[Gn] nps:11304[Knps] )
FFO#54 ( Exact:(c7:-2) 626.09sec node: 7.42[Gn] nps:11848[Knps] )
FFO#55 ( Exact:(G6:+0) 2492.74sec node: 31.10[Gn] nps:12475[Knps] )

FFO#56 ( Exact:(H5:+2) 212.26sec node: 2.52[Gn] nps:11894[Knps] )
FFO#57 ( Exact:(a6:-10) 520.85sec node: 6.35[Gn] nps:12183[Knps] )
FFO#58 ( Exact:(g1:+4) 588.80sec node: 8.54[Gn] nps:14512[Knps] )
FFO#59 ( Exact:(g8:+64) 1.88sec node: 8.86[Mn] nps: 4722[Knps] )
0494535
垢版 |
2018/11/17(土) 17:38:57.27ID:s4ulT91Q
なんか買っただけで満足してしまっている自分がいるwww
0495名前は開発中のものです。
垢版 |
2018/11/17(土) 18:39:02.10ID:8gp5y6uH
空きマスリストを作る方式でやってみたのですがビット演算のほうが5%速かったみたいです
こうなるとオーダリングのコストを下げるしか無くなってきました
0497535
垢版 |
2018/11/17(土) 19:32:43.11ID:s4ulT91Q
>>496
せっかくなのでなにか&#865;コテ名乗ってくれませんか?
まあ無理強いはしませんが。
0498535
垢版 |
2018/11/17(土) 20:03:37.36ID:s4ulT91Q
シネベンチマルチ1705CB
うーん、壊れる前のマシンの倍くらいにはなってるんですかね?
0499535
垢版 |
2018/11/17(土) 20:20:24.98ID:s4ulT91Q
さて本題のAI開発は何から始めようか?w
差しあたっての目標はAQをwindowsでビルドかな
0500535
垢版 |
2018/11/17(土) 22:39:28.71ID:s4ulT91Q
>>491
よくみたらキャッシュ256MBってどうゆうこっちゃw
0501535
垢版 |
2018/11/18(日) 00:16:59.82ID:rI0UFOUu
windowsでビルドするの結構難しそう。

気分転換にAQのあらかじめexeになってるものを落として動かしてみたら割とサクサク動く。
そして当たり前だけど強い。

これは期待が高まるw
0502310
垢版 |
2018/11/18(日) 01:01:51.11ID:CiNHjYBr
おお。大体僕の倍くらいの速度ですね。
なお、気が短いし、記譜訂正が26手目くらいまでしかできていないので、
今は#40-#44の5つしか計測していません。昔から#41がピンポイントで遅い。

空きマスのビット演算、ちょうどやったところです。
mobility使わずに、flip関数がゼロだと着手不能ってパターンです。
静的オーダリングを使っていますが、角優先×最後って事で。
パターン配列作ってループ回してAND版と、先に空きマスをpextで並び替えて、
テーブル引いて元に戻して着手する版と2種類トライしまいしたが、速度差は
誤差としか言いようが無いレベルでしたorz
元に戻す演算を思いついたらまたトライする予定。

本日はProbCutを再トライ。今度はちゃんと高速化しているようです。
スレッショルド1.0σで反復無しで、その結果を用いてアスピレーションウィンドウ
サーチして、少し高速化できたかなぁと言う感じ。

ただ、投機的に高速化しているので、FFOで比較しても、苦手盤面がありそうです。
棋譜が揃って来たら投機のヒット率が上がると信じて、しばらく使ってみます。
0503310
垢版 |
2018/11/18(日) 01:13:00.25ID:CiNHjYBr
535さんニューマシンおめ!

自分はSurface3で、i7-4650Uの1.7GHz(2.29GHz)×4です。
キャッシュとかどこで見れるのかなぁ。
0504310
垢版 |
2018/11/18(日) 01:19:18.37ID:CiNHjYBr
ちなみに、偶数理論は何度かトライしていますが、速度低下してしまうので
使えずにいます。

ZebraはUndo方式で空きマスリストを常時更新しているようです。
僕はCopy方式で、末端の該当ノードで空きマスリストを作ろうとしているので
すが、なかなかうまくできません。

過去にpaint処理みたいな方法で完全な空きマスリストを作成しましたが、
当然オーバーヘッドが大きくて使い物になりませんでした。

最近は「どうせ4隅でしょ?」という事で、盤面を4分割して空きマス計算して
いますが、それでも遅い。

「どうせ4隅」が良くないのか、偶数理論の理解が間違っているのか…
0505535
垢版 |
2018/11/18(日) 17:01:14.00ID:rI0UFOUu
高負荷時のファンが意外とうるさいorz
熱風もなかなかorz
あんまり連続実行しないほうがいいのかもorz
0506535
垢版 |
2018/11/18(日) 17:56:00.38ID:rI0UFOUu
なんかクロームがメモリ1GBとか使ってるんだがこれで平常運転なのか?
メモリに余裕あるからってなめすぎじゃね?
0507495
垢版 |
2018/11/18(日) 18:39:39.38ID:w1KaGZJD
>>497
なるほど、では495ということで…
あとキッシュサイズは置換表のサイズです
0508535
垢版 |
2018/11/18(日) 18:55:52.33ID:rI0UFOUu
>>507
コテありがとうございます。よろしくお願いします。
CPUのキャッシュかと思ってビビりましたw。
0509535
垢版 |
2018/11/18(日) 19:17:18.42ID:rI0UFOUu
AQのビルド、linuxだとBAZELで、windowsだとCMakeでって書いてあるんだけど、
CMake用の入力ファイルが見当たらないorz
windowsもBAZELでやるんだろうか?そこからわからんorz
0510535
垢版 |
2018/11/20(火) 20:47:23.74ID:sCHL0ufM
いかん、投資に見合った成果を挙げねばww
とは思うが腰が重いorz
0511535
垢版 |
2018/11/21(水) 22:15:48.48ID:YJjwR4VH
windowsは一旦保留にしてLinuxに走るのが正解だろうか?
0512535
垢版 |
2018/11/22(木) 23:20:13.56ID:ak7z/rHD
ネイティブリナックスをデュアルブートにするかVMWareでいくか。
なんかwindows10とlinuxのデュアルブートは罠があるらしくちょっと怖い。
0513535
垢版 |
2018/11/23(金) 15:43:50.93ID:uREb6qVe
うーん、やっぱAQ無理かもorz.
もっと簡単そうなのに逃げるべきだろうか?
とほほ
0514名前は開発中のものです。
垢版 |
2018/11/24(土) 05:53:44.23ID:quW8CQIk
同一HDD 内で、Windows10・Linux のデュアルブートは、素人では元に戻せない。
だから、日経Linux では、仮想OS を使うように書いてある。
Virtual Box が多いかな

Ruby できるなら、Vagrant, Chef から使うのもよい

漏れは、WSL・Ubuntu16.04 を使っている。
ただし、WSL はGUI なし。コマンドのみ

開発用だから、本番では使えないし、Docker なども使えないけど、
WSLは単なるアプリだから、遊ぶには気楽
0515535
垢版 |
2018/11/24(土) 20:30:54.02ID:CNsuI7eC
うーん、今後の方向性が定まらないorz.
最終的にはwindowsでやりたいからそこも悩みどころ。
0516名前は開発中のものです。
垢版 |
2018/11/24(土) 23:59:56.87ID:MjnwrHjN
ボードゲームスレだよな?なんの話してんの?
0517310
垢版 |
2018/11/25(日) 09:01:51.50ID:Mml0PIJf
Iterative Widening何とかできた。平均的に高速化できていると思う。

FFOについては相変わらず>>495さんと比較して速度は半分くらいかな。

一方で記譜作成的には倍速になったイメージ。細かく4σまでWideningして
いる事で、仮探索の誤答が減った事が効いています。

 仮探索で増える時間
   > 仮探索が正解した時に減る時間 + 誤答した時に増える時間

Iterative Wideningで、仮探索時間の削減と正答率の向上の両方が実現できた
感じです。この辺、課題盤面との相性がある話なので、統計的に計ろうとすると
かなり面倒です。というか、統計的に計るためには、前提となる評価関数をロック
しなきゃなりませんが、現在記譜作成しながら評価関数学習させてますので、
前提が常に動いてしまいます。

現在オーバーヘッドが嫌で、ノード数をとっていません。並列化するとロック
の待ち時間で数%〜10%くらい速度が落ちちゃうからです。ノード数をとれば
純粋な速度比較がしやすいのですが、悩みどころです。
0518535
垢版 |
2018/11/25(日) 22:15:31.15ID:MnTu6mxc
なんも進展がないのでとりあえず昔作った19路囲連星AIをビルドする環境を新マシンに構築しました。
リハビリの意味でもしばらくこれいじってようかな。
0519名前は開発中のものです。
垢版 |
2018/11/26(月) 11:23:16.87ID:3TlDlboD
オンラインボードゲームって作れば流行ると思うんだけど、誰もやらないってことはサーバの維持費の方が高くなるんかね?
0521535
垢版 |
2018/11/26(月) 22:59:02.56ID:PdBnQCC1
気持ちだけ焦るけど、何も進まないというorz
とりあえず、結果だけ求めるのは謹んで、
地道に愚直にディープラーニングの勉強するのが正解だろうか?
0522310
垢版 |
2018/11/27(火) 09:45:52.43ID:IL6H1udh
自分の場合、プログラムいじるネタが欲しくて、ヘウレーカ!って感じを味わいたくて、
続けているだけだからなぁ(汗

目標でかすぎるとか、期限切りすぎると、焦って嫌になるだけだよ。

オセロなんて、既にやってる人ほとんどいないから、ちょうど良いのだw
今の目標は、60歳になるまで続ける事w
0523535
垢版 |
2018/11/27(火) 18:36:07.13ID:oxbu/SRL
そうですね
結局自分のペースで一歩一歩進んでいくしかないですよね
ありがとうございます
0524535
垢版 |
2018/11/27(火) 20:02:14.21ID:DriHkSnO
これからどうしようかなぁ。
以前、途中までうまくいきかけた9路囲連星を移植したalpha zero クローンのコードを読み解くのやってみようかなぁ。
それとももっと本とか読んで理論の基礎から固めていくべきだろうか。
0525名前は開発中のものです。
垢版 |
2018/11/27(火) 21:15:20.03ID:8ndts6Rn
loser_sのブログ読んだけど、重大発表やばすぎだろ
0526535
垢版 |
2018/11/28(水) 22:14:06.77ID:h+t1ldhF
VMWareのubuntuで9路囲連星のalphazeroクローン動かしてみたらなんかメモリリークする。
前のマシンではメモリリークなかったのに?
OSとかpython とかCUDAのバージョンが変わったせいだろうか?
うーん、解決する気力がいまいち湧いてこないorz
0527535
垢版 |
2018/11/28(水) 22:31:22.70ID:h+t1ldhF
やっぱ出来ればwindows & C++ で行きたいなぁ。
うーん。
0528535
垢版 |
2018/11/28(水) 22:44:28.01ID:h+t1ldhF
悶々としつつ19路囲連星AIでLV3と対戦させたら素晴らしい勝ち方した。
(;SZ[19]
;B[jj];W[ji];B[ii];W[hi];B[ih];W[ik];B[ki];W[jl]
;B[hh];W[ij];B[jh];W[lh];B[gg];W[ff];B[fg];W[gi]
;B[kg];W[eg];B[lg];W[hg];B[hf];W[jg];B[jf];W[km]
;B[ig];W[hj];B[fh];W[ln];B[mo];W[lj];B[hg];W[mj]
;B[jg])
自然な流れからのダブル必勝形。
こういうのがたまにあるから止められないんだよなぁ。
0529535
垢版 |
2018/11/29(木) 20:09:22.49ID:vNqglcEX
ふーむ。ダブル必勝形で勝負ありかと思ったら白にも粘り筋があって意外と奥が深い。
でも正しく打てばたぶん黒の勝ち。
0530535
垢版 |
2018/11/30(金) 20:09:22.21ID:QHRZJCgT
やっとこさ週末か。でもどうせ進まない予感orz
せめてなにかこれだという方針が定まらないと。

焦っちゃダメと頭では分かっていてもついww
0531535
垢版 |
2018/11/30(金) 20:59:59.07ID:QHRZJCgT
理想を言えばwindows & C++ & reinforcement learning
その線で探ってみるか
0532535
垢版 |
2018/12/01(土) 19:46:42.48ID:1G6ID0fa
まだまだ方向が定まらないけど、来るべき時のために今のうちに棋譜集めを始めるべきだろうか?
無駄になるかもしれないけど、何もしないよりはいいよね?
0533535
垢版 |
2018/12/01(土) 20:48:59.14ID:1G6ID0fa
16プロセス並列棋譜取り
なかなか圧巻ですな

ファンがうるさいけど
0534535
垢版 |
2018/12/01(土) 23:10:46.72ID:1G6ID0fa
全コア使い切っちゃうとほかの作業がしづらいorz
開発用と計算ぶん回す用で2台欲しいwww
ありえないけど。
0535310
垢版 |
2018/12/02(日) 10:27:19.04ID:YQiXDU8o
使用コア数制限するパラメータないの?

自分のは並列化処理に使用コア数カウンタ入れて、同時並列数を制限している。
もっとも常に4コアで4多重マックスで動かしているけどorz。16コアなら1つくらい
他のプロセスに空けても、あんま速度低下なさそうでうらやましい。


今現在は記譜作成がメインなので、気が向かない時もほっとけば棋譜を訂正しながら
勝手に学習して、少しづつ速度アップしてくれている。気が向かない時に焦らずに済む
のでお勧め(^^;

一時速度アップに燃えていたけど、1勝9敗以上の比率で速度アップに失敗して(まあ
そんなもんなんだけど)、今は停滞期間中w
0536535
垢版 |
2018/12/02(日) 21:28:29.33ID:tVJh9ePf
>>535
その手がありましたねww
作業中は12プロセス位にしとくか

なにはなくとも棋譜取りだけはコツコツつづけます。
一日で多分3〜4000局くらい取れるはず。

ちなみに今これ見てるけど速攻挫折しそうorz
https://github.com/HerveFrezza-Buet/RLlib
0537535
垢版 |
2018/12/03(月) 20:43:08.98ID:M6xR0Sx+
一日回して4652局
思ったより取れてる。
0538535
垢版 |
2018/12/03(月) 23:14:26.77ID:M6xR0Sx+
平日まとまった時間が取れなくてもちょっとづつでも進んでいかないとねぇ。
まあ、棋譜取りしてるだけでもいくらか気がまぎれるけど。
100万局目指すか。
0539535
垢版 |
2018/12/08(土) 23:40:47.79ID:BUSkl7iI
RLlibやっとサンプルがコンパイルできた
ここまで長かった
つかリンクオプションで-lgslつけなきゃいけないとかずっぽり嵌ったわ
0540310
垢版 |
2018/12/09(日) 13:20:20.42ID:j5g2lrg3
まったりと記譜取りしてても仕方ないので、速度アップできないか色々あがいてました。

久々にプロファイラで確認したところflip関数が30%、mobility関数が8%ほどでした。
Edaxのソース見つけたので禁断の答え合わせ。flip関数は一つ昔のタイプなので、
恐らく自分の方が早い。mobilitiy関数は少し早そうなので、考え方を導入。でも誤差
範囲の効果しかなかった。

速度計測ルーチンを作って、並列単体速度比が1.2程度しか無い事が判明。
並列処理で排他待ちしそうなところに無駄がないかチェックしたところ、ほぼ全部無駄
だった事が判明(汗。無駄箇所を全て削除したけど、誤差範囲(汗

後方枝刈(ヒューリスティックスなオーダリング)が気になるので、ノード採取してみた。
やはり2割程度速度ダウンするので、プリプロセッサで普段は切り離す事に。

その他もろもろ誤差範囲の改良を積み上げた結果、なんとなく1〜2割は速度アップ
した気がしますが、並列処理の効率が悪いのと、後方枝刈の工夫が足りていないの
2か所が、これからの課題かなと思います。

あれ?なんか、ループしてmin-Max探索の高速化に目的が戻ってきている(笑)
0541535
垢版 |
2018/12/09(日) 15:16:13.02ID:jd/NSaBy
んあ?RLlibって強化学習のライブラリではあるけどalpha zeroとは直接関係ないのか?
全部無駄だった?
www
0543535
垢版 |
2018/12/09(日) 21:08:44.25ID:jd/NSaBy
g++ にfilesystemってヘッダがないorz
とりあえずいまVSインストールしてる
0544535
垢版 |
2018/12/09(日) 21:40:01.98ID:jd/NSaBy
動いたっぽい。
久しぶりに一歩進んだ気分。
0545535
垢版 |
2018/12/10(月) 22:15:43.67ID:wVpZGnnS
なんか非合法手を選んでしまうみたいなんだが?
うーんなんだろ?
0546535
垢版 |
2018/12/12(水) 22:24:55.51ID:eFK7VQKv
他人のコードに頼るのやめて自力実装に走るべきだろうか?
他人のコードってなによりいまいち情熱が湧いてこない。

でも他人のコードも読めるようにならないと先はないんだろうなぁ。
我流じゃすぐ限界迎えそう。

悩ましい。
0547535
垢版 |
2018/12/14(金) 00:02:46.12ID:52LN5bpq
まただよ(再起動)
windows10でも変わらずか…
0548535
垢版 |
2018/12/14(金) 22:52:23.39ID:52LN5bpq
コーディングは進まないけど棋譜だけは溜まっていきます。
今、LV3 vs LV3の棋譜が61950局分溜まってます。
ファンがうるさいから夜中は回してないから日中だけなのにこのペース。
8コアはさすがといったところか。
アルファ碁Leeが16万局分の棋譜を使ったらしいからとりあえずその辺目指すか。
0549310
垢版 |
2018/12/18(火) 00:10:23.05ID:4TPQUuZQ
FFOテスト(#40−#49)、色々誤差範囲の改良を加えてじわじわスピードアップ
していたけど、ある日突然20%くらい悪化。元に戻せるところは戻したけど、
結局ダメで、裏で評価関数の学習し続けた結果、途中経過でたまたま探索が
悪化するところにはまってしまったと言う事かなぁと。

実際、悪化しているの#49だけで他は改善していたし、学習都度表示している
FFO問題の8手読みの次の一手の合否が、14/20から11/20に悪化している。

こういうのあると、速度アップで何を信じて良いのかわからなくなるよね…
0550310
垢版 |
2018/12/18(火) 00:14:29.31ID:4TPQUuZQ
という問題もありながら、ノード数表示して、>>492さんの結果と比較すると、
ノード数に圧倒的な差が。NPSは速いけど、それ以上にノード数が多い。
枝刈の差というにはあまりに大きな差で、一桁近い差です。

これ、Iterativeな手法で生じる置換表探索の差じゃないかと思う。
自分のは置換表の動作が遅いので、あまり深い探索まで置換表を適用できず、
読切において後ろの方は置換表が無い(そもそも使用していない)事で、何度も
再探索しているからかなと。

concurrent_unordered_mapを使っているけど、自前でハッシュDB作った方が
良いかもと思い始めた。そこで速度アップすると、置換表適用深度を深くできる。

こういう時、自前で作る人はチェーンハッシュ使っているのかな?
0551535
垢版 |
2018/12/18(火) 23:29:10.84ID:N5ttC8SJ
昔自前でハッシュ作ったことありますが素朴な実装だとさほど性能出なかった記憶がありますね。
自分の場合STLでいいじゃんみたいな結果でした。
テーブルのサイズをでかくすると意外と巡回が遅くなるみたいな。
0552535
垢版 |
2018/12/19(水) 21:16:40.83ID:REA/9P4B
スマホでconnect4のパーフェクトソルバーをちょくちょく遊んでるのですが
パターンをかなり覚えて7割くらい勝てるようになりました
囲碁とかも真の棋理が明らかになった方が
逆に人間がコンピュータに勝てるようになるかもしれませんね
0553310
垢版 |
2018/12/19(水) 22:48:18.33ID:T2sH1fj1
ハッシュの構想し始めましたが、確かに自分が作って早くなる保証はないですね。
インターフェースを既存のstlに合わせようとか思って調べ始めたら面倒になりました。

で、色々見ていたら、そのまんま効率化できそうな使い方を見つけた。
有れば読み込んで更新、無ければ追加の方法です。

あとバケットサイズとか個数とか、その辺を調べていった方が早くなるかも。

並列処理だとtry_emplaceが使えないのね。これが使えたらきっと早くなるのに。
0554535
垢版 |
2018/12/20(木) 23:32:19.98ID:zB5frbtZ
また再起動してる。。。
まあいいけど、もう諦めぎみ。

なんか仕事が急に忙しくなってますますコーディングから遠ざかってますが、
棋譜だけは地味に溜まってます。今82889局分溜まってます。

並列化ハッシュってどんななんですかね。そういえば知らない。
0555310
垢版 |
2018/12/21(金) 00:04:37.10ID:kvniGc89
いや。まぁ。バケットか中のレコードか、どちらかの単位で排他かけるだけです。
Hash関数がきちんとばらけさせてくれたら、基本的にあんまり排他で捕まる事は
無いので、それほど気にしなくてもパフォーマンスに影響ないかなぁと。実際に
concurrent_unordered_mapの配列用意して、適当にハッシュでばらけさせて格納
してみたら(つまり、同じmapじゃなければ排他はおきない)、排他で遅くなっている
訳ではない事が確認できています。

と言いながら、iteratorとか考えだすと、何を並列セーフにして、何をアンセーフに
するかみたいな事で悩んじゃいます。

先日の続きでmax_load_factorとかbacketサイズとかいじってみましたが、
パフォーマンスにほとんど影響がないです。というか、どうせ後で逐次的に拡張する
くらいならと、backetサイズを増やしても性能は上がらないし、max_load_factorを
増やしても、性能が落ちるだけだったり…。

棋譜作成だけなら並列化レベルをもう1段上げて、4記譜同時作成とかすれば、
個々の読み切りはシングルスレッドに下げられて、ただのunordered_mapが使えるし
その方が棋譜作成的には速度アップしそうな気がしてきた(汗

FFO的には別処理になるけど。
0556535
垢版 |
2018/12/22(土) 00:08:33.74ID:w0ekMTPt
採りためた棋譜をもとに序盤DBを更新してみましたが、
確かにうち筋は変わってる気がしますが強くなってるかはよくわからないというorz
まあ序盤DBは誤魔化しみたいなものだから期待しすぎもよくないか。
0557535
垢版 |
2018/12/22(土) 00:42:25.73ID:w0ekMTPt
序盤DB更新で強くなってるか統計とってみたいけどモンテカルロが遅すぎてそれもままならないというorz
やはりモンテカルロに代わる何かを実装しなければ…
0558535
垢版 |
2018/12/26(水) 00:12:59.86ID:2Tvqp++w
棋譜USBメモリにコピーしたらめっちゃ時間かかるorz
130MBくらいなのにUSBメモリってやっぱ遅いんだな。
0559310
垢版 |
2018/12/26(水) 00:20:29.39ID:Rkthqh0l
4記譜並列作成実装してみました。ただいま本番状態でテスト中。
並列処理の基本は、なるべく上位の層で並列化すべしでした。

現状、並列探索の速度は、シングル探索の2倍程度です。
1つ1つの探索には時間が2倍かかるけど、4つ並列なので、トータルでは
半分の時間で処理できるので、実質2倍みたいな。

探索中のオーバーヘッドはほぼ無いはずで、待ち合わせロスくらいなので、
大量に一気に処理する分には、ほぼ無視できるかなと。

これやると、スレッドの数がモロに効いてくるんで…48並列くらいできたら…
0560535
垢版 |
2018/12/26(水) 00:30:44.15ID:2Tvqp++w
310さんはintel派なんでしたっけ?
AMDでもzen2はかなりコスパいいものが来ると思いますが…
0561535
垢版 |
2018/12/26(水) 00:40:17.50ID:2Tvqp++w
試しにSSDに棋譜コピーしてみたらかなり速いw
やっぱそうなのか。
0562310
垢版 |
2018/12/26(水) 03:07:45.74ID:Rkthqh0l
あれれ。思ったほど速度が出ない…というか、単体の速度が半分どころか、
1/4くらいになっているイメージ…。深さが深いものほど遅いという事は、
置換表周りかなぁ。

棋譜作成する対象によって速度が結構変わるので、評価しづらい。

メモリー配置等の問題も考えないといかんような気がしてきた。

いかん。夜も更けていく…。

>>561
なんか、フラッシュメモリー自体は書き込みが遅くて、SSDだとその辺を並列
化とかキャッシュとかで回避しているらしいです。USBメモリーは、その辺真面目
にやっているもの(高価)と、そうじゃないもの(安価)で差があるけど、それでも
SSDには敵わないとか。
0563535
垢版 |
2018/12/26(水) 21:06:48.31ID:2Tvqp++w
明日か明後日あたりで棋譜10万局分溜まりそう
深層学習のプログラム、組みたいなぁ
でも難しいんだよなぁ
0564310
垢版 |
2018/12/27(木) 00:00:43.02ID:APLuuq5f
悩ましい。

シングルmin-Maxの並列動作と、パラレルmin-Maxのシングル動作。
どうも速度的には大差ない感じ。
2倍くらい速度出ると思ったのに…。

スレッド数が増えたら差が出てくるのかなぁ。
0565535
垢版 |
2018/12/27(木) 20:54:08.52ID:gYB4tQZF
10万局いきました。
0566535
垢版 |
2018/12/27(木) 21:18:27.23ID:gYB4tQZF
多分俺が世界で一番囲連星LV3の計算を回した人だろうなw
0567310
垢版 |
2018/12/27(木) 22:00:15.50ID:APLuuq5f
色々あがいた挙句、そこそこ時間がかかる26手空きを、それぞれで解いてみた。

並列探索で6分。シングル単独動作で12分。シングル4並列動作で18分。
やはり、シングルも4並列する事でなにがしかのオーバーヘッドがあるようです。

単純計算だと並列探索6分を4個で24分に対して、シングル18分で4つ解ける
事から33%の速度アップが見込める事になるけど、体感そこまでの効果が感じ
られないというか、時間がかかる問題では更に差が大きくなっていて、そいつらに
足を引っ張られている印象。

そのうえで、裏でゴソゴソやりながら計算させる時に色々弊害があるので、
CPUの増強を決断するまで放置しようかと思います。

色々あがいた結果か、並列探索ですこーし速度アップした感じ。
10%行くかいかないか。
0568535
垢版 |
2018/12/27(木) 22:05:17.88ID:gYB4tQZF
よくわからんがハイパースレッディングって単純に性能2倍になるわけではないということではなくて?
0569310
垢版 |
2018/12/27(木) 23:06:53.59ID:APLuuq5f
もちろんそうなんだけど、排他待ちを要するデータも、待ち合わせロスも
無いので、もうちょっと性能出るんじゃないかと思っていたのです。


あと、うまく説明できないけど、ノード数が多い探索は、ノード数比以上に
時間がかかっている気がしています。まだ感覚の話ですが。
0570535
垢版 |
2018/12/28(金) 20:37:08.10ID:HWMCAOZD
LV3は強いんだけど詰み状態から詰みを逃してる棋譜が散見される。
直せるもんなら直したほうがいいんだろうけどかなり大変だろうな
0571310
垢版 |
2018/12/29(土) 09:40:46.33ID:hnomLa8j
んー。シングル並列動作で6時間かかっても解けずに諦めた盤面とを見つけて、
パラレルで解いたら1時間40分だった。空きマス26だと通常1分程度なんだけど、
時々こういう時間がかかる盤面がある。今までテストが面倒なので、10分以内に
終わりそうな奴でテストしていたけど、もしかしたら探索ノードが多い奴ほど、
シングル並列動作での速度低下が大きいのかも知れない。

時間がかかる奴ほど、シングル・パラレル比が悪化するなら、今考えている大体
3倍程度ってのは成り立たなくなって、もっと悪い事になる。それなら感覚的に
合致する。普通に流れている時には、シングル並列で高速化できそうな手ごたえ
があるんだけど、時間がかかる盤面が来ると急速に逼塞していって、なかなか
回復しないという感じ。

パフォーマンスモニタにらみながら、unordered_mapのメモリアロケーションの方法
を想像してみた。初期確保件数指定(倍々で自動追加される)してみたけど、溢れて
もいないのにダラダラとメモリー使用量が増えていく。もしかしたらOSにメモリーを
貰いに行く動作が排他待ちになっているのかも知れない。どうやって検証しよう。
やっぱ自前置換表作るしかないのかなぁ。
0572310
垢版 |
2019/01/01(火) 10:13:37.88ID:y24geaJt
あけおめです。

ヒープをダラダラと確保するのが気になったので、色々いじりました。

ordering用のvectorを、配列にしてスタックに。ついでにクラス化してメンテ性アップ。
少しだけ速度アップした気がする。

自前ハッシュテーブル型の置換表を作ってみた。
最初に大きく領域確保して、溢れた時以外領域確保しないようにした。
基本、余計な機能は実装していないので、処理は軽いはずなんだけど…
極ほんの少しだけ速度ダウンした感じ…

記譜作成はunordered_map版で実行しながら、改良をしてみたいと思います。
とはいえ、ソース的にはあんまり改良の余地がないんだよなぁ。

速度がそん色ないところまで行けたら、シングル版の並列での速度低下が
メモリー確保が原因か検証できるかなぁ。
0573310
垢版 |
2019/01/05(土) 09:07:42.68ID:KwyVlHZX
チェーン型でハッシュを組んでましたが、テーブルがあふれると結局ダラダラと
メモリー獲得し始めるので、オープンアドレス型に変更して、まとめて領域を追加
するようにしました。

この辺、もう趣味の世界ですね。
何をしても、速度は上がりも下がりもしない(汗

やっぱり探索ノードを減らす工夫が重要ですね。
0574535
垢版 |
2019/01/05(土) 21:26:02.72ID:TXR2vHHf
自己対戦のみで強くなるアルファゼロは理想ですが実装が難しそうなので
せっかく棋譜も集めてるので教師あり学習をやってみようかと思案中。
0575535
垢版 |
2019/01/06(日) 00:55:45.70ID:6f3tqt5A
とりあえず、棋譜データからmin-max探索して黒有利の局面か白有利の局面かの2択を学習させようかな。とか思ってます。
そろそろ寝るか。。。
0576535
垢版 |
2019/01/06(日) 02:33:16.90ID:6f3tqt5A
寝るタイミングを逸してしまったw
プログラミングってこれがあるから怖いよねw
0577535
垢版 |
2019/01/06(日) 02:46:46.55ID:6f3tqt5A
なんか100兆局くらい棋譜を集めると序盤DBだけでもかなり押せるんじゃないかなぁ。
そんな感じ。

いかん、寝なければww
0578名前は開発中のものです。
垢版 |
2019/01/06(日) 03:01:38.94ID:aGENq217
質の悪い棋譜ばかり100兆局集めてもあんまり強くならない気がするのですがどうなんでしょう
質のいい棋譜がそれだけ集まればいいですがそれはほぼ不可能ですし…
0579535
垢版 |
2019/01/06(日) 03:14:04.86ID:6f3tqt5A
そうはいってもLV3の棋力はかなり高い。
囲碁将棋でいえばアマチュア3段くらいには相当するはず。
0580535
垢版 |
2019/01/06(日) 03:18:59.57ID:6f3tqt5A
波があるからアマチュア3段は言い過ぎだったかなw
でもまあ強い時はかなり強い。
0581310
垢版 |
2019/01/06(日) 14:23:08.43ID:a93oWf/5
置換表一時調子が良かったのですが、修正加えたら崩壊。
なんとなく読み取りが変な感じなんだけど、どこがおかしいのか全くわからず。

>>578
棋譜たくさん集めて序盤DB作ったら、その序盤DBのMax手順以外の手について
は、分岐した以後の盤面だけで学習させると序盤の穴が埋まるというか、間違った
盤面でぼやっとした学習するの避けられるかも。

今、序盤についてはそのやり方で学習させてます。
0582535
垢版 |
2019/01/06(日) 20:12:44.73ID:6f3tqt5A
とりあえず、昔作ったTINY-DNNのプログラムを引っ張り出してきて学習プログラムを仮組したが絶望的に遅いorz
グラボ使えればちっとは違うんだろか?うーむ。
0583310
垢版 |
2019/01/06(日) 20:34:20.52ID:a93oWf/5
オープンアドレスうまく動くようになりました。
ここに愚痴ると、直後に原因がわかる罠w

この数日の葛藤は何だったんだ。
0584310
垢版 |
2019/01/06(日) 20:36:40.74ID:a93oWf/5
>>582
Tiny-DNNはGPU対応していないんじゃないかなぁ。
結局、DCNNはGPUで処理しないと無理っつー気がする。
0585535
垢版 |
2019/01/06(日) 20:44:29.63ID:6f3tqt5A
>>584
あ〜やっぱそうなんですかねぇ。
GPUも結構いいの買ったのでぜひ活用したいところではあります。
0586535
垢版 |
2019/01/06(日) 22:23:00.36ID:6f3tqt5A
明日は仕事なのでハマらないうちに切り上げようww
社会人として自制しなければwww
0587535
垢版 |
2019/01/07(月) 20:55:27.41ID:4rY/alBf
学習回しても損失が全く減らない。。。
そういやそんなのあったな。orz
0588535
垢版 |
2019/01/07(月) 23:12:38.14ID:4rY/alBf
なんかネットワーク初期化忘れてたみたいw
初期化したら損失減ったw

ちょっと希望が出てきた。
0589535
垢版 |
2019/01/08(火) 23:12:12.87ID:1omQC7Mg
損失減ることは減るんだけどホントにちょっとづつしか減っていかない。
ネットワークの形状が悪いんだろうか?学習率だろうか?
うーん、深みにはまりそうorz
0590310
垢版 |
2019/01/09(水) 20:33:25.82ID:9GUGdavc
学習の速度はオプティマイザに依存します。

普通のSGDだと、あちこちぐるぐる回ったり、平野トラップで立ち往生したり、
局所最適解から抜け出せなくなったり。また、SGDは学習率(α)を大きくすると、
簡単に発散しちゃったりしますので、学習率を低めにして1000回とか学習する
事になります。それでも上記の問題で、なかなか収束しなかったり、うまく学習
できなかったりします。

そういうものなのです。昔は、初期値(乱数設定しているはず)を変えてみたりして
トライ&エラーしてましたが、今なら別のオプティマイザ(RMSpropやADAM)を試す
べきかと思います。それでも数百回は学習を繰り返さないといけないと思います。


久々に検索したら結構種類が増えてた。
https://qiita.com/ZoneTsuyoshi/items/8ef6fa1e154d176e25b8
自分は線形回帰モデルですが、SMORMS3を使って効率化を図っています。
それでも、数百回学習しないと損失は落ち着いてきません。
0591310
垢版 |
2019/01/09(水) 22:31:13.85ID:9GUGdavc
置換表ですが、結局のところ、ハッシュのビット数を増やしてチェーン接続があまり
生じないようにし、メモリーをある程度のサイズでまとめて確保する、チェーン型
ハッシュに落ち着いています。

普段速度計測に使っているFFO#40-49ではconcurrent_unordered_map版より若干
遅いのです。が、どうも残り28手(現在はそのあたりをチェック中)では、自作チェーン
ハッシュの方が早いというか、ノード数が増えた時に速度低下が少ないように感じて
おり、現在は自作置換表を使っています。

とはいえ、29手や30手まで行った暁にはチェーン接続が多発し始めて速度低下が
始まると思われるので、対策を考えて行きたいと思います。28手が終わるまでまだ
一カ月くらいかかるので、幸か不幸か時間はたっぷりあります(--;

今のところチェーンの代わりに2分木を置いて、ハッシュが衝突したときの速度低下を
O(n)からO(log(2)n)にしてみようかと考えています。
0592535
垢版 |
2019/01/09(水) 23:20:11.40ID:ED/1LPLd
ふーむ。要素が少ない時はリストやツリーは遅く、配列が圧倒的に早いという認識でしたが。
0593535
垢版 |
2019/01/12(土) 00:34:20.08ID:I11IVt9R
あれ、序盤DBに棋譜を追加したら全然おかしな手を打つようになっちゃった。
棋譜がまずいのかな?
0594535
垢版 |
2019/01/12(土) 01:02:50.64ID:I11IVt9R
くそ〜強いAI(自我があるとかではないよ)作りてぇなぁ
0595535
垢版 |
2019/01/12(土) 01:39:38.14ID:I11IVt9R
三連休とはいえそろそろ寝なければな。
生活のリズム崩すのはいくない。
0596535
垢版 |
2019/01/12(土) 21:33:08.59ID:I11IVt9R
質にばらつきのある棋譜から良いデータを抽出する方法はあるのだろうか?
0597535
垢版 |
2019/01/12(土) 22:30:56.75ID:I11IVt9R
うーんせっかく3連休なのに捗らないな。
これだというアイディアが湧くまでこねくり回すしかないか。
0598535
垢版 |
2019/01/13(日) 22:01:49.93ID:vPz6niN1
結局アルファゼロという正解がある限りその呪縛から逃れるのはかなり難しいorz
うーん。
0599535
垢版 |
2019/01/14(月) 21:36:22.16ID:yfXkG3lc
やっぱグラボも活用したいなぁ。
でも難しいんだよなぁ。
とくにウィンドウズだと。
0600535
垢版 |
2019/01/16(水) 00:51:29.20ID:ecOlQUBV
昨日一日学習回して損失が初期値の2/3位になった。
この辺が限界かなぁ
それともぞうきんを絞るようにまだまだ損失減るんだろうか?
0601310
垢版 |
2019/01/18(金) 00:47:06.53ID:YI61Q9H1
NN系は学習してるんだかわからない時があるよね。
とことんまで回すと今度は過学習も怖くなってくるし。


こちらは、自作concurrent_mapクラスができました。
ハッシュキーは二分木で、ハッシュ値は64bit。
配列ハッシュキー版と同様に、削除もiteratorも無し。
すこーし速度があがったかなぁ程度。
衝突時の処理はチェーン式。流石に64bitだとキーの衝突が無い。

棋譜訂正は時間がかかるので、暇つぶしが必要な状態。
二分木を赤黒木に変えてみようかと思い始めています(汗。

本当はヒューリスティックスの改良の方が効果あるんだろうなぁ。
0602535
垢版 |
2019/01/18(金) 22:51:46.73ID:glnAkAuX
今週は残業がひどかったorz
でも土日は休める。
0603310
垢版 |
2019/01/19(土) 09:03:58.77ID:/dbSBJQm
赤黒木を検討してますが、これ並列処理だと木全体をロックしないと
いかんのではないかと…。置換表のように追加の頻度が高いケース
では、排他待ちでパフォーマンス出ないかも。

まあ、やってみるしかないけれど。
0604535
垢版 |
2019/01/19(土) 11:25:42.95ID:R+TIxYAB
赤黒木とかめっちゃむずかしいやつですやん。
さすがですな。
0605535
垢版 |
2019/01/19(土) 19:50:28.36ID:R+TIxYAB
ん、なんか学習したネットワークがすべてのデータに対して同じ結果を返してるっぽい?
0606535
垢版 |
2019/01/19(土) 19:58:01.80ID:R+TIxYAB
学習開始時のネットワークの重みの初期化をミスってるんだろうか
うーん。
0607535
垢版 |
2019/01/19(土) 20:54:13.90ID:R+TIxYAB
tiny-dnn以外のGPU使えるライブラリで重みだけ学習してアプリケーションからはtiny-dnnを使うというのもあるのだろうか
0608535
垢版 |
2019/01/20(日) 02:28:47.86ID:O7gh4nMQ
全く同じ結果ではなく微妙に違う結果を返してるのは確認できたけど。
単に学習量がたりてないのかなぁ。
0609535
垢版 |
2019/01/20(日) 15:00:24.16ID:O7gh4nMQ
やっぱり全く同じ結果返してる??
混乱してきたorz
0610535
垢版 |
2019/01/20(日) 15:40:18.18ID:O7gh4nMQ
層が多すぎたのが悪かったみたい?
層減らしたら違う値になった。
0611535
垢版 |
2019/01/20(日) 17:41:45.52ID:O7gh4nMQ
お、LV1に勝った!
まあDNNの学習の効果の勝利というよりも序盤DBと詰みルーチンの補助による勝ちなんだけどね。
でもとりあえず、それっぽく動くところまで来ました。
0612535
垢版 |
2019/01/20(日) 17:54:10.26ID:O7gh4nMQ
序盤DBが良すぎてDNNの真価がわからないから序盤DB外してみるか…
0613535
垢版 |
2019/01/20(日) 17:59:21.27ID:O7gh4nMQ
酷すぎwwww
でもランダムよりはマシに見える。
0614535
垢版 |
2019/01/20(日) 18:24:44.15ID:O7gh4nMQ
やっぱ序盤DBに頼るか…
こんなにプログラムが楽しいの久しぶりやな
0615535
垢版 |
2019/01/20(日) 20:01:09.83ID:O7gh4nMQ
たぶんだけどまだまだ棋譜増やしたほうがいい。
ていうかあればあるほどいいい。まだまだ良くなる。
可能なら100万局を目指したい。
0616310
垢版 |
2019/01/22(火) 00:34:53.58ID:9pySCUmT
赤黒木大体できたけど…ただの二分木よりほんの少し遅い…。

元々ハッシュでランダマイズしているから、二分木の末端ノードまでの深さは
綺麗な正規分布になっていて、赤黒木にしても木の最頻高さで3割程度しか
小さくならないという事で、ツリーを修正するオーバーヘッドが効いているのか、
それとも木全体でしか排他できないのが原因なのか。

もうちょっと調べてから諦めます。
0617535
垢版 |
2019/01/22(火) 22:52:21.02ID:jAP2hLDv
要素が100個未満ならぶっちゃけvectorでいいと思いますが。。。
0618535
垢版 |
2019/01/22(火) 23:02:42.33ID:jAP2hLDv
前も同じこと言ったような気がするけど、学習させるなら局面の勝率より次の一手のほうがいいのだろうか?
0619名前は開発中のものです。
垢版 |
2019/01/22(火) 23:17:25.29ID:LaaXTOn4
いまきたんですがここはどんなゲームを開発してるんですか
じぶんで開発したとして対戦相手=プログラムありますか
0620535
垢版 |
2019/01/22(火) 23:34:54.50ID:jAP2hLDv
>>619
とりあえず、落ち着いて。
過去ログから読んでください。
0621310
垢版 |
2019/01/23(水) 01:56:46.43ID:QHWWUXAJ
置換表に使ってるので要素数は現在残り28手で100万超える事もあります(汗
まあ、βカットの具合でだいぶ変わるので、学習進むと減るんですが。
最低でも残り30手まで行くつもりなので、1000万くらいは想定したいです。

次の一手ソート用の配列は、Array型にしています。32個確保すれば足ります。
こちらも比較したところ、明確に速度差がありました。この辺から、領域をチマチマ
確保されるオーバーヘッドが気になりだした次第です。

で、赤黒木ですが、実装が悪いのだと思いますが、現時点で2分木と比較して
およそ3倍時間がかかります。シングル動作でも同じくらいの差になるので、
排他待ちではなく、木のつなぎ替え処理の重さが原因かなと。置換表は追加が
の比率が大きいので、ポインタたどるロスは優位ではない感じ。

というわけで、赤黒木はちょっと放置。

というか、二分木もシングル動作は10倍くらい速い感じなので、今一度シングル
探索の並列化を試そうと思っています。
0622310
垢版 |
2019/01/23(水) 02:07:28.76ID:QHWWUXAJ
>>618
min-Max前提だと、探索値を求める際には勝率(点数)が必須で、
次の1手評価関数はオーダリングや前方枝刈向きではないですか?
探索深さ1なら次の1手で行けますが。

初代アルファ碁も、両方組み合わせていますが、次の1手評価関数で
手の優先順位をつける事で読み深さを実現した変則mctsで、最終的には
評価値で判断していますよね。
0623535
垢版 |
2019/01/23(水) 20:43:46.28ID:B65SvCza
ふーむ、勝率のほうが応用が利くってことですかね?
もうしばらく勝率で学習させてみます。
0624535
垢版 |
2019/01/23(水) 21:07:20.14ID:B65SvCza
ついネットワークを大きくしたくなっちゃうけど。
本当は小さいネットワークでエポック数を稼いだほうがいいのかもしれない。
0625535
垢版 |
2019/01/23(水) 21:28:27.72ID:B65SvCza
そういえば、対称局面も学習データとして使ったほうがいいんでしたっけ?
0626310
垢版 |
2019/01/24(木) 01:32:42.88ID:cGqmeFv+
囲連星は初期配置ないんでしょ?
だったら対象局面ありの方が良いと思う。

オセロは悩み中。
初手をF5固定にした時に、本当に対称局面が出てくるのかわからない。
対称局面が同じ重要性で生じないのであれば、評価値を希釈しちゃうだけ。
学習の時間も単純に倍々で増えるので、今はやっていない。

強いて言うなら、F5F6E6の次がF4とD6で斜め対称になるので、ここだけは
記譜作成時にはF4固定にして、D6の対称局面を作っている。
0627310
垢版 |
2019/01/24(木) 01:49:46.37ID:cGqmeFv+
置換表自作の件、目的を見失っている(汗
一旦リセットして、最初からやり直して、当初の目的に戻ろうと思うorz
0628578
垢版 |
2019/01/24(木) 01:53:14.72ID:mzMMzuaC
私は教師データの数が8倍になるのは大きいと思って対称局面も入れて学習させてます
とくにDeep Learningさせてると(ネットワークの規模にもよりますが)だいぶ過学習しなくなります
もっとも、Deep Learningするんだったら対称性を考慮したネットワークにしたほうがいいのかもしれないですが・・・
0629310
垢版 |
2019/01/24(木) 02:08:25.51ID:cGqmeFv+
着手できる場所の自由度が高いゲームは回転させるべきだと思う。
オセロは着手可能場所が限られるので、現れない局面が結構ありそう。

ちなみに、オセロは8倍じゃなくて4倍。初期配置が4対称だから。
囲連星は初手天元固定なのかな?
0630578
垢版 |
2019/01/24(木) 07:09:21.18ID:mzMMzuaC
>オセロは8倍じゃなくて4倍
たしかに棋譜で考えると4対称しか無いですね
今のところ、学習させるときには現局面しか渡してないので、
90度回転で一致する局面が存在するかもしれないから8倍で良いはず…
0631535
垢版 |
2019/01/24(木) 22:03:23.55ID:gSjgdU9w
うーん。今のやり方だとLV0やLV1とはいい勝負になるけどLV3には一生勝てないかも?
出来れば自己対戦による強化学習とか取り入れたいな〜

対称局面もやってみますね。
0632535
垢版 |
2019/01/24(木) 22:45:59.18ID:gSjgdU9w
なんか長時間計算回してると画面が真っ暗になってマウスやキーボード押しても復帰しないことがあるんだが?
スリープは解除してるはずなんだけどなんなんだろう?
0633535
垢版 |
2019/01/25(金) 23:18:39.41ID:gNQn5rdl
LV0ってやっぱ棋力低いな。
そんなLV0といい勝負の俺のAIもあれだけど。
やればやるほどLV3の完成度の高さが際立つ。
0634310
垢版 |
2019/01/26(土) 17:00:37.38ID:VyVaK4H+
自作置換表ですが、大体のところがまとまりました。
結局のところ、unordered_mapを作っていた形になります(汗

当初は領域の追加について、データ部分をまとめて追加する方向で改造し、
ハッシュ配列については22ビット固定で、高速化をしました。で、ハッシュ配列が
22ビット固定は芸がないと、二分木・赤黒木などを試しましたが、速度大幅低下。
要するに、unordered_mapにmapを組み合わせて、ハッシュのメリットを相殺して
しまっていたという事で。

最終的に、ハッシュ配列の追加方法をようやく思いつき、組んでみたところ、それが
そのままunordered_mapのrehashだと気が付きました(汗。その後、max_load_factor
などを追加して、unordered_mapと条件を揃えて速度比較となりました。

iteratorと削除が無い分だと思いますが、unordered_map、concurrent_unordered_map
に対して、それぞれシングル版、concurrent版とも若干高速になりました。

新たな課題は…stlも自作版も、どちらも並列に動かしたconcurrent版の方が遅いと
言う事です。もともとそういうものなのか…テスト方法が並列向けじゃないのか。
0635535
垢版 |
2019/01/26(土) 17:38:15.71ID:VGsbBdjp
8対称はメモリがやばいので4対称にします。
4対称で16GB位食ってる。
0636535
垢版 |
2019/01/26(土) 17:54:22.18ID:VGsbBdjp
思い切っていいPC買ったけどまだ足りないとかorzorzorz
ケチらず64GB積むべきだったか?
0637535
垢版 |
2019/01/26(土) 18:59:37.97ID:VGsbBdjp
1エポック4539秒
これは厳しいorzorzorz
GPUが使えれば…
0638535
垢版 |
2019/01/26(土) 19:45:15.05ID:VGsbBdjp
ん、1エポック目だけど損失がかなり少ない。。
対称局面を入力とすることで特徴量がよりはっきりしたということだろうか?
0639535
垢版 |
2019/01/26(土) 19:46:56.43ID:VGsbBdjp
ん、動きが断然よくなってる?
まだわからんが。
0640535
垢版 |
2019/01/26(土) 19:53:15.64ID:VGsbBdjp
対称局面学習以前はどちらかというとランダムに近かったが
対称局面学習以後はどちらかというと知性があるっぽく見える。
まだわからんが。
0641535
垢版 |
2019/01/26(土) 20:02:51.02ID:VGsbBdjp
これでエポックが進めばとんでもなく強くなる?
まだわからんが。
0642535
垢版 |
2019/01/26(土) 20:15:10.01ID:VGsbBdjp
マシンパワーが欲しい!
Googleに匹敵するマシンパワーが!
0643535
垢版 |
2019/01/26(土) 20:40:08.93ID:VGsbBdjp
まだLV3には遠く及ばないな。
でも希望が出てきた。
0644535
垢版 |
2019/01/26(土) 21:34:58.78ID:VGsbBdjp
学習用、棋譜採取用、対戦統計用、開発用で4台マシンほしいw
0645535
垢版 |
2019/01/26(土) 22:03:09.49ID:VGsbBdjp
やっぱ思考時間短いのはいいな。
モンテカルロは強いけど思考時間長すぎたからな。
0646535
垢版 |
2019/01/26(土) 23:04:44.42ID:VGsbBdjp
棋力が低すぎてすさまじい泥仕合になるの切ないorz
0647535
垢版 |
2019/01/26(土) 23:32:04.39ID:VGsbBdjp
メモリがもっとあれば異なるネットワークを並列に学習とかもできたかもなぁ
まさか32GBで足りないとは…
0648535
垢版 |
2019/01/27(日) 14:58:44.29ID:RY/5cpPz
DNNの評価値とMM法の評価値の和で最終評価値を算出するようにしてみました。
多分DNNのみより強くなってます。
0649535
垢版 |
2019/01/27(日) 15:49:50.57ID:RY/5cpPz
黒番で軽く動かしてみました。

10局目
黒(airandom.dll)の勝利回数: 8
白(ai-lv1.dll)の勝利回数: 2

まずまずの結果かな。
ちなみに白番はうまく動いてなくて1の1とか打っちゃうので途中で中断しました。
0650535
垢版 |
2019/01/27(日) 16:41:37.92ID:RY/5cpPz
うお、猛烈に追い上げられてるorz
悪くない手ごたえがあったと思いましたが…

25局目
黒(airandom.dll)の勝利回数: 15
白(ai-lv1.dll)の勝利回数: 10
0651535
垢版 |
2019/01/27(日) 19:54:22.32ID:RY/5cpPz
ちょっとヒューリスティックを入れました。
詰めろがあるときは詰めろを優先的に打つ。
当たりの点数を恣意的に上げる。
0652535
垢版 |
2019/01/27(日) 21:09:49.27ID:RY/5cpPz
うおお、キター
DNNでLV3に初勝利!

(;SZ[19]
;B[jj];W[kj];B[ji];W[jk];B[kk];W[kl];B[lk];W[ih]
;B[li];W[mj];B[lj];W[kh];B[ki];W[mi];B[lh];W[ll]
;B[lg];W[lf];B[kf];W[ik];B[le];W[mf];B[jh];W[mk]
;B[ke];W[ml];B[kj];W[kg];B[jg];W[mh];B[mg];W[mm]
;B[mn];W[kd];B[kh];W[ld];B[kg])

対LV1も流しなおしててこんな感じ

24局目
黒(airandom.dll)の勝利回数: 18
白(ai-lv1.dll)の勝利回数: 6
0653535
垢版 |
2019/01/27(日) 21:11:57.38ID:RY/5cpPz
ついDNNの学習に計算リソースを使いたくなっちゃうけど
ぐっとこらえてすべての源泉である棋譜取りにリソースを回すのが正解かも?
0654535
垢版 |
2019/01/27(日) 21:39:45.24ID:RY/5cpPz
いやーこんなに充実してるの久しぶりだな。
長いトンネルを抜けたようだ。
0655535
垢版 |
2019/01/27(日) 22:08:36.61ID:RY/5cpPz
うお、またLV3に勝った!
まだまだ負け越すだろうけど、偶然の勝利じゃないってことか。

(;SZ[19]
;B[jj];W[ik];B[ii];W[jk];B[kk];W[lk];B[ll];W[kj]
;B[kl];W[hh];B[mm];W[ji];B[ij];W[ih];B[nn];W[oo]
;B[jm];W[ml];B[hg];W[hk];B[om];W[lm];B[ln];W[nl]
;B[nm];W[im];B[pm];W[km];B[kn];W[pp];B[km];W[qp]
;B[lm])
0656535
垢版 |
2019/01/27(日) 22:25:29.35ID:RY/5cpPz
明日は仕事だから夜更かしは社会人として自制しなければwwwww
そろそろ切り上げるかwwww
0657535
垢版 |
2019/01/28(月) 19:44:18.33ID:m5wr/yMi
そういえば赤黒木って深さキャッシュして置くんですか?オーダーlogで深さを求める方法が思いつかない
0658535
垢版 |
2019/01/28(月) 21:07:17.34ID:LAfUnJ6o
長連判定入れなかったのが意外と響いてるな。
ちょくちょく長連に引っかかる
0659535
垢版 |
2019/01/28(月) 21:36:36.08ID:LAfUnJ6o
ん、DNN学習の裏で棋譜取りしたら計算速度落ちてるな。
コア数は足りてるはずだがメモリ帯域が足を引っ張ったのだろうか?
0660535
垢版 |
2019/01/28(月) 22:36:38.66ID:LAfUnJ6o
こちらの棋力が上がるのに呼応するようにLV3も素晴らしい手を返してくる。
奥が深いすな。
0661535
垢版 |
2019/01/28(月) 22:50:40.16ID:LAfUnJ6o
LV3との対戦統計とってみたいけどまだ時期尚早かな。
まずは大量の棋譜を手に入れる。
量が質に転換する地点が必ずあるはず。
0662535
垢版 |
2019/01/28(月) 22:57:44.79ID:LAfUnJ6o
将来的には自己対戦による強化学習は絶対取り入れたい。
0663535
垢版 |
2019/01/29(火) 20:45:33.27ID:PoANmAul
今一手読みで打ってるから、3手読みとかモンテカルロか入れたらもちっと改善するかな?
でも計算量がどうなるかだなぁ。
遅いのはコリゴリ。
0664535
垢版 |
2019/01/29(火) 22:13:06.04ID:PoANmAul
とりあえず2手読みにしてみたけど2手読みが限界かなぁ
3手は計算量的に相当厳しそう。
0665535
垢版 |
2019/01/29(火) 22:33:10.05ID:PoANmAul
2手読み、なかなかいい感じ。
1手読みから明らかにうち筋が良くなっている。
もし3手読みにしたら…
0666535
垢版 |
2019/01/30(水) 21:21:00.00ID:d36pZkYy
3手読みを仮組してみました。
計算時間がやばいので前方枝刈で思いっきり枝刈してます。
0667535
垢版 |
2019/01/30(水) 22:07:01.71ID:d36pZkYy
あああ、惜しいなぁ!
今すごくいい勝ち方しそうだったのに!

(;GM[1]FF[4]AP[Zenith:7.0]SZ[19]HA[0]KM[6.5]CA[UTF-8]PB[]BR[]PW[]WR[]
ZT[60]DT[]RE[];B[jj];W[ik];B[kk];W[hj];B[ii];W[jk];B[ll];W[hh];B[mm];
W[nn];B[hi];W[gi];B[jl];W[hl];B[ki];W[km];B[lh];W[mi];B[kg];W[kl];B[ke];
W[kf];B[jf];W[lf];B[jd];W[ie];B[je];W[ig](;B[jg];W[jh];B[ih];W[ji];B[kh];
W[jh];B[ji];W[gg];B[jh])(;B[kh];W[jg];B[ih];W[gg];B[nm];W[gk];B[fh];W[gh];
B[gj];W[fj];B[gl];W[ek];B[fk];W[fl];B[mk];W[gm];B[mh];W[gl];B[jh];W[gj]))

もしこの勝ち方ができてたら瞬間最大棋力は名人に届く、ってくらいすごかった。
0668535
垢版 |
2019/01/30(水) 22:44:38.83ID:d36pZkYy
実装もひと段落ついた感じがあるので対戦統計とってみます。
0669535
垢版 |
2019/01/31(木) 20:38:25.44ID:wmRSa8/r
やはりLV3は強いですね。
正直、もっと勝てるかと思ってました。
まだまだ精進せねば。


41局目
黒(airandom.dll)の勝利回数: 33
白(ai-lv1.dll)の勝利回数: 8

58局目
黒(airandom.dll)の勝利回数: 48
白(ai-lv2.dll)の勝利回数: 10

32局目
黒(airandom.dll)の勝利回数: 6
白(ai-lv3.dll)の勝利回数: 26
0670535
垢版 |
2019/02/01(金) 20:50:18.97ID:YKCFM9Y9
序盤DBがlv3 vs lv3の生の勝率データだからちょっと加工したらもっと有益なデータにならないかな
0671535
垢版 |
2019/02/01(金) 23:25:50.28ID:c38ZEsSq
バグは小説よりも奇なり
0672535
垢版 |
2019/02/03(日) 19:29:39.51ID:AT8t8or9
(;SZ[19]
;B[jj];W[ij];B[ik];W[hk];B[hj];W[ii];B[hl];W[gk]
;B[gm];W[ki];B[jl];W[fl];B[km];W[gi];B[ji];W[jh]
;B[lm];W[im];B[il];W[in];B[ml];W[ll];B[lk];W[gl]
;B[nl];W[kl];B[kk];W[ol];B[ll];W[pl];B[kl])
0673535
垢版 |
2019/02/03(日) 20:43:10.48ID:AT8t8or9
(;SZ[19]
;B[jj];W[ij];B[ik];W[hk];B[hj];W[ii];B[hl];W[jk]
;B[gk];W[hi];B[jl];W[kk];B[gi];W[km];B[kl];W[im]
;B[il];W[gl];B[gm];W[fl];B[ki];W[fn];B[lk];W[mk]
;B[fk];W[lh];B[kj];W[jn];B[kk];W[mg];B[hk];W[ng]
;B[jk])
0674535
垢版 |
2019/02/04(月) 21:24:20.28ID:xSiFrXwQ
コア数が足りていたとしても性能が落ちるのは
ターボブーストが利かなくなる分クロックが落ちるということだろうか?
0675535
垢版 |
2019/02/04(月) 21:32:25.91ID:xSiFrXwQ
単独で学習流すと1エポック5000秒強くらいだが棋譜取りと並列にすると1エポック8000秒弱かかる。
結構違いますね。
0676535
垢版 |
2019/02/05(火) 19:35:44.19ID:LeUKzWtY
自分からすぐ取られる手を打たない、必敗の手順をちゃんと読む、などの地味な改良をした結果だいぶ改善したようです。

38局目
黒(airandom.dll)の勝利回数: 37
白(ai-lv1.dll)の勝利回数: 1

28局目
黒(airandom.dll)の勝利回数: 28
白(ai-lv2.dll)の勝利回数: 0

30局目
黒(airandom.dll)の勝利回数: 12
白(ai-lv3.dll)の勝利回数: 18
0677535
垢版 |
2019/02/05(火) 19:37:52.43ID:LeUKzWtY
そろそろ白番もちゃんと動くようにしなければ…
0678535
垢版 |
2019/02/05(火) 20:01:16.79ID:LeUKzWtY
白番が動かないことには自己対局による強化学習も不可能…
0679535
垢版 |
2019/02/05(火) 20:07:09.73ID:LeUKzWtY
>>676の棋譜を見ていますが自分からすぐ取られる手を打たなくしたはずなのですが打ってますね。。。
バグか。
0680535
垢版 |
2019/02/05(火) 20:47:39.46ID:LeUKzWtY
すげぇぇぇええええぇえ!
ゲタ打った!!!


(;SZ[19]
;B[jj];W[ji];B[ki];W[ii];B[ik];W[kh];B[jh];W[kj]
;B[li];W[hi];B[lh];W[mg];B[kk];W[lj];B[mi];W[mj]
;B[ni];W[ij];B[jk];W[hk];B[nk];W[gl];B[kg];W[fm]
;B[en];W[hm];B[gj];W[il];B[mh];W[hh];B[hj];W[gi]
;B[oh];W[fi];B[ih];W[ei];B[di];W[jg];B[nh];W[ig]
;B[kh])
0681535
垢版 |
2019/02/05(火) 20:55:47.56ID:LeUKzWtY
ゲタなんか一切教えてないのにゲタ打った。
この衝撃がみんなに伝わるかなぁ。
0682535
垢版 |
2019/02/05(火) 21:18:10.97ID:LeUKzWtY
あれ、ネットワークのファイル更新したらLV2に負けるようになっちゃった。
なぜ?
0683535
垢版 |
2019/02/05(火) 23:23:47.50ID:LeUKzWtY
ネットワークじゃなくて序盤DBがおかしいのかなぁ。
0684310
垢版 |
2019/02/06(水) 01:11:54.97ID:uzcir1oY
久々です。

置換表は、だいぶ前にリハッシュ対応して、この辺にしとこうか状態になってます。
多分unordered_mapの仕組みはそこそこ理解できたと思います。
deleteとガベージコレクション、iteratorを除いてですが。

Edaxのソースを解析しようと、VC++で読み込んでみましたが、Edaxは裸のCで…
_s地獄とコンパイラの違いで、動かすところまで持ち込むのが相当大変な感じ。
一番の地獄は、探索部のソースを見ても何がなんだかわからない事。
せめて偶数理論のところは見つけたいんだけど。滅茶諦めモード。

というわけで、記譜作成を動かし続けるしかなくなってしまいましたorz

WZebraのソースが見たい…。
0685310
垢版 |
2019/02/06(水) 01:14:08.23ID:uzcir1oY
>>675
メモリバスの帯域とか、L2キャッシュ溢れとか…
わかっているけど、エビデンスが取れないので、認められないorz
0686535
垢版 |
2019/02/06(水) 20:19:19.81ID:s2iJEq7C
ゲタっぽい手また打った。
パッと見成立しないんだけど、なんとなく味が悪いことわかってるんだな。
すごい!

(;SZ[19]
;B[jj];W[ji];B[ki];W[ij];B[ii];W[jk];B[jh];W[li]
;B[kk];W[kg];B[ik];W[jl];B[hj];W[lj];B[lh];W[hl]
;B[jg];W[if];B[mk];W[lk];B[ll];W[kl];B[kj];W[lm]
;B[ml];W[mm];B[mi];W[il];B[mj];W[gj];B[nj];W[lj]
;B[li];W[jm];B[lk];W[oi];B[ij];W[pi];B[lj])

>>685
マルチ性能も大事だけどシングル性能も結構大事で
並列計算するか結構悩みどころですね。
学習結果が早くほしい時は棋譜取りしないというのもありっちゃあり。
0687535
垢版 |
2019/02/06(水) 21:11:19.34ID:s2iJEq7C
ん、なんかいままでは序盤DBの力で勝ってきたようなものだけど、
むしろ中盤力のほうが勝り始めてる気がする。
序盤DBが物足りなく感じる。。。
0688535
垢版 |
2019/02/06(水) 21:50:52.85ID:s2iJEq7C
いろいろ試してみたくなるけど、やっぱ棋譜取りがすべての源泉な気がする。
日中は棋譜取りに専念するのが吉か?
0689535
垢版 |
2019/02/07(木) 21:28:54.73ID:GJ+3NG1C
やはり更なる上を目指すには強化学習が必須か?
0690535
垢版 |
2019/02/07(木) 21:49:04.85ID:GJ+3NG1C
どうやっても勝ちってかんじではあるけど
17手目が面白い手でうまく必勝形につなげた。
正直この手は俺にも見えてなかった。

(;SZ[19]
;B[jj];W[ij];B[ii];W[hi];B[ik];W[ih];B[hj];W[gh]
;B[gi];W[fj];B[hh];W[hg];B[fh];W[jl];B[gg];W[kk]
;B[kh];W[ig];B[li];W[fi];B[mi];W[ji];B[jh];W[km]
;B[ki];W[ln];B[hi];W[mn];B[ji])
0691310
垢版 |
2019/02/08(金) 00:11:00.05ID:Ar3tbH3V
偶数理論なかなか良い実装を思いつきました。

オーバーヘッドが極小なのは、オーダリングへ影響する値だけゼロにして、
ほぼ速度低下が無い事で確認済です。が…何をどうしても速度がダウンします。

というわけで、またしても偶数理論挫折。

次ネタ考え中。
ネタを一つ見つけたけど、結構全面改訂になりそう。
0692535
垢版 |
2019/02/09(土) 16:38:22.33ID:Y3QZLQMW
なんかひと段落ついちゃったら次何すればいいかわかんなくなっちゃったな。
とりあえず、棋譜取りだけは地味に続けるけど。
0693535
垢版 |
2019/02/09(土) 16:39:13.34ID:Y3QZLQMW
白番がバグってるの直すのあったなそういえば。。。
0694310
垢版 |
2019/02/09(土) 21:06:41.89ID:bf+o2ihZ
次ネタ結構大変だと思ったら、意外と簡単にできた。
FFO40-49のタイムは30%強短縮した。
FFO40が悪化して、49はだいぶ短縮しているので、探索深さが深い方が
効果が出る傾向に見える。という事は、残り28か所空きをやっている棋譜
作成では、もっと改善する可能性あるかも。

思い込みって怖い。正直、何故今まで思い付かなかったのだろうというレベルorz
0695535
垢版 |
2019/02/10(日) 00:11:19.28ID:CIRPPqWT
白番動くようになったみたいです。
白番でLV2に勝ちました!

(;SZ[19]
;B[ef];W[eg];B[fg];W[fh];B[eh];W[dg];B[gh];W[fi]
;B[gf];W[di];B[df];W[fe];B[cg];W[dh];B[gi];W[ff]
;B[gg];W[ge];B[hi];W[ej];B[ij];W[de];B[hd];W[hj]
;B[he];W[if];B[hf];W[ih];B[hh];W[ig];B[hc];W[hg]
;B[gj];W[hk];B[gl];W[gk];B[fj];W[ei];B[cd];W[cf]
;B[jk];W[kl];B[ed];W[ee];B[ek];W[dj];B[jh];W[dk]
;B[il];W[df])
0696310
垢版 |
2019/02/10(日) 09:57:20.94ID:WWsJbkKo
パラメータの調整というか、使い方変えたら、更に5%くらい改善。

残り28手空きの記譜作成は、トータル倍弱まで速度アップした模様。
とはいえl、記譜作成の方は、解く問題によってばらつきが大きすぎる
ので、もう少し様子を見ないと、どれくらい早くなったかはなんとも
言えない。早くなったのは確実。

さて、またネタが無くなった(汗
0697535
垢版 |
2019/02/10(日) 14:13:32.91ID:CIRPPqWT
分かってたつもりだったけどLV2の黒番のうち筋が思ったより良くて、
序盤DBに取り込んでもいいかなってちょっと思うようになった。
0698535
垢版 |
2019/02/10(日) 14:38:22.21ID:CIRPPqWT
lv2 vs lv3で棋譜取りしてlv2のいいところを抽出しようとしたら
lv3が強すぎてlv2のいいところが取れないっぽいんだがwwww
これは計算外
0699535
垢版 |
2019/02/10(日) 16:41:39.34ID:CIRPPqWT
lv2 vs lv3はlv2の勝率が3割3分くらい。
思ったよりはlv2が善戦してるかな?
0700535
垢版 |
2019/02/11(月) 00:03:36.62ID:upj5oiO/
lv2の棋譜を取り込んで対戦統計とり始めました。

15局目
黒(airandom.dll)の勝利回数: 13
白(ai-lv1.dll)の勝利回数: 2

14局目
黒(airandom.dll)の勝利回数: 14
白(ai-lv2.dll)の勝利回数: 0

7局目
黒(airandom.dll)の勝利回数: 0
白(ai-lv3.dll)の勝利回数: 7

10局目
黒(ai-lv1.dll)の勝利回数: 1
白(airandom.dll)の勝利回数: 9

6局目
黒(ai-lv2.dll)の勝利回数: 3
白(airandom.dll)の勝利回数: 3

6局目
黒(ai-lv3.dll)の勝利回数: 3
白(airandom.dll)の勝利回数: 3

lv1には文句なく勝ってますね。
lv2もトータル勝ち越せるかも。
lv3は白番でいい勝負なのはすごいですが、
黒番で勝ててないのが気になりますね。
0701535
垢版 |
2019/02/11(月) 19:03:47.89ID:N2auq0Bn
黒番対lv2は勝率100% w
序盤DBが完全に筋に入ってる感じですかね。
対lv3の戦績もlv2 vs lv3の戦績と比較して決して悪くないです。

40局目
黒(airandom.dll)の勝利回数: 36
白(ai-lv1.dll)の勝利回数: 4

42局目
黒(airandom.dll)の勝利回数: 42
白(ai-lv2.dll)の勝利回数: 0

25局目
黒(airandom.dll)の勝利回数: 9
白(ai-lv3.dll)の勝利回数: 16

50局目
黒(ai-lv1.dll)の勝利回数: 7
白(airandom.dll)の勝利回数: 43

30局目
黒(ai-lv2.dll)の勝利回数: 22
白(airandom.dll)の勝利回数: 8

33局目
黒(ai-lv3.dll)の勝利回数: 24
白(airandom.dll)の勝利回数: 9
0702535
垢版 |
2019/02/11(月) 21:10:52.87ID:N2auq0Bn
でも悲しいことに俺のAIには怖さがないんだよなぁ。
ちょっと気を抜くと負かされてしまうような怖さが。
lv2とlv3にはそれがある。
0703535
垢版 |
2019/02/12(火) 20:26:23.49ID:G3iO6dyJ
こんな感じです。

50局目
黒(airandom.dll)の勝利回数: 45
白(ai-lv1.dll)の勝利回数: 5

50局目
黒(airandom.dll)の勝利回数: 50
白(ai-lv2.dll)の勝利回数: 0

40局目
黒(airandom.dll)の勝利回数: 14
白(ai-lv3.dll)の勝利回数: 26

50局目
黒(ai-lv1.dll)の勝利回数: 7
白(airandom.dll)の勝利回数: 43

48局目
黒(ai-lv2.dll)の勝利回数: 39
白(airandom.dll)の勝利回数: 9

46局目
黒(ai-lv3.dll)の勝利回数: 32
白(airandom.dll)の勝利回数: 14

ホントは全部50局打ちたかったんだけど時間がかかるので打ち切りました。
0704535
垢版 |
2019/02/13(水) 19:55:00.78ID:7bnMzRQL
DNNの教師データを棋譜からの生勝率ではなく、少し探索した結果にしてみようかと思ってます。
0705535
垢版 |
2019/02/14(木) 22:04:12.79ID:yW8Bcw4A
なんか変な手打つorz
結局、生勝率が一番いいのかな…
0706名前は開発中のものです。
垢版 |
2019/02/15(金) 23:01:57.18ID:szQyRPlV
>>684
https://github.com/okuhara/edax-reversi-AVX
は VC でもコマンドラインならビルド可能です。(NMakefile)
(本家の Edax も NMakefile は付いているが、多少変更が必要)
Edax の偶数は基本的に Zebra と同じ。QUADRANT_ID あたりを追ってみては?
0707310
垢版 |
2019/02/15(金) 23:44:55.03ID:fcveN5+T
>>706
情報ありがとうございます。そのソースなのですが、コマンドラインなのですね。

ビルドしたかった理由はデバッグモードを使いたかったからです。
QUADRANT_IDのあたりは追っかけたのですが、もともとの探索の構造が
読めなくて、デバッグモードに頼ろうとした次第です。

で、処理内容を予想して自分で組んでみたのですが、FFOテストでは速度が
若干ですが、落ちてしまうのです。


あと、実はVC++しか使った事ないというか、オセロ開発でC++使い始めたので、
makefileが何やってるのかわからないです(汗
というわけで、ちと調べてみます。
動くだけでも、自動対戦の相手になってもらえる可能性ありますから。
0708535
垢版 |
2019/02/16(土) 00:14:31.55ID:MvwJSI7c
310さんってC++のエキスパートなのかと思ってたっす。
ちょっと意外。
0709535
垢版 |
2019/02/17(日) 21:11:39.54ID:23WhPvCR
ネタがなくなってちょっと熱も冷めた感じ。
とりあえず、自己対局による強化学習をぼちぼち何とかしたい。
0710535
垢版 |
2019/02/18(月) 23:23:00.57ID:dOglmLQj
俺のAI vs 俺のAIの棋譜

(;SZ[19]
;B[jj];W[kj];B[kk];W[ji];B[lj];W[ki];B[ij];W[lk]
;B[ll];W[mk];B[ii];W[ml];B[mm];W[nn];B[hh];W[gg]
;B[oo];W[on];B[ih];W[nm];B[po];W[mj];B[nk];W[ok]
;B[ol];W[ni];B[nl];W[mo];B[ln];W[mn];B[lm];W[li]
;B[hk];W[oj];B[oi];W[pi];B[oh];W[qj];B[pk];W[nj]
;B[pj];W[pl];B[il];W[qk];B[in];W[pj];B[im];W[lj])

両当たりかけられるところを放置したり抜かなくていい石を抜いたりいろいろ危なっかしいところはあるが
現状、こんな感じです。
0711535
垢版 |
2019/02/19(火) 22:08:59.80ID:d5ndvgDR
いまよりもっと人工知能技術が普及して働き口が増えたら人工知能系の職に転職したいwww
0712535
垢版 |
2019/02/19(火) 22:42:38.22ID:d5ndvgDR
次のアイディアが出るまで

対LV3の棋譜をとる→序盤DBを更新する→DNNを更新する→対LV3の棋譜をとる

のサイクルを繰り返すことにします。
0713535
垢版 |
2019/02/20(水) 21:16:37.27ID:d5NzdsVZ
珍しい負け方した。
白必勝形のダブルリーチ
この形は非常に珍しいと思う。

(;SZ[19]
;B[jj];W[kk];B[ki];W[ik];B[ii];W[hi];B[ij];W[jk]
;B[hk];W[hl];B[gj];W[hj];B[gk];W[gl];B[jl];W[gi]
;B[fi];W[jm];B[kl];W[km];B[ll];W[im];B[fm];W[lm]
;B[hh];W[mm];B[hm];W[lk];B[gh];W[hn];B[gm];W[mk]
;B[li];W[nl];B[om];W[ok];B[nj];W[nk])
0714535
垢版 |
2019/02/21(木) 19:59:44.77ID:PxV5X23E
日に日にじわじわ強くなってる気がする。
どこかのタイミングで爆発的に強くなったりしないかな?
0715310
垢版 |
2019/02/22(金) 00:24:39.77ID:e/VjvE/W
ようやく評価関数が安定してきたのか、遡り記譜作成の速度が上がってきた気がする。

暇なので、mctsでも組んどこうかと考え始めたら、置換表の新アイデアが。

今までは、unordered_mapにとらわれていましたが、もともと探索木は文字通り
ツリー構造なので、その形のまんま置換表にして、探索しながら木を同時並行
でたどっていけば、置換表内で「探す」必要が無い上に、着手リストがそのまま
ノードとして存在しているので、反復系の探索の時に何度もmobility関数を呼ぶ
必要が無い。

結構大掛かりな修正になりましたが、とりあえず基礎的な探索まではできるように
なりました。速度計測はこれから。

あと、shared_ptr使った事で、不要な置換表データを自動削除できるので、minMaxで
AIを組んだ時に、置換表を縮小しながら再利用できるかなと。
あ、mctsはどこに行ってしまったんだろう(汗
0716535
垢版 |
2019/02/22(金) 20:49:26.61ID:pJcyJywR
10並列でLV3と対戦しました。

29局目 黒(airandom.dll)の勝利回数: 15 白(ai-lv3.dll)の勝利回数: 14
32局目 黒(airandom.dll)の勝利回数: 15 白(ai-lv3.dll)の勝利回数: 17
32局目 黒(airandom.dll)の勝利回数: 20 白(ai-lv3.dll)の勝利回数: 12
34局目 黒(airandom.dll)の勝利回数: 16 白(ai-lv3.dll)の勝利回数: 18
30局目 黒(airandom.dll)の勝利回数: 12 白(ai-lv3.dll)の勝利回数: 18
32局目 黒(airandom.dll)の勝利回数: 6 白(ai-lv3.dll)の勝利回数: 26
30局目 黒(airandom.dll)の勝利回数: 12 白(ai-lv3.dll)の勝利回数: 18
33局目 黒(airandom.dll)の勝利回数: 18 白(ai-lv3.dll)の勝利回数: 15
37局目 黒(airandom.dll)の勝利回数: 17 白(ai-lv3.dll)の勝利回数: 20
32局目 黒(airandom.dll)の勝利回数: 13 白(ai-lv3.dll)の勝利回数: 19
トータル 144勝 177敗
勝率 44.9%

これはLV2 vs LV3 と比べてかなりいい数字です!
0717310
垢版 |
2019/02/23(土) 17:22:38.75ID:XSOOC+yB
>>715の続き

良く考えたら、ツリー構造で自分の値を残しておくという意味で、mtd(f)や
反復深化の系統には効果あるけど、同じ局面を見つける事ができないので
そもそも置換表ではありませんねorz

その代り、並列探索でも排他制御をしなくて良い事になります。
メモリー使用量も少なくて済みます。

速度については、今のところ微妙。
棋譜作成が一段落したらPCリセットしてクリーンな状態で再計測の予定。
0718535
垢版 |
2019/02/23(土) 19:16:16.09ID:ThnkYxTz
対戦統計って10000局くらいやらないと±10%くらいの誤差は簡単に出てしまうのかもしれない。
何局くらいやれば信頼できるんだろ?あんま統計詳しくないんだよな〜
0719535
垢版 |
2019/02/23(土) 19:28:15.18ID:ThnkYxTz
そういえば「コンピュータ囲碁 ―モンテカルロ法の理論と実践」になんか書いてあったような気もする。
0720535
垢版 |
2019/02/24(日) 21:49:18.42ID:auCrr5Wc
なんか弱くなってる気がするorz
LV0とかLV1にも序盤不利になったりするorz
最終的に逆転できることもあるんだけど、そのまま押し切られることもあるorz
まずいでしょうこれはorz
0721310
垢版 |
2019/02/24(日) 23:56:43.56ID:GBomweD/
んごー。めっちゃスピードダウンorz
ダメ筋だったかも。

途中速度アップしてる気がしていたけど、単にバグっていただけだった。

置換表機能が消えて、余計な筋を読んでいるのか。
それとも、パラパラとmake_sharedしているからなのか。
どうせやる事ないので、しばし検討。
0722535
垢版 |
2019/02/25(月) 20:30:16.25ID:/PmJxqQK
もっとマシンパワーが欲しい!
モアパワー、モアトルクだ!
0723535
垢版 |
2019/02/25(月) 20:48:25.65ID:/PmJxqQK
大学で統計の単位とっとくんだったorz
独学は厳しいorz
0724535
垢版 |
2019/02/26(火) 20:20:50.08ID:veq8AgWN
序盤DBはもう少し工夫しないと駄目かもなぁ
0725535
垢版 |
2019/02/26(火) 22:16:04.17ID:veq8AgWN
あの伝説の手筋が実現しかけたが、残念ながら実現しなかった。
あとちょっとだったのに、悔しい!!

(;SZ[19]
;B[jj];W[jk];B[ki];W[ij];B[ik];W[hk];B[il];W[kj]
;B[ji];W[ih];B[hl];W[gm];B[ii];W[hi];B[gl];W[li]
;B[hh];W[ig];B[kk];W[ll];B[km];W[jl];B[jn];W[kl]
;B[lh];W[mg];B[lj];W[hj];B[gk];W[gh];B[lm];W[hf]
;B[he];W[kh];B[gi];W[hg];B[gj];W[jg];B[gg];W[lg]
;B[kf];W[fg];B[ef];W[kg];B[ng];W[gf];B[fe];W[gg])
0726535
垢版 |
2019/02/26(火) 23:53:19.73ID:veq8AgWN
負けたけど、7連までの手数が絡んだ微妙な駆け引きが素晴らしい名局だった。
勝つチャンスはあったと思うけどな〜惜しいな〜

(;SZ[19]
;B[jj];W[kj];B[jk];W[ki];B[kk];W[kh];B[il];W[lk]
;B[ll];W[ml];B[in];W[ji];B[im];W[ih];B[nm];W[hi]
;B[jo];W[gi];B[li];W[fh];B[ij];W[ii];B[io];W[ei]
;B[ip];W[fi])
0727535
垢版 |
2019/02/27(水) 21:30:22.80ID:Y++kUwc3
モンテカルロ木探索とDNNと組み合わせてみようかなぁ
そのほうがランダム性も出せるし
でも遅くなったらやだな。うーん
0728535
垢版 |
2019/02/27(水) 22:03:24.47ID:Y++kUwc3
なんか取れないシチョウを追いかけたw
シチョウルーチンにバグがあるのか、DNNの評価値でシチョウを追いかけてしまったのかイマイチ判断がつかないな。
0729535
垢版 |
2019/02/27(水) 22:47:59.69ID:Y++kUwc3
ん、なんかLV2にコロコロ負けるようになった。
自分のAI vs lv 3 の棋譜を取り入れたせいで序盤DBが狂っちゃったかな。
0730535
垢版 |
2019/02/28(木) 22:39:23.34ID:VN3HTH0V
なんか新しいアイディアが欲しいな。
>>712のサイクルはちょっと手詰まり感。
0731535
垢版 |
2019/03/04(月) 20:07:01.61ID:+UlAfF8J
ここ数日さぼりっぱなし。
棋譜取りも逆に弱くなりそうでさぼってます。
0732535
垢版 |
2019/03/04(月) 22:26:37.19ID:+UlAfF8J
やっぱ序盤の大局観で優位に立ちたいんだよなぁ。
中盤、終盤はある程度読みでカバーできるけど序盤はマジ謎が多いからな。
0733310
垢版 |
2019/03/04(月) 23:03:17.87ID:2gMEJXd0
バグでドツボ中。

再現性がなさすぎて、よーわからん。
頻度の低さと、再現性の無さから、置換表の二重更新だと思うんだけど…
それっぽい箇所も見当たらない。
0734535
垢版 |
2019/03/09(土) 21:06:39.62ID:jNDDSRBd
完全にさぼり状態。
アイディアも枯渇したし。
どこかにネタ落ちてないかな。
0735535
垢版 |
2019/03/10(日) 00:25:59.41ID:BU7hKn7v
禁断の人間(俺)vs lv3の棋譜取りをやろうかと思ってます。
これは手間が半端ないw
0736535
垢版 |
2019/03/10(日) 00:40:34.55ID:BU7hKn7v
早くもギブアップwwwww
なかなかいい棋譜が取れない
基本的に無理筋orz.
0737535
垢版 |
2019/03/10(日) 20:17:25.17ID:BU7hKn7v
自分のAI vs lv3 で 手筋炸裂!!
うって返しでました!

(;SZ[19]
;B[jj];W[ki];B[ii];W[kj];B[kk];W[ih];B[hh];W[gg]
;B[ll];W[mm];B[mk];W[jk];B[jl];W[ik];B[il];W[hk]
;B[hl];W[gl];B[gk];W[ji];B[hj];W[ij];B[jj];W[hi]
;B[jk];W[gi];B[ik];W[nk];B[lk];W[ok];B[hk])
0738535
垢版 |
2019/03/11(月) 19:47:21.03ID:X4t/4BPO
棋譜取り再開しました。
弱くなる可能性は潰せてないのですが、何もしないよりはましだと思って。
0739535
垢版 |
2019/03/11(月) 21:55:27.12ID:X4t/4BPO
10並列 対戦結果

30局目 黒(airandom.dll)の勝利回数: 16 白(ai-lv3.dll)の勝利回数: 14
21局目 黒(airandom.dll)の勝利回数: 10 白(ai-lv3.dll)の勝利回数: 11
29局目 黒(airandom.dll)の勝利回数: 12 白(ai-lv3.dll)の勝利回数: 17
22局目 黒(airandom.dll)の勝利回数: 6 白(ai-lv3.dll)の勝利回数: 16
24局目 黒(airandom.dll)の勝利回数: 14 白(ai-lv3.dll)の勝利回数: 10
27局目 黒(airandom.dll)の勝利回数: 14 白(ai-lv3.dll)の勝利回数: 13
27局目 黒(airandom.dll)の勝利回数: 14 白(ai-lv3.dll)の勝利回数: 13
30局目 黒(airandom.dll)の勝利回数: 15 白(ai-lv3.dll)の勝利回数: 15
23局目 黒(airandom.dll)の勝利回数: 10 白(ai-lv3.dll)の勝利回数: 13
28局目 黒(airandom.dll)の勝利回数: 13 白(ai-lv3.dll)の勝利回数: 15

トータル 124勝137敗 勝率 47.5%

悪くない
0740535
垢版 |
2019/03/12(火) 20:57:52.00ID:ACQKgt0P
LV3に勝利。
途中負けかけたけど相手がミスした。
終盤の数手が素晴らしい一局だった。

(;SZ[19]
;B[jj];W[ki];B[ji];W[jh];B[ih];W[ig];B[kh];W[jg]
;B[kj];W[hf];B[li];W[kg];B[lg];W[gf];B[lk];W[mj]
;B[hi];W[fg];B[eg];W[mi];B[lf];W[lj];B[fi];W[gi]
;B[gj];W[gh];B[ej];W[fk];B[fj];W[ij];B[ik];W[ge]
;B[ii];W[hj];B[hk];W[fd];B[ki];W[me];B[ij];W[ne]
;B[hj])
0741535
垢版 |
2019/03/12(火) 21:01:50.73ID:ACQKgt0P
それにしてもディープラーニングの学習がメモリ20GB食ってるんだがw
奮発してメモリ32GBにしといてよかった。

やっぱハードウェア性能は正義だな。
Zen2のスリッパ出たらうっかり買いそうで自分が怖いw
0742535
垢版 |
2019/03/13(水) 20:46:36.19ID:7rSi15yT
12並列対戦

29局目 黒(airandom.dll)の勝利回数: 12 白(ai-lv3.dll)の勝利回数: 17
30局目 黒(airandom.dll)の勝利回数: 17 白(ai-lv3.dll)の勝利回数: 13
28局目 黒(airandom.dll)の勝利回数: 11 白(ai-lv3.dll)の勝利回数: 17
28局目 黒(airandom.dll)の勝利回数: 10 白(ai-lv3.dll)の勝利回数: 18
36局目 黒(airandom.dll)の勝利回数: 13 白(ai-lv3.dll)の勝利回数: 23
25局目 黒(airandom.dll)の勝利回数: 11 白(ai-lv3.dll)の勝利回数: 14
31局目 黒(airandom.dll)の勝利回数: 14 白(ai-lv3.dll)の勝利回数: 17
28局目 黒(airandom.dll)の勝利回数: 13 白(ai-lv3.dll)の勝利回数: 15
32局目 黒(airandom.dll)の勝利回数: 13 白(ai-lv3.dll)の勝利回数: 19
33局目 黒(airandom.dll)の勝利回数: 17 白(ai-lv3.dll)の勝利回数: 16
31局目 黒(airandom.dll)の勝利回数: 17 白(ai-lv3.dll)の勝利回数: 14
25局目 黒(airandom.dll)の勝利回数: 8 白(ai-lv3.dll)の勝利回数: 17

156勝200敗 勝率 43.8%

弱くなったのか誤差の範囲なのか、うーん。
0743535
垢版 |
2019/03/14(木) 23:27:52.29ID:V04VYcAB
>>742の棋譜を序盤DBに取り込んで、その序盤DBをもとにDNNの学習をやり足しました。
DNNは序盤DB拡張と学習のサイクルを繰り返し行っているので秘伝のタレみたいになってますw
これで今夜からもう一度対LV3対戦やってみます。
0744535
垢版 |
2019/03/14(木) 23:40:56.98ID:V04VYcAB
7局目 黒(airandom.dll)の勝利回数: 3 白(ai-lv3.dll)の勝利回数: 4
7局目 黒(airandom.dll)の勝利回数: 4 白(ai-lv3.dll)の勝利回数: 3
7局目 黒(airandom.dll)の勝利回数: 3 白(ai-lv3.dll)の勝利回数: 4
5局目 黒(airandom.dll)の勝利回数: 4 白(ai-lv3.dll)の勝利回数: 1
7局目 黒(airandom.dll)の勝利回数: 4 白(ai-lv3.dll)の勝利回数: 3
5局目 黒(airandom.dll)の勝利回数: 3 白(ai-lv3.dll)の勝利回数: 2
4局目 黒(airandom.dll)の勝利回数: 1 白(ai-lv3.dll)の勝利回数: 3
5局目 黒(airandom.dll)の勝利回数: 3 白(ai-lv3.dll)の勝利回数: 2
9局目 黒(airandom.dll)の勝利回数: 7 白(ai-lv3.dll)の勝利回数: 2
6局目 黒(airandom.dll)の勝利回数: 4 白(ai-lv3.dll)の勝利回数: 2
6局目 黒(airandom.dll)の勝利回数: 2 白(ai-lv3.dll)の勝利回数: 4
7局目 黒(airandom.dll)の勝利回数: 4 白(ai-lv3.dll)の勝利回数: 3

42勝33敗 勝率56%

出だしは好調!
明日一日回してどうなるか… 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
0745535
垢版 |
2019/03/14(木) 23:44:29.21ID:V04VYcAB
ありゃなんかRock54ついとる。
文章の繰り返しが駄目なんか?
0746535
垢版 |
2019/03/15(金) 20:06:11.54ID:PqqnV2Up
残念ながら駄目でしたorz

155勝 209敗 勝率 42.6%

やっぱ対局回数増やすとこの辺に落ち着くのか、うーん
0747535
垢版 |
2019/03/16(土) 18:31:00.14ID:7iioDFjE
>>746から対戦を止めずに継続していましたが

211勝289敗 勝率42.2%

となりました。

やっぱこの辺が真の値なのかな。
0748535
垢版 |
2019/03/17(日) 00:52:38.93ID:5SZpbjE6
更に学習を続けます
0749535
垢版 |
2019/03/17(日) 21:35:48.21ID:5SZpbjE6
まじでZen2スリッパでたら買ってしまいたい衝動に駆られる
0750535
垢版 |
2019/03/18(月) 00:19:09.18ID:eJisfZab
8勝2敗だと95%の確率で強いといえるらしいが、12並列もしてると1つは8勝2敗ぐらいになったりするw。
まあ確率的にはそうなのかも。
結局1000局くらいやらないと駄目ってことかな?
0751535
垢版 |
2019/03/18(月) 21:25:08.42ID:eJisfZab
やっぱ弱くなってるかもT△T

143勝 220敗 勝率 39.4%

このままこの学習サイクルを進めていいか迷うorz
0752535
垢版 |
2019/03/18(月) 21:37:35.02ID:eJisfZab
禁断のモンテカルロ木探索の封印を解くか?
しかしあれは計算時間が半端ないからな。
出来れば避けたい。
0753535
垢版 |
2019/03/18(月) 21:52:51.93ID:eJisfZab
プロのタイトル戦が7番勝負とかだけど7番ぽっちじゃ真の強者はわからんってことやなw
0754535
垢版 |
2019/03/18(月) 23:53:39.58ID:eJisfZab
モンテカルロ実装したけど、なんか素朴な手を選ぶようになってしまった。
うーん、コレジャナイ感がorz
0755535
垢版 |
2019/03/19(火) 21:06:00.35ID:87DWY+/2
なんかおかしい。
LV3が強すぎる気がするw
もしかしてLV3には学習機能がついていて計算回せば回すほど強くなるとか?w
んなわけないか。
0756535
垢版 |
2019/03/21(木) 03:04:06.19ID:gYmqCPQ5
祝日だって油断してたらこんな時間w
弱くなってもいいから計算量削る方向で調整しています。
0757535
垢版 |
2019/03/21(木) 17:29:13.47ID:gYmqCPQ5
対戦統計とってます。

66勝 70敗 勝率48.5%

今のところむしろ勝率上がってます!
速度も若干だけど速くなったはず…

勝率50%が欲しい!
0758535
垢版 |
2019/03/22(金) 19:55:26.77ID:9WNMIpie
161勝188敗 勝率 46.1%

悪くない。
0759535
垢版 |
2019/03/22(金) 20:13:46.91ID:9WNMIpie
次のアイディアが欲しいところだ
0760310
垢版 |
2019/03/23(土) 00:07:59.98ID:QKAaRf+n
久々です。

新型版はテストのためにいちいち学習を止めるのが面倒で、放置しています。
一晩耐久テストやらないとわからないので。

で、未だずーっと棋譜作成&学習を続けています。
もともと800件強の記譜をベースに間違い訂正をしたり、確定しているところ以降
の全分岐を作成したりして学習データにしていたのですが、昔作った記譜なので
序盤で結構間違いが多く、効率よく学習できないのではないかと考えました。

で、最近は序盤の定石6〜20手からスタートして記譜を作成したりしていました。
そこそこ序盤の間違いが訂正されてきたのですが、まだところどころおかしい
ところがあって、Zebraで並べてみながら、多分間違えたであろう箇所を特定して
それ以後の記譜を作らせる事で、強制的に正しい手順に戻すなんていう、禁断の
ドーピング技を始めてしまいました。

現在は1200記譜くらいまで増えていますが、まだまだ間違いも散見されますし、
パブリックドローの変化っぽいのに、記譜が無いものもあり、まだまだ記譜が足り
ていない感じです。

あと、ドーピング作業やりながらZebraの評価値見ていると、20〜30手目あたりは
進行の種類によってはZebraの評価値もあまりあてにならないなぁと言う事に気付い
てしまいました。ここら辺の精度を上げると、もっと強くできるのではないかと思います。
自動対戦してくれる序盤DB付きのオセロプログラムがあると、ドーピング作業が更に
楽になるんだけど(汗

現在残り20手目以後の学習に使う盤面は70万件くらいになっています。それでも
残り20手以後の初見の盤面の評価値では結構な誤差があります。本当にBuroさん
の線形評価関数で良いのかというのも相変わらず悩ましいところです。
0761535
垢版 |
2019/03/23(土) 09:44:42.00ID:C9QFpANM
197勝 233敗 勝率 45.8%

悪くない。

一旦対局中断します。
0762535
垢版 |
2019/03/23(土) 17:57:32.40ID:C9QFpANM
やっぱ1手1秒くらいで打ちたいなぁ。
そうすれば対戦統計も棋譜も全然もっと取れるのに
0763535
垢版 |
2019/03/23(土) 21:04:03.52ID:C9QFpANM
LV2と対戦してみました。
50局目 黒(airandom.dll)の勝利回数: 48 白(ai-lv2.dll)の勝利回数: 2
勝率 96%
0764535
垢版 |
2019/03/24(日) 10:11:30.45ID:IEpX66ro
LV1ともやってみました。
50局目 黒(airandom.dll)の勝利回数: 45 白(ai-lv1.dll)の勝利回数: 5
勝率 90%
0765535
垢版 |
2019/03/24(日) 21:21:09.27ID:IEpX66ro
ふーむ、損失が減らない地点まで学習が進んでしまったようです。
一回止めるか。
0766535
垢版 |
2019/03/24(日) 21:27:42.78ID:IEpX66ro
うーん、やっぱ現状を打破する画期的なアイディアが必要かな。
ちなみにいまは強さよりも速度が欲しいかも。
0767535
垢版 |
2019/03/25(月) 05:48:57.06ID:9reqTGkG
対戦してます。

黒番 対 LV3 107勝 102敗 勝率 51.2%

200戦以上して勝率50%超えはすごい!
今日一日回してみます。
0768535
垢版 |
2019/03/25(月) 21:18:02.28ID:9reqTGkG
結局負け越しでした

165勝 174敗 勝率48.7%

でも決して悪い結果ではない!
0769535
垢版 |
2019/03/26(火) 21:11:49.41ID:AISc91ZO
まだ回してました

239勝 237敗 勝率 50.2%

キター!

まあ、今だと50%行くかどうかはホント運しだいなんだろな。
0770535
垢版 |
2019/03/26(火) 21:12:45.47ID:AISc91ZO
そろそろ対局止めて次の学習のターンに入ります。
0771535
垢版 |
2019/03/26(火) 21:59:22.07ID:AISc91ZO
うお、棋譜が多すぎてls */*.sgfがコアダンプするようになったw
分割しないと駄目か〜
0772535
垢版 |
2019/03/27(水) 21:35:10.22ID:4D2b4lCy
そろそろ人間(俺)相手に勝利が欲しいところだがまだむずかしいかな。
素人相手なら勝てるんだろうか?
0773535
垢版 |
2019/03/28(木) 19:32:56.94ID:ZCt2CXW9
165勝 176敗 勝率 48.4%
0774310
垢版 |
2019/03/30(土) 20:46:31.09ID:IsrC9h82
既知のパブリックドローのリストが見つかったというか、
今年になってブログでまとめて発表してくれている人がいた。

ちょうど良いタイミングすぎる(汗

2種類あるのと、自分がZebraから拾った奴を合体して、32手目まででカット。
ソートして重複削除したら450件程度に。多分既存の記譜と多少重複してると思う。

全部やるとかなり記譜が偏る気がするけど、やっちゃうかな。
0775535
垢版 |
2019/03/30(土) 23:47:00.24ID:o6pzrkpp
序盤DBを劇的に改善する方法ないかな?
不利なオープニングを避けるだけで勝率めちゃくちゃ上がりそうな予感がするんだが。
0776310
垢版 |
2019/03/31(日) 01:39:32.24ID:5poc64Oc
棋譜から序盤DB作れない?
0777535
垢版 |
2019/03/31(日) 09:41:09.06ID:eFSA5935
作ってるですがそれでも不利な局面になったりしますorz
0778310
垢版 |
2019/03/31(日) 20:14:25.76ID:5poc64Oc
棋譜から序盤DB作る時に、その盤面からの勝率入れて、勝率が高い手を指す
ようにするとか。まあ、ぶっちゃけ記譜単位でmctsやってるような事になるの。
0779535
垢版 |
2019/03/31(日) 20:34:17.11ID:eFSA5935
いや、それに近いイメージのものはすでに実装してあるんですが、たまに変な手を打つのです。
0780310
垢版 |
2019/04/01(月) 20:17:52.98ID:JaNWOXQ3
普通DB化すると同じ手順だと毎回同じに間違えるはず。
だとするなら、DBの棋譜をテキストに吐き出すなどして、チェックしたら?

間違いっぽい分岐見つけたら、正解着手させてその後を対戦させて記譜を
強制的に正しい分岐を学習させるの。そのあとでも間違えて、なかなか治らない
事もあるけど。

これが>>760で書いたドーピング。
0781310
垢版 |
2019/04/01(月) 20:22:42.07ID:JaNWOXQ3
>>774のリスト。パブリックドローはFJT分だけだった。
2種類あって、もう一つは代表的な序盤定石から適度に着手した後で、
残り30手を読み切ったリストで、ドローとは限らなかった。

遡りチェックの時にあり得ない奴があったので、気が付いた。

試しにZebraで並べて評価値見てみたら、中盤で結構変な手順になっていたりする。
まあ記譜の足しにはなるかなぁという感じ。
0782535
垢版 |
2019/04/01(月) 22:13:58.23ID:58wx0Qom
手動でDB書き換えるのは工数的に地獄の苦しみなのですw
まあ、負けた棋譜だけ水増ししてDBに登録するのはあるかも?
0783535
垢版 |
2019/04/01(月) 23:15:44.55ID:58wx0Qom
自動対局プログラムに手を入れて棋譜のファイル名に黒が勝ったか白が勝ったか入れるようにしました。
0784535
垢版 |
2019/04/02(火) 20:42:13.63ID:IVxd4rzM
やっぱ手動で棋譜を訂正するのはムリゲーだなぁ。
棋譜訂正も自動化すべきかな。
うーん
0785310
垢版 |
2019/04/02(火) 20:42:16.77ID:BP3gZfVl
そうか。オセロだとある程度定石はあるし、ZebraやEdaxで並べれば
終局スコアの予想はできて、間違いが見つけやすいけど、囲連星では
そうはいかないですね。

途中で変な手を打つのは、恐らく記譜が足りていないからではないかと
思います。オセロでもドーピングやらないで純粋に自己対局学習だけで
やった場合、1万〜10万対局くらいは必要かなと思っています。
0786535
垢版 |
2019/04/02(火) 22:11:14.64ID:IVxd4rzM
勝った棋譜水増しするのと負けた棋譜水増しするのどっちがいいんだろ?
おんなじ割合で水増ししたら意味ないかもw

とりあえず負けたほう増やすか
0787535
垢版 |
2019/04/03(水) 22:07:38.48ID:+wdY9CJ5
とりえあず、負けた棋譜を100倍にして序盤DBに注入してます。
定型パターンにはまりやすいLV2にはかなり効果あるのですが
変幻自在なLV3には今一つみたいです。
0788535
垢版 |
2019/04/04(木) 20:30:39.10ID:QG8xddyq
負けた棋譜だけ増やすとバランス崩れるかも?と思い始めました。
うーん。
0789535
垢版 |
2019/04/04(木) 22:06:44.84ID:QG8xddyq
やはり大量、多種類の棋譜が欲しい。
棋力が下がっても計算量を抑えて、速度を稼ぐ方向で行くべきか?
0790535
垢版 |
2019/04/04(木) 22:52:58.55ID:QG8xddyq
2手読みだったところを1手読みにしたら大分早くなったけど、やっぱ棋力は落ちるな。
これはちょっと採用するか迷う。
0791535
垢版 |
2019/04/05(金) 22:13:28.38ID:6lxF2ret
ん、なんか白番が絶望的に負けてる。
なんか評価値の計算まちがえたか?
0792535
垢版 |
2019/04/05(金) 22:26:12.15ID:6lxF2ret
それとも棋譜水増しで入れた序盤DBが狂ったのかな?
0793535
垢版 |
2019/04/06(土) 00:52:52.21ID:Uoezh941
白番で、相手が初手端のほうに打ってきたときに、盤が狭くなって序盤DBどおりに打つのが悪くなるみたい?

とりあえず、白番持った時に相手が初手天元付近に打たなかったときは、中央寄りの斜めに打つように変えた。
これで少しでも緩和されるといいな。
0794535
垢版 |
2019/04/06(土) 01:11:14.50ID:Uoezh941
水増しした分の棋譜はいったん削りました。
確率の理論を根底から壊してしまうみたいなので。
やっぱ遅いようでもじっくり行くのが確実っぽい。
0795535
垢版 |
2019/04/10(水) 20:58:12.46ID:x47ianNw
今、極端な水増しはやめてほどほどの水増しにしてます。
新しい棋譜が古い棋譜の1〜2%程度になるくらいに水増ししてます。
0796310
垢版 |
2019/04/10(水) 23:44:48.34ID:R42Zvvs5
どんより…
バグを見つけてしまった。

今ある記譜50万件の数%くらいに間違いがありそう。
直管的には、全データに対して読み切り処理を噛まさないと間違いの有無すら確認できない。
多分、逆順探索処理を簡素化した時にバグが入り込んだのだと思う。
暇なのでログ書き出しの処理を作ってたら見つかった。

うぐぐ。

もうしばらく様子を確認して、他にもバグが無いか見た上で…どうしよう。
一旦記譜をリセットして作り直すべか。
0797310
垢版 |
2019/04/10(水) 23:48:12.99ID:R42Zvvs5
と、書いた直後に気が付いた。
ログの側のバグだった事に…

お騒がせ様でした。
0798535
垢版 |
2019/04/15(月) 23:21:56.01ID:+vRjXb2F
いままで8対称中4対称で学習してましたが、のこりの4対称も学習させてみることにしました。
8対称すべてはメモリに収まらないので半分づつ学習させます。
0799535
垢版 |
2019/04/16(火) 20:45:49.68ID:+pjTjN+Q
178勝192敗 勝率 48.1%
8対称、勝率あんまり上がらないですね。
うーん、うち筋は悪くないと思うんだけど。
なにかブレークスルーが欲しいですね。
0800535
垢版 |
2019/04/16(火) 21:15:27.46ID:+pjTjN+Q
2手読みに戻したら勝率上がるかな?
うーん。
0801535
垢版 |
2019/04/16(火) 22:50:30.94ID:+pjTjN+Q
まじでZen2スリッパ欲しい。
0802535
垢版 |
2019/04/17(水) 20:33:59.36ID:5Verubd2
154勝178敗 勝率46.4%
2手読みに戻したらかえって勝率さがりましたね。
誤差の範囲かもわかんないですが。
0803535
垢版 |
2019/04/18(木) 22:39:13.48ID:Bi+APi3V
お、素晴らしい勝ち方した。
必勝形のダブルリーチ
これほど少ない石数でこの形を作れるとは…

(;SZ[19]
;B[jj];W[kj];B[jk];W[li];B[ji];W[lh];B[kl];W[jm]
;B[ih];W[lk];B[ig];W[jf];B[il];W[ik];B[hk];W[if]
;B[im];W[ij];B[hj];W[lg];B[ii];W[in];B[ik];W[jn]
;B[ij])
0804535
垢版 |
2019/04/19(金) 21:34:26.27ID:NHUtwCQF
ふーむ、いままで勝率のいい手かつ沢山選ばれた手を優先的に選択するように序盤DB周りを組んでいたのだけど、
それだと手が固定されてしまうかなと思って勝率のいい手かつあまり選ばれてない手を優先的に選ぶようにしたら

147勝 220敗 勝率40.1%

これは誤差とは言えないほどの差ですねぇ。
0805535
垢版 |
2019/04/23(火) 20:49:51.89ID:rLrZWc/a
205勝 246敗 勝率45.5%
棋譜取り&序盤DBへの取り込みを継続したら少し勝率戻りました。
50%付近まで頑張ろう。
0806535
垢版 |
2019/04/24(水) 19:17:49.68ID:DcbjCIK3
なかなかの快勝だった
こういう風に毎回打てるといいんだけど

(;SZ[19]
;B[jj];W[ij];B[ki];W[ii];B[ik];W[ih];B[jh];W[ji]
;B[kj];W[jg];B[kh];W[if];B[hj];W[ig];B[lk];W[jk]
;B[jl];W[hk];B[kk];W[km];B[hl];W[gk];B[gm];W[fn]
;B[kg];W[kf];B[lf];W[mg];B[lg];W[gi];B[le];W[lh]
;B[mh];W[mi];B[li];W[ie];B[id];W[md];B[lh];W[nd]
;B[lj])
0807535
垢版 |
2019/04/25(木) 23:58:43.25ID:DQ0GFyMT
192勝 212敗 勝率 47.5%
棋譜取り、序盤DB更新、DNN更新だけでは50%の壁は突破できないかもな。
0808535
垢版 |
2019/04/26(金) 20:16:53.04ID:F5QY8KS+
130勝 195敗 勝率40.0%
ん、勝率かなり落ちた。
何が起きた?
0809535
垢版 |
2019/04/27(土) 23:11:18.27ID:zszgzhMg
ん、序盤DB壊れたか?
0810535
垢版 |
2019/04/27(土) 23:25:35.40ID:zszgzhMg
序盤DB外したほうが勝率あがるかも?
0811310
垢版 |
2019/04/30(火) 03:48:07.73ID:RyvRJxq2
どもです。
ひたすら記譜作成中に、やっぱり暇なので、記譜管理周りをリニューアルしていたら、
結局記譜ファイルの形式を大きくいじってしまい、かなり全面的なリニューアルに。
そしたら、あちこちバグが出て、結局記譜作成より新作デバッグ優先に(汗

>>809-810
序盤DBは、記譜溜めていくと途中で弱くなるけど、いずれ直ってくるものだと思う。

正しい手順があるとして、1回間違えると、間違えた側が負ける記譜ができる。
負ける事で、その手は選ばれない事が記譜に登録される。

しかし、探索の精度が低い状態で記譜作ると、2回間違える記譜ができて、本来
負けのルートで勝ってしまう。これが記譜に登録されると、この2回目の間違いが
訂正されるまでは勝率が下がる。

どのくらいで直るのかは、直接なのか評価関数経由の間接なのかなど、フィード
バックのかかり方で変わってくる。直接的なら割とすぐに直るはず。

自分のは間接なのでかなり時間がかかりそうで面倒なので、Zebraで2つ目の間違い
箇所を特定して、そこまで着手した後探索をする棋譜を作って、かなり強制的に直し
ちゃった。

序盤は大体良いのだけど、確定値で学習している箇所と、序盤DBで学習している
箇所の境目で、確定値が足りないまま過学習になっている評価値ステージがあって
そこらあたりで大抵間違える(汗
0812535
垢版 |
2019/05/02(木) 21:41:13.81ID:uWEPsgK5
天頂の囲碁を使って9路を徹底的に調べたら面白いかも
ま、やらないけどね
0813535
垢版 |
2019/05/04(土) 19:08:14.82ID:wk+bg2Ip
GWは何もしませんでした(過去形)
0814310
垢版 |
2019/05/04(土) 22:14:44.08ID:fzBCFIZ6
新作の探索周りを、例のバグ付のやつにしたら、案の定バグ発生。
色々と入れ替えながらバグ発生箇所を特定に成功しました。
が、なぜそこでバグっているのかわかりませんorz
まともに動いたから良しとするしかない感じ。

あと2か所改良したいところがあります。
あと2日では無理だなぁ。
0815310
垢版 |
2019/05/04(土) 22:17:34.69ID:fzBCFIZ6
と思ったら、またいきなりバグ発生。
原因は複数ありそうですorz
0816310
垢版 |
2019/05/05(日) 20:55:26.72ID:GksqIPP4
原因判明。アホなミスでした。
やっぱり当初の置換表に変なデータが登録されているのが正解だった。

残した課題のうち1つもできた。
0817310
垢版 |
2019/05/05(日) 23:26:28.04ID:GksqIPP4
最後の課題は、学習の速度アップを目論みましたが、まったくダメでしたorz

さて、何をしよう。
0818535
垢版 |
2019/05/06(月) 19:55:01.10ID:uIBlT68N
長連対策そろそろしなければ…
0819535
垢版 |
2019/05/06(月) 20:33:01.71ID:uIBlT68N
序盤DBがおかしくなってたので、序盤DBの手の採用基準をもとに戻しました。
あと中盤終盤でDNNの値の比重を大きくしました。
0820535
垢版 |
2019/05/07(火) 22:40:16.02ID:hqvfZJCN
59勝 62敗 勝率48.8%
なんとか勝率50%弱まで戻せました。
0821535
垢版 |
2019/05/08(水) 21:43:00.75ID:c2FYdM3E
来たっ
262勝 248敗 勝率51.4%
誤差の範囲かもしれないけど嬉しいっ
0822535
垢版 |
2019/05/08(水) 21:52:12.23ID:c2FYdM3E
そろそろ白番も着手していくか、もうちょっと黒番を突き詰めるか。
悩ましいい。
0823535
垢版 |
2019/05/09(木) 20:06:42.08ID:w95MoSGU
ありゃ、わずかな棋譜を序盤DBに加えただけなのに勝率めっちゃさがった
149勝 202敗 勝率 42.5%

そんなに微妙なものではないと思ってたが??
0824535
垢版 |
2019/05/09(木) 20:28:40.86ID:w95MoSGU
棋譜さらっと見てみたけど序盤DBが壊れたって感じでもないなぁ
実は微妙なものだったのか、誤差の範囲なのか?
0825535
垢版 |
2019/05/09(木) 22:32:58.01ID:w95MoSGU
なんか誤差の可能性が微レ存
0826535
垢版 |
2019/05/10(金) 21:38:12.73ID:5KPSEUAN
163勝 202敗 勝率44.7%
±5%くらいは誤差ででるのかもしれないなぁ
0827535
垢版 |
2019/05/10(金) 21:42:26.07ID:5KPSEUAN
こんな時統計の知識があれば真の勝率は○○%〜××%の間とか論じられるんだろうなぁ
0828535
垢版 |
2019/05/11(土) 11:49:39.90ID:fuy9y7gB
うお、すげぇ

179勝 149敗 勝率54.6%

この数字をどう解釈すればいいのか…
0829535
垢版 |
2019/05/11(土) 17:43:16.57ID:fuy9y7gB
まだ勝ってる。
222勝 194敗 勝率53.4%

そろそろ棋譜反映させるか。
0830535
垢版 |
2019/05/11(土) 22:40:54.90ID:fuy9y7gB
長連対策、完全じゃないけど簡単な判定入れてみた。
さてどうかな?
0831535
垢版 |
2019/05/12(日) 10:03:08.61ID:7HaK6dtp
かなりいい
対LV2 白番はもうちょっと勝ちたいかな

対LV1
黒番 61勝 9敗 勝率87.1%
白番 49勝 4敗 勝率92.5%

対LV2
黒番 57勝 0敗 勝率100.0%
白番 10勝 28敗 勝率26.3%

対LV3
黒番 25勝 16敗 勝率61.0%
白番 13勝 28敗 勝率31.7%
0832535
垢版 |
2019/05/12(日) 18:17:47.41ID:7HaK6dtp
ふむ。かなりいい。
一回止めるか。

対LV1
黒番 90勝 10敗 勝率90.0%
白番 64勝 6 敗 勝率91.4%

対LV2
黒番 78勝 0敗 勝率100.0%
白番 14勝 33敗 勝率29.8%

対LV3
黒番 39勝 23敗 勝率62.9%
白番 19勝 40敗 勝率32.2%
0833535
垢版 |
2019/05/12(日) 18:46:46.62ID:7HaK6dtp
ここらでドカンとブレークスルーが欲しいところだ。
0834535
垢版 |
2019/05/13(月) 20:57:06.68ID:rQSLa/J8
お、すごい
249勝 204敗 勝率55.0%
0835535
垢版 |
2019/05/13(月) 21:55:46.89ID:rQSLa/J8
LV3 vs LV3の黒番の勝率が65%くらいだったはずだから、黒番で勝率70%位いけばLV3越えといえるかも
0836535
垢版 |
2019/05/13(月) 23:06:54.58ID:rQSLa/J8
地味な学習も必要だとは思うけどアイディア一発でドカンと強くなるのも諦めきれない。
0837535
垢版 |
2019/05/14(火) 21:30:20.81ID:kAvibZwR
ん、なんかDNN学習させたらうち筋はそんなに悪くなってないと思うんだけど勝てなくなったな。
なんだろう?
0838535
垢版 |
2019/05/15(水) 21:00:42.40ID:ce+jhpkV
173勝 176敗 勝率 49.6%
対戦してみたけど思ったほど負けてないな?
0839535
垢版 |
2019/05/15(水) 21:22:39.79ID:ce+jhpkV
初期アルファ碁のようにポリシーネットとバリューネットに分けてみるか?
0840535
垢版 |
2019/05/15(水) 21:35:41.77ID:ce+jhpkV
そこそこの精度でも軽い評価関数は結構ほしいかも。
モンテカルロで役に立つし。
0841535
垢版 |
2019/05/15(水) 22:07:54.43ID:ce+jhpkV
というわけで、今使ってるDNNより大幅に簡素化したネットワークで学習させてみる。
データは同じ。
0842535
垢版 |
2019/05/15(水) 22:45:22.49ID:ce+jhpkV
あれ、大幅に簡素化したのに学習時間が思ったより短くならないな。
10倍速くらい早くなると思ってたのに3倍速くらいだ。
0843535
垢版 |
2019/05/15(水) 23:06:58.43ID:ce+jhpkV
更に簡素化して10倍速くらいにしました。
ちょっと簡素化しすぎかも?
0844310
垢版 |
2019/05/15(水) 23:27:46.15ID:2Iqikd3t
新バージョンで色々プログラム見直し。
探索部は全く改善していませんが、その他の部分が大幅にスピードアップ。
自動記譜作成時のオーバーヘッド(探索以外の時間)がかなり減った。

あとは学習の時間を減らしたい。
0845535
垢版 |
2019/05/16(木) 19:50:22.50ID:bKmJMMur
大きい方のネットワークの損失が3500位なのに対して小さい方のネットワークの損失が5300位。
さて、使い物になるかな?
0846535
垢版 |
2019/05/16(木) 20:26:43.20ID:bKmJMMur
うおお,遅え!
モンテカルロに使おうと思ったらプレイアウト回数かなり減らさなきゃだめだな。
0847535
垢版 |
2019/05/16(木) 20:40:14.63ID:bKmJMMur
一回打ってみたけど打ち筋は決して悪くない。
だが激遅。
だかが300プレイアウトでここまで遅いとは…
0848535
垢版 |
2019/05/16(木) 20:49:50.51ID:bKmJMMur
ん、でも打ち筋がいい。
ブレークスルー来たか??
0849535
垢版 |
2019/05/16(木) 21:05:06.63ID:bKmJMMur
すごいな、こちらの打ち筋は相当改善されたのにLV3がその上を行ってくる。
奥が深い。
0850535
垢版 |
2019/05/16(木) 22:04:27.02ID:bKmJMMur
ん、まだ学習飽和してないみたい。
ジリジリ損失減ってる。
0851535
垢版 |
2019/05/16(木) 22:42:50.95ID:bKmJMMur
LV1と対戦させ始めてみたけど、かえって勝率落ちてるな?
まだ対戦回数少なすぎて結論出すのは早いけど、もっと50連勝くらいするかと思った。

対LV1
黒番 17勝 3敗 勝率85.0%
白番 13勝 3敗 勝率81.3%
0852535
垢版 |
2019/05/17(金) 21:14:13.13ID:Af3ltV5Z
勝率上がってるみたいです。やった!

対LV1
黒番 156勝 15敗 勝率91.2%
白番 109勝 8敗 勝率93.2%
0853535
垢版 |
2019/05/17(金) 21:17:20.41ID:Af3ltV5Z
小さいネットワークの損失も5180くらいまで減ってます!
次は本丸、LV3と決戦や!
0854535
垢版 |
2019/05/17(金) 22:31:13.53ID:Af3ltV5Z
対LV3 黒番
47勝 34敗 勝率58.0%

ふーむ、まあ悪くないけど、正直もっと期待していたw
400〜500戦くらいはしないとまだ結論は早いけど。
0855535
垢版 |
2019/05/18(土) 01:00:18.55ID:NdCkwblz
ほほう、6割行った。
120勝 80敗 勝率60.0%
0856535
垢版 |
2019/05/18(土) 16:28:24.45ID:NdCkwblz
291勝 231敗 勝率55.7%
ふーむ、まあ悪くないけど。
最終的には対LV3黒番勝率 70% を目指したい。
0857535
垢版 |
2019/05/18(土) 21:21:56.33ID:NdCkwblz
そういえば、勝率ばかり気にして肝心の棋譜をあまり見てなかったな。
どんな負け方してるのかちゃんと把握せねば。
0858535
垢版 |
2019/05/18(土) 22:11:34.39ID:NdCkwblz
ふーむ、必敗を避けるルーチンに若干バグがあるな。
0859535
垢版 |
2019/05/19(日) 07:21:38.98ID:GRYTxzHT
GPU使いたいなぁ。
せっかくいいの買ったんだから。
0860535
垢版 |
2019/05/19(日) 07:52:25.50ID:GRYTxzHT
ライフゲーム囲碁も平行で開発しようかなぁ。
アルファゼロアルゴリズムが心のどこかで捨てきれない。
0861535
垢版 |
2019/05/19(日) 13:54:34.49ID:GRYTxzHT
ライフゲーム囲碁 コード書き始めました。
ルール実装が結構効率的な奴思い付いて、1000万プレイアウト/s位出ました。

並行でやるっつっても計算資源が問題だなぁ。

囲連星はアイディアないしちょっとお休みかなぁ。
0862535
垢版 |
2019/05/19(日) 17:10:04.89ID:GRYTxzHT
GUIがないと不便だなぁ。うーん。
0863535
垢版 |
2019/05/21(火) 00:59:34.87ID:rSRUkqQW
うお、ついに人間(俺)に勝った!
内容的にも文句ない勝ち方だ!

(;SZ[19]
;B[jj];W[ji];B[ii];W[ih];B[ki];W[jh];B[kk];W[kh]
;B[lj];W[ij];B[hi];W[hk];B[hh];W[lg];B[gl];W[mg]
;B[gg];W[ff];B[gk];W[gj];B[ll];W[mm];B[fj];W[fi]
;B[gi];W[hj];B[hl];W[jk];B[ik];W[hj];B[gj];W[gf]
;B[gm];W[gh];B[fn];W[fh];B[lh])
0864535
垢版 |
2019/05/21(火) 01:06:56.53ID:rSRUkqQW
ここまでくると囲連星はいったん公開してもいいかもな。
本当は白黒総合勝率でLV3に勝ってからが理想なんだけど。
あとDBのファイルサイズでかいんだよなぁ。
0866535
垢版 |
2019/05/23(木) 20:03:18.47ID:boQDU2Sa
反応がなくて寂しい。。。
まあもともと過疎スレだからしかたないか。
0867310
垢版 |
2019/05/25(土) 01:28:48.60ID:rX0QQhRb
すんまそん。
ダウンロードしたけど、記譜作成中なので、CPU食いたくなくて(汗
0868535
垢版 |
2019/05/25(土) 21:14:03.65ID:LKgjurKe
囲碁ディープラーニングプログラミングという本があったので買ってみた
0870535
垢版 |
2019/05/25(土) 22:44:29.26ID:LKgjurKe
C#からC++を呼び出すの結構難しい。
マネージドコードとアンマネージドコードがどうたらとか、、、
0871535
垢版 |
2019/05/27(月) 14:54:14.96ID:6xYMMPUB
AMD Ryzen 3900来た
0872535
垢版 |
2019/05/27(月) 17:52:37.02ID:8VbKHTBW
囲碁ディープラーニングプログラム読んでるけどすっごい目が滑る
でも12章のactor critics法というのが面白そうで頑張って読みたい
0873535
垢版 |
2019/06/01(土) 23:30:05.61ID:bijpxRGI
俺のマザーボードRyzen3000シリーズに対応しないらしいorz
ショック
0874535
垢版 |
2019/06/02(日) 18:07:27.02ID:rgij2qjY
はぁ〜だめだあぁ
目が滑る
頭に入ってこない
0875535
垢版 |
2019/06/02(日) 21:33:07.07ID:rgij2qjY
うお、betago(>>868の本のプログラム)動いた。
そして意外と強い。
0876535
垢版 |
2019/06/02(日) 21:38:17.03ID:rgij2qjY
ん、終局の仕方がわからん。
終局は実装されてないのかな?
0877名前は開発中のものです。
垢版 |
2019/06/02(日) 21:42:02.90ID:pCuEsXAG
いまからやってみるか
0878310
垢版 |
2019/06/04(火) 01:18:15.20ID:11K0AF4X
強化学習本興味あります。
棋譜作成がいまいち上手く行っていないので。
0879535
垢版 |
2019/06/04(火) 21:25:33.03ID:eotmjR11
くそう、時間が欲しい。
金さえあればニートになるのにww
0880535
垢版 |
2019/06/05(水) 21:45:28.39ID:tAUB+cOz
これから仕事が忙しくなりそうな予感。
まあさすがに土日は休めるだろうけど。
0881535
垢版 |
2019/06/08(土) 18:42:48.95ID:bTp76tLI
うおお、目が滑りまくりorz
一日無駄になったorz
0882535
垢版 |
2019/06/08(土) 21:38:02.44ID:bTp76tLI
目が滑るのは取り組み方が間違ってる証拠。
0883名前は開発中のものです。
垢版 |
2019/06/10(月) 12:52:10.55ID:/Ra7JNmg
囲碁は完全に人工知能に負け人間が追いつくことはないとおもうが。
これや将棋は微妙な線で、人間に勝ち目あるかもしれん。
囲碁より勝ち方、有利のさせ方が分かりやすい差。
人工知能なしの人間技で、人工知能に勝てる方法あるんじゃないかと。
0884名前は開発中のものです。
垢版 |
2019/06/10(月) 17:27:02.16ID:sKxIYoYq
大人も子供も白熱!最新ゲーム「ノッカノッカ」が面白い
https://ima.goo.ne.jp/column/article/5290.html
ビビットカラーを使ったポップなデザインの二人用ボードゲーム「ガブル」
http://boardgame-kikou.blog.jp/archives/9311305.html
LOGY GAMES ボードゲームカタログ
http://www.logygames.com/index.html#catalogue
オシャレで簡単、だけど深いボードゲーム
http://sweetint.com/ic/tinttile-game
コンポーネントに酔いしれて、戦略にゆったり溺れる「箱庭の国」
http://sake.saloon.jp/dojin_miniaturized-world/
『すずめ雀』初心者でも本格的な駆け引きを楽しめるミニマル麻雀ゲームが登場
https://www.inside-games.jp/article/2018/05/02/114450.html
エクストリーム将棋の企画から販売まで
https://nakagawa-hands.com/digital-fabrication/ex-shogi_a2z/
0885535
垢版 |
2019/06/11(火) 18:15:44.55ID:a3oKL+Tm
「来た!」「16コア来た!」「メイン16コア来た!」「これで勝つる!」
0886535
垢版 |
2019/06/11(火) 22:20:28.87ID:R+B8a+a7
囲碁ディープラーニングプログラミング相変わらず目が滑ってるんだけど、
しつこく食らいついてたらすこしずつ目が滑らなくなってきてる。
何とかものにしたい。
0887535
垢版 |
2019/06/12(水) 19:47:45.91ID:UjRskMNa
githubのリポジトリbetagoとは別に囲碁ディープラーニングプログラミング用のやつがあんのか!
気が付かなかったぜ!
これで勝つる!
0888535
垢版 |
2019/06/13(木) 21:23:37.11ID:ip5cHIAR
囲碁ディープラーニングプログラミングのgithubのコードいいかも。
マルチスレッドにも対応してるっぽいし。
これはかなり期待できる。
0889535
垢版 |
2019/06/13(木) 21:36:37.70ID:ip5cHIAR
GPUが使えてないみたいだな。
tensorflow-gpuうまく入ってないみたいだ。
0890535
垢版 |
2019/06/13(木) 21:38:46.69ID:ip5cHIAR
それにしてもZen2 スリッパが欲しい。
16C32Tじゃ足りない。
64C128Tが欲しいww
0891535
垢版 |
2019/06/14(金) 21:40:47.35ID:AD5EB04u
ん、27000回学習を回した時点から過去のAIに対する勝率が10%〜30%位しか行かなくなったみたい。
なぜ?
こんなことってあるのか?
0892535
垢版 |
2019/06/14(金) 22:09:53.32ID:AD5EB04u
ん、学習したネットワークと対戦する方法がわからんなぁ。
web_demo.pyあたりで行けそうな気もするが…
0893535
垢版 |
2019/06/15(土) 17:55:00.43ID:ANVzDRfZ
human_v_bot.pyというのでランダムAIと対戦できるようなので、これをちょっといじれば自作AIと対戦できそう。
0894535
垢版 |
2019/06/15(土) 19:41:51.27ID:ANVzDRfZ
ヤバイ、待ってる時間がじれったい。
やはり zen2 スレッドリッパー買うしか…
0895535
垢版 |
2019/06/15(土) 21:21:58.56ID:ANVzDRfZ
LifeGameGoのルールを早く移植したいけど、もうちょっとgithubコードの感触つかんでからかな。
0896535
垢版 |
2019/06/15(土) 22:03:51.50ID:ANVzDRfZ
ふーむ、まじで>>891の状態から抜け出せないな。
ネットワークが小さすぎるんだろうか?
0897535
垢版 |
2019/06/16(日) 19:35:53.70ID:OMA3ZwQu
あかんな、遅すぎる。
うーん。アルファゼロに幻想持ちすぎかも知れんな。
0898535
垢版 |
2019/06/16(日) 20:37:51.38ID:qjgvbRbv
囲碁よりもシンプルなLifeGameGoならもっと速く学習できるという可能背もありますが…
とりあえず、GPUを使えるように頑張るのが先かなぁ?
0899310
垢版 |
2019/06/17(月) 17:09:51.93ID:pTM6WQ3W
Surface Pro2の液晶が割れたorz
仕事で使うPCなので慌ててPro6の発注をかけました。
一応コア数2倍の4コア8スレッド、メモリーも16Gになる予定。
そろそろスピードの限界を感じていたので、痛しかゆしなところ。

ようやくIntelの呪縛から解放されるAVX2対応のCPUがAMDから出るというのに、
専用新型PCが遠のきました。



どのくらいスピードアップするかなぁ…。
0900535
垢版 |
2019/06/17(月) 19:55:14.11ID:KSoga8dR
仕事で使うpcが自腹なんかよ?
乙です
0901535
垢版 |
2019/06/21(金) 20:05:05.51ID:wxbtZaxz
なんかちょっとモチベが落ちてます。
せっかく週末なのになぁ。
0902535
垢版 |
2019/06/22(土) 20:40:40.51ID:s675JLMo
あああああ、だめだ完全に気持ちがしぼんでしまった。
0903535
垢版 |
2019/06/23(日) 23:02:35.16ID:wqGRreNQ
つかやっぱpythonはちょっと厳しいんだよなぁ…
0904310
垢版 |
2019/06/25(火) 22:00:54.87ID:i36dK7DH
あ、会社のPCです。流石に性能2倍なので、買うモチベーションが下がったのです。

現在液晶の表面パネルバキバキで、タブレット機能止めて、
セロテープで補強してだましだまし使ってますが、発熱によって
内部が歪んじゃっているみたいで、通常状態でも液晶が湾曲してます。


で、将棋の探索の深さが意味不明だったので、色々考えていましたが、
なんとなく想像がついてきました。多腕バンディット使って、反復深化と
絞り込みを行っているのではないかと思います。

現状中盤探索の速度がいまいち遅く、シングルプローブカットすると
何故かさらに遅くなるという状態。棋譜作成メインだったので、あまり
気にしていなかったのですが、新しいPC来たらちょっとトライしてみよう
かなと思っています。
0905310
垢版 |
2019/06/28(金) 22:23:55.68ID:jdIE39If
新PCセットアップ中。

前回思いついた中盤探索ロジック。具体的に実装を考え始めたら、
MCTSでいいじゃんということに(汗

これからVisual Studioのダウンロードです。
0906名前は開発中のものです。
垢版 |
2019/06/29(土) 09:41:43.34ID:aAhzQFUl
セットアップ完了して、開発環境の移行も終わりました。
VS2017→VS2019でエラーチェックが厳格化したものがあったようで、ソース修正。
Win8→Win10でコマンドプロンプトがなんか変わって、CTRL-Sの動作がよくわからない。
などなど、細かい点はいくつかありますが、速度的には思いのほか効果が出ていて、
ほぼ倍速くらいな感じです。並列のオーバーヘッド増加分を、クロック他CPU単体の
パフォーマンスアップで吸収していると思われます。
0907310
垢版 |
2019/06/29(土) 09:42:10.63ID:aAhzQFUl
↑は僕です。
0908535
垢版 |
2019/06/29(土) 17:06:05.94ID:6alt1Zxx
倍速はなかなかいいですね。おめでとうございます。
俺も頑張らねば。。。
0909535
垢版 |
2019/06/30(日) 17:26:00.32ID:5SElYd7b
逃げちゃだめだ、逃げちゃだめだ、逃げちゃだめだ(pythonから)
0910535
垢版 |
2019/07/04(木) 18:51:35.21ID:JLZZWsF4
VMWareだとどうにもtensorflow-gpuが使えないのでネイティブubuntuを入れるか迷い中
SSD丸ごと1個あけて別ドライブにインストールすればwin10とも干渉しないはず…
0911535
垢版 |
2019/07/05(金) 20:11:11.37ID:gv5AG18i
一応ubuntu入ったっぽい。
でも環境構築する根性が湧いてこない。
あしたにするか。。。
0912535
垢版 |
2019/07/06(土) 17:14:44.78ID:YqSGwJgi
あかん、ubuntuすっごい固まるorz
今日だけで4回フリーズしたorz
0913535
垢版 |
2019/07/07(日) 19:22:27.22ID:8kGyRN1E
ここまで固まられるとネイティブubuntuは正直、撤退かなぁ
うーん。惜しいなぁ。
0914535
垢版 |
2019/07/07(日) 22:36:19.30ID:8kGyRN1E
VMWareのubuntuは固まらないんだよなぁ
バージョンが違うからかなぁ
0915535
垢版 |
2019/07/08(月) 23:58:39.11ID:J+Oysvfm
50万局学習させても知性とは程遠い打ち筋orz
絶望した!
0916535
垢版 |
2019/07/12(金) 20:02:35.26ID:5KSDfXOV
さんれんきう
0917535
垢版 |
2019/07/14(日) 01:02:14.40ID:BHfYEZqG
AQZという囲碁AIが50万局の学習でプロに勝ったそうな。
なんで俺が試したプログラムとそんなに違うんだ?
0918535
垢版 |
2019/07/15(月) 07:10:16.79ID:U2als8ec
徹夜してしまった
反省(反省するとは言っていない)
0919535
垢版 |
2019/07/21(日) 20:03:14.96ID:E/xzPLNe
二進も三進もいかないorz
しばらく休憩するか…
0921535
垢版 |
2019/07/28(日) 15:53:29.60ID:afiNgtjO
すっかりさぼってしまっています。
0922310
垢版 |
2019/07/31(水) 22:58:56.92ID:RoaGFb2p
地味に改良&棋譜作成継続中。

評価値で黒番+2、白番−1くらいの差が生じているので、
評価関数にバイアス項を導入しました。

他、若干の高速化ネタ。

中盤探索でProbcutすると遅くなる問題を回避。本格修正するか悩み中。
というか、そもそもZebraより圧倒的に遅い原因がわからん。
0923535
垢版 |
2019/08/04(日) 00:47:49.68ID:kSURYkNt
ようやっと>>920のプログラムにライフゲーム囲碁のルールを実装しました。
python 超つらい…
0924535
垢版 |
2019/08/04(日) 01:56:43.25ID:kSURYkNt
CPU使用率10%か。。。切ない。。。
0925535
垢版 |
2019/08/04(日) 20:02:48.59ID:kSURYkNt
計算がある程度進むと必ずOSごとフリーズするorz
きょうびOSごと落ちるってどういうことだよ?
0926535
垢版 |
2019/08/04(日) 20:18:18.16ID:kSURYkNt
これはもうアルファゼロには手を出すなという神のお告げかもorz orz orz
0927535
垢版 |
2019/08/07(水) 20:34:05.86ID:cRW9S7xJ
そもそも、気温が高すぎて留守にしてる最中計算回しっぱなしにするの怖いってのもあるんだよなぁ
0928310
垢版 |
2019/08/10(土) 21:39:26.19ID:iTdjAaDm
中盤探索を改良。

一つは、普通に無駄な処理を見つけて修正。

もう一つは、評価値の計算に差分計算を取り入れました。
今まで並列処理で差分ってどうやるんだろうと思っていましたが、
単にDepth=1のところ(次がLeaf)で、順次評価値計算するのを
差分すればよかったのね。

この2つで、中盤探索で2手ほど深く読めるようになりました。
0929535
垢版 |
2019/08/13(火) 19:47:02.79ID:wzsq2qR8
今、実家に帰省してるんですが>>865のAIを動かしてみようとしたけどdllが認識されませんね?
何が悪いんだろう?
0930310
垢版 |
2019/08/15(木) 23:44:11.68ID:NhTCTcJa
小人閑居して不善をなす…。

思い切って、不要そうに思える棋譜をバッサリ削除してみました。
削除しすぎたかも。

いろいろ細かく修正と、デバッグ用表示の改良。

とかやっていたら、丸1日近く動かしたところで、なぜか急激にパフォーマンス低下。
もともと空きが少なかったSDDが一杯になっている…。とはいえ30Gはあったはず。
再起動していたらもとに戻った。原因不明。

対症療法で不要プログラムアンインストールしていたら、使っているOfficeを間違えて
アンインストールしてしまった。

HDD一杯が原因なのか、評価値のファイルが壊れていた。
ギリギリ間に合ってバックアップから復旧できた…と思う。
0931310
垢版 |
2019/08/16(金) 14:28:22.00ID:MY5mY5kZ
SDD一杯の犯人判明。
セキュリティー対策ソフトの監視対象管理DBのファイルが合計で400G越え(汗
ところが、管理者権限ないと停止できず、ファイル掴んでいるため削除できない。
今日は管理者休暇中。

logファイルを頻繁に追記しすぎて、ファイルサイズ変化する都度DBファイルが
作られているのではないかと想像。棋譜バッサリ削除して、一気に遡り探索やり直し
していて、これまでと比較にならないペースと数で追記処理が起きているので、
その影響の可能性が。


Officeは再インストールしてもらったけど、何故かセキュリティ解除キーの入力ができない。
来週月曜日は出張なので、来週火曜日までだましだまし行きます。

古い方のPCがまだ生きているので、Excel作業はそちらでやる事にしました。
0932535
垢版 |
2019/08/23(金) 19:05:38.98ID:KljXhF7+
AQZ敗退か
残念
0934310
垢版 |
2019/09/05(木) 22:24:16.41ID:NIzTzKyA
棋譜の作り方全面改訂。
分岐のチェックで、以前は全ての分岐を棋譜化していたけど、今度のは軽い探索で
怪しい評価値(同一評価値〜−4程度まで)のものだけ棋譜化するようにして、
棋譜数を大幅節約。学習が楽になるという算段です。

棋譜づくりが順調になり暇ができると、細かく気になっていた、どーでもよいところを
改良し始めて、バグとりで棋譜づくりが滞るという悪循環orz


よくよく考えたら、PCのパワーアップしたので、またDCNNトライとかしてみようかな
とか思い始めた。tiny-dnnしか選択肢無いんだけど。
0935535
垢版 |
2019/09/11(水) 20:42:08.54ID:EGEM/7RV
googleがminigoというオープンソースやってるらしいですね。
最近さぼりっぱなしだったけど、ちょっと見てみるか。
0936535
垢版 |
2019/09/12(木) 19:49:22.62ID:qOi8eRBu
すげー難しそう
まだちゃんと見てないけど
0937310
垢版 |
2019/09/17(火) 23:33:38.68ID:KoOw8EHX
相変わらずしこしこ棋譜作って学習繰り返してます。
もう無いだろうと思いつつ、ちょこっとした事に気づいて修正を繰り返してます。

置換表のハッシュ関数を改良。
格納効率が結構良くなったので、衝突が減ったはず。

終盤探索の時にBOOK(確定)も参照して余計な探索を減らしました。
基本遡りで確定させているので、運が良い時に滅茶苦茶早くなりました。
無い時は今まで通り(汗

学習データが不足しているのではないかと、置換表内に残っているスコアが確定
した局面FIFOで貯めて、折々に学習に回してみました。1回探索で100〜500件
程度。これをFIFOで500万件。棋譜に残っていない局面で学習する事で、過学習
が防止できるかなと思っていますが…。

現在、27手確定局面で大体14000件の棋譜とその分岐で合計23万件ほどですが、
まだ棋譜が足りていない感じです。が、件数が増えすぎて手に負えません。
BOOKの確認ができるWindowsアプリ作ろうかと思い始めています。
0938535
垢版 |
2019/09/22(日) 19:52:21.38ID:ctBLCdpw
このまま失踪しそうな感じです。
やっぱアルファゼロは手を出してはいけないかったんや。
0939310
垢版 |
2019/09/22(日) 19:56:33.01ID:x3eDgHtk
DCNNになってから、一般人のPCでは手が出せなくなってるからね。

計算プロセス自体は、NNを極端に単純化したものが線形回帰だと思えば、
NNで生まれた計算ノウハウが流用できますよ。

というか、今の時代、ただのLRでDCNNとほぼ同じ強さ、とかの方がオシャレ
ではないかと思う、ひねくれものの僕。
0940310
垢版 |
2019/09/23(月) 19:34:01.85ID:taOqGsoO
所詮趣味なので、あまり無理せず、やる気になるときにやればよいかと思います。
0941535
垢版 |
2019/09/23(月) 20:58:22.95ID:T5ohU9uM
うーむ、やりたい気持ちはあるのですが、いかんせん難しすぎて…
githubにもっと易しそうなのでてくるまで待つか?うーん。
0942535
垢版 |
2019/09/25(水) 21:31:58.87ID:/O9j0jn/
気温が徐々に下がってますね。
そろそろ計算回しっぱなしにしてもいいかな。
つっても回せるプログラムがないけど。
0944535
垢版 |
2019/10/01(火) 22:13:53.83ID:r/X1idNR
3日くらい計算回したけど全く強くなる気配がないなorz
もしかしたら微妙に強くなってるのかもしれないけどあまりに成長速度が遅すぎる
やっぱアルファゼロは計算時間が半端ないのかも?
0945535
垢版 |
2019/10/01(火) 23:21:06.21ID:r/X1idNR
やっぱアルファゼロはいったん諦めて、囲連星でやったようにモンテカルロAIの棋譜取り&勝率DB作り&教師ありDNNでライフゲーム囲碁やるべきか?
うーむ
0946310
垢版 |
2019/10/02(水) 01:57:09.42ID:FIHYKLNY
DCNN強化学習はマシンパワーが恐ろしいほど必要だからね。
満足できる教師データがそろってから評価関数に使ってみる程度にしないと…。
自由度が高すぎるので、まともな評価関数に収束するまでに、相当な試行回数が
必要なんじゃないかと思う。

自分は棋譜作成をずーっとやっていますが、現在は棋譜作りの目的がBook充実
になりつつあります。なんというか、現在の形はいつの間にかQ学習+ε-Greedy
っぽくなってきています。

アルファ様のお陰で、目標を見失いましたので、手段のためなら目的を選ばない感じ
で、プログラム作る楽しみという方向になっています(^^;
0947535
垢版 |
2019/10/02(水) 22:58:01.64ID:BtKMO/4x
ライフゲーム囲碁、モンテカルロAIの棋譜取り始めました。
ヒューリスティックなしのモンテカルロで1手10000プレイアウトで1局に約1分かかります。
それを16並列で1分当たり約16局採取できる予定。
棋譜の質があまりよくないのが難点ですがとりあえず、これでやってみます。
0948535
垢版 |
2019/10/03(木) 21:37:56.85ID:tdDOcoA1
18257局分棋譜が取れたようです。大体13.2局/分くらい取れるっぽい。
全コア動かすとシングルよりやっぱ少し遅くなるみたいですね。
0949535
垢版 |
2019/10/06(日) 00:55:35.61ID:V0Jk6SKR
DB作成まで来ました。
ライフゲーム囲碁は囲連星と比べてもっと沢山の棋譜が必要になるかもしれません。
オープニングのバリエーション的に。
0950310
垢版 |
2019/10/11(金) 20:52:12.13ID:Tdz7win8
評価関数を変えたくなってきた。
偶数手番と奇数手番の癖が顕著になってきたので、スムージングをしたく
なったのだけど、キーを手番優先にしているので、1手進むと盤面がひっくり
返ってしまい、連続性が無くなってしまう。

キーを黒番優先にして、評価値も黒番サイド(白番の場合は−1を掛ける)に
統一するとスムージングしやすくなる。

ただし、評価関数からBookから、あちこち影響が出る。

そろそろソースの整理がしたくなってきていたので、バッサリやっちゃおうかな。
台風で暇だし。
0951310
垢版 |
2019/10/12(土) 09:18:22.01ID:acZ84t7K
一晩考えてやっぱ辞めました(^^;
単純じゃない。
0952535
垢版 |
2019/10/12(土) 19:26:22.43ID:pRNoi8N2
あ〜なんか情熱が湧いてこないな。
プログラム書くのがすごい億劫。
0953535
垢版 |
2019/10/13(日) 05:54:00.56ID:ZL98wLBj
とりあえず、囲連星のコード流用してDNN学習回せるところまで来ました。
あとはAIプレイヤーのコードを移植すればひと段落かな。
0954535
垢版 |
2019/10/13(日) 07:51:43.32ID:ZL98wLBj
モンテカルロAIとDNNAIで対戦できるところまで来ました。
DNNAIの動きはまあ第一弾にしては悪くない感じ。
0955535
垢版 |
2019/10/13(日) 08:07:20.35ID:ZL98wLBj
パッと見DNNAIには知性の芽生えのようなものを感じる。
勝率に結びつくかは微妙だけど。
0956535
垢版 |
2019/10/13(日) 08:47:17.90ID:ZL98wLBj
勝率に結びついてませんね…。
残念過ぎる…。

寝るか。。。
0957535
垢版 |
2019/10/13(日) 10:43:15.62ID:ZL98wLBj
うーん、ハッキリと弱くなってますね。
ライフゲーム囲碁って昔勝率DB使った時も勝率落ちたし何でだろう?
0958535
垢版 |
2019/10/13(日) 10:48:13.56ID:ZL98wLBj
モンテカルロAIにトリプルスコアで負けてますね〜
かなc
0959535
垢版 |
2019/10/14(月) 19:34:30.99ID:+gotlTkI
ここからどうしていけばいいのかわからんなぁ。
負けるDNNAIで棋譜取りして勝てるようになるのかといえばかなり期待薄。
でもやれることもないし一応やってみるか。
0960535
垢版 |
2019/10/15(火) 23:46:30.99ID:ttnyLWCi
DNNの評価値を得点差から勝率と得点差/81の平均にしたところ
トリプルスコアで負けてたのがダブルスコアになったようです。
まだ負けてるけど。

囲碁では得点差で評価値を付けるのはほぼタブーで勝率を評価値にするのがセオリーなのですが、試してみたかった。
0961535
垢版 |
2019/10/17(木) 22:06:11.66ID:AT1bNTwz
やっぱ、負けてるなぁ。
0962535
垢版 |
2019/10/22(火) 14:18:39.16ID:Mqr1tYDA
うーむ相手から攻撃されたときに反撃しない癖があるようだ。
反撃さえすれば楽に勝てるはずなんだが…。
0963535
垢版 |
2019/10/22(火) 16:38:49.29ID:Mqr1tYDA
DNNの入力にに盤面の情報だけじゃなくて、石がぶつかってるところの情報も与えてみるか。
かなり肝になる情報のはずだから。
0964535
垢版 |
2019/10/22(火) 17:02:51.95ID:Mqr1tYDA
うお、メモリがパンクしたorz
もー新スレッドリッパーにメモリ1TB載せたいorz
0965535
垢版 |
2019/10/22(火) 17:31:13.35ID:Mqr1tYDA
データベースがでかすぎるのかなぁ。
500万局面を4対称で2000万局面分くらいあるんだが、初期アルファ碁でも3000万局面くらいだったっていうし減らそういかなぁ。
うーん。
0966535
垢版 |
2019/10/23(水) 20:19:32.52ID:VmufmFSW
前も言ったかもしれないけどいたずらにネットワークを巨大化するよりコンパクトにしてエポック数を稼いだほうがいいかもしれないな。
0967535
垢版 |
2019/10/26(土) 19:36:09.88ID:4XMH/3Nj
学習するほどに弱くなる理由がさっぱりわからんorz
ちょっと休憩
0968535
垢版 |
2019/10/27(日) 18:41:08.53ID:OnknjOzZ
またgithubでアルファゼロ探ししようかなぁ(懲りてない)
0969535
垢版 |
2019/11/05(火) 18:52:29.53ID:F2Rnn9oI
新スレッドリッパー今日発表見たいですね
ワクワク
0970535
垢版 |
2019/11/05(火) 22:09:32.07ID:GKFgjg5l
あれ、今日じゃないのか…
0971535
垢版 |
2019/11/07(木) 23:17:24.41ID:OiCk9RdB
スレッドリッパー 32コア ベース3.7GHz ターボ4.5GHz 1999$
素晴らしい
金がないけど
0973535
垢版 |
2019/11/10(日) 20:01:17.40ID:KZcBl7Ju
せっかく良さそうなの見つけたのに、イマイチモチベーション上がんないな〜
なんでだろ。ホントよさそうなのに。
0974535
垢版 |
2019/11/17(日) 21:06:42.27ID:eK7f1inq
コツコツpythonやってます。
リストの使い方がわかってくると書く速度あがりそう。
0975535
垢版 |
2019/11/17(日) 21:48:33.74ID:eK7f1inq
>>972にライフゲーム碁のロジックを実装しました。
ランダムプレーヤーと対戦できるところまで確認しました。
意外と拡張しやすい作りになってるっぽい。
0976535
垢版 |
2019/11/17(日) 22:00:36.51ID:eK7f1inq
インターフェースの作りがうまいプログラムは心が躍りますね。
見習いたい。
0977535
垢版 |
2019/11/17(日) 22:24:52.29ID:eK7f1inq
うおおお、遅えええええええ
6x6オセロだと結構速いけど9x9ライフゲーム囲碁だとめちゃ遅いorz
なにか高速化策を考えねば…
0978535
垢版 |
2019/11/17(日) 22:33:57.28ID:eK7f1inq
並列化されてないっぽいな。うーむ
並列化狙うか…
0979535
垢版 |
2019/11/18(月) 20:52:01.98ID:mPMMCB5I
今日一日、強化学習回してたんですが途中でOS固まってたorz
でも一応、3回ベストポリシー更新されたみたい。
ランダムボットと対戦させてみます。
0980535
垢版 |
2019/11/18(月) 21:16:14.14ID:mPMMCB5I
ランダムボットと黒白25戦づつやってディープラーニングAIの39勝11敗
でだしとしてはまあまあかな。

純モンテカルロAIともやってみよう。
0981535
垢版 |
2019/11/18(月) 21:19:24.26ID:mPMMCB5I
あれ、純モンテカルロAIないのか?
うーん。
0982535
垢版 |
2019/11/19(火) 19:48:59.11ID:EOzKZ0AX
うーむOS固まるなぁ。
今日も固まった。
グラボの熱が悪いのだろうか?
0983535
垢版 |
2019/11/19(火) 20:34:57.86ID:EOzKZ0AX
パソコンの調子が悪いのならいっそAWSとか検討するという手も…
でも金が…
0985535
垢版 |
2019/11/20(水) 21:49:44.28ID:lMEK9Bn7
名前忘れた
0986535
垢版 |
2019/11/20(水) 22:46:44.07ID:lMEK9Bn7
固まったけど少し更新されてたようです
ランダムボットと対戦したら48勝2敗
結構ハッキリ強くなってるな。
0987535
垢版 |
2019/11/21(木) 19:44:58.21ID:xK6B/ksk
今日も当たり前のように固まってるorz
どうすりゃいいんだ?
0988535
垢版 |
2019/11/21(木) 21:11:44.62ID:xK6B/ksk
そろそろ次スレの季節ですね。
順番的に私の番か。
995くらいで立てたらいいですかね。
0989535
垢版 |
2019/11/22(金) 19:54:12.78ID:nusik7MY
今日も固まった
いまのところ100%
0990310
垢版 |
2019/11/22(金) 20:03:28.74ID:bJtjxKyJ
どもです。そろそろ次スレですね。

相変わらず、色々小改造しながら相変わらず棋譜作り続けています。

Book確認のデバッグ用プログラム作って、棋譜の間違い特定が飛躍的に早くなり、
その分、訂正用の棋譜が膨れて遡り探索がおろそかになっています。

評価関数の学習は進めていますが、どちらかというと評価関数が怪しくて間違えて
いそうなところで、わざと分岐させてBookで正解手順(に近い)の分岐を登録していく
事で、棋譜の精度を上げようとしています。BookをQ値と考えると、選択的なε-Greedy
でQ学習しているような感じになりつつあります。

もちろん、最終的には評価関数に反映しますが、今はBook構築が先みたいな。


VC++のバージョンアップ通知が来たので更新したら、あちこちワーニングや
エラーが出て来まして、ソースの整理をしながら、ワーニングにならないソース
に書き換え中です。急いでも仕方がないので、裏で棋譜作り動かしながら、
ちんたらやってます。

久々にMCTS部分を見たら、バグだらけだったので、直したところ、マシンパワーが
上がったことからか、残り30手程度ならすぐに終局まで枝が伸びて比較的正確に
最善手順が生成できそうかなと思っています。全てのプログラムの書き換えが
終わったところで、テストしてみたいと思っています。
0991535
垢版 |
2019/11/23(土) 14:12:48.21ID:0YM91Vba
昨日の晩からいままで連続で動いてます。
なかなかベストポリシーが更新されなくて焦れる
0992535
垢版 |
2019/11/23(土) 17:50:36.12ID:0YM91Vba
ランダムボットに白黒25戦づつやって50勝0敗来ました!
このゲームはほかのゲームと比べてランダムボットが比較的強いから素晴らしいですね。
0993535
垢版 |
2019/11/23(土) 18:12:06.28ID:0YM91Vba
うーん、人間に勝てるほどは強くないな
0995535
垢版 |
2019/11/23(土) 20:58:35.29ID:0YM91Vba
こっち埋めちゃいますね。
0996535
垢版 |
2019/11/23(土) 20:59:10.47ID:0YM91Vba
0997535
垢版 |
2019/11/23(土) 21:00:52.15ID:0YM91Vba
AWSでいいマシンを使うというのも憧れるが、
買うのとどっちが安いかは微妙かな。
0998535
垢版 |
2019/11/23(土) 21:02:40.43ID:0YM91Vba
スレッドリッパー11月30日発売。
コア数はいわずもがなベースクロックもかなり高い。
0999535
垢版 |
2019/11/23(土) 21:05:07.92ID:0YM91Vba
pythonの文法は結局何がいいのかよくわからんな。
ライブラリが充実してるってのはそうなんだろうけど。
1000535
垢版 |
2019/11/23(土) 21:05:51.11ID:0YM91Vba
1000 !
お疲れさまでした。
次スレでまたお会いしましょう。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 769日 3時間 30分 53秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況