【オセロ,将棋】ボードゲーム Part2【囲碁,War】 at GAMEDEV
【オセロ,将棋】ボードゲーム Part2【囲碁,War】 - 暇つぶし2ch350:535
18/04/29 20:30:57.65 mX318X6T.net
序盤は素晴らしい棋理の芽生えを感じるが、いかんせん終盤がなぁ
ほかのアルファゼロクローンも似たような感じなのだろうか?

351:535
18/04/29 20:50:13.18 mX318X6T.net
公式AIともやってみたけど序盤センスは互角以上と感じられる。
実際、必至をかける一歩手前まで行った。
終盤力さえ磨かれればおそらく公式AI越えはある。

352:535
18/04/30 22:51:47.16 qAJqtYoj.net
学習が1000エピソード突破。
1500が規定値だから最後まで回したいな。

353:535
18/05/01 21:34:25.66 bYHVWZMu.net
もっとパワー、速度が欲しいな。
こんなことなら最初から1080 Ti いっときゃ良かったかな?

354:535
18/05/03 10:58:16.57 gNd8xJ5s.net
ちょっと思うところがあって、思い切ってネットワーク大きくしてみました。
学習最初からやり直しです。
さて吉と出るか凶とでるか。

355:535
18/05/03 13:28:58.30 gNd8xJ5s.net
ん、ネットワーク構成変えたら学習率もいじらないと上手くいかないのか?
ネットワークでかくしたら学習率は大きくすればいいのか小さくすればいいのか…

356:535
18/05/03 13:42:41.42 gNd8xJ5s.net
ネットワークでかくしたら学習率は小さくするのがいいみたい?

357:310
18/05/03 20:31:46.75 EAR7zekO.net
なんか順調でうらやましい。
俺もやっぱGPU付きのPC買うべかな。
一般的にLRでは、学習率は発散しない限界まで大きくするのが良いらしく、
昔は、最初大きく、試行回数増えるごとにだんだん小さくみたいな事をしてました。
NNではRMSPropとかADAMとかで自動調整する流れだと当時理解していました。
ただ、Googleの論文読むと、普通に学習率固定っぽく読めてしまうんですよね。
強化学習だと学習率固定が良いのかも知れません。
表現力大きいからあんまり問題ない気がするのですが、学習率は小さくすると
学習に時間がかかる代わりに、収束しやすくなります。局所解には陥りやすく
なるのではないかと愚考しますが、強化学習における局所解と、教師付学習に
おける局所解は現象が違うから、よくわかりません。

358:310
18/05/03 20:37:19.91 EAR7zekO.net
こちら、例によってひたすら分岐付き記譜を作成しています。
空きマス27の所(完全読みとしては26)のところから、計算時間が案の定すごく
かかるようになってしまって、遅々として進まなくなりました。
最後の手段でとっておいた、UCT探索で仮PV作成し、それでmtd(f)にて評価値を
迅速に確定して、その評価値で正しいPVを求めるという流れにしたところ、恐らく
数倍程度に高速化され、それによって記譜が集まり正確になる事で、評価関数の
精度が上がって、仮PVが正確になりという好循環に、ようやく入る事ができました。
ただ、それでもまだ時間はかかるというか、今空きマス28まで持っていったら、
また時間がかかる地獄に入りそう。最低でも空きマス30までは持っていきたい。
つか、待っている時間が長い…セカンドPCが欲しい。

359:310
18/05/03 20:41:41.51 EAR7zekO.net
>>351
>数倍程度に高速化され
あくまで仮PVが数手分合っている時の話で、仮PVが間違っていると、
むしろ遅くなる可能性があります。

あと、一つの局面に対し、最善手が複数あるケースでは、例えば最善手
が2つあると2倍程度時間がかかるという問題があるのは認識していて、
対策は可能なのですが、そうするとバグった時にβカットのエラーを吐か
ないという恐ろしい状態になってしまうので躊躇しています。

360:310
18/05/04 19:57:24.12 5CQB8Di3.net
世界コンピュータ将棋選手権の2次予選までで強さをみせつけている
T.N.K(通称たぬき)ですが、DL勢にして高速評価関数という事なので
アピール文書を見てみました。
これ、CNNではなく、全結合のDeep Networkの模様。追加で論文も
出ているので、見たところ5層のMLPです。
入力層に玉との2駒関係を使っていて、そこは計算量が多いので、
ここだけ差分計算で高速化しているとの事。自分は行列をEigenに
任せちゃってるので差分計算していませんが、オセロでも結構使え
るはず。
もう一度オセロをMLPに拡張したくなってきた(汗

361:535
18/05/07 20:19:04.83 m+uVPKyG.net
ネットワーク大きくすると学習が収束する確率下がるんですかね?
なんか学習がうまく進んでないようです。

362:535
18/05/08 00:21:37.96 VKk6NsC2.net
もしかして学習率だけでなく、ほかのパラメータにも手を加えなければならないってことですかね?

363:310
18/05/08 01:01:09.30 6noaUyVY.net
バックプロパゲーションで計算している以上、深さが深くなると、
その分初段まで誤差を遡らせるのに時間がかかるから、収束が
遅くなって当然かと思います。
あと、初期値のランダム値の幅も、適切に設定しないとなかなか
収束しなくなりますし、それでも初期値の運が悪いとまったく収束
しないなんて事もあり、ちょこっと不安定なところがあります。
XavierとかHeとか初期値の設定項目はありませんか?
本で読んだ知識なので、現実にどれくらい影響するのか良くわかりませんが(^^;

364:535
18/05/08 19:21:19.88 3yhYJr6O.net
おお、ありがとうございます。
しらべてみます。

365:535
18/05/09 21:58:37.29 53SriW94.net
パソコン壊れたかと思ったが放電したらなおった
あー怖かったTT

366:535
18/05/10 20:05:15.86 X+P+UxO/.net
学習率の変動率?を下げたら結構うまく動いてるっぽいです。

367:535
18/05/11 20:15:31.62 TPpBGuAT.net
loss とか entropyはいい感じに減ってるのに自己対局の結果がついてこないですね。
うーん、なんだろう?

368:535
18/05/12 17:16:50.40 UY4N1vvW.net
いや、自己対局もちょっとづつ改善してるみたいです。
もっと時間が必要かな。

369:535
18/05/13 18:33:11.99 jNzVm6ts.net
windowsがたまに夜中に勝手に再起動してしまうんだが?
マジむかつく(怒

370:310
18/05/13 19:53:17.92 i+O998yE.net
Windows Updateかな?
俺は通知もらうだけにして、タイミング見て自分で再起動かけてる。
まあ、24時間経つとカウントダウンが始まるので、早目に再起動する事になるけど。

371:535
18/05/16 19:41:44.02 zhHRqcbt.net
いままで50エピソード毎に自己対戦してたけど、自己対戦がかなり重いから200エピソード毎に自己対戦にしたらなかなかいい感じ。

372:535
18/05/16 20:52:45.23 zhHRqcbt.net
ネットワーク大きくしても詰めが甘いのはかわらないです�


373:ヒorz. 公式AIに勝つチャンスあったのに勝ちを逃してしまいました。



374:310
18/05/17 20:16:35.67 3wU0adoY.net
Surfaceの電源ケーブル、そろそろ断線しそうだなぁと思っていたら、
PCをひょいと動かした瞬間に、まさかの電源落ち。
ウェイトデータ書き込み中に停まらないように色々工夫していても、
この手の落ちには対処できるわけもなく、また大変に運が悪い事に
またしても後半10ステージ程度のウェイトデータが飛んでしまい
ました。バックアップとっていたのですが、気づかずにいたので、既に
上書き済みという罠。
後ろ10ステージ分のみゼロクリアして、そこだけ今のデータで再度
学習する羽目になりました。
orz

375:535
18/05/17 20:37:00.03 anbc4vLN.net
乙w

376:535
18/05/17 23:06:00.81 anbc4vLN.net
これはNew マシンを買えとの神のお告げww

377:535
18/05/18 20:48:52.38 UxmUzKYy.net
まただよw(再起動)

378:名前は開発中のものです。
18/05/18 21:21:28.72 UxmUzKYy.net
藤井聡太さんが7段昇格とか。
凄すぎ

379:535
18/05/19 20:01:16.80 PB1pw3rI.net
むう、AlphaZeroのポテンシャルはこんなものではないはずだが。
でも100万局くら学習させないと真価は発揮できないかもなぁ。

380:535
18/05/20 23:46:47.79 A2GqvvmZ.net
19路囲碁だと20層くらい層がないと駄目だとか。
うーん20層は厳しい。。。

381:310
18/05/21 20:17:29.25 aDShJzMX.net
畳み込み窓が3×3で、隣との関係を1マス分づつ認識しているとすると、19路で
19層必要で、出力の全結合層つけて20層って事なのかなぁ。
あとフィルタ数も大事だと思う。フィルタで認識する特徴の種類が決まっていると思う。
なんとなくだけど、こう仮定している。検証はしていない(汗

382:535
18/05/21 21:00:41.57 9qAF6usq.net
いまのところ192 * 6 でやってます。
9路だから192 * 10 にすればよかったかなぁ

383:310
18/05/22 20:12:53.71 do1nJaPu.net
五目系なら、周辺5マスが把握できていればよいかもよ。
比較検証しなきゃわからんけど。

384:535
18/05/22 20:18:42.34 025jAm4L.net
うーん、そうなんですか?。
ライフゲーム囲碁はもろ周辺5マスなんですけどね。
囲連星成功したらライフゲーム囲碁もやりたいですね。

385:535
18/05/23 23:49:25.39 z+TgzaXz.net
くそ~何時まで経っても一手の重みみたいなものを理解してくれないorz.
なんか足の遅い打ち方するんだよなぁ。
もういっそ20層にしちゃおうかな orz

386:535
18/05/24 20:38:02.47 g5FOS6wP.net
ん、ちょっとづつだけど強くなってる気がする。。。
くそ~Googleの計算リソースがあれば30分くらいで名人超えるんだろうけど。。。

387:535
18/05/24 20:57:44.30 g5FOS6wP.net
自己対戦が勝率100%行ってしまいました。
対戦相手も更新されていくなら勝率100%は行かないと思うんですが。
もともとの実装がなにかおかしいのだろうか…

388:535
18/05/25 23:18:10.63 Wo9ACErv.net
まだ公式AIに勝てないけど毎日ちょっとづつ進歩しているのは感じる。
まだ希望はある。

389:535
18/05/26 20:20:48.78 qA0Nw26t.net
Alpha Zeroのアルゴリズムは囲連星よりもライフゲーム囲碁に向いてる気がする。

390:535
18/05/26 21:33:20.38 qA0Nw26t.net
FacebookがELF OpenGoというのを公開したとか。
プロ棋士にも勝てるみたいですね。

391:535
18/05/27 19:07:25.97 kULpg0Pw.net
ELF OpenGo もGPU 2000台とか使わないと強くならないみたい?
は~絶望する。

392:535
18/05/28 22:00:33.18 hqRKJ+dG.net
昔のLeela zeroもそうでしたがシチョウが読めてないっぽいですねぇ

393:535
18/05/28 22:12:43.53 hqRKJ+dG.net
でもちょっとづつでも確かに前進してる気がします。
ロールアウトの回数増やしたら学習の質も上がるかなぁ?
やってみるか。。。

394:535
18/05/29 20:13:27.71 LETTkqJf.net
ん、lossとentropyがかなり増えてますね。
ロールアウトを増やしたえいきょうだろうか?

395:535
18/05/29 21:44:21.56 LETTkqJf.net
ネットワークを192 * 20 にしたい衝動に駆られるw
危険な賭けだが…

396:535
18/05/30 22:20:56.63 s+sw+z1r.net
キタ━━━(゚∀゚)━━━ !!!!!
公式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])

397:535
18/05/31 22:06:07.55 CLpDRjz4.net
惜しい!惜しいなぁ。
中盤まで内容は圧倒しておきながら最後の盤端のシチョウが読めずに逆転負け。
学習途中の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])

398:535
18/06/01 22:15:38.64 i1DTZ7p0.net
本来負けてたはずのゲームですが逆転勝利しました!
以前より大分、棋理のようなものが身についてきている感じがします。
ロールアウト増やしたのが効いたかな?
(
;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])

399:535
18/06/02 21:54:09.55 GZGHIXxE.net
ぼちぼちウインドウズに移植することも考え始めなければ…

400:535
18/06/04 20:50:12.16 Hw4HpbU5.net
毎日棋風がすこしずつ変わっていくな。
面白い。
3線を重視し始めたようだ。

401:535
18/06/04 21:29:44.63 Hw4HpbU5.net
なんかネットワークの規模が足りてない気がしてきたわ。orz orz orz
一気に256 * 20くらいに増やしてみようかな?
気が早いかな~

