【オセロ,将棋】ボードゲーム Part2【囲碁,War】 at GAMEDEV
【オセロ,将棋】ボードゲーム Part2【囲碁,War】 - 暇つぶし2ch495: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が何やってるのかわからないです(汗
というわけで、ちと調べてみます。
動くだけでも、自動対戦の相手になってもらえる可能性ありますから。

721:535
19/02/16 00:14:31.55 MvwJSI7c.net
310さんってC++のエキスパートなのかと思ってたっす。
ちょっと意外。

722:535
19/02/17 21:11:39.54 23WhPvCR.net
ネタがなくなってちょっと熱も冷めた感じ。
とりあえず、自己対局による強化学習をぼちぼち何とかしたい。

723:535
19/02/18 23:23:00.57 dOglmLQj.net
俺の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])
両当たりかけられるところを放置したり抜かなくていい石を抜いたりいろいろ危なっかしいところはあるが
現状、こんな感じです。

724:535
19/02/19 22:08:59.80 d5ndvgDR.net
いまよりもっと人工知能技術が普及して働き口が増えたら人工知能系の職に転職したいwww

725:535
19/02/19 22:42:38.22 d5ndvgDR.net
次のアイディアが出るまで
対LV3の棋譜をとる→序盤DBを更新する→DNNを更新する→対LV3の棋譜をとる
のサイクルを繰り返すことにします。

726:535
19/02/20 21:16:37.27 d5NzdsVZ.net
珍しい負け方した。
白必勝形のダブルリーチ
この形は非常に珍しいと思う。
(;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])

727:535
19/02/21 19:59:44.77 PxV5X23E.net
日に日にじわじわ強くなってる気がする。
どこかのタイミングで爆発的に強くなったりしないかな?

728:310
19/02/22 00:24:39.77 e/VjvE/W.net
ようやく評価関数が安定してきたのか、遡り記譜作成の速度が上がってきた気がする。
暇なので、mctsでも組んどこうかと考え始めたら、置換表の新アイデアが。
今までは、unordered_mapにとらわれていましたが、もともと探索木は文字通り
ツリー構造なので、その形のまんま置換表にして、探索しながら木を同時並行
でたどっていけば、置換表内で「探す」必要が無い上に、着手リストがそのまま
ノードとして存在しているので、反復系の探索の時に何度もmobility関数を呼ぶ
必要が無い。
結構大掛かりな修正になりましたが、とりあえず基礎的な探索まではできるように
なりました。速度計測はこれから。
あと、shared_ptr使った事で、不要な置換表データを自動削除できるので、minMaxで
AIを組んだ時に、置換表を縮小しながら再利用できるかなと。
あ、mctsはどこに行ってしまったんだろう(汗

729:535
19/02/22 20:49:26.61 pJcyJywR.net
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 と比べてかなりいい数字です!

730:310
19/02/23 17:22:38.75 XSOOC+yB.net
>>715の続き
良く考えたら、ツリー構造で自分の値を残しておくという意味で、mtd(f)や
反復深化の系統には効果あるけど、同じ局面を見つける事ができないので
そもそも置換表ではありませんねorz
その代り、並列探索でも排他制御をしなくて良い事になります。
メモリー使用量も少なくて済みます。
速度については、今のところ微妙。
棋譜作成が一段落したらPCリセットしてクリーンな状態で再計測の予定。

731:535
19/02/23 19:16:16.09 ThnkYxTz.net
対戦統計っ


732:て10000局くらいやらないと±10%くらいの誤差は簡単に出てしまうのかもしれない。 何局くらいやれば信頼できるんだろ?あんま統計詳しくないんだよな~



733:535
19/02/23 19:28:15.18 ThnkYxTz.net
そういえば「コンピュータ囲碁 ―モンテカルロ法の理論と実践」になんか書いてあったような気もする。

734:535
19/02/24 21:49:18.42 auCrr5Wc.net
なんか弱くなってる気がするorz
LV0とかLV1にも序盤不利になったりするorz
最終的に逆転できることもあるんだけど、そのまま押し切られることもあるorz
まずいでしょうこれはorz

735:310
19/02/24 23:56:43.56 GBomweD/.net
んごー。めっちゃスピードダウンorz
ダメ筋だったかも。
途中速度アップしてる気がしていたけど、単にバグっていただけだった。
置換表機能が消えて、余計な筋を読んでいるのか。
それとも、パラパラとmake_sharedしているからなのか。
どうせやる事ないので、しばし検討。

736:535
19/02/25 20:30:16.25 /PmJxqQK.net
もっとマシンパワーが欲しい!
モアパワー、モアトルクだ!

737:535
19/02/25 20:48:25.65 /PmJxqQK.net
大学で統計の単位とっとくんだったorz
独学は厳しいorz

738:535
19/02/26 20:20:50.08 veq8AgWN.net
序盤DBはもう少し工夫しないと駄目かもなぁ

739:535
19/02/26 22:16:04.17 veq8AgWN.net
あの伝説の手筋が実現しかけたが、残念ながら実現しなかった。
あとちょっとだったのに、悔しい!!
(;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])

