[過去ログ] 【オセロ,将棋】ボードゲーム Part2【囲碁,War】 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
310(197): 535 2018/04/02(月)22:24 ID:3iK+AnRP(1) AAS
Leela ZeroがKGSでかなり強くなってる。
俺がパクったプログラムも学習し続けたらあれくらい強くなるんだろうか?
237: 310 2018/02/14(水)20:49 ID:I/pUqAGs(1) AAS
単にGUIが嫌いなんですorz
凝りたい気持ちと、画面遷移の罠から、心がデッドロックを起こして、
しまいに面倒くさくなってしまうという。
241: 310 2018/02/17(土)21:53 ID:vz2S+0Ke(1) AAS
ドタバタしながら音だけ聞いていたけど、なんか普通に互角から徐々に優勢を
築いて、相手の奇手にも動ぜずにさばいて、勝利って感じで、強さが際立って
いましたね。
これで勝っても漫画なら編集長にバカにされるレベルと言われていましたが、
本当に笑うしかないですね。
248: 310 2018/02/19(月)23:48 ID:KY7Wcd5F(1/2) AAS
PythonからC++関数を呼べるみたいですね。
C++からPythonも呼べるみたいです。
前にPythonに手を出そうかと思った時にググったら出てきました。
前者の方が解説が多かったと思います。
自分はBitboardを使いまくりなので、Pythonに手を出しあぐねていました。
また、評価関数の学習部と、評価値計算をうまく分離できれば、前者を
Python、後者をC++で書けないかなぁと思っていますが、im2col関数の
うまい実装を考えるのが面倒で、放置になっています。
249: 310 2018/02/19(月)23:56 ID:KY7Wcd5F(2/2) AAS
ここ数日強化学習の結果がよさげになってきたので、結果の良かった学習方法に
集中させたら、また変な学習になってしまったようで、迷走中です。
学習の具合が良いと、色々な探索も速度アップするんだけど、具合が悪いと全部
悪循環になってしまうという。
仕方無いので、中盤探索の反復深化を作り、その結果を置換表に溜めてオーダ
リングを行うようにしてみましたが、効果があったのかよくわからない罠。
こちらも、学習の具合が良くなったら、急激に効果が表れるのではないかと期待
しているんだけど。
253: 310 2018/02/22(木)01:36 ID:pKMuaeJh(1) AAS
評価関数がどんどん悪化していく罠。
頭に来たので、評価関数をステージ分割。
ステージ分割すると学習部分の全面書き直しとなる。
どうせニューラルネットは使わないと決めたので、線形回帰にスケールダウン。
またしてもゴチャゴチャしてきた部分を全面書き直しパターンへ。
もうGUIはすっかり忘れていますorz
264: 310 2018/02/28(水)22:12 ID:4D1Jf52Q(1) AAS
評価関数変更ついでにまるっと作り直してます。
自己対戦など、汚いコードを綺麗に書き直し。
かけた工数的には自己対戦の方が大変だったかも。
評価関数を1手毎のステージ分割で60ステージにして、学習し直しです。
これで序盤を学習させると終盤が狂う問題は解消されると信じていますが、
学習に60倍の時間がかかる事が予想されるという状態で、記譜を幾ら作って
も追い付かない感じなので、強化学習主体にするつもりです。
というか、まだ、UCTの所は作りこんでいない。
まあ、ほとんどコピペですが。
で、ここまで来たところで、もういっちょ改造したくなってきた…。
281(1): 310 2018/03/08(木)00:53 ID:KJS05rsc(1/2) AAS
新評価関数版ようやく一通りできた。
強化学習にすごーく時間がかかりそう(汗
というわけでNew PC見繕ってます。
ノートPCでi7-8700Kの6コア12スレッドにメモリー32メガで
GTX1080搭載のノートPCがある。
むむむ。
287: 310 2018/03/08(木)23:33 ID:KJS05rsc(2/2) AAS
どもです。
お高いですが、デスクトップのフルスペックの1/3以下で済むようです。
回しっぱなしの奴がレアケースで異常終了すると萎えますね。
自分の奴は、たぶん怪しいところはほぼ蓋をしているので、今は安心しています。
とはいえ、評価値の保存に数秒かかるようになってしまったので、保存中にうっかり
終了してウェイトファイルを破壊しないように、いくつか策を講じました。最近はOSの
アップデートで勝手に再起動されちゃうので。
289: 310 2018/03/10(土)19:53 ID:jEGGoWyJ(1/2) AAS
あ、価格と性能です(^^;
強化学習に凡ミス発見。
強化学習が良いのは、学習し続ければ何とか復旧できると思えるところorz
291(1): 310 2018/03/10(土)23:47 ID:jEGGoWyJ(2/2) AAS
こいつです。
外部リンク[php]:www.pc-koubou.jp
i9-7080XEのデスクトップだとメモリー頑張ると100万ですからね…
294: 310 2018/03/14(水)21:17 ID:Hsr0gVbu(1) AAS
うぬぬ。強化学習でどこかおかしい。
強化学習単純化しすぎちゃったかなぁ。
暫定的にひたすら記譜作成&記譜学習に戻しました。
遡り30手が鬼門。記譜学習で、ここをクリアする事を当面の目標にします。
とはいえ、残り29手完全読み切りの記譜がそれなりにあるのは、以前では
考えられない状況ではありますが。
295: 310 2018/03/15(木)22:46 ID:CxmBs8oA(1) AAS
強化学習がおかしいというより、記譜のパターンが圧倒的に足りていなかった
のかもと思い始めました。それによって、着手して分岐しても±0となっている
みたいな。
とりあえず、記譜の増殖手段を模索中。
今は、ヌルウィンドウサーチを使用して、遡り探索を行っている関係で、間違った
着手(石損となる手)を捨ててますが、ある程度までその手も読み切って、記譜に
加えても良いのかなぁと思っています。
とりあえず、βカット(もっと良い手があった)時の評価関数は明らかに読み間違い
をしているので、そこ限定で記譜に加えていますが、ある程度以上の手数は全て
付け足しても良いのかなぁと。
296: 310 2018/03/17(土)02:14 ID:Foa7nGV6(1) AAS
なんとなく想像しただけですが、何が悪かったのかわかり始めました。
今の学習は「良い手」しか学習していないという事です。
序盤はある程度ランダムな着手を入れて、結果がばらつくようにしていますが、
途中から読みを入れて、良い手だけで着手し、その結果を遡りで訂正しています。
遡りが有効なのは30手くらいまでで、序盤のランダムは20手程度までに抑えて
あります。とすると、遡れる範囲では、悪手を打ったらどういう事になるのかという
学習が抜けている。間違えた着手もちょっとだけ悪いだけでです。結果、最善手の
評価値はそこそこ正確なのですが、極端な悪手も、評価値としてはちょっとだけ
悪い数字でも問題が起きないという事になります。
これはこれで順序付けさえ合っていればそれで良いのですが、ちょっと学習が
進んで、微妙に係数が変わった時に、計算上0.1程度しか悪くない相当な悪手
をうっかり選択しやすくなってしまうという事で、これがオーダリングで悪さをして、
探索時間を長引かせてしまう可能性があります。
恐らく評価関数のステージ分割で、表現力がかなりアップした事から、こういう
学習漏れみたいな事が起きてくるのかなぁと。ほんと、評価関数はスカスカです。
というわけで、昨夜書いたように、ある程度深さを捨てて分岐をすべて記譜に残す
ようにしてみようかなぁと思っています。しばらく記譜作成しながら、この事を踏まえ
た強化学習をちょっと考えてみたいと思っています。
301: 310 2018/03/25(日)02:23 ID:Yig4cMbl(1) AAS
分岐をすべて記譜にリストアップするようにしてから、爆発的に記譜が増えてます。
2000程度だったのが、15000超えました。
が、まだまだスカスカみたいです。
ここまでするんなら、真面目に自己対戦して遡りせずに、ランダム着手に対して
分岐をリストアップさせても一緒というか、早い気がしてきています(汗
302: 310 2018/03/31(土)01:38 ID:h3UgGfs1(1/2) AAS
ランダム着手も追加して記譜増殖中。ただいま32000超え。
もっとも、残り数手とかの記譜もあるけど(汗
ステージ分割しているので、記譜がなかなか生成されない25〜30手近辺で
非常に少ない教師データで何度も学習する事になり、そのあたりが極端な
過学習になってしまった。
解消方法をいくつか検討中です。
1)時間かかっても良いので、25〜30手の記譜ができるまで頑張る
2)前後の盤面を混ぜて、教師データを増やしてみる
3)ランダム強化学習してみる。
2)3)をやると、おそらく、平均化されて評価値がフラットになるが大小関係は
治ってくると思う。
というわけで、今夜は2)3)を試してみる予定。
303: 310 2018/03/31(土)01:43 ID:h3UgGfs1(2/2) AAS
あと、時々スコア指定(ヌルウィンドウサーチ)の記譜作成処理で
エラー(スコア間違い)が出る時がある。
運が悪い事にハンドリングミスその他で、記譜を残せていないので、
現象の特定ができていない。
頻度としては数日に1回くらい。
たぶん、全滅と直前のパスがらみだと思うんだけど。
306: 310 2018/04/01(日)01:07 ID:OBeH+1OH(1) AAS
おお。どんどん進んでますね。
こちらは、昨夜のバグの現象は特定しました。
スコアが62や−62で、mtd(f)の探索開始が64や−64の時に、
置換表に残った64や−64が悪さして、64や−64と誤答する模様。
とはいえ、どこを直すべきかはわかりません。探索開始が64や−64
の時に、62や−62にしてやる事で、姑息的に回避はできるので後回し。
あと、記譜作成に色々機能を加えていたら、どこかがおかしそうだという
不安な状態になってしまいまして。このまま記譜学習を進めて良いか自信
が無いので、今までのデータで安全な部分をテスト用に回して、新たに
記譜を作成開始。34手目までは全探索しながら普通に遡れる感じです。
33手目から先は探索時間がしんどいので、ひとしきり落ち着いてから、もう
一度、遡りチェックのプログラムをきちっと見直して、追加していこうかな
と思っています。この間に、強化学習混ぜて、過学習部分を解消して
いこうと思います。
308: 310 2018/04/01(日)13:49 ID:DAl+8Sdv(1) AAS
バグ問題は、結局姑息的手段では回避できず。
全滅がらみでほかのケースでも誤答するケースが発生しました。
元々FFO#59用にmin-Max探索に入れていた、全滅時の処理くらいしか
原因となりそうなものが思い当たらなかったので、とりあえずコメントアウト
して様子見です。全滅時の探索が速度低下しますが、仕方がありません。
309: 310 2018/04/02(月)20:15 ID:9LYme7cN(1) AAS
結局バグ問題は…迷宮入り臭いです。
記譜作成で負荷テスト並みに探索を繰り返すと、全滅絡まなくても間違うケースが
出てきました。再現性が無いのが辛いところ。
その昔悩んでいた時も、やっぱり置換表がらみの問題で迷宮入りでしたが、
今回も、ケチって置換表を極力クリアせずに使用していた事から、何らかの
矛盾が起きているようです。それを言っちゃうと、置換表付mtd(f)でf値を変え
ながら探索することも、またその時に作成された置換表を流用して記譜作成
兼ねた読み切り処理を速度アップすることも、怪しいという事になるわけで。
間違えてしまった事が判明した時点で、その探索は捨てるくらいしか対策が
無いという事になります。
ネットで調べたら、将棋AI界隈でも置換表の問題点を書いている人がいまして。
少なくとも深さがあっていない置換表データは使うべきではない模様。
今の調子だと一晩動かすと結構な頻度で朝見たら止まっているとい状態なので
せめて発生率を下げるべく、mtd(f)に入る前に置換表をクリアする事にしました。
なぜしなかったかというと、記譜データからスコアが確定している盤面を置換表に
入れて、それを見ながら既に読み切りしている盤面は飛ばす処理をしていたから
です。置換表をクリアして盤面再構築に時間がかかるためです。別途盤面キャッシュ
を持って、そちらは追記、置換表は毎回クリアという形に変更しました。
313: 310 2018/04/06(金)22:00 ID:952uhqxW(1) AAS
誤答問題は、置換表クリアで解消しました。
違う局面の探索で使用した置換表データは使いまわしてはいけないという事で。
なんか、結果的に、2年くらい前にも同じ事で騒いでいたような。
色々整ってきたので、あとはひたすら記譜作成しながら学習を回すだけになって
しまって、暇になってます。別PC買ってそっちで学習させながら、別の事をはじめ
ようかなぁと思い始めています。
330: 310 2018/04/20(金)09:40 ID:HgLFJ5UM(1) AAS
うーん。AMDはSIMD命令で遅い命令があって、速度低下するかもって
どこかで読んじゃったからなぁ。
こちらは地道に記譜作成しながら学習させてます。
深さ優先で記譜作成すると、分岐が少ない手筋ばかり増えていくので、
幅優先で、同じ深さである程度記譜溜まってから、次の深さとするように
したのですが、空きマス27からの記譜展開で、時間がかかるようになって
なかなか空き28マスに行けない。オーダリングの精度が出ていないから
だと思いますが、同時に選択肢も増えてきて、余計時間がかかる感じ。
空き30マス突破したら、かかる時間の増加率は下がるはずなんだけど。
334: 310 2018/04/21(土)20:32 ID:AdkW58BW(1) AAS
オセロは記譜生成させてるだけで暇なので、将棋の事を考えてました。
KKPとかよくわからないし、同じ事をやってもつまらないので、利きを点数化
しようかと考えてみまして、実際の計算方法を考えていたら、自玉周辺と
相手玉に対する利きがKKPなのではないかと思い至ってしまいました。
持ち駒の点数は駒種毎に固定で振られていて、駒同士のぶつかりによる優劣
特に駒交換はmin-Maxにて補間しているのかなと。評価関数自体は意外と単純
な事しか学習していない感じで、探索で補っている部分が大きいように感じます。
こうやって見ると、上手く単純化しているなぁと。
自分で勝手に想像した内容に感心してしまいました。
ただ、これならこれで、自玉KPと相手玉KPの合算で、2駒関係に次元を落とせ
そうではないかと思ってしまいました。まあ、無理なんでしょうけど。
自分がやる上での一番のネックは、オセロの評価関数が点数だったために、
なんちゃって強化学習しかやった事がな点ですね。あと、みなさんライブラリ化
されていて、それに則れば色々な人の考えた高速化・高効率化のネタが利用
できる点で、一から車輪の再発明していては追い付けないよなぁと。
339: 310 2018/04/22(日)19:48 ID:wf3ukgDl(1) AAS
だよね。自分も脳内妄想で我慢です。
PC新調しちゃうか思いっきり悩み中。
350: 310 2018/05/03(木)20:31 ID:EAR7zekO(1/3) AAS
なんか順調でうらやましい。
俺もやっぱGPU付きのPC買うべかな。
一般的にLRでは、学習率は発散しない限界まで大きくするのが良いらしく、
昔は、最初大きく、試行回数増えるごとにだんだん小さくみたいな事をしてました。
NNではRMSPropとかADAMとかで自動調整する流れだと当時理解していました。
ただ、Googleの論文読むと、普通に学習率固定っぽく読めてしまうんですよね。
強化学習だと学習率固定が良いのかも知れません。
表現力大きいからあんまり問題ない気がするのですが、学習率は小さくすると
学習に時間がかかる代わりに、収束しやすくなります。局所解には陥りやすく
なるのではないかと愚考しますが、強化学習における局所解と、教師付学習に
おける局所解は現象が違うから、よくわかりません。
351(1): 310 2018/05/03(木)20:37 ID:EAR7zekO(2/3) AAS
こちら、例によってひたすら分岐付き記譜を作成しています。
空きマス27の所(完全読みとしては26)のところから、計算時間が案の定すごく
かかるようになってしまって、遅々として進まなくなりました。
最後の手段でとっておいた、UCT探索で仮PV作成し、それでmtd(f)にて評価値を
迅速に確定して、その評価値で正しいPVを求めるという流れにしたところ、恐らく
数倍程度に高速化され、それによって記譜が集まり正確になる事で、評価関数の
精度が上がって、仮PVが正確になりという好循環に、ようやく入る事ができました。
ただ、それでもまだ時間はかかるというか、今空きマス28まで持っていったら、
また時間がかかる地獄に入りそう。最低でも空きマス30までは持っていきたい。
つか、待っている時間が長い…セカンドPCが欲しい。
352: 310 2018/05/03(木)20:41 ID:EAR7zekO(3/3) AAS
>>351
>数倍程度に高速化され
あくまで仮PVが数手分合っている時の話で、仮PVが間違っていると、
むしろ遅くなる可能性があります。
あと、一つの局面に対し、最善手が複数あるケースでは、例えば最善手
が2つあると2倍程度時間がかかるという問題があるのは認識していて、
対策は可能なのですが、そうするとバグった時にβカットのエラーを吐か
ないという恐ろしい状態になってしまうので躊躇しています。
353: 310 2018/05/04(金)19:57 ID:5CQB8Di3(1) AAS
世界コンピュータ将棋選手権の2次予選までで強さをみせつけている
T.N.K(通称たぬき)ですが、DL勢にして高速評価関数という事なので
アピール文書を見てみました。
これ、CNNではなく、全結合のDeep Networkの模様。追加で論文も
出ているので、見たところ5層のMLPです。
入力層に玉との2駒関係を使っていて、そこは計算量が多いので、
ここだけ差分計算で高速化しているとの事。自分は行列をEigenに
任せちゃってるので差分計算していませんが、オセロでも結構使え
るはず。
もう一度オセロをMLPに拡張したくなってきた(汗
356: 310 2018/05/08(火)01:01 ID:6noaUyVY(1) AAS
バックプロパゲーションで計算している以上、深さが深くなると、
その分初段まで誤差を遡らせるのに時間がかかるから、収束が
遅くなって当然かと思います。
あと、初期値のランダム値の幅も、適切に設定しないとなかなか
収束しなくなりますし、それでも初期値の運が悪いとまったく収束
しないなんて事もあり、ちょこっと不安定なところがあります。
XavierとかHeとか初期値の設定項目はありませんか?
本で読んだ知識なので、現実にどれくらい影響するのか良くわかりませんが(^^;
363: 310 2018/05/13(日)19:53 ID:i+O998yE(1) AAS
Windows Updateかな?
俺は通知もらうだけにして、タイミング見て自分で再起動かけてる。
まあ、24時間経つとカウントダウンが始まるので、早目に再起動する事になるけど。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.037s