X



【オセロ,将棋】ボードゲーム Part3【囲碁,War】

0074535
垢版 |
2020/01/13(月) 21:33:57.10ID:1JhgLjol
なんかちょっとしばらくさぼってたらコーディングの腕が鈍ってるかも。
勘が働かないというか。
0075535
垢版 |
2020/01/21(火) 21:15:41.22ID:fnHRizf7
マジでモチベが湧いて来ない
ここのところ忙しかったのもあるけど
0076535
垢版 |
2020/01/25(土) 16:52:30.60ID:7FFFt+eL
9路囲連星のモチベが上がらないのは本当は心の底ではライフゲーム囲碁をやりたいからなのかもしれない。
0077535
垢版 |
2020/01/25(土) 20:21:04.06ID:7FFFt+eL
いや、ちがうな。手っ取り早く結果が欲しいだけなんだ。
心が弱いんだ。
0078535
垢版 |
2020/01/28(火) 21:14:35.23ID:/HMe/KRT
やっぱ教科書の通り実装しようとするよりも自分でアイディアひねり出そうともがくほうが楽しいなぁ。
教科書が大事じゃないとは言わないけど、なによりモチベが全ての活動の源泉だからな。
0079535
垢版 |
2020/01/30(木) 22:19:32.33ID:7K5l2TPR
対称局面で候補手を絞り込む処理書いてるんだけど、もしかして8対称じゃなくて4対称しか使えないのだろうか??
0080535
垢版 |
2020/01/30(木) 22:27:50.02ID:7K5l2TPR
ちょっと言葉が足りないかな?
着手後の局面が対称局面として同型となる候補手が複数ある場合、
そのうちの一つだけを代表として選択できるようにする、みたいなイメージなんだけど。
0081310
垢版 |
2020/01/31(金) 20:42:25.38ID:Qy9oY0qS
線対称と回転対称があって、線対称は縦横斜め×2の4通りと、
180度回転対称の5通りではないかと思われます。
0082535
垢版 |
2020/01/31(金) 21:33:38.95ID:AV/HbVoo
うーむ、線対称はそれぞれ候補手が約半分になるのはわかるが180度回転対称はどうなるんだろう?
0083310
垢版 |
2020/01/31(金) 23:26:47.00ID:Qy9oY0qS
半分じゃまいかと
0084535
垢版 |
2020/01/31(金) 23:37:10.96ID:AV/HbVoo
すいません、まだわかってません。
考えてみます。
0085535
垢版 |
2020/01/31(金) 23:53:18.86ID:AV/HbVoo
0 O O O O @ @ @ @ @ | 0 O O O O O O O O O | 0 @ @ @ @ @ @ @ @ @ | 0 O O O O O O O O @
1 O O O O @ @ @ @ @ | 1 O O O O O O O O O | 1 O @ @ @ @ @ @ @ @ | 1 O O O O O O O @ @
2 O O O O @ @ @ @ @ | 2 O O O O O O O O O | 2 O O @ @ @ @ @ @ @ | 2 O O O O O O @ @ @
3 O O O O @ @ @ @ @ | 3 O O O O O O O O O | 3 O O O @ @ @ @ @ @ | 3 O O O O O @ @ @ @
4 O O O O @ @ @ @ @ | 4 @ @ @ @ @ @ @ @ @ | 4 O O O O @ @ @ @ @ | 4 O O O O @ @ @ @ @
5 O O O O @ @ @ @ @ | 5 @ @ @ @ @ @ @ @ @ | 5 O O O O O @ @ @ @ | 5 O O O @ @ @ @ @ @
6 O O O O @ @ @ @ @ | 6 @ @ @ @ @ @ @ @ @ | 6 O O O O O O @ @ @ | 6 O O @ @ @ @ @ @ @
7 O O O O @ @ @ @ @ | 7 @ @ @ @ @ @ @ @ @ | 7 O O O O O O O @ @ | 7 O @ @ @ @ @ @ @ @
8 O O O O @ @ @ @ @ | 8 @ @ @ @ @ @ @ @ @ | 8 O O O O O O O O @ | 8 @ @ @ @ @ @ @ @ @