740:535
19/02/26 23:53:19.73 veq8AgWN.net
負けたけど、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])

741:535
19/02/27 21:30:22.80 Y++kUwc3.net
モンテカルロ木探索とDNNと組み合わせてみようかなぁ
そのほうがランダム性も出せるし
でも遅くなったらやだな。うーん

742:535
19/02/27 22:03:24.47 Y++kUwc3.net
なんか取れないシチョウを追いかけたw
シチョウルーチンにバグがあるのか、DNNの評価値でシチョウを追いかけてしまったのかイマイチ判断がつかないな。

743:535
19/02/27 22:47:59.69 Y++kUwc3.net
ん、なんかLV2にコロコロ負けるようになった。
自分のAI vs lv 3 の棋譜を取り入れたせいで序盤DBが狂っちゃったかな。

744:535
19/02/28 22:39:23.34 VN3HTH0V.net
なんか新しいアイディアが欲しいな。
>>712のサイクルはちょっと手詰まり感。

745:535
19/03/04 20:07:01.61 +UlAfF8J.net
ここ数日さぼりっぱなし。
棋譜取りも逆に弱くなりそうでさぼってます。

746:535
19/03/04 22:26:37.19 +UlAfF8J.net
やっぱ序盤の大局観で優位に立ちたいんだよなぁ。
中盤、終盤はある程度読みでカバーできるけど序盤はマジ謎が多いからな。

747:310
19/03/04 23:03:17.87 2gMEJXd0.net
バグでドツボ中。
再現性がなさすぎて、よーわからん。
頻度の低さと、再現性の無さから、置換表の二重更新だと思うんだけど…
それっぽい箇所も見当たらない。

748:535
19/03/09 21:06:39.62 jNDDSRBd.net
完全にさぼり状態。
アイディアも枯渇したし。
どこかにネタ落ちてないかな。

749:535
19/03/10 00:25:59.41 BU7hKn7v.net
禁断の人間(俺)vs lv3の棋譜取りをやろうかと思ってます。
これは手間が半端ないw

750:535
19/03/10 00:40:34.55 BU7hKn7v.net
早くもギブアップwwwww
なかなかいい棋譜が取れない
基本的に無理筋orz.

751:535
19/03/10 20:17:25.17 BU7hKn7v.net
自分の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])

752:535
19/03/11 19:47:21.03 X4t/4BPO.net
棋譜取り再開しました。
弱くなる可能性は潰せてないのですが、何もしないよりはましだと思って。

753:535
19/03/11 21:55:27.12 X4t/4BPO.net
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%
悪くない

754:535
19/03/12 20:57:52.00 ACQKgt0P.net
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])

755:535
19/03/12 21:01:50.73 ACQKgt0P.net
それにしてもディープラーニングの学習がメモリ20GB食ってるんだがw
奮発してメモリ32GBにしといてよかった。
やっぱハードウェア性能は正義だな。
Zen2のスリッパ出たらうっかり買いそうで自分が怖いw

756:535
19/03/13 20:46:36.19 7rSi15yT.net
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%
弱くなったのか誤差の範囲なのか、うーん。

757:535
19/03/14 23:27:52.29 V04VYcAB.net
>>742の棋譜を序盤DBに取り込んで、その序盤DBをもとにDNNの学習をやり足しました。
DNNは序盤DB拡張と学習のサイクルを繰り返し行っているので秘伝のタレみたいになってますw
これで今夜からもう一度対LV3対戦やってみます。