402:535
18/06/04 21:42:52.90 Hw4HpbU5.net
うーん、どうせやり直すなら早いほうがいいよね?
でもこのまま学習続けたら何が起こるかも知りたいし…
悩ましい。

403:535
18/06/04 22:55:50.50 Hw4HpbU5.net
思い切ってネットワーク構成を256 * 24 にしました。
激遅になりそうだが…

404:535
18/06/04 23:05:36.60 Hw4HpbU5.net
ネットワークを192 * 6 から 256 * 24 にしたら計算量は(256*24)/(192*6)=5.333倍であってる?
まさか指数的に計算量増えたりしないよね?

405:535
18/06/04 23:18:15.88 Hw4HpbU5.net
メモリが足らんといわれたぜwww
12GBも割り当てたのにwwww
こりゃニューマシン買うしかないな。

406:535
18/06/05 00:01:42.42 2ipfQYrF.net
とりあえず、64 * 24 にしてみました。
これでも6GB位メモリ食う。
まじでスレッドリッパーに128GB積みたい衝動に駆られるw

407:535
18/06/06 21:01:18.82 /EVpmksK.net
やっぱ24層は無理かもorz
全然学習が進んでるように見えないorz

408:310
18/06/06 21:38:17.47 dXECgVmr.net
残り28手のところで1か月足踏み。やっと記譜がたまってきた。
残り30手まで行くのに半年くらいかかりそうw
というか、まだまだパターンが足りていないかも。
>>396
隠れ層のサイズは2乗で効いてくるから、256^2/192^2。
深さは単純に計算量が4倍になるとして、ざっと7倍くらいになるのでは?
学習は深さが増えるとどんどんきつくなるかと。
誤差逆伝播の宿命です。

409:535
18/06/06 22:38:14.91 /EVpmksK.net
>隠れ層のサイズは2乗で効いてくるから
おお、そうなんですか。ありがとうございます。
>学習は深さが増えるとどんどんきつくなるかと。
24層は諦めました。
今12層くらいで試行錯誤しています。

410:535
18/06/07 00:15:51.92 FD/EuCH4.net
うーん、極めて微妙なバランス調整を強いられるのか?これは

411:310
18/06/07 22:47:08.28 3tsX2weq.net
マシンパワーが潤沢にあれば、かなり大きいネットワークから学習させて、
最低限どれくらいの大きさなら弱くならないかが求められるんだけどねぇ。
Googleみたいに。

412:535
18/06/07 22:50:20.44 FD/EuCH4.net
そういえば新しいスレッドリッパーは32コアになるとか。
うーん欲しい。

413:310
18/06/08 09:01:40.50 kLQfp5L9.net
今見た。64スレッドだってw

414:535
18/06/08 21:09:32.65 sd8J+TAa.net
あんまりうまくいかないから気分が萎えてきちゃった。
少し気分転換するか…

415:535
18/06/09 22:29:54.70 E47zq0gI.net
層を9層に減らして再チャレンジ
どんどん後退していくが仕方ない

416:535
18/06/10 22:48:39.36 vDwVPN5j.net
Googleが無料で12時間のクラウドGPUを提供してるとかなんとか
URLリンク(www.tdi.co.jp)

417:535
18/06/11 20:34:52.58 CmwqwxJa.net
くそーどうにもうまく行かね~
一回試すのに結構時間かかるのも痛いorz

418:535
18/06/12 18:16:53.37 ZNBJ6nca.net
あんまり上手くいかないんで頭おかしくなりそう
ちょっと休憩します

419:310
18/06/12 22:17:08.85 tW9CPEWd.net
NNの罠ですな。
自分が逃げたのは、それです(汗

420:535
18/06/12 22:59:32.98 0htatJhS.net
>>411 くそー
パラメータ100種類くらい用意して同時に実行したい orz

421:535
18/06/15 20:18:16.05 8McWyxkP.net
CPU Ryzen 2700X
GPU Geforce 1080
Memory 64GB
SSD 500GB
これを満たそうとするとやはり40万円近くなる。
厳しい。

422:535
18/06/15 23:05:29.07 8McWyxkP.net
フロンティアってショップかなり安くない?
なんか裏があんのかな?

423:310
18/06/16 09:22:12.72 zNyAzUlc.net
フロンティアと言えば懐かしのフロンティア神代(こうじろう)かなと思ったらビンゴでした。
Wikipedia情報によると、フロンティア神代はヤマダ電機に吸収されて解散していて、
BTOショップにフロンティアという名前だけ残っているみたいです。
ヤマダ電機なので裏は無いでしょうね。
7980XEに1080Tiで128Mとかにしていくと、だいぶ価格差は詰まっていきますが、
それでも多少安いみたいですね。というか、8700Kだったらかなり安いかも。

424:535
18/06/16 23:00:41.95 Xmjs3i0Q.net
pytorchってAMDのGPU使えないよね?
Cudaだよね?

425:535
18/06/16 23:08:34.52 Xmjs3i0Q.net
多層を重ねるのは諦めてフィルタ数で勝負というのもあるだろうか?

426:535
18/06/17 20:06:40.29 S/cw4ZOV.net
実はこっそり再開してましたが9層からさらに後退すべきか悩んでます。
ここから1層づつ減らしていって学習がまともに進むところまで後退するのを考えています。

427:535
18/06/18 21:07:45.14 Wo5CnXra.net
8層も望み薄
7層は囲連星が7目並べだからあるいみちょうどいいかも?

428:535
18/06/18 23:34:21.39 Wo5CnXra.net
お、7層はうまくいくかも
まだわからないけど

429:535
18/06/18 23:35:41.11 Wo5CnXra.net
でも6層でだめで7層でOKというのもちょっと考えづらいといえば考えづらいんだよなぁorz.

430:310
18/06/19 00:55:25.28 FOfYGuya.net
ゲームとして必要最低限と思われる最低限の層数から1層づつ増やして行って、
一つ前の奴に有為に勝てる様になるまでの学習時間を図っていくという手もある
かなと思います。
面倒でやりたくないですが。
自分はひたすら記譜作成。
少しづつ改良を加えていますが、残り28手(読み切りとしては27手)で足踏みして
います。早ければ6分程度で終わるのですが、いかんせん25~26手目の評価
関数が穴だらけみたいで、長いと4時間とかかかってしまい、なかなか棋譜が集め
切れません。記譜が集まると速くなるのですが、集まるまでの時間がかかりすぎ。

431:535
18/06/19 22:25:49.15 pDwqV+QB.net
パラメータ調整ってプログラミング本来の楽しみがほとんどなくてそこが辛い。
とくに他人のコードだと。
弱くてもオリジナルのヒューリスティック実装するのは楽しいんだよなぁ。
うーん。

432:310
18/06/19 23:13:29.58 FOfYGuya.net
すごくわかりますorz
だから、非効率でも、自分でNNのライブラリ作っちゃおうとしたりするのでする。

433:535
18/06/20 20:38:16.59 HpjQCtCz.net
7層も駄目っぽいorz orz orz
もう少し粘るか悩むorz orz orz

434:535
18/06/20 21:21:48.36 HpjQCtCz.net
そこそこ上手くいってた6層のバックアップを引っ張り出して続きの学習をさせてみることにしました。
結局、全部無駄だった orz orz orz

435:310
18/06/23 00:43:44.99 MYOaLSBl.net
長いと4時間…
出張中に丸48時間動かしっぱなしにしましたが、3つしかできなかった。
一つ16時間w

436:535
18/06/24 23:17:32.46 +0RpmqDG.net
なんか異様に辺の星を重視するようになった。
ちょっと単純化しすぎな気がするが、やっぱ層が足りてないのか?

437:535
18/06/25 20:09:56.17 EkJF+fRZ.net
んあ、なんか一線打つようになった?
過学習かなんかか?

438:535
18/06/25 20:42:46.09 EkJF+fRZ.net
結局6層も駄目なのかなぁ orz orz orz
アルファゼロのポテンシャルはこんなものではないはずだが。orz orz orz

439:535
18/06/25 21:48:22.04 EkJF+fRZ.net
もうちょっと粘ってみるけど、アルファゼロ(少なくとも>>214のプログラム)からの撤退も考え始めてるorz orz orz

440:535
18/06/26 21:04:26.12 1tkUkpm5.net
お、一線に打つのは治ったようです。

441:535
18/06/27 21:01:58.89 dPu535sz.net
お、すごい!
まだ詰めはあまいけど、まるで地を取ることはいいことだという棋理を理解したような打ち方で勝った!
まだ希望はある!
(
;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])

442:535
18/06/28 21:14:27.14 Owd80tJ7.net
まただよ(再起動)

443:535
18/06/28 21:14:59.02 Owd80tJ7.net
ネイティブリナックスにしたら再起動なくなるんだろか

444:535
18/06/29 21:22:30.04 24sRxbs9.net
ふと思ったけど詰みルーチンをルールに組み込んで詰みがあるときは詰みを打たなきゃいけないルールにして学習させて
十分学習したら詰みルールを外したら学習時間短縮できたりしないんだろうか?
ルールが違ったら全く重みが役に立たなくなっちゃうかな?

445:535
18/06/29 22:02:45.79 24sRxbs9.net
2線を重視し始めたようです。
毎日棋風が変わっていくな。
AIが自らいろいろ試してるみたいでホントに知性があるかのような錯覚を覚える。

446:535
18/06/29 22:37:39.80 24sRxbs9.net
相変わらず隅のシチョウが読めてないですね。
7連を作るにはほぼ必須なので克服してほしい。

447:535
18/06/30 22:29:57.74 8vhkC7kM.net
圧勝の形勢を築いておきながら隅の石が取れずに逆転負け。
ここは何としても克服せねばなりませんなぁ。
(
;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[


448: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])



449:310
18/07/01 09:58:13.46 rTgUJVKi.net
強化学習は一通り失敗をして、ダメな手を覚えていくものですからね。

450:310
18/07/01 16:25:08.28 rTgUJVKi.net
過去に途中でプログラム止めて、中途半端な状態になっている記譜(棋譜としては
成立しているけど、他の記譜との接点が無い)を見つけて、続きを実行するような
仕組みを作りました。
これで心置きなく途中で止められる。

451:535
18/07/01 23:21:40.95 1CvUBjWR.net
いったん学習中断します。
気分を変えて囲連星やめてライフゲーム囲碁に逃げようかと思ってます。
プログラムもgithubから別の拾ってこようかと思います。
マルチスレッドに対応してて大規模ネットワークを想定してそうな奴。

452:535
18/07/04 19:57:24.45 t+xDGMvg.net
githubに落ちてて大規模ネットワークに対応してるとなるとleela zero とかだろうか?

453:535
18/07/04 21:32:30.05 t+xDGMvg.net
とりあえずAQって囲碁ソフトのソース見てます。

454:535
18/07/04 21:43:59.79 t+xDGMvg.net
んんん、AQってヒューリスティックてんこ盛りなんですかね?
他ゲームに応用が利かなさそうな怪しげなコードが見受けられるw
シチョウのコードとかあるっぽいし。
つっても囲連星なら応用効くだろうけど。
逆に19路囲連星に走るというのも考えられるw

455:535
18/07/04 23:19:04.05 t+xDGMvg.net
あかん、これは相当キツイわw
まあ勉強にはなるかもしれんがモノになるかは微妙だww

456:535
18/07/08 22:10:22.48 cyFrinl7.net
がっつりさぼってますw

457:535
18/07/12 22:46:30.45 sqTgsSS4.net
やる気が出なくて、昔作ったモンテカルロのAIを動かしたりしていますが
モンテカルロでも割といい線行ってたんだとちょっと思いました。
なにかもう一度動き出すきっかけが欲しい。

458:310
18/07/12 23:01:05.40 x4U4b182.net
相変わらずひたすら記譜作成中。
現状の記譜の中に、ランダム着手の記譜が混じっていて、そいつらを
遡るのにものすごく時間がかかる事が経験的にわかっています。
つまり、そこそこ最善に近い手を打っている記譜の遡りは早く、悪い手
ばかりの記譜は遅い。
現状、最善に近い手に対しては、そこそこまともな評価関数になっている
という事は言えるので、一旦遡り対象の記譜を消して、この評価関数で
作られる新しい記譜で継続学習させた方が良いかもと思い始めています…。

459:535
18/07/15 19:54:25.23 I+Rk5Prr.net
だめぽ
3連休も無為に過ごしてしまったorz
あと一日あるけど

460:310
18/07/16 22:12:02.39 99JpH5NZ.net
棋譜作成のロジックをだいぶ変更。
過去の奴に当てはめると結構面倒な事になるので、
>>449の予告通り記譜はいったんリセット。
あと、パブリックドロー(残り40手最善)な記譜が
いくつか見つかったので、そいつらも棋譜に混入。
もっとパブリックドローな記譜が欲しい。

