18/02/19 22:59:04.05 k/eP19bS.net
囲連星ルール部分をC++で書きなおしてパイソンと結合させるという手もあるんだろか??
とにかく今のままじゃ遅すぎる
囲連星ルール部分がどれくらいネックになってるかもよくわからないですが多分相当遅い
251:535
18/02/19 23:28:23.57 k/eP19bS.net
五目並べルールだとそこそこのスピード出ますね
当たり前か…
やっぱ囲連星ルール実装がネックか~
は~
死にたい
252:310
18/02/19 23:48:36.73 KY7Wcd5F.net
PythonからC++関数を呼べるみたいですね。
C++からPythonも呼べるみたいです。
前にPythonに手を出そうかと思った時にググったら出てきました。
前者の方が解説が多かったと思います。
自分はBitboardを使いまくりなので、Pythonに手を出しあぐねていました。
また、評価関数の学習部と、評価値計算をうまく分離できれば、前者を
Python、後者をC++で書けないかなぁと思っていますが、im2col関数の
うまい実装を考えるのが面倒で、放置になっています。
253:310
18/02/19 23:56:04.01 KY7Wcd5F.net
ここ数日強化学習の結果がよさげになってきたので、結果の良かった学習方法に
集中させたら、また変な学習になってしまったようで、迷走中です。
学習の具合が良いと、色々な探索も速度アップするんだけど、具合が悪いと全部
悪循環になってしまうという。
仕方無いので、中盤探索の反復深化を作り、その結果を置換表に溜めてオーダ
リングを行うようにしてみましたが、効果があったのかよくわからない罠。
こちらも、学習の具合が良くなったら、急激に効果が表れるのではないかと期待
しているんだけど。
254:535
18/02/21 01:00:17.47 65PdIEqg.net
SWIGっての調べてます。
なかなか手ごわい
255:535
18/02/21 22:17:30.79 65PdIEqg.net
まずは簡単なC++関数一個だけのパイソンモジュール作成に成功しました。
つぎは囲連星ルールパイソンモジュールの作成ですね~
256:535
18/02/21 23:35:14.72 65PdIEqg.net
なんかdeepcopyとかいうのに対応しなきゃいかんようなのだが。
257:310
18/02/22 01:36:26.61 pKMuaeJh.net
評価関数がどんどん悪化していく罠。
頭に来たので、評価関数をステージ分割。
ステージ分割すると学習部分の全面書き直しとなる。
どうせニューラルネットは使わないと決めたので、線形回帰にスケールダウン。
またしてもゴチャゴチャしてきた部分を全面書き直しパターンへ。
もうGUIはすっかり忘れていますorz
258:535
18/02/24 00:20:19.52 23+l5SrV.net
キタ━━━(゚∀゚)━━━ !!!!!
動きました!
C++版囲連星ルールパイソンモジュール!!!
10倍くらい速くなりました!
でも1000プレイアウト1手約100秒
まだまだ遅い
でもこれ以上速くするアイディアもないし、とりあえず、これで進めるか。
259:535
18/02/24 00:49:09.02 23+l5SrV.net
なんかトレーニングが不正終了しますね。。。
zipから解凍したソースそのままで実行しても不正終了になるのでちょっと謎ですね。
260:535
18/02/24 17:22:36.17 23+l5SrV.net
なんかteanoてライブラリが悪いっぽいorz
上手くインストールできたと思ってたけど実はまだ駄目だったのかなぁorz
261:535
18/02/24 20:56:43.77 23+l5SrV.net
あかん、さっぱりわからんorzorzorz
262:535
18/02/24 23:35:51.51 23+l5SrV.net
teano.functionってのが悪いっぽい
263:名前は開発中のものです。
18/02/24 23:45:38.80 23+l5SrV.net
teanoじゃなくてtheanoかスマソ
264:535
18/02/26 23:09:59.32 iAzX3KQf.net
Linuxインストールしてみようかなぁ(ボソ
265:名前は開発中のものです。
18/02/26 23:28:03.39 HIL9tQPi.net
「インストールした」なら使ってもいい
266:535
18/02/28 21:53:14.78 EHGfbJ7U.net
linux入れるならVMWareお勧め?
他に候補ある?
267:535
18/02/28 21:54:21.00 EHGfbJ7U.net
ちなみにHDDはパーティション切りなおすのメンドイ
268:310
18/02/28 22:12:43.27 4D1Jf52Q.net
評価関数変更ついでにまるっと作り直してます。
自己対戦など、汚いコードを綺麗に書き直し。
かけた工数的には自己対戦の方が大変だったかも。
評価関数を1手毎のステージ分割で60ステージにして、学習し直しです。
これで序盤を学習させると終盤が狂う問題は解消されると信じていますが、
学習に60倍の時間がかかる事が予想されるという状態で、記譜を幾ら作って
も追い付かない感じなので、強化学習主体にするつもりです。
というか、まだ、UCTの所は作りこんでいない。
まあ、ほとんどコピペですが。
で、ここまで来たところで、もういっちょ改造したくなってきた…。
269:535
18/02/28 23:51:16.48 EHGfbJ7U.net
MVWareでubuntu入れました。
270:535
18/03/01 00:04:15.57 Jxqcd31Q.net
ubuntuだと>>214のプログラム問題なく動くみたいですね
素晴らしい。
271:535
18/03/01 21:09:31.45 Jxqcd31Q.net
囲連星ルールをubuntuに移植してみましたがエラーが出ますね。
合法手が無い、みたいな感じに見えますが…
272:535
18/03/01 21:31:25.39 Jxqcd31Q.net
くそ~結局コツコツソース読み解くしかないかorz
いい線行ってると思うんだけどなぁ
273:535
18/03/01 21:44:17.24 Jxqcd31Q.net
うおお、しんどい、これはしんどいorzorzorz
274:535
18/03/01 23:35:08.53 Jxqcd31Q.net
ん、human_play.pyは動きますね…
train.pyと何が違うんだろう?
275:535
18/03/03 00:08:46.84 nviHj1ts.net
C++のクラスをディクショナリのキーに突っ込んでさらに参照しようとしたときにキーの比較に失敗してるっぽく見える
276:535
18/03/03 01:00:19.05 nviHj1ts.net
__hash__と__eq__を定義するといいみたいです。
__eq__はC++のoperator==で良いみたいです。
277:535
18/03/03 01:33:37.87 nviHj1ts.net
まだエラー出ますね。
行ったと思ったのにorz
278:535
18/03/03 19:12:35.59 nviHj1ts.net
お、処理が進み始めました。
Board.init_boardでC++のオブジェクトを初期化してなかったのがエラーの原因だったみたい�
279:ナす。
280:535
18/03/03 19:51:05.26 nviHj1ts.net
やっぱ小路盤五目並べと比べて時間かかりますね。
焦れるw
とりあえず、これでウェイトファイルが出力されれば第一段階クリアですが…
281:535
18/03/03 20:18:47.79 nviHj1ts.net
あ~これシングルスレッドなんですね。
まあ確かにコード読んでてもマルチスレッドには見えなかったけど。
282:535
18/03/06 20:34:35.86 4NZM8BU2.net
ベストポリシーとか言うファイルは出力されましたが…
いかんせん遅すぎますねぇ
並列化してハードも強化してあと30倍は速くしないと…
283:535
18/03/06 22:28:34.91 4NZM8BU2.net
んんん、もしかして仮想環境だとディスクアクセスめっちゃ重くなる?
CPUがほとんど仕事してないんだが…
284:535
18/03/06 22:40:05.64 4NZM8BU2.net
こりゃネイティブLinux環境構築も考えるか…
285:535
18/03/07 20:16:56.97 Xay4EsKj.net
ディスクアクセスが100近くいって処理がほとんど進まなくなっちまったorz
いったん止めるべきかな~
286:310
18/03/08 00:53:26.17 KJS05rsc.net
新評価関数版ようやく一通りできた。
強化学習にすごーく時間がかかりそう(汗
というわけでNew PC見繕ってます。
ノートPCでi7-8700Kの6コア12スレッドにメモリー32メガで
GTX1080搭載のノートPCがある。
むむむ。
287:535
18/03/08 18:17:36.63 GeAn+CtF.net
お高いんでしょう?
288:535
18/03/08 19:23:50.24 MQ3zVdYu.net
帰ってきてパソコン見てみたら学習が強制終了してました。
土曜からずっと動かしっぱなしでしたが、ここにきて強制終了は痛いですね。
解決しようにも再現させるだけで数日かかってしまうし目星を付けることすら難しそう。
289:535
18/03/08 20:05:12.94 MQ3zVdYu.net
途中で出力されたポリシーモデルで対戦してみましたが、
予想してたよりずっとまともな手を返してきますね。
ほぼランダムに着手すると思ってました。
これはちゃんと学習できる環境整えればかなり期待できるかも!
290:535
18/03/08 20:11:16.29 MQ3zVdYu.net
俺も良い目のノート一台買ってLinux入れようかなぁ
デスクトップ2台は手狭だからなぁ
291:535
18/03/08 21:30:30.05 MQ3zVdYu.net
とりあえず、Linuxならパイソン動くことはわかったから
他のもっと高速化に力入れたalpha zeroプロジェクトも試してみようかな
292:310
18/03/08 23:33:49.98 KJS05rsc.net
どもです。
お高いですが、デスクトップのフルスペックの1/3以下で済むようです。
回しっぱなしの奴がレアケースで異常終了すると萎えますね。
自分の奴は、たぶん怪しいところはほぼ蓋をしているので、今は安心しています。
とはいえ、評価値の保存に数秒かかるようになってしまったので、保存中にうっかり
終了してウェイトファイルを破壊しないように、いくつか策を講じました。最近はOSの
アップデートで勝手に再起動されちゃうので。
293:535
18/03/09 20:26:00.14 wTwCUiOb.net
デスクトップの1/3って性能がですか?
294:310
18/03/10 19:53:38.63 jEGGoWyJ.net
あ、価格と性能です(^^;
強化学習に凡ミス発見。
強化学習が良いのは、学習し続ければ何とか復旧できると思えるところorz
295:535
18/03/10 20:42:21.57 MfccYD4W.net
価格コムで調べたら>>281って50万以上ですよね?
296:310
18/03/10 23:47:40.15 jEGGoWyJ.net
こいつです。
URLリンク(www.pc-koubou.jp)
i9-7080XEのデスクトップだとメモリー頑張ると100万ですからね…
297:535
18/03/11 00:26:26.59 Rh0MFs+Y.net
>>291
ほほう?
ハイスペックノートの割には確かに安いですね。
298:535
18/03/12 23:17:36.89 t7pU5NWq.net
うわパイソン部分でルール間違ってたorz
やっぱ軽くでもテストはやっておかないとあかんなorz
299:310
18/03/14 21:17:53.41 Hsr0gVbu.net
うぬぬ。強化学習でどこかおかしい。
強化学習単純化しすぎちゃったかなぁ。
暫定的にひたすら記譜作成&記譜学習に戻しました。
遡り30手が鬼門。記譜学習で、ここをクリアする事を当面の目標にします。
とはいえ、残り29手完全読み切りの記譜がそれなりにあるのは、以前では
考えられない状況ではありますが。
300:310
18/03/15 22:46:56.01 CxmBs8oA.net
強化学習がおかしいというより、記譜のパターンが圧倒的に足りていなかった
のかもと思い始めました。それによって、着手して分岐しても±0となっている
みたいな。
とりあえず、記譜の増殖手段を模索中。
今は、ヌルウィンドウサーチを使用して、遡り探索を行っている関係で、間違った
着手(石損となる手)を捨ててますが、ある程度までその手も読み切って、記譜に
加えても良いのかなぁと思っています。
とりあえず、βカット(もっと良い手があった)時の評価関数は明らかに読み間違い
をしているので、そこ限定で記譜に加えていますが、ある程度以上の手数は全て
付け足しても良いのかなぁと。
301:310
18/03/17 02:14:23.31 Foa7nGV6.net
なんとなく想像しただけですが、何が悪かったのかわかり始めました。
今の学習は「良い手」しか学習していないという事です。
序盤はある程度ランダムな着手を入れて、結果がばらつくようにしていますが、
途中から読みを入れて、良い手だけで着手し、その結果を遡りで訂正しています。
遡りが有効なのは30手くらいまでで、序盤のランダムは20手程度までに抑えて
あります。とすると、遡れる範囲では、悪手を打ったらどういう事になるのかという
学習が抜けている。間違えた着手もちょっとだけ悪いだけでです。結果、最善手の
評価値はそこそこ正確なのですが、極端な悪手も、評価値としてはちょっとだけ
悪い数字でも問題が起きないという事になります。
これはこれで順序付けさえ合っていればそれで良いのですが、ちょっと学習が
進んで、微妙に係数が変わった時に、計算上0.1程度しか悪くない相当な悪手
をうっかり選択しやすくなってしまうという事で、これがオーダリングで悪さをして、
探索時間を長引かせてしまう可能性があります。
恐らく評価関数のステージ分割で、表現力がかなりアップした事から、こういう
学習漏れみたいな事が起きてくるのかなぁと。ほんと、評価関数はスカスカです。
というわけで、昨夜書いたように、ある程度深さを捨てて分岐をすべて記譜に残す
ようにしてみようかなぁと思っています。しばらく記譜作成しながら、この事を踏まえ
た強化学習をちょっと考えてみたいと思っています。
302:535
18/03/18 22:34:31.76 tUeDVO3T.net
結果が出るまで時間がかかり過ぎるなぁ。
もうちょっと様子見るけど。。。
やっぱマルチスレッド化された別のalpha zeroプロジェクト探そうかな…
303:535
18/03/20 21:45:14.39 /Ra5toxr.net
駄目だぁ、強くなる気配がないorz
別のalpha zero プロジェクト本気で探すか…
ここまで来てもったいない気もするけど…
304:535
18/03/23 21:13:02.23 Z4T42krD.net
なんかバグ直して再学習したら、ランダムに打ったほうがマシ、くらいに変な手(1の1とか)打つんだが?
もう嫌になっちゃう。
305:535
18/03/23 21:21:30.45 Z4T42krD.net
そういやLeela Zeroも学習過程では一線うってたな。。。
逆にいい傾向なのか???
306:310
18/03/25 02:23:39.84 Yig4cMbl.net
分岐をすべて記譜にリストアップするようにしてから、爆発的に記譜が増えてます。
2000程度だったのが、15000超えました。
が、まだまだスカスカみたいです。
ここまでするんなら、真面目に自己対戦して遡りせずに、ランダム着手に対して
分岐をリストアップさせても一緒というか、早い気がしてきています(汗
307:310
18/03/31 01:38:59.31 h3UgGfs1.net
ランダム着手も追加して記譜増殖中。ただいま32000超え。
もっとも、残り数手とかの記譜もあるけど(汗
ステージ分割しているので、記譜がなかなか生成されない25~30手近辺で
非常に少ない教師データで何度も学習する事になり、そのあたりが極端な
過学習になってしまった。
解消方法をいくつか検討中です。
1)時間かかっても良いので、25~30手の記譜ができるまで頑張る
2)前後の盤面を混ぜて、教師データを増やしてみる
3)ランダム強化学習してみる。
2)3)をやると、おそらく、平均化されて評価値がフラットになるが大小関係は
治ってくると思う。
というわけで、今夜は2)3)を試してみる予定。
308:310
18/03/31 01:43:35.07 h3UgGfs1.net
あと、時々スコア指定(ヌルウィンドウサーチ)の記譜作成処理で
エラー(スコア間違い)が出る時がある。
運が悪い事にハンドリングミスその他で、記譜を残せていないので、
現象の特定ができていない。
頻度としては数日に1回くらい。
たぶん、全滅と直前のパスがらみだと思うんだけど。
309:535
18/03/31 23:42:05.28 4ltMn3J2.net
Geforce GTX 1060を増設しました。
>>214をpytorchで学習してみます。
310:535
18/03/31 23:46:58.88 4ltMn3J2.net
んーうごかん。
GPUありとなしでポリシーファイルに互換性がないんですかね?
もしかして。
初めからやり直すか…
311:310
18/04/01 01:07:10.57 OBeH+1OH.net
おお。どんどん進んでますね。
こちらは、昨夜のバグの現象は特定しました。
スコアが62や-62で、mtd(f)の探索開始が64や-64の時に、
置換表に残った64や-64が悪さして、64や-64と誤答する模様。
とはいえ、どこを直すべきかはわかりません。探索開始が64や-64
の時に、62や-62にしてやる事で、姑息的に回避はできるので後回し。
あと、記譜作成に色々機能を加えていたら、どこかがおかしそうだという
不安な状態になってしまいまして。このまま記譜学習を進めて良いか自信
が無いので、今までのデータで安全な部分をテスト用に回して、新たに
記譜を作成開始。34手目までは全探索しながら普通に遡れる感じです。
33手目から先は探索時間がしんどいので、ひとしきり落ち着いてから、もう
一度、遡りチェックのプログラムをきちっと見直して、追加していこうかな
と思っています。この間に、強化学習混ぜて、過学習部分を解消して
いこうと思います。
312:535
18/04/01 12:43:33.62 lACu3cfl.net
お、ちゃんと時間測ってないからあれだけど、気持ち速くなってる気がする。
ちゃんと時間測りたいなぁ。
313:310
18/04/01 13:49:33.48 DAl+8Sdv.net
バグ問題は、結局姑息的手段では回避できず。
全滅がらみでほかのケースでも誤答するケースが発生しました。
元々FFO#59用にmin-Max探索に入れていた、全滅時の処理くらいしか
原因となりそうなものが思い当たらなかったので、とりあえずコメントアウト
して様子見です。全滅時の探索が速度低下しますが、仕方がありません。
314:310
18/04/02 20:15:06.48 9LYme7cN.net
結局バグ問題は…迷宮入り臭いです。
記譜作成で負荷テスト並みに探索を繰り返すと、全滅絡まなくても間違うケースが
出てきました。再現性が無いのが辛いところ。
その昔悩んでいた時も、やっぱり置換表がらみの問題で迷宮入りでしたが、
今回も、ケチって置換表を極力クリアせずに使用していた事から、何らかの
矛盾が起きているようです。それを言っちゃうと、置換表付mtd(f)でf値を変え
ながら探索することも、またその時に作成された置換表を流用して記譜作成
兼ねた読み切り処理を速度アップすることも、怪しいという事になるわけで。
315:間違えてしまった事が判明した時点で、その探索は捨てるくらいしか対策が 無いという事になります。 ネットで調べたら、将棋AI界隈でも置換表の問題点を書いている人がいまして。 少なくとも深さがあっていない置換表データは使うべきではない模様。 今の調子だと一晩動かすと結構な頻度で朝見たら止まっているとい状態なので せめて発生率を下げるべく、mtd(f)に入る前に置換表をクリアする事にしました。 なぜしなかったかというと、記譜データからスコアが確定している盤面を置換表に 入れて、それを見ながら既に読み切りしている盤面は飛ばす処理をしていたから です。置換表をクリアして盤面再構築に時間がかかるためです。別途盤面キャッシュ を持って、そちらは追記、置換表は毎回クリアという形に変更しました。
316:535
18/04/02 22:24:32.85 3iK+AnRP.net
Leela ZeroがKGSでかなり強くなってる。
俺がパクったプログラムも学習し続けたらあれくらい強くなるんだろうか?
317:535
18/04/04 20:42:51.24 Y0WMbzNW.net
え、ちょっとまってよ。
GPUありなしでポリシーファイルが違うってことは
成果物を配布しようとしたらGPU持ってる人しか遊べないってこと?
318:535
18/04/04 20:54:25.72 Y0WMbzNW.net
しかもCUDAとかも一緒にインストールしてもらわないといけない?
ええぇ?
319:310
18/04/06 22:00:28.44 952uhqxW.net
誤答問題は、置換表クリアで解消しました。
違う局面の探索で使用した置換表データは使いまわしてはいけないという事で。
なんか、結果的に、2年くらい前にも同じ事で騒いでいたような。
色々整ってきたので、あとはひたすら記譜作成しながら学習を回すだけになって
しまって、暇になってます。別PC買ってそっちで学習させながら、別の事をはじめ
ようかなぁと思い始めています。
320:535
18/04/07 20:43:17.69 SqbCC315.net
うーん、つよくならないorz
学習は継続しつつ別のalpha zero プロジェクトも物色するか…
321:535
18/04/08 22:10:18.77 ZB9Bj6DG.net
ん、なんかメモリリークあんのかな…
swigでC++から移植したクラスってデフォルトでガベージコレクトされないのかなぁ?
もしかして。
322:535
18/04/08 22:43:04.99 ZB9Bj6DG.net
VMWareの設定がメモリ1GBになってた。
とりあえず8GBに増やしてみた。
323:535
18/04/08 22:53:48.62 ZB9Bj6DG.net
お、メモリ増やして再起動かけたら結構いい感じで進みだした?
メモリ増やしたのと再起動かけたのどっちが効いたのかわからんが。
324:535
18/04/09 20:58:16.91 500BArdX.net
くそ~ベストポリシー更新が全く来ないorz
もう何回目だ?TT
325:535
18/04/11 20:46:51.70 uiOmKVU+.net
お、メモリ増やしたせいか連続運転が安定している。
しかしベストポリシー更新は相変わらずなしorz
326:535
18/04/11 23:07:04.06 uiOmKVU+.net
もしかして、ネットワークの初期値が糞すぎるんだろうか。
でも確かめようがないorz
327:535
18/04/15 20:07:24.81 8sCJrZFg.net
ベストポリシー更新まじコネ~
でも他のプロジェクトに浮気しようにもなかなか手ごろなのがないんだよなぁ
328:535
18/04/15 20:21:37.51 8sCJrZFg.net
いっそ実績のあるLeelaZeroを本気でパクりに行ってみるべきか…
でも多分、難解なんだろうな~
329:535
18/04/16 20:30:05.64 6KBtspgu.net
あんまりおかしいんでソースをオリジナルとdiffとったら学習係数が1/100になってたんだがwww
え~何時いじったかな全く記憶にないwww
これで学習が進んでくれれば!!
330:535
18/04/16 23:37:28.33 6KBtspgu.net
loss も entropyも減ってきてる!
これでベストポリシー更新が来れば!!
331:535
18/04/17 22:16:19.94 E16XJnGD.net
キタ━━━(゚∀゚)━━━ !!!!!
ベストポリシー更新きました!
次の切りのいいところで止めてプレーしてみよう
332:535
18/04/17 22:34:03.78 E16XJnGD.net
それはそうとzen+の発売日が迫ってますね。
金がないから買えないけど情報だけは追っかけてみます。
爆速だとい�
333:「な。
334:535
18/04/18 23:48:24.10 7NtNWbU1.net
あとちょっとだけ待とう
終局までの手数も順調に減ってきてるから意味のある手を打ってるんだろう多分
ワクワク
335:535
18/04/19 20:50:17.33 lyvIQrMy.net
打ってみました。
序盤、中盤は棋理の芽生えみたいなものが感じられました。
伸ばせそうなところを伸ばすとか伸ばされそうなところを止めに来るとか
でもわざと負けようとしても5連までは積極的に作りに来るのにそこからパタッと伸ばすのをやめて7連を作ってくれませんw
なぜw?
でもまあ、希望は感じられました。
もうすこし学習してみます。
336:535
18/04/19 23:51:35.82 lyvIQrMy.net
zen+なかなかよさげですね。
前世代と比べて一割前後性能アップ?
337:310
18/04/20 09:40:06.18 HgLFJ5UM.net
うーん。AMDはSIMD命令で遅い命令があって、速度低下するかもって
どこかで読んじゃったからなぁ。
こちらは地道に記譜作成しながら学習させてます。
深さ優先で記譜作成すると、分岐が少ない手筋ばかり増えていくので、
幅優先で、同じ深さである程度記譜溜まってから、次の深さとするように
したのですが、空きマス27からの記譜展開で、時間がかかるようになって
なかなか空き28マスに行けない。オーダリングの精度が出ていないから
だと思いますが、同時に選択肢も増えてきて、余計時間がかかる感じ。
空き30マス突破したら、かかる時間の増加率は下がるはずなんだけど。
338:535
18/04/20 22:59:48.32 1YRRGto3.net
もしかして終盤はあえてランダム性を残すことによって学習が進みやすくなるなどの深い理由があるのだろうか?
わからんが。
339:535
18/04/20 23:02:21.21 1YRRGto3.net
それとも序盤は同一局面のデータがたくさん現れるから学習できるけれど
終盤に行くとデータが散らばっちゃって学習できなくなるということだろうか
340:名前は開発中のものです。
18/04/20 23:03:29.26 1YRRGto3.net
あるいは一線や二線は打たないほうがいいと学習してしまっているがため、7連を作れないのだろうか?
341:310
18/04/21 20:32:42.81 AdkW58BW.net
オセロは記譜生成させてるだけで暇なので、将棋の事を考えてました。
KKPとかよくわからないし、同じ事をやってもつまらないので、利きを点数化
しようかと考えてみまして、実際の計算方法を考えていたら、自玉周辺と
相手玉に対する利きがKKPなのではないかと思い至ってしまいました。
持ち駒の点数は駒種毎に固定で振られていて、駒同士のぶつかりによる優劣
特に駒交換はmin-Maxにて補間しているのかなと。評価関数自体は意外と単純
な事しか学習していない感じで、探索で補っている部分が大きいように感じます。
こうやって見ると、上手く単純化しているなぁと。
自分で勝手に想像した内容に感心してしまいました。
ただ、これならこれで、自玉KPと相手玉KPの合算で、2駒関係に次元を落とせ
そうではないかと思ってしまいました。まあ、無理なんでしょうけど。
自分がやる上での一番のネックは、オセロの評価関数が点数だったために、
なんちゃって強化学習しかやった事がな点ですね。あと、みなさんライブラリ化
されていて、それに則れば色々な人の考えた高速化・高効率化のネタが利用
できる点で、一から車輪の再発明していては追い付けないよなぁと。
342:535
18/04/21 20:39:59.86 8g8p+RpI.net
ほう、将棋に進出ですか。
将棋AI界はオープンソースが進んでる感じなんですかね。
343:535
18/04/21 20:50:54.10 8g8p+RpI.net
alpha zero のパクりプログラムgithubから丸パクしてきたわけだけど
そろそろちゃんとソース読み解いてみようかな。難しいだろうけど
丁寧な解説がどこかにあればいいんだけどね
344:535
18/04/22 17:35:27.70 QOhFsFyf.net
お、AIが7作った。
いままではわざと負けようとしても勝ってくれなかったけど今回は勝ってくれた。
まだまだ弱いけどもっと学習させてみよう
345:535
18/04/22 19:13:47.98 QOhFsFyf.net
俺も学習見守るだけで暇になっちゃったからなんか始めたいけど
計算リソースが学習にもってかれちゃってるからそこどうするか。
やっぱPC新調か?
グラボも効果あるみたいだし今度はGeforce 1080 Tiとか試してみたいな。
金がないけど。
346:310
18/04/22 19:48:13.41 wf3ukgDl.net
だよね。自分も脳内妄想で我慢です。
PC新調しちゃうか思いっきり悩み中。
347:535
18/04/25 20:09:35.29 QZIUF0Ri.net
もっとネットワーク大きくしてみたいな。
でもさらに学習時間がかかると思うと躊躇する。
348:535
18/04/27 21:32:10.80 b1G/gV5U.net
お、損失が3点台だったのが2点台になった。
いい感じなんじゃないでしょうか?
349:535
18/04/28 17:38:12.12 MUOfiFNK.net
ジムケラーがインテルに来たとか。
いいCPU作ってくれるならどこでもいいけどね。
350: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割程度しか