758:535
19/03/14 23:40:56.98 V04VYcAB.net
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)


759:535
19/03/14 23:44:29.21 V04VYcAB.net
ありゃなんかRock54ついとる。
文章の繰り返しが駄目なんか?

760:535
19/03/15 20:06:11.54 PqqnV2Up.net
残念ながら駄目でしたorz
155勝 209敗 勝率 42.6%
やっぱ対局回数増やすとこの辺に落ち着くのか、うーん

761:535
19/03/16 18:31:00.14 7iioDFjE.net
>>746から対戦を止めずに継続していましたが
211勝289敗 勝率42.2%
となりました。
やっぱこの辺が真の値なのかな。

762:535
19/03/17 00:52:38.93 5SZpbjE6.net
更に学習を続けます

763:535
19/03/17 21:35:48.21 5SZpbjE6.net
まじでZen2スリッパでたら買ってしまいたい衝動に駆られる

764:535
19/03/18 00:19:09.18 eJisfZab.net
8勝2敗だと95%の確率で強いといえるらしいが、12並列もしてると1つは8勝2敗ぐらいになったりするw。
まあ確率的にはそうなのかも。
結局1000局くらいやらないと駄目ってことかな?

765:535
19/03/18 21:25:08.42 eJisfZab.net
やっぱ弱くなってるかもT△T
143勝 220敗 勝率 39.4%
このままこの学習サイクルを進めていいか迷うorz

766:535
19/03/18 21:37:35.02 eJisfZab.net
禁断のモンテカルロ木探索の封印を解くか?
しかしあれは計算時間が半端ないからな。
出来れば避けたい。

767:535
19/03/18 21:52:51.93 eJisfZab.net
プロのタイトル戦が7番勝負とかだけど7番ぽっちじゃ真の強者はわからんってことやなw

768:535
19/03/18 23:53:39.58 eJisfZab.net
モンテカルロ実装したけど、なんか素朴な手を選ぶようになってしまった。
うーん、コレジャナイ感がorz

769:535
19/03/19 21:06:00.35 87DWY+/2.net
なんかおかしい。
LV3が強すぎる気がするw
もしかしてLV3には学習機能がついていて計算回せば回すほど強くなるとか?w
んなわけないか。

770:535
19/03/21 03:04:06.19 gYmqCPQ5.net
祝日だって油断してたらこんな時間w
弱くなってもいいから計算量削る方向で調整しています。

771:535
19/03/21 17:29:13.47 gYmqCPQ5.net
対戦統計とってます。
66勝 70敗 勝率48.5%
今のところむしろ勝率上がってます!
速度も若干だけど速くなったはず…
勝率50%が欲しい!

772:535
19/03/22 19:55:26.77 9WNMIpie.net
161勝188敗 勝率 46.1%
悪くない。

773:535
19/03/22 20:13:46.91 9WNMIpie.net
次のアイディアが欲しいところだ