やっぱりわからないかもしれない。
例えば線対称なら上図のようになりますよね(@が着手候補)
回転対称ってどう半分になりますか?
0086535
垢版 |
2020/02/01(土) 01:57:04.18ID:TrLaB+Vx
もしかして現局面の対称性を考えるんじゃなくて着手後の対称性を考えるとわかるのだろうか?
0087310
垢版 |
2020/02/01(土) 09:51:10.99ID:rBYht6FY
回転対称の時は、180度回した場所と対称になるので、左上と右下みたいな感じです。

(0,0)⇔(8,8)
(0,1)⇔(8,7)
(1,0)⇔(7,8)
(1,1)⇔(7,7)

(m,n)⇔(8−m,8−n)

みたいになりますので、図形ではイメージしずらいかも。
0088535
垢版 |
2020/02/01(土) 18:31:37.87ID:TrLaB+Vx
うーん、回転対称確かに使えるかも。結局8対称全部使えるってことなのかなぁ?
0089535
垢版 |
2020/02/01(土) 23:53:26.53ID:TrLaB+Vx
とりあえずpostgre sqlをインストールしました。
0090535
垢版 |
2020/02/03(月) 21:22:57.75ID:blktSoE8
スレッドリッパー3990x今週発売らしいですね。
藤井聡太7段が狙ってるとかなんとかw
0091310
垢版 |
2020/02/04(火) 22:54:13.24ID:e/vxAQDk
なんか今日のabema中継で藤井君が新PC買ったみたいな話出てたよ。
解説陣の伝聞情報だからアテにならないかも知れないけど。