461:535
18/07/19 22:43:05.06 7AkuvwH4.net
reinforcement learningとやらについてやさしく書かれた書籍ないかなぁ

462:535
18/07/22 21:40:49.08 W18yPuDN.net
勉強として>>214のソースちゃんと解読してみようかなぁ
やりっぱなしじゃ勿体ないかもしれないし。

463:535
18/07/23 21:26:02.08 h2uxnpW8.net
熱暴走なのかpcが急に再起動したw
もし学習連続運転してたら火吹いて火事にでもなってたかもな

464:535
18/07/24 21:22:08.00 65EBIksd.net
pcが起動しないorz
電源ボタン押すとファンが少し動いて止まってを繰り返す
暑さで逝ってしまったか?

465:535
18/07/25 21:55:40.30 P+agX1Gu.net
しばらく活動出来ませんねこれは、、、

466:310
18/07/27 22:29:42.44 yYgmXJLn.net
あれれ。大変ですね。
うちは、ここ2~3日回線ダウンでした。本日ようやくNTTに連絡して再開。
暑さでONUが死んでたみたいです。
棋譜作成は、結局元の棋譜もマージしてしまいました。
おかげさまでえらく時間がかかっています。

467:535
18/08/08 19:39:47.19 O1x6YwVI.net
活動やめたら楽チンすぎてなかなか復帰する気になれないw
何かに追われるように毎日過ごしてましたからね。
メインマシンも壊れたまんまだし。
それはそうと13日にスレッドリッパー発売ですね。
金がないから買えないけど1ファンとして楽しみにしてます。

468:310
18/08/09 22:24:55.93 86sArqqe.net
最近はボーっとしながらひたすら棋譜作成です。
そろそろハイクラスPCを買って、完全に放置プレーしようかと思っていたりします。
DCNNに対する興味はすっかり薄れてしまいました。
しばらくはゆっくりしたいですね。

469:535
18/08/15 22:34:00.44 BoOe3LxW.net
NVIDIAからグラボの新作がでるとか。
それを機にPC新調してこのスレに復帰するか…

470:535
18/08/25 20:51:29.15 rZw/NWPD.net
メインマシン復活させようと思ってたぶん壊れたのHDDだと予想して
新しいHDD買ってきて動かしてみたけどはずれだった見たいorz
あんまハードウェアのトラブルシュートの経験ないんだよなぁ

471:名前は開発中のものです。
18/08/26 10:48:28.72 FqCSlXSS.net
とりあえず外付の光学ドライブからlinuxの何か適当なデストリで起動させてみるべきでしょ

472:535
18/08/27 00:06:58.09 JrsDI1JE.net
お、レス付いてる。
ありがとうございます。
しかし、BIOSの画面すら立ち上がらない状態なのでどうしたものか…

473:310
18/08/27 09:30:35.26 QOs+gZK+.net
PC新調するとか言って、またプログラムいじってます。
もうやる事はないだろうとか思っても、なんか出てくるんですよね。

474:310
18/08/27 09:34:46.66 QOs+gZK+.net
BIOS上がらないんだとすると、保証期間があるうちに
販売店に持ち込んでチェックしてもらった方が良いかと思う。
ハード障害の切り分けとかスキルとしては面白いけど、今の本題じゃないし。

475:535
18/08/27 21:13:56.92 JrsDI1JE.net
うーん。もう保証書とかどっかいっちゃってますねorz
まあ、やはりここはしばらくお休みをいただいて
Geforce 2080のレビューが出るのをまって
よさそうだったらPC新調してそれから復帰します。
Geforce人工知能系も強化されてるとのうわさもありますし。

476:535
18/09/18 20:53:46.52 vzQA+msr.net
Geforceの発売が迫ってますね。
性能もいいけど値段もいい値段するとかって話で悩ましいですね。
しばらく様子見か。

477:535
18/09/21 21:09:54.51 2dO4A596.net
新Geforce、とりあえずpytorchが対応するのかどうか、
対応したとしてどれくらい性能上がるかみきわめてからですかね?
仮に大金だして買うとしても。

478:310
18/10/02 09:01:31.04 Rgg2Um0o.net
ご無沙汰です。
地味に棋譜作成を続けていますが、そろそろ色々と重くなってきたので、
裏で新バージョンを作り始めています。探索に関係ないところは、色々
整理して結構軽くなった(と思う)のですが、探索部分の速度が大幅に
低下してしまって悩み中。
現バージョンとまったく同じ条件で比較したところ中盤探索で3倍弱は遅い。
比較してないけど終盤探索は下手すると10倍近く遅い感じ。
中身はほぼ一緒なので、何が原因で遅くなっているのか不明。
コンパイルオプションなんかは一緒。共通で使用しているclassのどこかに
原因が潜んでいそうなんだけど、違いが見当たらない…

479:310
18/10/02 23:18:16.56 odJoEjbT.net
まさかまさかの__vectorcallが原因だった。
全部取っ払ったら中盤探索については逆に速度30%アップ。
変な事考えないでコンパイラに任せましょうというお話でした。

480:310
18/10/10 09:51:58.44 +G+W4fz+.net
28コア56スレッド…
18コア36スレッドが安くなるかなぁ。
棋譜作成を新バージョンに乗り換えました。
全体的に速くなる修正については、10~20%程度なので効果不明。
あと特定の条件で遅くなる原因を見つけて地味に潰しています。
後者については、一つ原因わかっていて直しようが無いものが。
並列処理にPPL使っているのですが、parallel_forではせっかく並び替えしても
ランダムに処理が走ってしまう事。ybwcなのでPVを最初に実行する事は保証され
ているのですが、PVが間違っていた時に、parallel_for内部で2番目の順位の
スレッドがいつキックされるのかわからないどころか、最悪一番最後の可能性も
ある点です。null window searchでβカットに強く依存しているので、ここは非常に
困ります。
解決策1)parallel_forの改良版を自分で書く
解決策2)スレッド数の多いPCに乗り換えて、この問題が起きる確率を下げる
どうしよう(汗

481:535
18/10/12 21:02:40.65 ji0aAVVe.net
9900Kも結構面白いかも?
結局新PC購入に踏み切れてないけど、
来るべきその日のためにGithub漁るところから再スタートしようかなぁ

482:310
18/10/12 23:00:16.66 CTNeLPXP.net
結局あきらめて解決策3)初段のみYBWCのお兄さんを2人にして様子を見てます。
forwardのロジック(最善手の手順で着手可能な手を展開)を全面改訂。
今まで降りていく手を、BitboardのLSBに近い方から1つだけ選択してましたが、
これによって局面の偏りが生じていたようなので、全て展開するようにしました。
棋譜の増殖が凄い事になっちゃうんだけど、仕方ありません。
同じ仕掛けでbackwardも書き直し。
Eigenの並列化、リソースモニタ見ても2コアしか使っていない感じ。4コア使う指定
しているのに。謎。
その他、並列化できるところは並列化を検討。
やっぱPC欲しい…12コアくらいでも良いかという気がしてきた。

483:310
18/10/14 23:06:48.18 Z3+yTgkQ.net
局面の偏りが結構酷い事になっていました。
新しいforwardでは反復深化の評価値を表示するようにしたのですが、探索が進む
ほどに0になっていきます。そこで盤面のパターンが一回も出てこないケース(0値)
を調べたところ、後ろの方が大量に…。前回書いたLSB問題の影響がかなり大きい
という事です。
というわけで、棋譜作成の時には、少なくとも複数選択しあるときにはランダムに
選択するように変更し、既存の棋譜については、仕方がないので後ろの方をランダム
を導入した仕組みで再探索したものを追加していく事にしました。
1件1秒程度でできるので、折に触れてランダム化していこうと思います。
全部展開すると件数が大変な事になるので、様子を見ながらこの辺でお茶を濁して
みようと思います。

484:名前は開発中のものです。
18/10/18 01:59:08.41 VXZ7Gx+W.net
ずっと昔にオセロを作っていた者です。
久しぶりに再燃したので熱があるうちに…
50万棋譜計画のバグっている棋譜、被っている棋譜を消去して、22マス空きからの読み切り訂正をやってます
プログラムを3つほど立ち上げて一日9万局…めどは一ヶ月ぐらい
最近寒くなってきたのでちょうどいいかなとw
FFO45が32秒ぐらいで、まだまだトッププログラムには及びませんけど、
この棋譜訂正で大幅に縮まらないかと希望を持ちつつ進めてます

485:535
18/10/20 22:43:08.00 T970svPP.net
zen2まで待つのはさすがに待ちすぎかなぁ?w
とりあえずAQのコードに結構詳細なコメントが付いてることにいまさらながら気づいて
もう一度チャレンジしてみるかどうか迷ってるところ。

486:310
18/10/21 22:20:35.21 wV/AjJxk.net
>>475
はじめまして。新規参入嬉しいですね。
50万記譜計画の記譜は今はHPからダウンロードできないですね。懐かしい。
評価関数が正しくないと、探索時間かかりますからね。
自分は今は、自作の記譜を後ろから順番に訂正していってます。
が、やはりすごく時間がかかりまするorz

487:310
18/10/21 22:39:45.97 wV/AjJxk.net
先日、局面の偏りで反復深化で評価値がゼロになっていく件を書きましたが、
もっと大きな問題な気がしてきました。
マイナスの評価値になるはずの局面から、中盤探索を反復深化で深くしていく時、
途中で評価関数的に未知の局面に入って、評価値0を返すようになる事があります。
もともと期待される評価値はマイナスなので、評価値0のルートに乗り換えてしまい
ます。どうもこの様な現象が起きる事で、探索を間違える事がありそうです。
これから、デバッグ用のプログラム書いて、現象を確認してみようと思います。
もしかしたら、評価関数の初期値をゼロから始めるのが、良くないのかもしれません。
初期値を-1にすると、未知の局面は-66点(パターンの種類)になるし、1つ2つ
混入したくらいでは、評価値への影響も小さいのかなと思っています。
評価関数のゼロデータを-1にして動かしてみる方が早いかなぁ?

488:310
18/10/22 22:40:29.62 cyPX+oid.net
一応、ゼロデータをすべて-1に置き換えてみたところ、それなりな感じで、
頻度はだいぶ減りました。が、まだ時々おかしな時があります。
デバッグ用のプログラムが案外簡単にできたので、評価値の計算を確認して
みたところ、反復深化の計算のどこかにバグがありそうだという結論に…。
ただ、ほとんどのケースでは正しそうなんだなぁ。