774:310
19/03/23 00:07:59.98 QKAaRf+n.net
久々です。
新型版はテストのためにいちいち学習を止めるのが面倒で、放置しています。
一晩耐久テストやらないとわからないので。
で、未だずーっと棋譜作成&学習を続けています。
もともと800件強の記譜をベースに間違い訂正をしたり、確定しているところ以降
の全分岐を作成したりして学習データにしていたのですが、昔作った記譜なので
序盤で結構間違いが多く、効率よく学習できないのではないかと考えました。
で、最近は序盤の定石6~20手からスタートして記譜を作成したりしていました。
そこそこ序盤の間違いが訂正されてきたのですが、まだところどころおかしい
ところがあって、Zebraで並べてみながら、多分間違えたであろう箇所を特定して
それ以後の記譜を作らせる事で、強制的に正しい手順に戻すなんていう、禁断の
ドーピング技を始めてしまいました。
現在は1200記譜くらいまで増えていますが、まだまだ間違いも散見されますし、
パブリックドローの変化っぽいのに、記譜が無いものもあり、まだまだ記譜が足り
ていない感じです。
あと、ドーピング作業やりながらZebraの評価値見ていると、20~30手目あたりは
進行の種類によってはZebraの評価値もあまりあてにならないなぁと言う事に気付い
てしまいました。ここら辺の精度を上げると、もっと強くできるのではないかと思います。
自動対戦してくれる序盤DB付きのオセロプログラムがあると、ドーピング作業が更に
楽になるんだけど(汗
現在残り20手目以後の学習に使う盤面は70万件くらいになっています。それでも
残り20手以後の初見の盤面の評価値では結構な誤差があります。本当にBuroさん
の線形評価関数で良いのかというのも相変わらず悩ましいところです。

775:535
19/03/23 09:44:42.00 C9QFpANM.net
197勝 233敗 勝率 45.8%
悪くない。
一旦対局中断します。

776:535
19/03/23 17:57:32.40 C9QFpANM.net
やっぱ1手1秒くらいで打ちたいなぁ。
そうすれば対戦統計も棋譜も全然もっと取れるのに

777:535
19/03/23 21:04:03.52 C9QFpANM.net
LV2と対戦してみました。
50局目 黒(airandom.dll)の勝利回数: 48 白(ai-lv2.dll)の勝利回数: 2
勝率 96%

778:535
19/03/24 10:11:30.45 IEpX66ro.net
LV1ともやってみました。
50局目 黒(airandom.dll)の勝利回数: 45 白(ai-lv1.dll)の勝利回数: 5
勝率 90%

779:535
19/03/24 21:21:09.27 IEpX66ro.net
ふーむ、損失が減らない地点まで学習が進んでしまったようです。
一回止めるか。

780:535
19/03/24 21:27:42.78 IEpX66ro.net
うーん、やっぱ現状を打破する画期的なアイディアが必要かな。
ちなみにいまは強さよりも速度が欲しいかも。

781:535
19/03/25 05:48:57.06 9reqTGkG.net
対戦してます。
黒番 対 LV3 107勝 102敗 勝率 51.2%
200戦以上して勝率50%超えはすごい!
今日一日回してみます。

782:535
19/03/25 21:18:02.28 9reqTGkG.net
結局負け越しでした
165勝 174敗 勝率48.7%
でも決して悪い結果ではない!

783:535
19/03/26 21:11:49.41 AISc91ZO.net
まだ回してました
239勝 237敗 勝率 50.2%
キター!
まあ、今だと50%行くかどうかはホント運しだいなんだろな。

784:535
19/03/26 21:12:45.47 AISc91ZO.net
そろそろ対局止めて次の学習のターンに入ります。

785:535
19/03/26 21:59:22.07 AISc91ZO.net
うお、棋譜が多すぎてls */*.sgfがコアダンプするようになったw
分割しないと駄目か~

786:535
19/03/27 21:35:10.22 4D2b4lCy.net
そろそろ人間(俺)相手に勝利が欲しいところだがまだむずかしいかな。
素人相手なら勝てるんだろうか?

787:535
19/03/28 19:32:56.94 ZCt2CXW9.net
165勝 176敗 勝率 48.4%

788:310
19/03/30 20:46:31.09 IsrC9h82.net
既知のパブリックドローのリストが見つかったというか、
今年になってブログでまとめて発表してくれている人がいた。
ちょうど良いタイミングすぎる(汗
2種類あるのと、自分がZebraから拾った奴を合体して、32手目まででカット。
ソートして重複削除したら450件程度に。多分既存の記譜と多少重複してると思う。
全部やるとかなり記譜が偏る気がするけど、やっちゃうかな。

789:535
19/03/30 23:47:00.24 o6pzrkpp.net
序盤DBを劇的に改善する方法ないかな?
不利なオープニングを避けるだけで勝率めちゃくちゃ上がりそうな予感がするんだが。

790:310
19/03/31 01:39:32.24 5poc64Oc.net
棋譜から序盤DB作れない?

791:535
19/03/31 09:41:09.06 eFSA5935.net
作ってるですがそれでも不利な局面になったりしますorz

792:310
19/03/31 20:14:25.76 5poc64Oc.net
棋譜から序盤DB作る時に、その盤面からの勝率入れて、勝率が高い手を指す
ようにするとか。まあ、ぶっちゃけ記譜単位でmctsやってるような事になるの。

793:535
19/03/31 20:34:17.11 eFSA5935.net
いや、それに近いイメージのものはすでに実装してあるんですが、たまに変な手を打つのです。

794:310
19/04/01 20:17:52.98 JaNWOXQ3.net
普通DB化すると同じ手順だと毎回同じに間違えるはず。
だとするなら、DBの棋譜をテキストに吐き出すなどして、チェックしたら?
間違いっぽい分岐見つけたら、正解着手させてその後を対戦させて記譜を
強制的に正しい分岐を学習させるの。そのあとでも間違えて、なかなか治らない
事もあるけど。
これが>>760で書いたドーピング。

795:310
19/04/01 20:22:42.07 JaNWOXQ3.net
>>774のリスト。パブリックドローはFJT分だけだった。
2種類あって、もう一つは代表的な序盤定石から適度に着手した後で、
残り30手を読み切ったリストで、ドローとは限らなかった。
遡りチェックの時にあり得ない奴があったので、気が付いた。
試しにZebraで並べて評価値見てみたら、中盤で結構変な手順になっていたりする。
まあ記譜の足しにはなるかなぁという感じ。

796:535
19/04/01 22:13:58.23 58wx0Qom.net
手動でDB書き換えるのは工数的に地獄の苦しみなのですw
まあ、負けた棋譜だけ水増ししてDBに登録するのはあるかも?

797:535
19/04/01 23:15:44.55 58wx0Qom.net
自動対局プログラムに手を入れて棋譜のファイル名に黒が勝ったか白が勝ったか入れるようにしました。

798:535
19/04/02 20:42:13.63 IVxd4rzM.net
やっぱ手動で棋譜を訂正するのはムリゲーだなぁ。
棋譜訂正も自動化すべきかな。
うーん

799:310
19/04/02 20:42:16.77 BP3gZfVl.net
そうか。オセロだとある程度定石はあるし、ZebraやEdaxで並べれば
終局スコアの予想はできて、間違いが見つけやすいけど、囲連星では
そうはいかないですね。
途中で変な手を打つのは、恐らく記譜が足りていないからではないかと
思います。オセロでもドーピングやらないで純粋に自己対局学習だけで
やった場合、1万~10万対局くらいは必要かなと思っています。

800:535
19/04/02 22:11:14.64 IVxd4rzM.net
勝った棋譜水増しするのと負けた棋譜水増しするのどっちがいいんだろ?
おんなじ割合で水増ししたら意味ないかもw
とりあえず負けたほう増やすか

801:535
19/04/03 22:07:38.48 +wdY9CJ5.net
とりえあず、負けた棋譜を100倍にして序盤DBに注入してます。
定型パターンにはまりやすいLV2にはかなり効果あるのですが
変幻自在なLV3には今一つみたいです。

802:535
19/04/04 20:30:39.10 QG8xddyq.net
負けた棋譜だけ増やすとバランス崩れるかも?と思い始めました。
うーん。

803:535
19/04/04 22:06:44.84 QG8xddyq.net
やはり大量、多種類の棋譜が欲しい。
棋力が下がっても計算量を抑えて、速度を稼ぐ方向で行くべきか?

804:535
19/04/04 22:52:58.55 QG8xddyq.net
2手読みだったところを1手読みにしたら大分早くなったけど、やっぱ棋力は落ちるな。
これはちょっと採用するか迷う。

805:535
19/04/05 22:13:28.38 6lxF2ret.net
ん、なんか白番が絶望的に負けてる。
なんか評価値の計算まちがえたか?

806:535
19/04/05 22:26:12.15 6lxF2ret.net
それとも棋譜水増しで入れた序盤DBが狂ったのかな?

807:535
19/04/06 00:52:52.21 Uoezh941.net
白番で、相手が初手端のほうに打ってきたときに、盤が狭くなって序盤DBどおりに打つのが悪くなるみたい?
とりあえず、白番持った時に相手が初手天元付近に打たなかったときは、中央寄りの斜めに打つように変えた。
これで少しでも緩和されるといいな。

808:535
19/04/06 01:11:14.50 Uoezh941.net
水増しした分の棋譜はいったん削りました。
確率の理論を根底から壊してしまうみたいなので。
やっぱ遅いようでもじっくり行くのが確実っぽい。

809:535
19/04/10 20:58:12.46 x47ianNw.net
今、極端な水増しはやめてほどほどの水増しにしてます。
新しい棋譜が古い棋譜の1~2%程度になるくらいに水増ししてます。

810:310
19/04/10 23:44:48.34 R42Zvvs5.net
どんより…
バグを見つけてしまった。
今ある記譜50万件の数%くらいに間違いがありそう。
直管的には、全データに対して読み切り処理を噛まさないと間違いの有無すら確認できない。
多分、逆順探索処理を簡素化した時にバグが入り込んだのだと思う。
暇なのでログ書き出しの処理を作ってたら見つかった。
うぐぐ。
もうしばらく様子を確認して、他にもバグが無いか見た上で…どうしよう。
一旦記譜をリセットして作り直すべか。

811:310
19/04/10 23:48:12.99 R42Zvvs5.net
と、書いた直後に気が付いた。
ログの側のバグだった事に…
お騒がせ様でした。

812:535
19/04/15 23:21:56.01 +vRjXb2F.net
いままで8対称中4


813:対称で学習してましたが、のこりの4対称も学習させてみることにしました。 8対称すべてはメモリに収まらないので半分づつ学習させます。



814:535
19/04/16 20:45:49.68 +pjTjN+Q.net
178勝192敗 勝率 48.1%
8対称、勝率あんまり上がらないですね。
うーん、うち筋は悪くないと思うんだけど。
なにかブレークスルーが欲しいですね。

815:535
19/04/16 21:15:27.46 +pjTjN+Q.net
2手読みに戻したら勝率上がるかな?
うーん。

816:535
19/04/16 22:50:30.94 +pjTjN+Q.net
まじでZen2スリッパ欲しい。

817:535
19/04/17 20:33:59.36 5Verubd2.net
154勝178敗 勝率46.4%
2手読みに戻したらかえって勝率さがりましたね。
誤差の範囲かもわかんないですが。

818:535
19/04/18 22:39:13.48 Bi+APi3V.net
お、素晴らしい勝ち方した。
必勝形のダブルリーチ
これほど少ない石数でこの形を作れるとは…
(;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])

819:535
19/04/19 21:34:26.27 NHUtwCQF.net
ふーむ、いままで勝率のいい手かつ沢山選ばれた手を優先的に選択するように序盤DB周りを組んでいたのだけど、
それだと手が固定されてしまうかなと思って勝率のいい手かつあまり選ばれてない手を優先的に選ぶようにしたら
147勝 220敗 勝率40.1%
これは誤差とは言えないほどの差ですねぇ。

820:535
19/04/23 20:49:51.89 rLrZWc/a.net
205勝 246敗 勝率45.5%
棋譜取り&序盤DBへの取り込みを継続したら少し勝率戻りました。
50%付近まで頑張ろう。

821:535
19/04/24 19:17:49.68 DcbjCIK3.net
なかなかの快勝だった
こういう風に毎回打てるといいんだけど
(;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])

822:535
19/04/25 23:58:43.25 DQ0GFyMT.net
192勝 212敗 勝率 47.5%
棋譜取り、序盤DB更新、DNN更新だけでは50%の壁は突破できないかもな。

823:535
19/04/26 20:16:53.04 F5QY8KS+.net
130勝 195敗 勝率40.0%
ん、勝率かなり落ちた。
何が起きた?

824:535
19/04/27 23:11:18.27 zszgzhMg.net
ん、序盤DB壊れたか?

825:535
19/04/27 23:25:35.40 zszgzhMg.net
序盤DB外したほうが勝率あがるかも?

826:310
19/04/30 03:48:07.73 RyvRJxq2.net
どもです。
ひたすら記譜作成中に、やっぱり暇なので、記譜管理周りをリニューアルしていたら、
結局記譜ファイルの形式を大きくいじってしまい、かなり全面的なリニューアルに。
そしたら、あちこちバグが出て、結局記譜作成より新作デバッグ優先に(汗
>>809-810
序盤DBは、記譜溜めていくと途中で弱くなるけど、いずれ直ってくるものだと思う。
正しい手順があるとして、1回間違えると、間違えた側が負ける記譜ができる。
負ける事で、その手は選ばれない事が記譜に登録される。
しかし、探索の精度が低い状態で記譜作ると、2回間違える記譜ができて、本来
負けのルートで勝ってしまう。これが記譜に登録されると、この2回目の間違いが
訂正されるまでは勝率が下がる。
どのくらいで直るのかは、直接なのか評価関数経由の間接なのかなど、フィード
バックのかかり方で変わってくる。直接的なら割とすぐに直るはず。
自分のは間接なのでかなり時間がかかりそうで面倒なので、Zebraで2つ目の間違い
箇所を特定して、そこまで着手した後探索をする棋譜を作って、かなり強制的に直し
ちゃった。
序盤は大体良いのだけど、確定値で学習している箇所と、序盤DBで学習している
箇所の境目で、確定値が足りないまま過学習になっている評価値ステージがあって
そこらあたりで大抵間違える


827:(汗



828:535
19/05/02 21:41:13.81 uWEPsgK5.net
天頂の囲碁を使って9路を徹底的に調べたら面白いかも
ま、やらないけどね

829:535
19/05/04 19:08:14.82 wk+bg2Ip.net
GWは何もしませんでした(過去形)

830:310
19/05/04 22:14:44.08 fzBCFIZ6.net
新作の探索周りを、例のバグ付のやつにしたら、案の定バグ発生。
色々と入れ替えながらバグ発生箇所を特定に成功しました。
が、なぜそこでバグっているのかわかりませんorz
まともに動いたから良しとするしかない感じ。
あと2か所改良したいところがあります。
あと2日では無理だなぁ。

831:310
19/05/04 22:17:34.69 fzBCFIZ6.net
と思ったら、またいきなりバグ発生。
原因は複数ありそうですorz

832:310
19/05/05 20:55:26.72 GksqIPP4.net
原因判明。アホなミスでした。
やっぱり当初の置換表に変なデータが登録されているのが正解だった。
残した課題のうち1つもできた。

833:310
19/05/05 23:26:28.04 GksqIPP4.net
最後の課題は、学習の速度アップを目論みましたが、まったくダメでしたorz
さて、何をしよう。

834:535
19/05/06 19:55:01.10 uIBlT68N.net
長連対策そろそろしなければ…

835:535
19/05/06 20:33:01.71 uIBlT68N.net
序盤DBがおかしくなってたので、序盤DBの手の採用基準をもとに戻しました。
あと中盤終盤でDNNの値の比重を大きくしました。

836:535
19/05/07 22:40:16.02 hqvfZJCN.net
59勝 62敗 勝率48.8%
なんとか勝率50%弱まで戻せました。

837:535
19/05/08 21:43:00.75 c2FYdM3E.net
来たっ
262勝 248敗 勝率51.4%
誤差の範囲かもしれないけど嬉しいっ

838:535
19/05/08 21:52:12.23 c2FYdM3E.net
そろそろ白番も着手していくか、もうちょっと黒番を突き詰めるか。
悩ましいい。

839:535
19/05/09 20:06:42.08 w95MoSGU.net
ありゃ、わずかな棋譜を序盤DBに加えただけなのに勝率めっちゃさがった
149勝 202敗 勝率 42.5%
そんなに微妙なものではないと思ってたが??

840:535
19/05/09 20:28:40.86 w95MoSGU.net
棋譜さらっと見てみたけど序盤DBが壊れたって感じでもないなぁ
実は微妙なものだったのか、誤差の範囲なのか?

841:535
19/05/09 22:32:58.01 w95MoSGU.net
なんか誤差の可能性が微レ存

842:535
19/05/10 21:38:12.73 5KPSEUAN.net
163勝 202敗 勝率44.7%
±5%くらいは誤差ででるのかもしれないなぁ

843:535
19/05/10 21:42:26.07 5KPSEUAN.net
こんな時統計の知識があれば真の勝率は○○%~××%の間とか論じられるんだろうなぁ

844:535
19/05/11 11:49:39.90 fuy9y7gB.net
うお、すげぇ
179勝 149敗 勝率54.6%
この数字をどう解釈すればいいのか…

845:535
19/05/11 17:43:16.57 fuy9y7gB.net
まだ勝ってる。
222勝 194敗 勝率53.4%
そろそろ棋譜反映させるか。

846:535
19/05/11 22:40:54.90 fuy9y7gB.net
長連対策、完全じゃないけど簡単な判定入れてみた。
さてどうかな?

847:535
19/05/12 10:03:08.61 7HaK6dtp.net
かなりいい
対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%

848:535
19/05/12 18:17:47.41 7HaK6dtp.net
ふむ。かなりいい。
一回止めるか。
対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%

849:535
19/05/12 18:46:46.62 7HaK6dtp.net
ここらでドカンとブレークスルーが欲しいところだ。

850:535
19/05/13 20:57:06.68 rQSLa/J8.net
お、すごい
249勝 204敗 勝率55.0%

851:535
19/05/13 21:55:46.89 rQSLa/J8.net
LV3 vs LV3の黒番の勝率が65%くらいだったはずだから、黒番で勝率70%位いけばLV3越えといえるかも

852:535
19/05/13 23:06:54.58 rQSLa/J8.net
地味な学習も必要だとは思うけどアイディア一発でドカンと強くなるのも諦めきれない。

853:535
19/05/14 21:30:20.81 kAvibZwR.net
ん、なんかDNN学習させたらうち筋はそんなに悪くなってないと思うんだけど勝てなくなったな。
なんだろう?

854:535
19/05/15 21:00:42.40 ce+jhpkV.net
173勝 176敗 勝率 49.6%
対戦してみたけど思ったほど負けてないな?

855:535
19/05/15 21:22:39.79 ce+jhpkV.net
初期アルファ碁のようにポリシーネットとバリューネットに分けてみるか?

856:535
19/05/15 21:35:41.77 ce+jhpkV.net
そこそこの精度でも軽い評価関数は結構ほしいかも。
モンテカルロで役に立つし。

857:535
19/05/15 22:07:54.43 ce+jhpkV.net
というわけで、今使ってるDNNより大幅に簡素化したネットワークで学習させてみる。
データは同じ。

858:535
19/05/15 22:45:22.49 ce+jhpkV.net
あれ、大幅に簡素化したのに学習時間が思ったより短くならないな。
10倍速くらい早くなると思ってたのに3倍速くらいだ。

859:535
19/05/15 23:06:58.43 ce+jhpkV.net
更に簡素化して10倍速くらいにしました。
ちょっと簡素化しすぎかも?

860:310
19/05/15 23:27:46.15 2Iqikd3t.net
新バージョンで色々プログラム見直し。
探索部は全く改善していませんが、その他の部分が大幅にスピードアップ。
自動記譜作成時のオーバーヘッド(探索以外の時間)がかなり減った。
あとは学習の時間を減らしたい。

861:535
19/05/16 19:50:22.50 bKmJMMur.net
大きい方のネットワークの損失が3500位なのに対して小さい方のネットワークの損失が5300位。
さて、使い物になるかな?

862:535
19/05/16 20:26:43.20 bKmJMMur.net
うおお,遅え!
モンテカルロに使おうと思ったらプレイアウト回数かなり減らさなきゃだめだな。

863:535
19/05/16 20:40:14.63 bKmJMMur.net
一回打ってみたけど打ち筋は決して悪くない。
だが激遅。
だかが300プレイアウトでここまで遅いとは…

864:535
19/05/16 20:49:50.51 bKmJMMur.net
ん、でも打ち筋がいい。
ブレークスルー来たか??

865:535
19/05/16 21:05:06.63 bKmJMMur.net
すごいな、こちらの打ち筋は相当改善されたのにLV3がその上を行ってくる。
奥が深い。

866:535
19/05/16 22:04:27.02 bKmJMMur.net
ん、まだ学習飽和してないみたい。
ジリジリ損失減ってる。

867:535
19/05/16 22:42:50.95 bKmJMMur.net
LV1と対戦させ始めてみたけど、かえって勝率落ちてるな?
まだ対戦回数少なすぎて結論出すのは早いけど、もっと50連勝くらいするかと思った。
対LV1
黒番 17勝 3敗 勝率85.0%
白番 13勝 3敗 勝率81.3%

868:535
19/05/17 21:14:13.13 Af3ltV5Z.net
勝率上がってるみたいです。やった!
対LV1
黒番 156勝 15敗 勝率91.2%
白番 109勝 8敗 勝率93.2%

869:535
19/05/17 21:17:20.41 Af3ltV5Z.net
小さいネットワークの損失も5180くらいまで減ってます!
次は本丸、LV3と決戦や!

870:535
19/05/17 22:31:13.53 Af3ltV5Z.net
対LV3 黒番
47勝 34敗 勝率58.0%
ふーむ、まあ悪くないけど、正直もっと期待していたw
400~500戦くらいはしないとまだ結論は早いけど。


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