相変わらず棋譜作り続けているけど、まだまだ局面的にはスカスカな感じ(汗
あと1年くらい続けてもダメかも知れないorz

あと結構たくさんのパブリックドローが、ドローじゃなさそうな感じになってきてます。
ドローから外れる良い手(+2の分岐)が見つかった時に、それが正しいのかどうかを
チェックしています。深いところの分岐なら時間かければ完全読み切りで確定できる
のですが、浅いところで外れる場合は確認しきれません。Zebraを見ながら間違い探し
をしようにも、こういうのはZebraの評価値も揺れ動いていてあんまりあてにならず。

現在パブリックドローとして拾ってきた棋譜が99本ありますが、12本が確定間違い。
13本が、おそらく間違いという状態です。後者はDAGや対称形を考慮すると4パターン
に集約されます。

ちなみに、F5f6E6f4G5の筋は全滅しそうです。F5d6C3d3C4f4C5b3C2の筋は、たくさん
生き残っています。逆に新発見のおそらくパブリックドロー候補もたくさんあるけど、
まだ怖くて確認してません。
0092310
垢版 |
2020/02/04(火) 22:57:24.54ID:e/vxAQDk
対称局面の話ですが、MCTSで探索範囲を絞るのであれば、All Moves As First法が
有効ではないかと思います。

オセロでは全く使えない方法なので僕は詳しくありませんが。
0093535
垢版 |
2020/02/05(水) 21:51:06.12ID:gbgnOMyv
うーん、All Moves As First法ですか。
ライフゲーム囲碁は囲碁に似ているゲームだから有効かもしれませんが、手順はやっぱり大事な気がするんですよね〜
実装して試したわけじゃないけど、第一感として心のどこかで納得いってない部分はあります。
0094310
垢版 |
2020/02/06(木) 19:25:08.06ID:ecERWYVc
すまんライフゲーム囲碁よくわからんで適当だった。
手順が大事なら無理だね。


こちらはF5f6の筋が全滅している…。
これから間違い探しですが、大変だぁ。
0095535
垢版 |
2020/02/06(木) 21:50:40.62ID:zVCHlYJi
いや、実はむしろ囲碁よりライフゲーム囲碁のほうが有効な可能性までありますが…
やはり心のどこかで引っかかるものがあるのです。
0096310
垢版 |
2020/02/09(日) 10:30:31.08ID:oU+8Ghci
F5f6の筋復活。

パブリックドローリスト99件に対して、6パターン12本の棋譜が確定間違い。
そのほか3パターン9本のおそらくパブリックドローじゃない疑い。
0097535
垢版 |
2020/02/09(日) 14:41:50.20ID:zJ1T76cB
あああ、まったく頑張れない
今日も虚しく時間だけが過ぎて行く
Orz
0098535
垢版 |
2020/02/09(日) 19:12:30.03ID:ojAywroZ
SQLのテーブルって一回定義しちゃって運用始まっちゃうと中々変えれないイメージがあって踏ん切りがつかない
それなら初めからテーブル分割気味に定義したほうがいいのだろうか?
0099535
垢版 |
2020/02/09(日) 19:47:31.15ID:ojAywroZ
テーブルに予備項目もたせて後から項目増やしたくなったらそれ使うみたいな手法もないことはないな。
最善策ではないにしても。
0100535
垢版 |
2020/02/10(月) 20:30:44.20ID:RVFxecd9
軽く計算してみたけど8TBのHDDをもってしても12〜13手くらいしか全記憶できないっぽいな
うーむ
0101535
垢版 |
2020/02/10(月) 21:09:48.48ID:RVFxecd9
盤面情報と勝率情報をテーブル分けてidでjoinする方向で検討。
親子関係もテーブルに持つようにするかも。
0102310
垢版 |
2020/02/10(月) 21:49:59.84ID:88R3xHqQ
F5f6の筋また死亡。
死亡復活を繰り返して3回目くらいに復活安定した筋もあるので、まだまだかかるかも(汗
というか、こういう作業が面倒臭い。
0103535
垢版 |
2020/02/11(火) 15:02:56.99ID:5mcWafyZ
C++からpostgre sqlにテストデータを1件登録することに成功した。
夢が広がるなぁ
0104535
垢版 |
2020/02/11(火) 19:46:16.02ID:5mcWafyZ
テーブル定義は段々固まってきたけどどういう順序で探索ツリーを展開するか一番肝心なところが決まってない。
0105535
垢版 |
2020/02/11(火) 21:32:51.43ID:5mcWafyZ
探索が進むほど有望な局面を選択できるようにしたいがやはりMCTS系の探索だろうか?
0106310
垢版 |
2020/02/11(火) 21:43:38.70ID:gp4irkBy
F5f6の筋復活(汗

その代わり、F5d6E6f4とF5f6E6d6(対称形)に差が出てきて、評価値がずれた。
F5f6E6d6の棋譜をすべてF5f6E6f4に変換して、Bookにはf4系とd6系の2種類登録
しているので、ここの間では差が生じないが、例えばF5f4E3〜の筋からたまたま
F5d6E6d6とかに合流してくると、その棋譜については対称変換しないので、差が
生じてしまうという事になるかなと気が付いて、対称変換で差が生じている棋譜を
Bookから逆生成してみたところ結構な件数が…というか、ざっくり見積もって既に
3万件超え。どうやって復旧するか悩むところ。というか、おそらくこれやったらまた
F5f6の筋が死亡しそうな予感。これから対策を考えます。むむむ。

そのほか、部分的に遡って完全読み切りした時に、そこまでたどり着いていない
筋の方が良い評価値になってしまうという、Bookに生じる矛盾を解消する処理を追加。
こちらは結構綺麗にできた。
0107310
垢版 |
2020/02/12(水) 00:35:06.03ID:Gx8MvMLI
対称形の合流問題、一応のプログラムできた…と思う。

ロジック的には色々なやり方があるのだけど、処理時間とどこまでやるのかという
ところが悩みどころ。今のままで動かすか、どうするか。

ちょっと悩みたいので一旦ペンディング。
0108310
垢版 |
2020/02/12(水) 22:15:37.07ID:Gx8MvMLI
一晩寝かしてプログラム破棄(汗

もともとある対称盤面の処理ロジックを生かして、F5筋しかない棋譜をC4/D3/E6に
対称変換する事で、根本的に解決しようという方向になりました。副作用はBookが
4倍に膨れるのと、F5スタート限定だった評価関数のエラーがいったん大きくなって
しまうために、学習しなおさなければならない事です。

やってみたら、Bookサイズでかすぎてメモリーギリギリ。仕方がないので60手目まで
作っていたBookを40手目までに限定。あと敢えて残して(意図的に作って)あった、
24手目以降のベストではない分岐も別途保存して一回削除しました。

メモリ64G以上欲しい…。スレッドは16くらいで十分なので。
0109535
垢版 |
2020/02/12(水) 23:03:00.16ID:OxY0+llC
メモリ欲しいですよね〜。
0110535
垢版 |
2020/02/12(水) 23:12:45.08ID:OxY0+llC
Ryzen Threadripper 3990Xに最適化したDDR4-3600 256GBメモリキットがG.SKILLから
ttp://www.gdm.or.jp/pressrelease/2020/0212/338305
0111535
垢版 |
2020/02/13(木) 20:29:06.20ID:t0qxkX+C
今更だけど、メモリよりHDDのほうがでかいわけだが、全部メモリに乗らないとするとどうやってプログラム組めばいいか悩ましいな。
ホント今更だけど。
0112310
垢版 |
2020/02/15(土) 00:33:20.86ID:aU7p7RKo
スピードが必要な部分はメモリーに無いといかんわけで。
今は探索でBookを参照しているので、Bookアクセスには速度が必要なわけで。
Bookは重要だけど棋譜は既に重要ではないわけで。
棋譜はSDDに移そうかなと思っていたりします。
どうせ要所要所で保存しているわけだし、都度読み込めばみたいな。
(HDDは遅すぎるので論外かと)

ただ…今のロジックがメモリー前提なのと、棋譜ですら読み込みに数秒かかる
状態なので、できればメモリーに置いときたい。そもそも、大した容量じゃないし。

自分の場合、本体でBook読み込むのと、同時にZebraと突き合わせながら間違い
箇所探しで掘り進める用に、Bookを確認するプログラムも同時に動かしていて、
そちらでも同じサイズのBookを読み込まざるを得ないので、16Gのメモリーが
あっても、半分くらいに抑えておかないといけないという問題があります。

頭の片隅にバイナリファイルのランダムアクセスってのがちょこっとだけありますが、
それって自分用DBを作るようなものなので、悩み中。とはいえ、最終的にもしオセロ
の対戦プログラムにするのなら、今ほど探索時間気にするわけでもなし、動作環境
として要求するメモリー量が大きすぎるのもなんだかなぁと思っていたりもします。
0113310
垢版 |
2020/02/15(土) 00:35:39.59ID:aU7p7RKo
そんな事より、対称形サポートして棋譜作っていたら、またF5f6系が全滅して
途方に暮れていたところで、知らぬ間に復活していたり。間違い可能性高い
パブリックドロー筋が復活したと思ったら、またダメだったり。

まだ棋譜作成が足りていないという事実に直面しています。
0114310
垢版 |
2020/02/18(火) 00:26:29.87ID:xu5XdmKn
対称形サポートでBookはだいぶ良くなって来た感じですが、完全読み切りの探索時間
が遅くなった。まだ新しい教師データに対して学習不足なんだと思いますが、どこまで
復活するか。

残り30手読み切り時間がかかりすぎる。棋譜作成のプログラムの方は、ほぼ出来上
がってしまったので、動作具合を見ているだけになっている。何か探索高速化のネタは
無いものか。

PC一つ買って、そちらでオセロの棋譜作成させながら、別の何かの開発を始める時な
のかも知れない。
0115535
垢版 |
2020/02/18(火) 00:27:41.65ID:kv2P7/8Y
とりあえずモンテカルロ1000poで10〜50手打ち進めてその局面で100000po回して結果の黒番の勝利回数、スコアの合計を収集するプログラムを作成。
あんまりいい方法じゃないとはおもうけどこれだというアイディアもないしこれで一回やってみます。
0116535
垢版 |
2020/02/18(火) 21:44:13.85ID:kv2P7/8Y
マシンパワー欲しいすな。
3990xでも足りないかも。

アルゴリズム見直せと言われそうだが。
0117535
垢版 |
2020/02/18(火) 22:28:54.62ID:kv2P7/8Y
まーでも310さんも言ってるけど計算にマシン取られるとヒマですね。
AWSとか使うのも面白いかもしれないけどいかんせん金が…
0118535
垢版 |
2020/02/20(木) 18:12:42.14ID:YadOsXz6
夜中動かすとファンがうるさくてねれないorz
やっぱaws…
でも金が…
0119535
垢版 |
2020/02/20(木) 20:15:56.39ID:BvOV7XJR
でもまあ、コロナでいつポックリいくともわからないならいっそ3990x買っちゃうってのも考えようによってはなくなないな。
0120310
垢版 |
2020/02/20(木) 22:03:32.96ID:KuvbYeZk
たぶん感染経路不明な感染者が1000人超えたらテレビも飽きてきて
めっきり話題にならなくると思うなw
0121535
垢版 |
2020/02/20(木) 22:44:26.40ID:BvOV7XJR
70499種類の盤面のモンテカルロ勝率スコアデータが取れました。
これをもとにDNNをトレーニングしてみます。
0122535
垢版 |
2020/02/21(金) 21:02:31.11ID:/4d3LiPl
やっぱ素のモンテカルロに勝てない!!!
どうしてなんだ…
0123535
垢版 |
2020/02/21(金) 22:56:34.67ID:/4d3LiPl
単に白番有利説が急浮上www
0124535
垢版 |
2020/02/22(土) 00:47:13.32ID:j5uEDLd9
いや、ちがうっぽい。
うーん。
0125535
垢版 |
2020/02/22(土) 17:03:42.93ID:j5uEDLd9
キター!素のモンテカルロに勝ち越しました!
黒番 31勝20敗
白番 32勝19敗
0126535
垢版 |
2020/02/22(土) 20:31:10.32ID:j5uEDLd9
モンテカルロが間違える局面で間違いを訂正してそれをDNNに学習させる方法ないかなぁ
0127310
垢版 |
2020/02/22(土) 21:32:51.12ID:wHsEFeMN
間違える局面が特定できているて、間違えた手を訂正できるんなら、
訂正後から対戦再開させて、その棋譜で局面DB更新して、学習するとか。

特定できていなくても、基本強化学習は、対戦→DB更新&学習の
繰り返しで、徐々に間違いを訂正していく方法。もうちょっと工夫する
ならε-Greedyなどの手法で既存の棋譜の途中で無理やり別の手に
分岐させていく。その手が悪くても、「悪い手である」という認識を学習
させる事ができる。

線形計画だとモデルが上手くできていないと学習が飽和しちゃうけど、
DNNだったらある程度うまく学習してくれるかも。
0128535
垢版 |
2020/02/22(土) 21:53:22.17ID:j5uEDLd9
>>127
特定も訂正も現状できてないですね。

それよりひどいバグを発見して>>115で取ったデータが全て台無しになる可能性が…
0129535
垢版 |
2020/02/22(土) 22:00:44.31ID:j5uEDLd9
あかん、なんか全然おかしいorz
ちゃんと見直さないと…
0130535
垢版 |
2020/02/22(土) 22:22:49.38ID:j5uEDLd9
データ取りからやり直しますorzorzorz
0131310
垢版 |
2020/02/23(日) 00:56:57.70ID:9FygPBnT
間違い探しを続けるうちに、何故Zebraの評価値の方がまともに見えるか問題に
突き当りました。で、評価関数を手数毎に60種類に分割している事で、学習データ
が不足しているとか、スムージングしていないために、2手前の自分の番の盤面との
差分が取れないとかの問題があるのかなぁと思い立ちまして…。

また、4対称採用した事で学習時間も4倍になってしまいまして…。

思い切って、評価関数を1つにまとめてみたらどうだろうと思い立って、専用の学習
プロジェクトを作ってやってみました。通常数百回学習しないとまともな学習ができ
ないのですが、20回学習したところで、意外とフィットしてしまいました。学習時間も
少し減ってる気がする。

一旦評価関数の癖を変えたほうが強化学習も進むかなと思い、とりあえず本番採用
してみました。気持ち速度も速くなった気がしています。もっとも、評価関数の学習具合
によってαβのorderingも変わって速度が変わったりするので、今後学習を積み重ね
て、過学習気味になったりした時にどうなるのかは不明。

これから数日動かしてみて、良かったらこっちにしようかと思います。強いオセロAIを
作るのなら、対戦してどっちが強いとかやるのが本来なのですが、特にそういう目標も
現状あるわけでなし(汗
0132310
垢版 |
2020/02/23(日) 01:08:08.23ID:9FygPBnT
>>127に捕捉しとくと、

自分はGreedyな手法の精度をあげるために、浅い探索(9手)と組み合わせて、
評価値が少しだけ悪い手とか、Book登録ないのに評価値が良いとか、いくつかの
基準の訂正ロジックを作って、明らかに悪い手を排除したGreedy法をとって、
既存の棋譜に対して順次分岐を生成していく事で、Bookを埋めて行っています。

分岐は13手読みで作成していますが、この分岐も間違いがそれなりにあるため、
間違いを積み上げているのではないかという懸念もあります(汗

オセロの場合、黒白両者とも最善の場合、引き分けに収束する可能性が濃厚なため
初手から最善引き分けとなるツリーについては、先頭側からこのGreedy法で分岐を
生成し、また(後ろから)確定読み切りを優先して実行する事で、引き分け手順だけ
優先的に精度を上げています。

評価関数作るのに、こういう制約をつけた方法が良いのかは不明です。現に極端に
形勢が傾いた盤面の読み切りは、学習データが不足しているために、引き分け盤面
よりずっと時間がかかるように感じています。
0133310
垢版 |
2020/02/23(日) 03:01:39.99ID:9FygPBnT
げげ。>>131の奴、本番に入れて学習させたらうまく動かん…。

原因箇所は特定できたけど、そもそもBook分だけで学習していて、後半の棋譜から
教師データ作ってなかったので、件数が大幅に違う。後ろ15手分が抜けている。

が、これが入ると学習の途中で無限ループに入ってしまう。
何かのオーバフローなんだと思うけど、今は原因不明orz
0134310
垢版 |
2020/02/23(日) 10:00:35.35ID:9FygPBnT
たぶんなおった。

学習の進行具合インジケータの*印の数を作るところでオーバーフローして
延々と*を表示し続けてるだけだったw

こういうところで適当にint使っているのがいかん。
と、怪しそうなところをsize_tに直したら、整合性が取れなくなってワーニングの嵐w
適当にsize_tにすればよいというものでもなかったw
0135535
垢版 |
2020/02/23(日) 22:36:15.39ID:xJvwRHu1
オーバーフローが嫌だからついlong longを使ってしまうw
メモリ余計に食うけど。
0136535
垢版 |
2020/02/24(月) 18:53:46.31ID:S84dSY4F
タイルゲーム、完全解析した後でもそれなりに楽しめる不思議。自力では勝てないからな。
そういやconnect4より複雑で完全解析されててネットで遊べるゲームってなにかあるのかな?
0137535
垢版 |
2020/02/25(火) 20:37:07.39ID:10rOW9ls
データ取りなおしたので再度DNN学習させてみます。
ついでにネットワーク少し大きくしてみます。
0138535
垢版 |
2020/02/26(水) 20:24:56.08ID:LbNvrAvP
なんかDNNほぼ最悪の手を打つんだが…
真逆の学習させちまったか?
0139535
垢版 |
2020/02/26(水) 20:40:14.06ID:LbNvrAvP
試しに評価値に*-1してみたがやっぱり悪い手を打つ。
真逆ってわけでもないのか?
わけわからん
0140535
垢版 |
2020/02/26(水) 20:50:37.02ID:LbNvrAvP
モンテカルロ木探索の部分が間違ってたっぽい
0141535
垢版 |
2020/02/26(水) 21:22:57.03ID:LbNvrAvP
うーん、なんかアルファ碁Leeみたいに、数手前の手順を学習データとして食わせるといいかもなぁ。
石がぶつかってる時の判断がちょっとおかしいんだよなぁ
0142535
垢版 |
2020/02/26(水) 21:35:19.66ID:LbNvrAvP
もうヒューリスティックもモリモリ入れちゃおうかなぁ
0143535
垢版 |
2020/02/27(木) 19:12:50.92ID:7f4H7cqb
お、微妙に勝ち越している。
でも微妙すぎw
0144535
垢版 |
2020/02/27(木) 21:11:32.40ID:7f4H7cqb
先制攻撃を仕掛ける体制が整っているかどうかの判定が今後の課題ですね。
0145535
垢版 |
2020/03/01(日) 21:57:12.55ID:X+Ti9n7n
先制攻撃を仕掛けた時に反撃で逆に取られる確率とか学習させたら駄目かなぁ?
0146535
垢版 |
2020/03/02(月) 06:27:35.74ID:Td8MIT1I
ある局面に対し、それぞれの点が黒の地になる確率のベクタを返すようにDNNを学習したらどうだろう?
0147535
垢版 |
2020/03/03(火) 21:11:27.98ID:PL4UDoSq
前回はスコア差を評価値に学習させましたが、今回は勝率で学習させてみます。
結局セオリー通りがいいのかもしれないので。
ホントはスコア最大化はぜひともやりたいんだけど。
0148535
垢版 |
2020/03/04(水) 20:23:35.42ID:Q7ItuMwb
勝率で学習させたら黒番は勝ち越してますが、白番は負け越してますね。
白番でも勝てると思いましたが。
0149535
垢版 |
2020/03/04(水) 20:44:28.42ID:Q7ItuMwb
うお、バグ発見w
DNNが全く働いてなかったww
黒番で勝ち越したのはたまたまやなこれは。
0150535
垢版 |
2020/03/04(水) 21:10:05.82ID:Q7ItuMwb
うーん、石をくっつけて打つなぁ
もっとばらけさせたほうがいいと思うんだけど。
0151535
垢版 |
2020/03/04(水) 21:14:38.18ID:Q7ItuMwb
うーん、石がくっついているか離れているか標準偏差のようなものを出して学習パラメータに渡すとか
0152535
垢版 |
2020/03/04(水) 21:17:15.27ID:Q7ItuMwb
ホントはあんま手動で特徴量出そうとするのよくないアイディアなんだろうけど。
0153535
垢版 |
2020/03/04(水) 21:43:12.15ID:Q7ItuMwb
結局モンテカルロの勝率データだけだとだめっぽくて、いろんな戦略の中からより良いものを探すようにしたいなぁ
0154535
垢版 |
2020/03/04(水) 22:34:42.21ID:Q7ItuMwb
あれ、黒番、白番ともダブルスコアで勝ち越してる??
まだ対局数少ないからあれだけど。
0155310
垢版 |
2020/03/04(水) 22:39:44.37ID:XCbeW9Ri
自分は、最近、学習効率アップさせようと入れていたヒューリスティックなロジックは
見つけ次第外す方向だったりします。

棋譜作成の元ネタだけは、結構たくさん手動で追加していますが、見つけ次第追加
みたいなやり方で、偏りが出そうな気がするのと、手動追加だと入力ミスも結構あって
面倒なので、どこかで後続棋譜が少ない手順を順次自動で追加していくようにしちゃ
おうかなと思ったりしています。ただ、本当に見てるだけになっちゃうのがちょっと嫌。

そんな事より、棋譜作成のペースが速すぎて、逆順での読み切り(スコア確定)が
追い付かない。
0156535
垢版 |
2020/03/05(木) 20:28:15.73ID:P4JeNRVF
黒番 188勝 48敗
白番 176勝 55敗

めっちゃ勝ってる!!
0157535
垢版 |
2020/03/05(木) 20:45:33.61ID:P4JeNRVF
結局ポスグレ全く使ってないというw
ま、当面ポスグレは保留かなぁ
0158535
垢版 |
2020/03/05(木) 21:05:27.39ID:P4JeNRVF
とりあえず、この新しいAIで勝率データ取りなおして更に学習させるスパイラルへもっていくか。
0159535
垢版 |
2020/03/06(金) 20:19:27.94ID:1GJjUnMY
うお、人間(俺)に勝った!
まぐれっぽいけど
0160310
垢版 |
2020/03/06(金) 21:29:36.82ID:76Zol1eh
小人閑居して不善をなす…

評価関数の学習周りをいじっていたら、学習エラーが大きく(4〜5倍)なってしまった。
オプティマイザーをAdamにしてみたのが悪かったのか(バグ?)、それとも他にいじった
ところが悪かったのか。オプティマイザーを戻して、追加学習してみたけど、全然もとに
戻らない。

と言いながら、色々と溜まっていた懸案も機能追加してしまった。

結局、どうにも直らないのでウェイトを一旦クリアしてRMSpropで再学習してる最中です。
明日の朝にはまともになっているかなぁ。
0161310
垢版 |
2020/03/06(金) 21:39:02.84ID:76Zol1eh
行列パッケージEigenにユーザ拡張のサポート無し機能がいくつか追加されていて、
その中にTensorクラスがある事に気づいた。

速度は期待できないけど、もう一度DCNNやってみようかなぁ。

つか、もう一台PCがあれば、棋譜が既にあるので、テストできるんだよなぁ。
0162310
垢版 |
2020/03/06(金) 22:53:37.48ID:76Zol1eh
RMSpropで一から学習しなおしで、もうすぐ20エポックだけど、順調な感じ。
前回同様20回+αも回せば結構よいところに行きそうな感じ。

おかしかった時は、もともとの場所から離れて、変な局所解にトラップされていた
ような感じになっていたんだよなぁ。現状のAdamのコードにバグがあるのか調べ
たいけど、もともと参考にしたサイトが見つからない。今見つかるやつはChainerの
類の疑似コードらしく、ちょっとやそっとでは解読できないレベルの記号の羅列orz
0163535
垢版 |
2020/03/07(土) 01:06:05.32ID:NIcvsU6/
モンテカルロ+ヒューリスティックAIにも勝利!!
いい感じだ。
0164535
垢版 |
2020/03/07(土) 21:53:01.55ID:NIcvsU6/
あーもう、計算時間かかりすぎ!
あと3〜4日は計算回さないとデータが集まらない。

こんなときスレッドリッパー3990xがあれば…
0165535
垢版 |
2020/03/07(土) 22:30:53.08ID:NIcvsU6/
ぶっちゃけ1週間かかる計算が1日で終わるとしたら3990x買うのもありなんじゃないか…???
金がないけど。
0166310
垢版 |
2020/03/07(土) 22:53:18.55ID:6tZRBA6n
まあまあ。

自分は棋譜作成開始して、既に数年経ってる気がする(汗
途中データ飛んだりしているから、実際はもっと長い。

だんだんコツがわかって収集速度は加速的に高速化してきているけど、
今度はメモリー溢れが恐怖。
0167535
垢版 |
2020/03/10(火) 21:38:55.27ID:IkE5Ol6x
データもぼちぼち溜まったしDNN学習に移ります。
0168310
垢版 |
2020/03/11(水) 19:25:55.84ID:N0CjcdIm
Eigen UnsupportedのTensorクラスを見つけて、またぞろDCNNに興味が沸いて来ま
した。で、思い出しがてらウェブを眺めていました。前回断念したのは畳み込み層の
計算を行列で行うためのim2colのロジックを高速に行う方法が見つからなかったから
だと思い出しました(汗

しかし、気が付いてしまいました。所詮8×8のマスの定型変換で、汎用性いらないので
64ビットのローテーションとマスク値とのandというビット演算で、前処理ができてしまい
ます。そのあとで行列に変換すれば良いだけの事でした。つまりim2col関数はいらん。

もう少しDCNNの最新動向をフォローしてから、同じ棋譜を学習させて試してみたいと
思います。
0169535
垢版 |
2020/03/11(水) 20:59:47.72ID:kvcp7+Sq
DNN学習、損失もいい感じで減ってきました。
素のモンテカルロとの対戦に移ります。
0170535
垢版 |
2020/03/11(水) 21:02:33.51ID:kvcp7+Sq
実を言えば私は畳み込みはやってないんですな。
全結合でやってます。
0171535
垢版 |
2020/03/11(水) 21:13:45.28ID:kvcp7+Sq
お、
黒番 7勝2敗
白番 9勝0敗

これは期待が高まる!!!
0172535
垢版 |
2020/03/11(水) 22:57:19.64ID:kvcp7+Sq
黒番 22勝3敗
白番 20勝5敗

いいね〜いいね〜
0173535
垢版 |
2020/03/11(水) 23:19:03.17ID:kvcp7+Sq
そろそろソースコードのバージョン管理とかやったほうがいいのかなぁ
GitHubとか
レスを投稿する


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