【オセロ,将棋】ボードゲーム Part3【囲碁,War】 (636レス)
1-

131
(1): 310 2020/02/23(日)00:56 ID:9FygPBnT(1/4) AAS
間違い探しを続けるうちに、何故Zebraの評価値の方がまともに見えるか問題に
突き当りました。で、評価関数を手数毎に60種類に分割している事で、学習データ
が不足しているとか、スムージングしていないために、2手前の自分の番の盤面との
差分が取れないとかの問題があるのかなぁと思い立ちまして…。

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

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

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

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

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

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

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

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

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

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

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

こういうところで適当にint使っているのがいかん。
と、怪しそうなところをsize_tに直したら、整合性が取れなくなってワーニングの嵐w
適当にsize_tにすればよいというものでもなかったw
135: 535 2020/02/23(日)22:36 ID:xJvwRHu1(1) AAS
オーバーフローが嫌だからついlong longを使ってしまうw
メモリ余計に食うけど。
136: 535 2020/02/24(月)18:53 ID:S84dSY4F(1) AAS
タイルゲーム、完全解析した後でもそれなりに楽しめる不思議。自力では勝てないからな。
そういやconnect4より複雑で完全解析されててネットで遊べるゲームってなにかあるのかな?
137: 535 2020/02/25(火)20:37 ID:10rOW9ls(1) AAS
データ取りなおしたので再度DNN学習させてみます。
ついでにネットワーク少し大きくしてみます。
138: 535 2020/02/26(水)20:24 ID:LbNvrAvP(1/5) AAS
なんかDNNほぼ最悪の手を打つんだが…
真逆の学習させちまったか?
139: 535 2020/02/26(水)20:40 ID:LbNvrAvP(2/5) AAS
試しに評価値に*-1してみたがやっぱり悪い手を打つ。
真逆ってわけでもないのか?
わけわからん
140: 535 2020/02/26(水)20:50 ID:LbNvrAvP(3/5) AAS
モンテカルロ木探索の部分が間違ってたっぽい
141: 535 2020/02/26(水)21:22 ID:LbNvrAvP(4/5) AAS
うーん、なんかアルファ碁Leeみたいに、数手前の手順を学習データとして食わせるといいかもなぁ。
石がぶつかってる時の判断がちょっとおかしいんだよなぁ
142: 535 2020/02/26(水)21:35 ID:LbNvrAvP(5/5) AAS
もうヒューリスティックもモリモリ入れちゃおうかなぁ
143: 535 2020/02/27(木)19:12 ID:7f4H7cqb(1/2) AAS
お、微妙に勝ち越している。
でも微妙すぎw
144: 535 2020/02/27(木)21:11 ID:7f4H7cqb(2/2) AAS
先制攻撃を仕掛ける体制が整っているかどうかの判定が今後の課題ですね。
145: 535 2020/03/01(日)21:57 ID:X+Ti9n7n(1) AAS
先制攻撃を仕掛けた時に反撃で逆に取られる確率とか学習させたら駄目かなぁ?
146: 535 2020/03/02(月)06:27 ID:Td8MIT1I(1) AAS
ある局面に対し、それぞれの点が黒の地になる確率のベクタを返すようにDNNを学習したらどうだろう?
147: 535 2020/03/03(火)21:11 ID:PL4UDoSq(1) AAS
前回はスコア差を評価値に学習させましたが、今回は勝率で学習させてみます。
結局セオリー通りがいいのかもしれないので。
ホントはスコア最大化はぜひともやりたいんだけど。
148: 535 2020/03/04(水)20:23 ID:Q7ItuMwb(1/7) AAS
勝率で学習させたら黒番は勝ち越してますが、白番は負け越してますね。
白番でも勝てると思いましたが。
149: 535 2020/03/04(水)20:44 ID:Q7ItuMwb(2/7) AAS
うお、バグ発見w
DNNが全く働いてなかったww
黒番で勝ち越したのはたまたまやなこれは。
150: 535 2020/03/04(水)21:10 ID:Q7ItuMwb(3/7) AAS
うーん、石をくっつけて打つなぁ
もっとばらけさせたほうがいいと思うんだけど。
151: 535 2020/03/04(水)21:14 ID:Q7ItuMwb(4/7) AAS
うーん、石がくっついているか離れているか標準偏差のようなものを出して学習パラメータに渡すとか
152: 535 2020/03/04(水)21:17 ID:Q7ItuMwb(5/7) AAS
ホントはあんま手動で特徴量出そうとするのよくないアイディアなんだろうけど。
153: 535 2020/03/04(水)21:43 ID:Q7ItuMwb(6/7) AAS
結局モンテカルロの勝率データだけだとだめっぽくて、いろんな戦略の中からより良いものを探すようにしたいなぁ
154: 535 2020/03/04(水)22:34 ID:Q7ItuMwb(7/7) AAS
あれ、黒番、白番ともダブルスコアで勝ち越してる??
まだ対局数少ないからあれだけど。
155: 310 2020/03/04(水)22:39 ID:XCbeW9Ri(1) AAS
自分は、最近、学習効率アップさせようと入れていたヒューリスティックなロジックは
見つけ次第外す方向だったりします。

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

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

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

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

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

結局、どうにも直らないのでウェイトを一旦クリアしてRMSpropで再学習してる最中です。
明日の朝にはまともになっているかなぁ。
1-
あと 476 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.010s