489:310
18/10/22 22:53:50.11 cyPX+oid.net
ソース見てたら、一瞬で判明(汗
ほぼtypoの類でしたorz
これで探索少し早くなるかな?

490:310
18/10/23 01:08:22.60 rwBd0O0t.net
ウェイトのゼロデータを-1にしてみましたが、関係なさそうなので0に戻しました。
原理的にはマイナス評価値の問題は起きそうなのですが、評価値ゼロはあまり
発生していない感じです。

残り27手読み切りあたりから今のやり方では追い付かなくなって来ていますので、
MPCモドキの導入を考えています。MPCのスレッショルドの計算を真面目に
やると、それだけで日が暮れてしまいそうなので、あくまでモドキですが(汗
置換表から作り直しになるし、記譜作り直しで、まだ27手まで時間がたっぷりある
ので、1週間くらいじっくり考えてから始めようかと思います。

491:535
18/10/28 21:48:30.83 X2c31b1r.net
うう、やっぱPCに30万はおいそれと出せないorz orz orz
しかし、何もしないままでただ時間が過ぎていくほうが怖いような気もする。

492:535
18/10/30 23:21:10.12 pl1cfUhR.net
なんかRTXに不具合があるとか何とか


493: マジ? もうしばらく様子見が正解か…



494:310
18/11/01 00:10:54.87 D90j6hyj.net
MPCですが、完全読み切りをIterative Wideningで速度アップするためのProbCutを
作ってます。とりあえずスレッショルド計算のところまでできました。線形近似と誤差の
標準偏差の計算ですが、以前はループでゴリゴリ計算してました。今回はEigen使って
行列で計算するようにしたら超簡単でびっくりするほど早くなりました。
結局、計算時間の大半は浅い探索になります。
で、結果を見れば見るほど、無理に計算しなくてよいのではないかと思えてきます(汗
誤差は1σ=4~5程度の固定値。線形近似は、1次係数は1.0で0次の定数(バイアス)
を、深さが偶数で+1~+2、奇数-1~-2くらい。探索の深さを変えると、誤差は
減っていきますが、あまり頑張るとオーバーヘッドになります。
そもそもIterative Wideningでは、探索精度ではなく、徐々に探索対象を広める事で、
置換表の精度を上げていく事で高速化をしますので、アドホックな値でも良いのかなと。
誤差やバイアスは今の自分の評価関数での値ですが、気が向いた時に再度チェック
するくらいで良いのかなと思う次第。
というわけで、大幅に簡素化・定数化して、読み切り処理の方に移る事にしました。

495:535
18/11/02 23:35:29.24 1vnWpGba.net
9900K発売ですか。
かなり入手困難みたいですね。

496:535
18/11/04 21:31:50.64 AYd3OzR3.net
11/6にAMDからなにか発表があるとか
ZEN2くるかなー?
とりあえず今は待ちか。

497:535
18/11/08 22:14:39.88 l30eANOm.net
結局zen2は春ごろなんですかね?
いまはRyzen 2700xを買っていつでも乗り換えられる体勢を取るのが正解かなぁ?

498:310
18/11/10 22:53:18.40 MAqAiuT/.net
ぬぬぬ。
ProbCutのバグ取りに時間がかかりました。というか、なかなか高速化できません。
むしろ倍以上時間がかかってしまいます。
もっとひどい事に、今までのやり方のうち、比較的単純なやつが最も早い可能性が
高いという事に気が付いてしまいました…。下手すると40%くらい早いかも。
ProbCut比では3~4倍速いという事です。
もともとProbCu自体は中盤探索で前方枝刈するための仕組みです。
これを読み切りしながら順次探索範囲を広げる事でソート順を修正する方向で
活用しようとしているのですが、下位のところを何度も読むオーバーヘッドがあり、
そこを置換表で高速化と考えていましたが、どこかがおかしい…。
そうこうするうちに、評価関数の精度が上がって、反復深化で十分実用になる
ソート順がセットできる事になった模様です。
まだバグの可能性は捨てきれませんが、一旦諦めようかな。

499:310
18/11/15 23:13:39.64 Gy98Zi+i.net
ProbCutは一旦放置して、地道にSolverの速度アップを始めました。
作り直した時に、末端ノードの処理を結構簡素化しちゃったので、やり直しです。
で、Zebraの初期バージョンのオーダリングを日本語で解説した資料を見つけて
色々とノウハウを得まして、Fastest Fastの処理を見直したり、その他色々やった
ところ、速度が倍になりました。
が、見たくない現実としては、まだZebraの当時のFFOテストより若干遅い感じです。
以前はFFO#20限定で0.3秒くらいまで行っていたのですが、まだ1~2秒前後。
ちなみに、似たスペックのPCでの計測値が公表されているマスターオセロは、
更に10倍程度高速です。ぬぬぬ。
棋譜作って学習していくと、探索時間が地味に短くなっていくし、時にはオーダリング
の間違いが直ってジャンプするように特定の盤面で高速化する事がありますので、
まだまだ辛抱かなぁ。

500:名前は開発中のものです。
18/11/17 11:28:45.78 8gp5y6uH.net
なんとか棋譜訂正が終わりました
それだけだと終盤探索にあまり効き目はなかったようです…
これで終わりたくなくて色々見直したところ、なんとかFFO55が6000秒から2500秒切るレベルまで高速化されました
ただ問題があって、空きマスリストを用意していない影響で、空きマスが2つになるまでビット演算で着手番号を取得してるので、NPSがかなり低くなっています
ここを改善するだけでも20%ぐらいは高速化するのではないかと…今週はそのへんやってみようかと思います

501:名前は開発中のものです。
18/11/17 11:43:10.64 8gp5y6uH.net
テスト結果を載せます
ここから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] )

502:名前は開発中のものです。
18/11/17 11:45:17.49 8gp5y6uH.net
間違えて前のバージョンを載せてしまいました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] )

503:535
18/11/17 17:28:43.31 s4ulT91Q.net
うおお、ついに新PC買っちゃいました!
URLリンク(s.kota2.net)

504:535
18/11/17 17:38:57.27 s4ulT91Q.net
なんか買っただけで満足してしまっている自分がいるwww

505:名前は開発中のものです。
18/11/17 18:39:02.10 8gp5y6uH.net
空きマスリストを作る方式でやってみたのですがビット演算のほうが5%速かったみたいです
こうなるとオーダリングのコストを下げるしか無くなってきました

506:名前は開発中のものです。
18/11/17 18:40:00.61 8gp5y6uH.net
RYZENですか
自分もi5なので、新しいPCが欲しいところ

507:535
18/11/17 19:32:43.11 s4ulT91Q.net
>>496
せっかくなのでなにか͡コテ名乗ってくれませんか?
まあ無理強いはしませんが。

508:535
18/11/17 20:03:37.36 s4ulT91Q.net
シネベンチマルチ1705CB
うーん、壊れる前のマシンの倍くらいにはなってるんですかね?

509:535
18/11/17 20:20:24.98 s4ulT91Q.net
さて本題のAI開発は何から始めようか?w
差しあたっての目標はAQをwindowsでビルドかな

510:535
18/11/17 22:39:28.71 s4ulT91Q.net
>>491
よくみたらキャッシュ256MBってどうゆうこっちゃw

511:535
18/11/18 00:16:59.82 rI0UFOUu.net
windowsでビルドするの結構難しそう。
気分転換にAQのあらかじめexeになってるものを落として動かしてみたら割とサクサク動く。
そして当たり前だけど強い。
これは期待が高まるw

512:310
18/11/18 01:01:51.11 CiNHjYBr.net
おお。大体僕の倍くらいの速度ですね。
なお、気が短いし、記譜訂正が26手目くらいまでしかできていないので、
今は#40-#44の5つしか計測していません。昔から#41がピンポイントで遅い。
空きマスのビット演算、ちょうどやったところです。
mobility使わずに、flip関数がゼロだと着手不能ってパターンです。
静的オーダリングを使っていますが、角優先×最後って事で。
パターン配列作ってループ回してAND版と、先に空きマスをpextで並び替えて、
テーブル引いて元に戻して着手する版と2種類トライしまいしたが、速度差は
誤差としか言いようが無いレベルでしたorz
元に戻す演算を思いついたらまたトライする予定。
本日はProbCutを再トライ。今度はちゃんと高速化しているようです。
スレッショルド1.0σで反復無しで、その結果を用いてアスピレーションウィンドウ
サーチして、少し高速化できたかなぁと言う感じ。
ただ、投機的に高速化しているので、FFOで比較しても、苦手盤面がありそうです。
棋譜が揃って来たら投機のヒット率が上がると信じて、しばらく使ってみます。

513:310
18/11/18 01:13:00.25 CiNHjYBr.net
535さんニューマシンおめ!
自分はSurface3で、i7-4650Uの1.7GHz(2.29GHz)×4です。
キャッシュとかどこで見れるのかなぁ。

514:310
18/11/18 01:19:18.37 CiNHjYBr.net
ちなみに、偶数理論は何度かトライしていますが、速度低下してしまうので
使えずにいます。
ZebraはUndo方式で空きマスリストを常時更新しているようです。
僕はCopy方式で、末端の該当ノードで空きマスリストを作ろうとしているので
すが、なかなかうまくできません。
過去にpaint処理みたいな方法で完全な空きマスリストを作成しましたが、
当然オーバーヘッドが大きくて使い物になりませんでした。
最近は「どうせ4隅でしょ?」という事で、盤面を4分割して空きマス計算して
いますが、それでも遅い。
「どうせ4隅」が良くないのか、偶数理論の理解が間違っているのか…

515:535
18/11/18 17:01:14.00 rI0UFOUu.net
高負荷時のファンが意外とうるさいorz
熱風もなかなかorz
あんまり連続実行しないほうがいいのかもorz

516:535
18/11/18 17:56:00.38 rI0UFOUu.net
なんかクロームがメモリ1GBとか使ってるんだがこれで平常運転なのか?
メモリに余裕あるからってなめすぎじゃね?

517:495
18/11/18 18:39:39.38 w1KaGZJD.net
>>497
なるほど、では495ということで…
あとキッシュサイズは置換表のサイズです

518:535
18/11/18 18:55:52.33 rI0UFOUu.net
>>507
コテありがとうございます。よろしくお願いします。
CPUのキャッシュかと思ってビビりましたw。

519:535
18/11/18 19:17:18.42 rI0UFOUu.net
AQのビルド、linuxだとBAZELで、windowsだとCMakeでって書いてあるんだけど、
CMake用の入力ファイルが見当たらないorz
windowsもBAZELでやるんだろうか?そこからわからんorz

520:535
18/11/20 20:47:23.74 sCHL0ufM.net
いかん、投資に見合った成果を挙げねばww
とは思うが腰が重いorz

521:535
18/11/21 22:15:48.48 YJjwR4VH.net
windowsは一旦保留にしてLinuxに走るのが正解だろうか?

522:535
18/11/22 23:20:13.56 ak7z/rHD.net
ネイティブリナックスをデュアルブートにするかVMWareでいくか。
なんかwindows10とlinuxのデュアルブートは罠があるらしくちょっと怖い。

523:535
18/11/23 15:43:50.93 uREb6qVe.net
うーん、やっぱAQ無理かもorz.
もっと簡単そうなのに逃げるべきだろうか?
とほほ

524:名前は開発中のものです。
18/11/24 05:53:44.23 quW8CQIk.net
同一HDD 内で、Windows10・Linux のデュアルブートは、素人では元に戻せない。
だから、日経Linux では、仮想OS を使うように書いてある。
Virtual Box が多いかな
Ruby できるなら、Vagrant, Chef から使うのもよい
漏れは、WSL・Ubuntu16.04 を使っている。
ただし、WSL はGUI なし。コマンドのみ
開発用だから、本番では使えないし、Docker なども使えないけど、
WSLは単なるアプリだから、遊ぶには気楽

525:535
18/11/24 20:30:54.02 CNsuI7eC.net
うーん、今後の方向性が定まらないorz.
最終的にはwindowsでやりたいからそこも悩みどころ。

526:名前は開発中のものです。
18/11/24 23:59:56.87 MjnwrHjN.net
ボードゲームスレだよな?なんの話してんの?

527:310
18/11/25 09:01:51.50 Mml0PIJf.net
Iterative Widening何とかできた。平均的に高速化できていると思う。
FFOについては相変わらず>>495さんと比較して速度は半分くらいかな。
一方で記譜作成的には倍速になったイメージ。細かく4σまでWideningして
いる事で、仮探索の誤答が減った事が効いています。
 仮探索で増える時間
   > 仮探索が正解した時に減る時間 + 誤答した時に増える時間
Iterative Wideningで、仮探索時間の削減と正答率の向上の両方が実現できた
感じです。この辺、課題盤面との相性がある話なので、統計的に計ろうとすると
かなり面倒です。というか、統計的に計るためには、前提となる評価関数をロック
しなきゃなりませんが、現在記譜作成しながら評価関数学習させてますので、
前提が常に動いてしまいます。
現在オーバーヘッドが嫌で、ノード数をとっていません。並列化するとロック
の待ち時間で数%~10%くらい速度が落ちちゃうからです。ノード数をとれば
純粋な速度比較がしやすいのですが、悩みどころです。

528:535
18/11/25 22:15:31.15 MnTu6mxc.net
なんも進展がないのでとりあえず昔作った19路囲連星AIをビルドする環境を新マシンに構築しました。
リハビリの意味でもしばらくこれいじってようかな。

529:名前は開発中のものです。
18/11/26 11:23:16.87 3TlDlboD.net
オンラインボードゲームって作れば流行ると思うんだけど、誰もやらないってことはサーバの維持費の方が高くなるんかね?

530:名前は開発中のものです。
18/11/26 12:10:20.62 dM/DsP5w.net
そう簡単に流行るかよ
囲碁のkgsとかだってかなり廃れてきてるのに

531:535
18/11/26 22:59:02.56 PdBnQCC1.net
気持ちだけ焦るけど、何も進まないというorz
とりあえず、結果だけ求めるのは謹んで、
地道に愚直にディープラーニングの勉強するのが正解だろうか?

532:310
18/11/27 09:45:52.43 IL6H1udh.net
自分の場合、プログラムいじるネタが欲しくて、ヘウレーカ!って感じを味わいたくて、
続けているだけだからなぁ(汗
目標でかすぎるとか、期限切りすぎると、焦って嫌になるだけだよ。
オセロなんて、既にやってる人ほとんどいないから、ちょうど良いのだw
今の目標は、60歳になるまで続ける事w

533:535
18/11/27 18:36:07.13 oxbu/SRL.net
そうですね
結局自分のペースで一歩一歩進んでいくしかないですよね
ありがとうございます

534:535
18/11/27 20:02:14.21 DriHkSnO.net
これからどうしようかなぁ。
以前、途中までうまくいきかけた9路囲連星を移植したalpha zero クローンのコードを読み解くのやってみようかなぁ。
それとももっと本とか読んで理論の基礎から固めていくべきだろうか。

535:名前は開発中のものです。
18/11/27 21:15:20.03 8ndts6Rn.net
loser_sのブログ読んだけど、重大発表やばすぎだろ

536:535
18/11/28 22:14:06.77 h+t1ldhF.net
VMWareのubuntuで9路囲連星のalphazeroクローン動かしてみたらなんかメモリリークする。
前のマシンではメモリリークなかったのに?
OSとかpython とかCUDAのバージョンが変わったせいだろうか?
うーん、解決する気力がいまいち湧いてこないorz

537:535
18/11/28 22:31:22.70 h+t1ldhF.net
やっぱ出来ればwindows & C++ で行きたいなぁ。
うーん。

538:535
18/11/28 22:44:28.01 h+t1ldhF.net
悶々としつつ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])
自然な流れからのダブル必勝形。
こういうのがたまにあるから止められないんだよなぁ。

539:535
18/11/29 20:09:22.49 vNqglcEX.net
ふーむ。ダブル必勝形で勝負ありかと思ったら白にも粘り筋があって意外と奥が深い。
でも正しく打てばたぶん黒の勝ち。

540:535
18/11/30 20:09:22.21 QHRZJCgT.net
やっとこさ週末か。でもどうせ進まない予感orz
せめてなにかこれだという方針が定まらないと。
焦っちゃダメと頭では分かっていてもついww

541:535
18/11/30 20:59:59.07 QHRZJCgT.net
理想を言えばwindows & C++ & reinforcement learning
その線で探ってみるか

542:535
18/12/01 19:46:42.48 1G6ID0fa.net
まだまだ方向が定まらないけど、来るべき時のために今のうちに棋譜集めを始めるべきだろうか?
無駄になるかもしれないけど、何もしないよりはいいよね?

543:535
18/12/01 20:48:59.14 1G6ID0fa.net
16プロセス並列棋譜取り
なかなか圧巻ですな
ファンがうるさいけど

544:535
18/12/01 23:10:46.72 1G6ID0fa.net
全コア使い切っちゃうとほかの作業がしづらいorz
開発用と計算ぶん回す用で2台欲しいwww
ありえないけど。

545:310
18/12/02 10:27:19.04 YQiXDU8o.net
使用コア数制限するパラメータないの?
自分のは並列化処理に使用コア数カウンタ入れて、同時並列数を制限している。
もっとも常に4コアで4多重マックスで動かしているけどorz。16コアなら1つくらい
他のプロセスに空けても、あんま速度低下なさそうでうらやましい。

今現在は記譜作成がメインなので、気が向かない


546:時もほっとけば棋譜を訂正しながら 勝手に学習して、少しづつ速度アップしてくれている。気が向かない時に焦らずに済む のでお勧め(^^; 一時速度アップに燃えていたけど、1勝9敗以上の比率で速度アップに失敗して(まあ そんなもんなんだけど)、今は停滞期間中w



547:535
18/12/02 21:28:29.33 tVJh9ePf.net
>>535
その手がありましたねww
作業中は12プロセス位にしとくか
なにはなくとも棋譜取りだけはコツコツつづけます。
一日で多分3~4000局くらい取れるはず。
ちなみに今これ見てるけど速攻挫折しそうorz
URLリンク(github.com)

548:535
18/12/03 20:43:08.98 M6xR0Sx+.net
一日回して4652局
思ったより取れてる。

549:535
18/12/03 23:14:26.77 M6xR0Sx+.net
平日まとまった時間が取れなくてもちょっとづつでも進んでいかないとねぇ。
まあ、棋譜取りしてるだけでもいくらか気がまぎれるけど。
100万局目指すか。

550:535
18/12/08 23:40:47.79 BUSkl7iI.net
RLlibやっとサンプルがコンパイルできた
ここまで長かった
つかリンクオプションで-lgslつけなきゃいけないとかずっぽり嵌ったわ

551:310
18/12/09 13:20:20.42 j5g2lrg3.net
まったりと記譜取りしてても仕方ないので、速度アップできないか色々あがいてました。
久々にプロファイラで確認したところflip関数が30%、mobility関数が8%ほどでした。
Edaxのソース見つけたので禁断の答え合わせ。flip関数は一つ昔のタイプなので、
恐らく自分の方が早い。mobilitiy関数は少し早そうなので、考え方を導入。でも誤差
範囲の効果しかなかった。
速度計測ルーチンを作って、並列単体速度比が1.2程度しか無い事が判明。
並列処理で排他待ちしそうなところに無駄がないかチェックしたところ、ほぼ全部無駄
だった事が判明(汗。無駄箇所を全て削除したけど、誤差範囲(汗
後方枝刈(ヒューリスティックスなオーダリング)が気になるので、ノード採取してみた。
やはり2割程度速度ダウンするので、プリプロセッサで普段は切り離す事に。
その他もろもろ誤差範囲の改良を積み上げた結果、なんとなく1~2割は速度アップ
した気がしますが、並列処理の効率が悪いのと、後方枝刈の工夫が足りていないの
2か所が、これからの課題かなと思います。
あれ?なんか、ループしてmin-Max探索の高速化に目的が戻ってきている(笑)

552:535
18/12/09 15:16:13.02 jd/NSaBy.net
んあ?RLlibって強化学習のライブラリではあるけどalpha zeroとは直接関係ないのか?
全部無駄だった?
www

553:535
18/12/09 20:10:15.58 jd/NSaBy.net
ふらふら浮気しまくりww
浮き草のような人生だ。
今これ見ようとしてます。
URLリンク(github.com)

554:535
18/12/09 21:08:44.25 jd/NSaBy.net
g++ にfilesystemってヘッダがないorz
とりあえずいまVSインストールしてる

555:535
18/12/09 21:40:01.98 jd/NSaBy.net
動いたっぽい。
久しぶりに一歩進んだ気分。

556:535
18/12/10 22:15:43.67 wVpZGnnS.net
なんか非合法手を選んでしまうみたいなんだが?
うーんなんだろ?

557:535
18/12/12 22:24:55.51 eFK7VQKv.net
他人のコードに頼るのやめて自力実装に走るべきだろうか?
他人のコードってなによりいまいち情熱が湧いてこない。
でも他人のコードも読めるようにならないと先はないんだろうなぁ。
我流じゃすぐ限界迎えそう。
悩ましい。

558:535
18/12/14 00:02:46.12 52LN5bpq.net
まただよ(再起動)
windows10でも変わらずか…

559:535
18/12/14 22:52:23.39 52LN5bpq.net
コーディングは進まないけど棋譜だけは溜まっていきます。
今、LV3 vs LV3の棋譜が61950局分溜まってます。
ファンがうるさいから夜中は回してないから日中だけなのにこのペース。
8コアはさすがといったところか。
アルファ碁Leeが16万局分の棋譜を使ったらしいからとりあえずその辺目指すか。

560:310
18/12/18 00:10:23.05 4TPQUuZQ.net
FFOテスト(#40-#49)、色々誤差範囲の改良を加えてじわじわスピードアップ
していたけど、ある日突然20%くらい悪化。元に戻せるところは戻したけど、
結局ダメで、裏で評価関数の学習し続けた結果、途中経過でたまたま探索が
悪化するところにはまってしまったと言う事かなぁと。
実際、悪化しているの#49だけで他は改善していたし、学習都度表示している
FFO問題の8手読みの次の一手の合否が、14/20から11/20に悪化している。
こういうのあると、速度アップで何を信じて良いのかわからなくなるよね…

561:310
18/12/18 00:14:29.31 4TPQUuZQ.net
という問題もありながら、ノード数表示して、>>492さんの結果と比較すると、
ノード数に圧倒的な差が。NPSは速いけど、それ以上にノード数が多い。
枝刈の差というにはあまりに大きな差で、一桁近い差です。
これ、Iterativeな手法で生じる置換表探索の差じゃないかと思う。
自分のは置換表の動作が遅いので、あまり深い探索まで置換表を適用できず、
読切において後ろの方は置換表が無い(そもそも使用していない)事で、何度も
再探索しているからかなと。
concurrent_unordered_mapを使っているけど、自前でハッシュDB作った方が
良いかもと思い始めた。そこで速度アップすると、置換表適用深度を深くできる。
こういう時、自前で作る人はチェーンハッシュ使っているのかな?

562:535
18/12/18 23:29:10.84 N5ttC8SJ.net
昔自前でハッシュ作ったことありますが素朴な実装だとさほど性能出なかった記憶がありますね。
自分の場合STLでいいじゃんみたいな結果でした。
テーブルのサイズをでかくすると意外と巡回が遅くなるみたいな。

563:535
18/12/19 21:16:40.83 REA/9P4B.net
スマホでconnect4のパーフェクトソルバーをちょくちょく遊んでるのですが
パターンをかなり覚えて7割くらい勝てるようになりました
囲碁とかも真の棋理が明らかになった方が
逆に人間がコンピュータに勝てるようになるかもしれませんね

564:310
18/12/19 22:48:18.33 T2sH1fj1.net
ハッシュの構想し始めましたが、確かに自分が作って早くなる保証はないですね。
インターフェースを既存のstlに合わせようとか思って調べ始めたら面倒になりました。
で、色々見ていたら、そのまんま効率化できそうな使い方を見つけた。
有れば読み込んで更新、無ければ追加の方法です。
あとバケットサイズとか個数とか、その辺を調べていった方が早くなるかも。
並列処理だとtry_emplaceが使えないのね。これが使えたらきっと早くなるのに。

565:535
18/12/20 23:32:19.98 zB5frbtZ.net
また再起動してる。。。
まあいいけど、もう諦めぎみ。
なんか仕事が急に忙しくなってますますコーディングから遠ざかってますが、
棋譜だけは地味に溜まってます。今82889局分溜まってます。
並列化ハッシュってどんななんですかね。そういえば知らない。

566:310
18/12/21 00:04:37.10 kvniGc89.net
いや。まぁ。バケットか中のレコードか、どちらかの単位で排他かけるだけです。
Hash関数がきちんとばらけさせてくれたら、基本的にあんまり排他で捕まる事は
無いので、それほど気にしなくてもパフォーマンスに影響ないかなぁと。実際に
concurrent_unordered_mapの配列用意して、適当にハッシュでばらけさせて格納
してみたら(つまり、同じmapじゃなければ排他はおきない)、排他で遅くなっている
訳ではない事が確認できています。
と言いながら、iteratorとか考えだすと、何を並列セーフにして、何をアンセーフに
するかみたいな事で悩んじゃいます。
先日の続きでmax_load_factorとかbacketサイズとかいじってみましたが、
パフォーマンスにほとんど影響がないです。というか、どうせ後で逐次的に拡張する
くらいならと、backetサイズを増やしても性能は上がらないし、max_load_factorを
増やしても、性能が落ちるだけだったり…。
棋譜作成だけなら並列化レベルをもう1段上げて、4記譜同時作成とかすれば、
個々の読み切りはシングルスレッドに下げられて、ただのunordered_mapが使えるし
その方が棋譜作成的には速度アップしそうな気がしてきた(汗
FFO的には別処理になるけど。

567:535
18/12/22 00:08:33.74 w0ekMTPt.net
採りためた棋譜をもとに序盤DBを更新してみましたが、
確かにうち筋は変わってる気がしますが強くなってるかはよくわからないというorz
まあ序盤DBは誤魔化しみたいなものだから期待しすぎもよくないか。

568:535
18/12/22 00:42:25.73 w0ekMTPt.net
序盤DB更新で強くなってるか統計とってみたいけどモンテカルロが遅すぎてそれもままならないというorz
やはりモンテカルロに代わる何かを実装しなければ…

569:535
18/12/26 00:12:59.86 2Tvqp++w.net
棋譜USBメモリにコピーしたらめっちゃ時間かかるorz
130MBくらいなのにUSBメモリってやっぱ遅いんだな。

570:310
18/12/26 00:20:29.39 Rkthqh0l.net
4記譜並列作成実装してみました。ただいま本番状態でテスト中。
並列処理の基本は、なるべく上位の層で並列化すべしでした。
現状、並列探索の速度は、シングル探索の2倍程度です。
1つ1つの探索には時間が2倍かかるけど、4つ並列なので、トータルでは
半分の時間で処理できるので、実質2倍みたいな。
探索中のオーバーヘッドはほぼ無いはずで、待ち合わせロスくらいなので、
大量に一気に処理する分には、ほぼ無視できるかなと。
これやると、スレッドの数がモロに効いてくるんで…48並列くらいできたら…

571:535
18/12/26 00:30:44.15 2Tvqp++w.net
310さんはintel派なんでしたっけ?
AMDでもzen2はかなりコスパいいものが来ると思いますが…

572:535
18/12/26 00:40:17.50 2Tvqp++w.net
試しにSSDに棋譜コピーしてみたらかなり速いw
やっぱそうなのか。

573:310
18/12/26 03:07:45.74 Rkthqh0l.net
あれれ。思ったほど速度が出ない…というか、単体の速度が半分どころか、
1/4くらいになっているイメージ…。深さが深いものほど遅いという事は、
置換表周りかなぁ。
棋譜作成する対象によって速度が結構変わるので、評価しづらい。
メモリー配置等の問題も考えないといかんような気がしてきた。
いかん。夜も更けていく…。
>>561
なんか、フラッシュメモリー自体は書き込みが遅くて、SSDだとその辺を並列
化とかキャッシュとかで回避しているらしいです。USBメモリーは、その辺真面目
にやっているもの(高価)と、そうじゃないもの(安価)で差があるけど、それでも
SSDには敵わないとか。

574:535
18/12/26 21:06:48.31 2Tvqp++w.net
明日か明後日あたりで棋譜10万局分溜まりそう
深層学習のプログラム、組みたいなぁ
でも難しいんだよなぁ

575:310
18/12/27 00:00:43.02 APLuuq5f.net
悩ましい。
シングルmin-Maxの並列動作と、パラレルmin-Maxのシングル動作。
どうも速度的には大差ない感じ。
2倍くらい速度出ると思ったのに…。
スレッド数が増えたら差が出てくるのかなぁ。

576:535
18/12/27 20:54:08.52 gYB4tQZF.net
10万局いきました。

577:535
18/12/27 21:18:27.23 gYB4tQZF.net
多分俺が世界で一番囲連星LV3の計算を回した人だろうなw

578:310
18/12/27 22:00:15.50 APLuuq5f.net
色々あがいた挙句、そこそこ時間がかかる26手空きを、それぞれで解いてみた。
並列探索で6分。シングル単独動作で12分。シングル4並列動作で18分。
やはり、シングルも4並列する事でなにがしかのオーバーヘッドがあるようです。
単純計算だと並列探索6分を4個で24分に対して、シングル18分で4つ解ける
事から33%の速度アップが見込める事になるけど、体感そこまでの効果が感じ
られないというか、時間がかかる問題では更に差が大きくなっていて、そいつらに
足を引っ張られている印象。
そのうえで、裏でゴソゴソやりながら計算させる時に色々弊害があるので、
CPUの増強を決断するまで放置しようかと思います。
色々あがいた結果か、並列探索ですこーし速度アップした感じ。
10%行くかいかないか。

579:535
18/12/27 22:05:17.88 gYB4tQZF.net
よくわからんがハイパースレッディングって単純に性能2倍になるわけではないということではなくて?

580:310
18/12/27 23:06:53.59 APLuuq5f.net
もちろんそうなんだけど、排他待ちを要するデータも、待ち合わせロスも
無いので、もうちょっと性能出るんじゃないかと思っていたのです。

あと、うまく説明できないけど、ノード数が多い探索は、ノード数比以上に
時間がかかっている気がしています。まだ感覚の話ですが。

581:535
18/12/28 20:37:08.10 HWMCAOZD.net
LV3は強いんだけど詰み状態から詰みを逃してる棋譜が散見される。
直せるもんなら直したほうがいいんだろうけどかなり大変だろうな

582:310
18/12/29 09:40:46.33 hnomLa8j.net
んー。シングル並列動作で6時間かかっても解けずに諦めた盤面とを見つけて、
パラレルで解いたら1時間40分だった。空きマス26だと通常1分程度なんだけど、
時々こういう時間がかかる盤面がある。今までテストが面倒なので、10分以内に
終わりそうな奴でテストしていたけど、もしかしたら探索ノードが多い奴ほど、
シングル並列動作での速度低下が大きいのかも知れない。
時間がかかる奴ほど、シングル・パラレル比が悪化するなら、今考えている大体
3倍程度ってのは成り立たなくなって、もっと悪い事になる。それなら感覚的に
合致する。普通に流れている時には、シングル並列で高速化できそうな手ごたえ
があるんだけど、時間がかかる盤面が来ると急速に逼塞していって、なかなか
回復しないという感じ。
パフォーマンスモニタにらみながら、unordered_mapのメモリアロケーションの方法



583:想像してみた。初期確保件数指定(倍々で自動追加される)してみたけど、溢れて もいないのにダラダラとメモリー使用量が増えていく。もしかしたらOSにメモリーを 貰いに行く動作が排他待ちになっているのかも知れない。どうやって検証しよう。 やっぱ自前置換表作るしかないのかなぁ。



584:310
19/01/01 10:13:37.88 y24geaJt.net
あけおめです。
ヒープをダラダラと確保するのが気になったので、色々いじりました。
ordering用のvectorを、配列にしてスタックに。ついでにクラス化してメンテ性アップ。
少しだけ速度アップした気がする。
自前ハッシュテーブル型の置換表を作ってみた。
最初に大きく領域確保して、溢れた時以外領域確保しないようにした。
基本、余計な機能は実装していないので、処理は軽いはずなんだけど…
極ほんの少しだけ速度ダウンした感じ…
記譜作成はunordered_map版で実行しながら、改良をしてみたいと思います。
とはいえ、ソース的にはあんまり改良の余地がないんだよなぁ。
速度がそん色ないところまで行けたら、シングル版の並列での速度低下が
メモリー確保が原因か検証できるかなぁ。

585:310
19/01/05 09:07:42.68 KwyVlHZX.net
チェーン型でハッシュを組んでましたが、テーブルがあふれると結局ダラダラと
メモリー獲得し始めるので、オープンアドレス型に変更して、まとめて領域を追加
するようにしました。
この辺、もう趣味の世界ですね。
何をしても、速度は上がりも下がりもしない(汗
やっぱり探索ノードを減らす工夫が重要ですね。

586:535
19/01/05 21:26:02.72 TXR2vHHf.net
自己対戦のみで強くなるアルファゼロは理想ですが実装が難しそうなので
せっかく棋譜も集めてるので教師あり学習をやってみようかと思案中。

587:535
19/01/06 00:55:45.70 6f3tqt5A.net
とりあえず、棋譜データからmin-max探索して黒有利の局面か白有利の局面かの2択を学習させようかな。とか思ってます。
そろそろ寝るか。。。

588:535
19/01/06 02:33:16.90 6f3tqt5A.net
寝るタイミングを逸してしまったw
プログラミングってこれがあるから怖いよねw

589:535
19/01/06 02:46:46.55 6f3tqt5A.net
なんか100兆局くらい棋譜を集めると序盤DBだけでもかなり押せるんじゃないかなぁ。
そんな感じ。
いかん、寝なければww

590:名前は開発中のものです。
19/01/06 03:01:38.94 aGENq217.net
質の悪い棋譜ばかり100兆局集めてもあんまり強くならない気がするのですがどうなんでしょう
質のいい棋譜がそれだけ集まればいいですがそれはほぼ不可能ですし…

591:535
19/01/06 03:14:04.86 6f3tqt5A.net
そうはいってもLV3の棋力はかなり高い。
囲碁将棋でいえばアマチュア3段くらいには相当するはず。

592:535
19/01/06 03:18:59.57 6f3tqt5A.net
波があるからアマチュア3段は言い過ぎだったかなw
でもまあ強い時はかなり強い。

593:310
19/01/06 14:23:08.43 a93oWf/5.net
置換表一時調子が良かったのですが、修正加えたら崩壊。
なんとなく読み取りが変な感じなんだけど、どこがおかしいのか全くわからず。
>>578
棋譜たくさん集めて序盤DB作ったら、その序盤DBのMax手順以外の手について
は、分岐した以後の盤面だけで学習させると序盤の穴が埋まるというか、間違った
盤面でぼやっとした学習するの避けられるかも。
今、序盤についてはそのやり方で学習させてます。

594:535
19/01/06 20:12:44.73 6f3tqt5A.net
とりあえず、昔作ったTINY-DNNのプログラムを引っ張り出してきて学習プログラムを仮組したが絶望的に遅いorz
グラボ使えればちっとは違うんだろか?うーむ。

595:310
19/01/06 20:34:20.52 a93oWf/5.net
オープンアドレスうまく動くようになりました。
ここに愚痴ると、直後に原因がわかる罠w
この数日の葛藤は何だったんだ。 <


596:310
19/01/06 20:36:40.74 a93oWf/5.net
>>582
Tiny-DNNはGPU対応していないんじゃないかなぁ。
結局、DCNNはGPUで処理しないと無理っつー気がする。

597:535
19/01/06 20:44:29.63 6f3tqt5A.net
>>584
あ~やっぱそうなんですかねぇ。
GPUも結構いいの買ったのでぜひ活用したいところではあります。

598:535
19/01/06 22:23:00.36 6f3tqt5A.net
明日は仕事なのでハマらないうちに切り上げようww
社会人として自制しなければwww

599:535
19/01/07 20:55:27.41 4rY/alBf.net
学習回しても損失が全く減らない。。。
そういやそんなのあったな。orz

600:535
19/01/07 23:12:38.14 4rY/alBf.net
なんかネットワーク初期化忘れてたみたいw
初期化したら損失減ったw
ちょっと希望が出てきた。

601:535
19/01/08 23:12:12.87 1omQC7Mg.net
損失減ることは減るんだけどホントにちょっとづつしか減っていかない。
ネットワークの形状が悪いんだろうか?学習率だろうか?
うーん、深みにはまりそうorz

602:310
19/01/09 20:33:25.82 9GUGdavc.net
学習の速度はオプティマイザに依存します。
普通のSGDだと、あちこちぐるぐる回ったり、平野トラップで立ち往生したり、
局所最適解から抜け出せなくなったり。また、SGDは学習率(α)を大きくすると、
簡単に発散しちゃったりしますので、学習率を低めにして1000回とか学習する
事になります。それでも上記の問題で、なかなか収束しなかったり、うまく学習
できなかったりします。
そういうものなのです。昔は、初期値(乱数設定しているはず)を変えてみたりして
トライ&エラーしてましたが、今なら別のオプティマイザ(RMSpropやADAM)を試す
べきかと思います。それでも数百回は学習を繰り返さないといけないと思います。

久々に検索したら結構種類が増えてた。
URLリンク(qiita.com)
自分は線形回帰モデルですが、SMORMS3を使って効率化を図っています。
それでも、数百回学習しないと損失は落ち着いてきません。

603:310
19/01/09 22:31:13.85 9GUGdavc.net
置換表ですが、結局のところ、ハッシュのビット数を増やしてチェーン接続があまり
生じないようにし、メモリーをある程度のサイズでまとめて確保する、チェーン型
ハッシュに落ち着いています。
普段速度計測に使っているFFO#40-49ではconcurrent_unordered_map版より若干
遅いのです。が、どうも残り28手(現在はそのあたりをチェック中)では、自作チェーン
ハッシュの方が早いというか、ノード数が増えた時に速度低下が少ないように感じて
おり、現在は自作置換表を使っています。
とはいえ、29手や30手まで行った暁にはチェーン接続が多発し始めて速度低下が
始まると思われるので、対策を考えて行きたいと思います。28手が終わるまでまだ
一カ月くらいかかるので、幸か不幸か時間はたっぷりあります(--;
今のところチェーンの代わりに2分木を置いて、ハッシュが衝突したときの速度低下を
O(n)からO(log(2)n)にしてみようかと考えています。

604:535
19/01/09 23:20:11.40 ED/1LPLd.net
ふーむ。要素が少ない時はリストやツリーは遅く、配列が圧倒的に早いという認識でしたが。

605:535
19/01/12 00:34:20.08 I11IVt9R.net
あれ、序盤DBに棋譜を追加したら全然おかしな手を打つようになっちゃった。
棋譜がまずいのかな?

606:535
19/01/12 01:02:50.64 I11IVt9R.net
くそ~強いAI(自我があるとかではないよ)作りてぇなぁ

607:535
19/01/12 01:39:38.14 I11IVt9R.net
三連休とはいえそろそろ寝なければな。
生活のリズム崩すのはいくない。

608:535
19/01/12 21:33:08.59 I11IVt9R.net
質にばらつきのある棋譜から良いデータを抽出する方法はあるのだろうか?

609:535
19/01/12 22:30:56.75 I11IVt9R.net
うーんせっかく3連休なのに捗らないな。
これだというアイディアが湧くまでこねくり回すしかないか。

610:535
19/01/13 22:01:49.93 vPz6niN1.net
結局アルファゼロという正解がある限りその呪縛から逃れるのはかなり難しいorz
うーん。

611:535
19/01/14 21:36:22.16 yfXkG3lc.net
やっぱグラボも活用したいなぁ。
でも難しいんだよなぁ。
とくにウィンドウズだと。

612:535
19/01/16 00:51:29.20 ecOlQUBV.net
昨日一日学習回して損失が初期値の2/3位になった。
この辺が限界かなぁ
それともぞうきんを絞るようにまだまだ損失減るんだろうか?

613:310
19/01/18 00:47:06.53 YI61Q9H1.net
NN系は学習してるんだかわからない時があるよね。
とことんまで回すと今度は過学習も怖くなってくるし。

こちらは、自作concurrent_mapクラスができました。
ハッシュキーは二分木で、ハッシュ値は64bit。
配列ハッシュキー版と同様に、削除もiteratorも無し。
すこーし速度があがったかなぁ程度。
衝突時の処理はチェーン式。流石に64bitだとキーの衝突が無い。
棋譜訂正は時間がかかるので、暇つぶしが必要な状態。
二分木を赤黒木に変えてみようかと思い始めています(汗。
本当はヒューリスティックスの改良の方が効果あるんだろうなぁ。

614:535
19/01/18 22:51:46.73 glnAkAuX.net
今週は残業がひどかったorz
でも土日は休める。

615:310
19/01/19 09:03:58.77 /dbSBJQm.net
赤黒木を検討してますが、これ並列処理だと木全体をロックしないと
いかんのではないかと…。置換表のように追加の頻度が高いケース
では、排他待ちでパフォーマンス出ないかも。
まあ、やってみるしかないけれど。

616:535
19/01/19 11:25:42.95 R+TIxYAB.net
赤黒木とかめっちゃむずかしいやつですやん。
さすがですな。

617:535
19/01/19 19:50:28.36 R+TIxYAB.net
ん、なんか学習したネットワークがすべてのデータに対して同じ結果を返してるっぽい?

618:535
19/01/19 19:58:01.80 R+TIxYAB.net
学習開始時のネットワークの重みの初期化をミスってるんだろうか
うーん。

619:535
19/01/19 20:54:13.90 R+TIxYAB.net
tiny-dnn以外のGPU使えるライブラリで重みだけ学習してアプリケーションからはtiny-dnnを使うというのもあるのだろうか

620:535
19/01/20 02:28:47.86 O7gh4nMQ.net
全く同じ結果ではなく微妙に違う結果を返してるのは確認できたけど。
単に学習量がたりてないのかなぁ。

621:535
19/01/20 15:00:24.16 O7gh4nMQ.net
やっぱり全く同じ結果返してる??
混乱してきたorz

622:535
19/01/20 15:40:18.18 O7gh4nMQ.net
層が多すぎたのが悪かったみたい?
層減らしたら違う値になった。

623:535
19/01/20 17:41:45.52 O7gh4nMQ.net
お、LV1に勝った!
まあDNNの学習の効果の勝利というよりも序盤DBと詰みルーチンの補助による勝ちなんだけどね。
でもとりあえず、それっぽく動くところまで来ました。

624:535
19/01/20 17:54:10.26 O7gh4nMQ.net
序盤DBが良すぎてDNNの真価がわからないから序盤DB外してみるか…

625:535
19/01/20 17:59:21.27 O7gh4nMQ.net
酷すぎwwww
でもランダムよりはマシに見える。

626:535
19/01/20 18:24:44.15 O7gh4nMQ.net
やっぱ序盤DBに頼るか…
こんなにプログラムが楽しいの久しぶりやな

627:535
19/01/20 20:01:09.83 O7gh4nMQ.net
たぶんだけどまだまだ棋譜増やしたほうがいい。
ていうかあればあるほどいいい。まだまだ良くなる。
可能なら100万局を目指したい。

628:310
19/01/22 00:34:53.58 9pySCUmT.net
赤黒木大体できたけど…ただの二分木よりほんの少し遅い…。
元々ハッシュでランダマイズしているから、二分木の末端ノードまでの深さは
綺麗な正規分布になっていて、赤黒木にしても木の最頻高さで3割程度しか


629: 小さくならないという事で、ツリーを修正するオーバーヘッドが効いているのか、 それとも木全体でしか排他できないのが原因なのか。 もうちょっと調べてから諦めます。



630:535
19/01/22 22:52:21.02 jAP2hLDv.net
要素が100個未満ならぶっちゃけvectorでいいと思いますが。。。

631:535
19/01/22 23:02:42.33 jAP2hLDv.net
前も同じこと言ったような気がするけど、学習させるなら局面の勝率より次の一手のほうがいいのだろうか?

632:名前は開発中のものです。
19/01/22 23:17:25.29 LaaXTOn4.net
いまきたんですがここはどんなゲームを開発してるんですか
じぶんで開発したとして対戦相手=プログラムありますか

633:535
19/01/22 23:34:54.50 jAP2hLDv.net
>>619
とりあえず、落ち着いて。
過去ログから読んでください。

634:310
19/01/23 01:56:46.43 QHWWUXAJ.net
置換表に使ってるので要素数は現在残り28手で100万超える事もあります(汗
まあ、βカットの具合でだいぶ変わるので、学習進むと減るんですが。
最低でも残り30手まで行くつもりなので、1000万くらいは想定したいです。
次の一手ソート用の配列は、Array型にしています。32個確保すれば足ります。
こちらも比較したところ、明確に速度差がありました。この辺から、領域をチマチマ
確保されるオーバーヘッドが気になりだした次第です。
で、赤黒木ですが、実装が悪いのだと思いますが、現時点で2分木と比較して
およそ3倍時間がかかります。シングル動作でも同じくらいの差になるので、
排他待ちではなく、木のつなぎ替え処理の重さが原因かなと。置換表は追加が
の比率が大きいので、ポインタたどるロスは優位ではない感じ。
というわけで、赤黒木はちょっと放置。
というか、二分木もシングル動作は10倍くらい速い感じなので、今一度シングル
探索の並列化を試そうと思っています。

635:310
19/01/23 02:07:28.76 QHWWUXAJ.net
>>618
min-Max前提だと、探索値を求める際には勝率(点数)が必須で、
次の1手評価関数はオーダリングや前方枝刈向きではないですか?
探索深さ1なら次の1手で行けますが。
初代アルファ碁も、両方組み合わせていますが、次の1手評価関数で
手の優先順位をつける事で読み深さを実現した変則mctsで、最終的には
評価値で判断していますよね。

636:535
19/01/23 20:43:46.28 B65SvCza.net
ふーむ、勝率のほうが応用が利くってことですかね?
もうしばらく勝率で学習させてみます。

637:535
19/01/23 21:07:20.14 B65SvCza.net
ついネットワークを大きくしたくなっちゃうけど。
本当は小さいネットワークでエポック数を稼いだほうがいいのかもしれない。

638:535
19/01/23 21:28:27.72 B65SvCza.net
そういえば、対称局面も学習データとして使ったほうがいいんでしたっけ?

639:310
19/01/24 01:32:42.88 cGqmeFv+.net
囲連星は初期配置ないんでしょ?
だったら対象局面ありの方が良いと思う。
オセロは悩み中。
初手をF5固定にした時に、本当に対称局面が出てくるのかわからない。
対称局面が同じ重要性で生じないのであれば、評価値を希釈しちゃうだけ。
学習の時間も単純に倍々で増えるので、今はやっていない。
強いて言うなら、F5F6E6の次がF4とD6で斜め対称になるので、ここだけは
記譜作成時にはF4固定にして、D6の対称局面を作っている。

640:310
19/01/24 01:49:46.37 cGqmeFv+.net
置換表自作の件、目的を見失っている(汗
一旦リセットして、最初からやり直して、当初の目的に戻ろうと思うorz

641:578
19/01/24 01:53:14.72 mzMMzuaC.net
私は教師データの数が8倍になるのは大きいと思って対称局面も入れて学習させてます
とくにDeep Learningさせてると(ネットワークの規模にもよりますが)だいぶ過学習しなくなります
もっとも、Deep Learningするんだったら対称性を考慮したネットワークにしたほうがいいのかもしれないですが・・・

642:310
19/01/24 02:08:25.51 cGqmeFv+.net
着手できる場所の自由度が高いゲームは回転させるべきだと思う。
オセロは着手可能場所が限られるので、現れない局面が結構ありそう。
ちなみに、オセロは8倍じゃなくて4倍。初期配置が4対称だから。
囲連星は初手天元固定なのかな?

643:578
19/01/24 07:09:21.18 mzMMzuaC.net
>オセロは8倍じゃなくて4倍
たしかに棋譜で考えると4対称しか無いですね
今のところ、学習させるときには現局面しか渡してないので、
90度回転で一致する局面が存在するかもしれないから8倍で良いはず…

644:535
19/01/24 22:03:23.55 gSjgdU9w.net
うーん。今のやり方だとLV0やLV1とはいい勝負になるけどLV3には一生勝てないかも?
出来れば自己対戦による強化学習とか取り入れたいな~
対称局面もやってみますね。

645:535
19/01/24 22:45:59.18 gSjgdU9w.net
なんか長時間計算回してると画面が真っ暗になってマウスやキーボード押しても復帰しないことがあるんだが?
スリープは解除してるはずなんだけどなんなんだろう?

646:535
19/01/25 23:18:39.41 gNQn5rdl.net
LV0ってやっぱ棋力低いな。
そんなLV0といい勝負の俺のAIもあれだけど。
やればやるほどLV3の完成度の高さが際立つ。

647:310
19/01/26 17:00:37.38 VyVaK4H+.net
自作置換表ですが、大体のところがまとまりました。
結局のところ、unordered_mapを作っていた形になります(汗
当初は領域の追加について、データ部分をまとめて追加する方向で改造し、
ハッシュ配列については22ビット固定で、高速化をしました。で、ハッシュ配列が
22ビット固定は芸がないと、二分木・赤黒木などを試しましたが、速度大幅低下。
要するに、unordered_mapにmapを組み合わせて、ハッシュのメリットを相殺して
しまっていたという事で。
最終的に、ハッシュ配列の追加方法をようやく思いつき、組んでみたところ、それが
そのままunordered_mapのrehashだと気が付きました(汗。その後、max_load_factor
などを追加して、unordered_mapと条件を揃えて速度比較となりました。
iteratorと削除が無い分だと思いますが、unordered_map、concurrent_unordered_map
に対して、それぞれシングル版、concurrent版とも若干高速になりました。
新たな課題は…stlも自作版も、どちらも並列に動かしたconcurrent版の方が遅いと
言う事です。もともとそういうものなのか…テスト方法が並列向けじゃないのか。

648:535
19/01/26 17:38:15.71 VGsbBdjp.net
8対称はメモリがやばいので4対称にします。
4対称で16GB位食ってる。

649:535
19/01/26 17:54:22.18 VGsbBdjp.net
思い切っていいPC買ったけどまだ足りないとかorzorzorz
ケチらず64GB積むべきだったか?

650:535
19/01/26 18:59:37.97 VGsbBdjp.net
1エポック4539秒
これは厳しいorzorzorz
GPUが使えれば…

651:535
19/01/26 19:45:15.05 VGsbBdjp.net
ん、1エポック目だけど損失がかなり少ない。。
対称局面を入力とすることで特徴量がよりはっきりしたということだろうか?

652:535
19/01/26 19:46:56.43 VGsbBdjp.net
ん、動きが断然よくなってる?
まだわからんが。

653:535
19/01/26 19:53:15.64 VGsbBdjp.net
対称局面学習以前はどちらかというとランダムに近かったが
対称局面学習以後はどちらかというと知性があるっぽく見える。
まだわからんが。

654:535
19/01/26 20:02:51.02 VGsbBdjp.net
これでエポックが進めばとんでもなく強くなる?
まだわからんが。

655:535
19/01/26 20:15:10.01 VGsbBdjp.net
マシンパワーが欲しい!
Googleに匹敵するマシンパワーが!

656:535
19/01/26 20:40:08.93 VGsbBdjp.net
まだLV3には遠く及ばないな。
でも希望が出てきた。

657:535
19/01/26 21:34:58.78 VGsbBdjp.net
学習用、棋譜採取用、対戦統計用、開発用で4台マシンほしいw

658:535
19/01/26 22:03:09.49 VGsbBdjp.net
やっぱ思考時間短いのはいいな。
モンテカルロは強いけど思考時間長すぎたからな。

659:535
19/01/26 23:04:44.42 VGsbBdjp.net
棋力が低すぎてすさまじい泥仕合になるの切ないorz

660:535
19/01/26 23:32:04.39 VGsbBdjp.net
メモリがもっとあれば異なるネットワークを並列に学習とかもできたかもなぁ
まさか32GBで足りないとは…

661:535
19/01/27 14:58:44.29 RY/5cpPz.net
DNNの評価値とMM法の評価値の和で最終評価値を算出するようにしてみました。
多分DNNのみより強くなってます。

662:535
19/01/27 15:49:50.57 RY/5cpPz.net
黒番で軽く動かしてみました。
10局目
黒(airandom.dll)の勝利回数: 8
白(ai-lv1.dll)の勝利回数: 2
まずまずの結果かな。
ちなみに白番はうまく動いてなくて1の1とか打っちゃうので途中で中断しました。

663:535
19/01/27 16:41:37.92 RY/5cpPz.net
うお、猛烈に追い上げられてるorz
悪くない手ごたえがあったと思いましたが…
25局目
黒(airandom.dll)の勝利回数: 15
白(ai-lv1.dll)の勝利回数: 10

664:535
19/01/27 19:54:22.32 RY/5cpPz.net
ちょっとヒューリスティックを入れました。
詰めろがあるときは詰めろを優先的に打つ。
当たりの点数を恣意的に上げる。

665:535
19/01/27 21:09:49.27 RY/5cpPz.net
うおお、キター
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

666:535
19/01/27 21:11:57.38 RY/5cpPz.net
ついDNNの学習に計算リソースを使いたくなっちゃうけど
ぐっとこらえてすべての源泉である棋譜取りにリソースを回すのが正解かも?

667:535
19/01/27 21:39:45.24 RY/5cpPz.net
いやーこんなに充実してるの久しぶりだな。
長いトンネルを抜けたようだ。

668:535
19/01/27 22:08:36.61 RY/5cpPz.net
うお、また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])

669:535
19/01/27 22:25:29.35 RY/5cpPz.net
明日は仕事だから夜更かしは社会人として自制しなければwwwww
そろそろ切り上げるかwwww

670:535
19/01/28 19:44:18.33 m5wr/yMi.net
そういえば赤黒木って深さキャッシュして置くんですか?オーダーlogで深さを求める方法が思いつかない

671:535
19/01/28 21:07:17.34 LAfUnJ6o.net
長連判定入れなかったのが意外と響いてるな。
ちょくちょく長連に引っかかる

672:535
19/01/28 21:36:36.08 LAfUnJ6o.net
ん、DNN学習の裏で棋譜取りしたら計算速度落ちてるな。
コア数は足りてるはずだがメモリ帯域が足を引っ張ったのだろうか?

673:535
19/01/28 22:36:38.66 LAfUnJ6o.net
こちらの棋力が上がるのに呼応するようにLV3も素晴らしい手を返してくる。
奥が深いすな。

674:535
19/01/28 22:50:40.16 LAfUnJ6o.net
LV3との対戦統計とってみたいけどまだ時期尚早かな。
まずは大量の棋譜を手に入れる。
量が質に転換する地点が必ずあるはず。

675:535
19/01/28 22:57:44.79 LAfUnJ6o.net
将来的には自己対戦による強化学習は絶対取り入れたい。

676:535
19/01/29 20:45:33.27 PoANmAul.net
今一手読みで打ってるから、3手読みとかモンテカルロか入れたらもちっと改善するかな?
でも計算量がどうなるかだなぁ。
遅いのはコリゴリ。

677:535
19/01/29 22:13:06.04 PoANmAul.net
とりあえず2手読みにしてみたけど2手読みが限界かなぁ
3手は計算量的に相当厳しそう。

678:535
19/01/29 22:33:10.05 PoANmAul.net
2手読み、なかなかいい感じ。
1手読みから明らかにうち筋が良くなっている。
もし3手読みにしたら…

679:535
19/01/30 21:21:00.00 d36pZkYy.net
3手読みを仮組してみました。
計算時間がやばいので前方枝刈で思いっきり枝刈してます。

680:535
19/01/30 22:07:01.71 d36pZkYy.net
あああ、惜しいなぁ!
今すごくいい勝ち方しそうだったのに!
(;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]))
もしこの勝ち方ができてたら瞬間最大棋力は名人に届く、ってくらいすごかった。

681:535
19/01/30 22:44:38.83 d36pZkYy.net
実装もひと段落ついた感じがあるので対戦統計とってみます。

682:535
19/01/31 20:38:25.44 wmRSa8/r.net
やはり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

683:535
19/02/01 20:50:18.97 YKCFM9Y9.net
序盤DBがlv3 vs lv3の生の勝率データだからちょっと加工したらもっと有益なデータにならないかな

684:535
19/02/01 23:25:50.28 c38ZEsSq.net
バグは小説よりも奇なり

685:535
19/02/03 19:29:39.51 AT8t8or9.net
(;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])

686:535
19/02/03 20:43:10.48 AT8t8or9.net
(;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])

687:535
19/02/04 21:24:20.28 xSiFrXwQ.net
コア数が足りていたとしても性能が落ちるのは
ターボブーストが利かなくなる分クロックが落ちるということだろうか?

688:535
19/02/04 21:32:25.91 xSiFrXwQ.net
単独で学習流すと1エポック5000秒強くらいだが棋譜取りと並列にすると1エポック8000秒弱かかる。
結構違いますね。

689:535
19/02/05 19:35:44.19 LeUKzWtY.net
自分からすぐ取られる手を打たない、必敗の手順をちゃんと読む、などの地味な改良をした結果だいぶ改善したようです。
38局目
黒(airandom.dll)の勝利回数: 37
白(ai-lv1.dll)の勝利回数: 1
28局目
黒(airandom.dll)の勝利回数: 28
白(ai-lv2.dll)の勝利回数: 0
30局目
黒(airandom.dll)の勝利回数: 12
白(ai-lv3.dll)の勝利回数: 18

690:535
19/02/05 19:37:52.43 LeUKzWtY.net
そろそろ白番もちゃんと動くようにしなければ…

691:535
19/02/05 20:01:16.79 LeUKzWtY.net
白番が動かないことには自己対局による強化学習も不可能…

692:535
19/02/05 20:07:09.73 LeUKzWtY.net
>>676の棋譜を見ていますが自分からすぐ取られる手を打たなくしたはずなのですが打ってますね。。。
バグか。

693:535
19/02/05 20:47:39.46 LeUKzWtY.net
すげぇぇぇええええぇえ!
ゲタ打った!!!

(;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])

694:535
19/02/05 20:55:47.56 LeUKzWtY.net
ゲタなんか一切教えてないのにゲタ打った。
この衝撃がみんなに伝わるかなぁ。

695:535
19/02/05 21:18:10.97 LeUKzWtY.net
あれ、ネットワークのファイル更新したらLV2に負けるようになっちゃった。
なぜ?

696:535
19/02/05 23:23:47.50 LeUKzWtY.net
ネットワークじゃなくて序盤DBがおかしいのかなぁ。

697:310
19/02/06 01:11:54.97 uzcir1oY.net
久々です。
置換表は、だいぶ前にリハッシュ対応して、この辺にしとこうか状態になってます。
多分unordered_mapの仕組みはそこそこ理解できたと思います。
deleteとガベージコレクション、iteratorを除いてですが。
Edaxのソースを解析しようと、VC++で読み込んでみましたが、Edaxは裸のCで…
_s地獄とコンパイラの違いで、動かすところまで持ち込むのが相当大変な感じ。
一番の地獄は、探索部のソースを見ても何がなんだかわからない事。
せめて偶数理論のところは見つけたいんだけど。滅茶諦めモード。
というわけで、記譜作成を動かし続けるしかなくなってしまいましたorz
WZebraのソースが見たい…。

698:310
19/02/06 01:14:08.23 uzcir1oY.net
>>675
メモリバスの帯域とか、L2キャッシュ溢れとか…
わかっているけど、エビデンスが取れないので、認められないorz

699:535
19/02/06 20:19:19.81 s2iJEq7C.net
ゲタっぽい手また打った。
パッと見成立しないんだけど、なんとなく味が悪いことわかってるんだな。
すごい!
(;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
マルチ性能も大事だけどシングル性能も結構大事で
並列計算するか結構悩みどころですね。
学習結果が早くほしい時は棋譜取りしないというのもありっちゃあり。

700:535
19/02/06 21:11:19.34 s2iJEq7C.net
ん、なんかいままでは序盤DBの力で勝ってきたようなものだけど、
むしろ中盤力のほうが勝り始めてる気がする。
序盤DBが物足りなく感じる。。。

701:535
19/02/06 21:50:52.85 s2iJEq7C.net
いろいろ試してみたくなるけど、やっぱ棋譜取りがすべての源泉な気がする。
日中は棋譜取りに専念するのが吉か?

702:535
19/02/07 21:28:54.73 GJ+3NG1C.net
やはり更なる上を目指すには強化学習が必須か?

703:535
19/02/07 21:49:04.85 GJ+3NG1C.net
どうやっても勝ちってかんじではあるけど
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])

704:310
19/02/08 00:11:00.05 Ar3tbH3V.net
偶数理論なかなか良い実装を思いつきました。
オーバーヘッドが極小なのは、オーダリングへ影響する値だけゼロにして、
ほぼ速度低下が無い事で確認済です。が…何をどうしても速度がダウンします。
というわけで、またしても偶数理論挫折。
次ネタ考え中。
ネタを一つ見つけたけど、結構全面改訂になりそう。

705:535
19/02/09 16:38:22.33 Y3QZLQMW.net
なんかひと段落ついちゃったら次何すればいいかわかんなくなっちゃったな。
とりあえず、棋譜取りだけは地味に続けるけど。

706:535
19/02/09 16:39:13.34 Y3QZLQMW.net
白番がバグってるの直すのあったなそういえば。。。

707:310
19/02/09 21:06:41.89 bf+o2ihZ.net
次ネタ結構大変だと思ったら、意外と簡単にできた。
FFO40-49のタイムは30%強短縮した。
FFO40が悪化して、49はだいぶ短縮しているので、探索深さが深い方が
効果が出る傾向に見える。という事は、残り28か所空きをやっている棋譜
作成では、もっと改善する可能性あるかも。
思い込みって怖い。正直、何故今まで思い付かなかったのだろうというレベルorz

708:535
19/02/10 00:11:19.28 CIRPPqWT.net
白番動くようになったみたいです。
白番で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])

709:310
19/02/10 09:57:20.94 WWsJbkKo.net
パラメータの調整というか、使い方変えたら、更に5%くらい改善。
残り28手空きの記譜作成は、トータル倍弱まで速度アップした模様。
とはいえl、記譜作成の方は、解く問題によってばらつきが大きすぎる
ので、もう少し様子を見ないと、どれくらい早くなったかはなんとも
言えない。早くなったのは確実。
さて、またネタが無くなった(汗

710:535
19/02/10 14:13:32.91 CIRPPqWT.net
分かってたつもりだったけどLV2の黒番のうち筋が思ったより良くて、
序盤DBに取り込んでもいいかなってちょっと思うようになった。

711:535
19/02/10 14:38:22.21 CIRPPqWT.net
lv2 vs lv3で棋譜取りしてlv2のいいところを抽出しようとしたら
lv3が強すぎてlv2のいいところが取れないっぽいんだがwwww
これは計算外

712:535
19/02/10 16:41:39.34 CIRPPqWT.net
lv2 vs lv3はlv2の勝率が3割3分くらい。
思ったよりはlv2が善戦してるかな?

713:535
19/02/11 00:03:36.62 upj5oiO/.net
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は白番でいい勝負なのはすごいですが、
黒番で勝ててないのが気になりますね。

714:535
19/02/11 19:03:47.89 N2auq0Bn.net
黒番対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

715:535
19/02/11 21:10:52.87 N2auq0Bn.net
でも悲しいことに俺のAIには怖さがないんだよなぁ。
ちょっと気を抜くと負かされてしまうような怖さが。
lv2とlv3にはそれがある。

716:535
19/02/12 20:26:23.49 G3iO6dyJ.net
こんな感じです。
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局打ちたかったんだけど時間がかかるので打ち切りました。

717:535
19/02/13 19:55:00.78 7bnMzRQL.net
DNNの教師データを棋譜からの生勝率ではなく、少し探索した結果にしてみようかと思ってます。

718:535
19/02/14 22:04:12.79 yW8Bcw4A.net
なんか変な手打つorz
結局、生勝率が一番いいのかな…

719:名前は開発中のものです。
19/02/15 23:01:57.18 szQyRPlV.net
>>684
URLリンク(github.com)
は VC でもコマンドラインならビルド可能です。(NMakefile)
(本家の Edax も NMakefile は付いているが、多少変更が必要)
Edax の偶数は基本的に Zebra と同じ。QUADRANT_ID あたりを追ってみては?

720:310
19/02/15 23:44:55.03 fcveN5+T.net
>>706
情報ありがとうございます。そのソースなのですが、コマンドラインなのですね。
ビルドしたかった理由はデバッグモードを使いたかったからです。
QUADRANT_IDのあたりは追っかけたのですが、もともとの探索の構造が
読めなくて、デバッグモードに頼ろうとした次第です。
で、処理内容を予想して自分で組んでみたのですが、FFOテストでは速度が
若干ですが、落ちてしまうのです。

あと、実はVC++しか使った事ないというか、オセロ開発でC++使い始めたので、
makefileが何やってるのかわからないです(汗
というわけで、ちと調べてみます。
動くだけでも、自動対戦の相手になってもらえる可能性ありますから。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch