【オセロ,将棋】ボードゲーム Part3【囲碁,War】 (636レス)
【オセロ,将棋】ボードゲーム Part3【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
310: 310 [sage] 2020/05/29(金) 20:25:58.86 ID:wYh6jGrP orderingの中でパス処理をしていたのでmobility関数を呼びまくっているのが遅い原因 ではないかと思い、パスの処理の仕方を変えて、パスも1手とするように変更したところ、 15〜20%の速度低下まで戻りました。他にも、つられてバグが発覚したので修正。 かなりのレアケースでしか発生しないバグですが、今まで自信満々で完全読み切りは 間違っていないと思っていましたが、なんか自信なくなった。 中盤探索も同様に修正したら、浅い探索の読み筋が変わったみたいで、少しは精度が 良くなるのかなぁと期待しています。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/310
4: 310 [sage] 2019/11/23(土) 22:24:52.69 ID:SYjlCoJ6 乙です! http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/4
13: 535 [sage] 2019/11/26(火) 21:34:32.66 ID:XeQhwPoh オープンソースの強い9路囲碁のAIをどこかから持ってきて、初手から上位候補3〜4手を展開して HDDが溢れるまでDBに登録するというのをヒマができたらちょっとやってみたい。 >>310さんに聞いてみたいですが、これ筋悪ですかね? http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/13
31: 310 [sage] 2019/12/09(月) 18:07:44.19 ID:U9gfgHkj 面白そうなゲームですね。このゲーム、千日手筋が出た時の引き分けの扱いが気になり ます。引き分けにならないのかなぁ。 4×4なら、作者さんの様に盤面の勝敗情報をBook(DB)化して、幅優先探索で虱潰し に穴埋めします。千日手検出して探索打ち切り筋決めながら。あと、Bookの遡り更新。 強いAIを作るというより、完全解析に向かっちゃいます。時間がどれくらいかかるのか は不明だけどオセロの4×4は1秒未満で完全解析しちゃうのでいけるかなと。 8×8だと、何らかの評価関数が必要でしょうね。どういう評価関数にするか妄想膨らん だけど、当面作る予定もない人が、先を予想するのもどうかと思うので、省略。 あと、偶数盤と奇数盤で結構必戦術が違ってきそうな気がしています。 つか、AI的に、ちょっと興味あるかも。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/31
54: 310 [sage] 2019/12/15(日) 21:32:35.89 ID:PDoLh5O/ お。早速やりましたか。 必勝法の類の発想ですが、盤面に2×2のフィルタをかけたとして、3^(2×2)=81通り を、縦接続・横接続・未定に分類して9×9の盤面に置きかえると、作戦を考えやすいの かなと思っていたりします。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/54
65: 310 [sage] 2020/01/01(水) 21:54:10.76 ID:b8dqHZW+ あけおめー。 昨年中に確定探索遡りのバックログを消化するつもりだったのが、 怪しい筋たくさん見つけて全部訂正棋譜を掘ってしまったので、 更にバックログ増加中。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/65
81: 310 [sage] 2020/01/31(金) 20:42:25.38 ID:Qy9oY0qS 線対称と回転対称があって、線対称は縦横斜め×2の4通りと、 180度回転対称の5通りではないかと思われます。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/81
83: 310 [sage] 2020/01/31(金) 23:26:47.00 ID:Qy9oY0qS 半分じゃまいかと http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/83
87: 310 [sage] 2020/02/01(土) 09:51:10.99 ID:rBYht6FY 回転対称の時は、180度回した場所と対称になるので、左上と右下みたいな感じです。 (0,0)⇔(8,8) (0,1)⇔(8,7) (1,0)⇔(7,8) (1,1)⇔(7,7) : (m,n)⇔(8−m,8−n) みたいになりますので、図形ではイメージしずらいかも。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/87
91: 310 [sage] 2020/02/04(火) 22:54:13.24 ID:e/vxAQDk なんか今日のabema中継で藤井君が新PC買ったみたいな話出てたよ。 解説陣の伝聞情報だからアテにならないかも知れないけど。 相変わらず棋譜作り続けているけど、まだまだ局面的にはスカスカな感じ(汗 あと1年くらい続けてもダメかも知れないorz あと結構たくさんのパブリックドローが、ドローじゃなさそうな感じになってきてます。 ドローから外れる良い手(+2の分岐)が見つかった時に、それが正しいのかどうかを チェックしています。深いところの分岐なら時間かければ完全読み切りで確定できる のですが、浅いところで外れる場合は確認しきれません。Zebraを見ながら間違い探し をしようにも、こういうのはZebraの評価値も揺れ動いていてあんまりあてにならず。 現在パブリックドローとして拾ってきた棋譜が99本ありますが、12本が確定間違い。 13本が、おそらく間違いという状態です。後者はDAGや対称形を考慮すると4パターン に集約されます。 ちなみに、F5f6E6f4G5の筋は全滅しそうです。F5d6C3d3C4f4C5b3C2の筋は、たくさん 生き残っています。逆に新発見のおそらくパブリックドロー候補もたくさんあるけど、 まだ怖くて確認してません。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/91
92: 310 [sage] 2020/02/04(火) 22:57:24.54 ID:e/vxAQDk 対称局面の話ですが、MCTSで探索範囲を絞るのであれば、All Moves As First法が 有効ではないかと思います。 オセロでは全く使えない方法なので僕は詳しくありませんが。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/92
94: 310 [sage] 2020/02/06(木) 19:25:08.06 ID:ecERWYVc すまんライフゲーム囲碁よくわからんで適当だった。 手順が大事なら無理だね。 こちらはF5f6の筋が全滅している…。 これから間違い探しですが、大変だぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/94
96: 310 [sage] 2020/02/09(日) 10:30:31.08 ID:oU+8Ghci F5f6の筋復活。 パブリックドローリスト99件に対して、6パターン12本の棋譜が確定間違い。 そのほか3パターン9本のおそらくパブリックドローじゃない疑い。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/96
102: 310 [sage] 2020/02/10(月) 21:49:59.84 ID:88R3xHqQ F5f6の筋また死亡。 死亡復活を繰り返して3回目くらいに復活安定した筋もあるので、まだまだかかるかも(汗 というか、こういう作業が面倒臭い。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/102
106: 310 [sage] 2020/02/11(火) 21:43:38.70 ID:gp4irkBy F5f6の筋復活(汗 その代わり、F5d6E6f4とF5f6E6d6(対称形)に差が出てきて、評価値がずれた。 F5f6E6d6の棋譜をすべてF5f6E6f4に変換して、Bookにはf4系とd6系の2種類登録 しているので、ここの間では差が生じないが、例えばF5f4E3〜の筋からたまたま F5d6E6d6とかに合流してくると、その棋譜については対称変換しないので、差が 生じてしまうという事になるかなと気が付いて、対称変換で差が生じている棋譜を Bookから逆生成してみたところ結構な件数が…というか、ざっくり見積もって既に 3万件超え。どうやって復旧するか悩むところ。というか、おそらくこれやったらまた F5f6の筋が死亡しそうな予感。これから対策を考えます。むむむ。 そのほか、部分的に遡って完全読み切りした時に、そこまでたどり着いていない 筋の方が良い評価値になってしまうという、Bookに生じる矛盾を解消する処理を追加。 こちらは結構綺麗にできた。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/106
107: 310 [sage] 2020/02/12(水) 00:35:06.03 ID:Gx8MvMLI 対称形の合流問題、一応のプログラムできた…と思う。 ロジック的には色々なやり方があるのだけど、処理時間とどこまでやるのかという ところが悩みどころ。今のままで動かすか、どうするか。 ちょっと悩みたいので一旦ペンディング。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/107
108: 310 [sage] 2020/02/12(水) 22:15:37.07 ID:Gx8MvMLI 一晩寝かしてプログラム破棄(汗 もともとある対称盤面の処理ロジックを生かして、F5筋しかない棋譜をC4/D3/E6に 対称変換する事で、根本的に解決しようという方向になりました。副作用はBookが 4倍に膨れるのと、F5スタート限定だった評価関数のエラーがいったん大きくなって しまうために、学習しなおさなければならない事です。 やってみたら、Bookサイズでかすぎてメモリーギリギリ。仕方がないので60手目まで 作っていたBookを40手目までに限定。あと敢えて残して(意図的に作って)あった、 24手目以降のベストではない分岐も別途保存して一回削除しました。 メモリ64G以上欲しい…。スレッドは16くらいで十分なので。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/108
112: 310 [sage] 2020/02/15(土) 00:33:20.86 ID:aU7p7RKo スピードが必要な部分はメモリーに無いといかんわけで。 今は探索でBookを参照しているので、Bookアクセスには速度が必要なわけで。 Bookは重要だけど棋譜は既に重要ではないわけで。 棋譜はSDDに移そうかなと思っていたりします。 どうせ要所要所で保存しているわけだし、都度読み込めばみたいな。 (HDDは遅すぎるので論外かと) ただ…今のロジックがメモリー前提なのと、棋譜ですら読み込みに数秒かかる 状態なので、できればメモリーに置いときたい。そもそも、大した容量じゃないし。 自分の場合、本体でBook読み込むのと、同時にZebraと突き合わせながら間違い 箇所探しで掘り進める用に、Bookを確認するプログラムも同時に動かしていて、 そちらでも同じサイズのBookを読み込まざるを得ないので、16Gのメモリーが あっても、半分くらいに抑えておかないといけないという問題があります。 頭の片隅にバイナリファイルのランダムアクセスってのがちょこっとだけありますが、 それって自分用DBを作るようなものなので、悩み中。とはいえ、最終的にもしオセロ の対戦プログラムにするのなら、今ほど探索時間気にするわけでもなし、動作環境 として要求するメモリー量が大きすぎるのもなんだかなぁと思っていたりもします。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/112
113: 310 [sage] 2020/02/15(土) 00:35:39.59 ID:aU7p7RKo そんな事より、対称形サポートして棋譜作っていたら、またF5f6系が全滅して 途方に暮れていたところで、知らぬ間に復活していたり。間違い可能性高い パブリックドロー筋が復活したと思ったら、またダメだったり。 まだ棋譜作成が足りていないという事実に直面しています。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/113
114: 310 [sage] 2020/02/18(火) 00:26:29.87 ID:xu5XdmKn 対称形サポートでBookはだいぶ良くなって来た感じですが、完全読み切りの探索時間 が遅くなった。まだ新しい教師データに対して学習不足なんだと思いますが、どこまで 復活するか。 残り30手読み切り時間がかかりすぎる。棋譜作成のプログラムの方は、ほぼ出来上 がってしまったので、動作具合を見ているだけになっている。何か探索高速化のネタは 無いものか。 PC一つ買って、そちらでオセロの棋譜作成させながら、別の何かの開発を始める時な のかも知れない。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/114
120: 310 [sage] 2020/02/20(木) 22:03:32.96 ID:KuvbYeZk たぶん感染経路不明な感染者が1000人超えたらテレビも飽きてきて めっきり話題にならなくると思うなw http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/120
127: 310 [sage] 2020/02/22(土) 21:32:51.12 ID:wHsEFeMN 間違える局面が特定できているて、間違えた手を訂正できるんなら、 訂正後から対戦再開させて、その棋譜で局面DB更新して、学習するとか。 特定できていなくても、基本強化学習は、対戦→DB更新&学習の 繰り返しで、徐々に間違いを訂正していく方法。もうちょっと工夫する ならε-Greedyなどの手法で既存の棋譜の途中で無理やり別の手に 分岐させていく。その手が悪くても、「悪い手である」という認識を学習 させる事ができる。 線形計画だとモデルが上手くできていないと学習が飽和しちゃうけど、 DNNだったらある程度うまく学習してくれるかも。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/127
131: 310 [sage] 2020/02/23(日) 00:56:57.70 ID:9FygPBnT 間違い探しを続けるうちに、何故Zebraの評価値の方がまともに見えるか問題に 突き当りました。で、評価関数を手数毎に60種類に分割している事で、学習データ が不足しているとか、スムージングしていないために、2手前の自分の番の盤面との 差分が取れないとかの問題があるのかなぁと思い立ちまして…。 また、4対称採用した事で学習時間も4倍になってしまいまして…。 思い切って、評価関数を1つにまとめてみたらどうだろうと思い立って、専用の学習 プロジェクトを作ってやってみました。通常数百回学習しないとまともな学習ができ ないのですが、20回学習したところで、意外とフィットしてしまいました。学習時間も 少し減ってる気がする。 一旦評価関数の癖を変えたほうが強化学習も進むかなと思い、とりあえず本番採用 してみました。気持ち速度も速くなった気がしています。もっとも、評価関数の学習具合 によってαβのorderingも変わって速度が変わったりするので、今後学習を積み重ね て、過学習気味になったりした時にどうなるのかは不明。 これから数日動かしてみて、良かったらこっちにしようかと思います。強いオセロAIを 作るのなら、対戦してどっちが強いとかやるのが本来なのですが、特にそういう目標も 現状あるわけでなし(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/131
132: 310 [sage] 2020/02/23(日) 01:08:08.23 ID:9FygPBnT >>127に捕捉しとくと、 自分はGreedyな手法の精度をあげるために、浅い探索(9手)と組み合わせて、 評価値が少しだけ悪い手とか、Book登録ないのに評価値が良いとか、いくつかの 基準の訂正ロジックを作って、明らかに悪い手を排除したGreedy法をとって、 既存の棋譜に対して順次分岐を生成していく事で、Bookを埋めて行っています。 分岐は13手読みで作成していますが、この分岐も間違いがそれなりにあるため、 間違いを積み上げているのではないかという懸念もあります(汗 オセロの場合、黒白両者とも最善の場合、引き分けに収束する可能性が濃厚なため 初手から最善引き分けとなるツリーについては、先頭側からこのGreedy法で分岐を 生成し、また(後ろから)確定読み切りを優先して実行する事で、引き分け手順だけ 優先的に精度を上げています。 評価関数作るのに、こういう制約をつけた方法が良いのかは不明です。現に極端に 形勢が傾いた盤面の読み切りは、学習データが不足しているために、引き分け盤面 よりずっと時間がかかるように感じています。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/132
133: 310 [sage] 2020/02/23(日) 03:01:39.99 ID:9FygPBnT げげ。>>131の奴、本番に入れて学習させたらうまく動かん…。 原因箇所は特定できたけど、そもそもBook分だけで学習していて、後半の棋譜から 教師データ作ってなかったので、件数が大幅に違う。後ろ15手分が抜けている。 が、これが入ると学習の途中で無限ループに入ってしまう。 何かのオーバフローなんだと思うけど、今は原因不明orz http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/133
134: 310 [sage] 2020/02/23(日) 10:00:35.35 ID:9FygPBnT たぶんなおった。 学習の進行具合インジケータの*印の数を作るところでオーバーフローして 延々と*を表示し続けてるだけだったw こういうところで適当にint使っているのがいかん。 と、怪しそうなところをsize_tに直したら、整合性が取れなくなってワーニングの嵐w 適当にsize_tにすればよいというものでもなかったw http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/134
155: 310 [sage] 2020/03/04(水) 22:39:44.37 ID:XCbeW9Ri 自分は、最近、学習効率アップさせようと入れていたヒューリスティックなロジックは 見つけ次第外す方向だったりします。 棋譜作成の元ネタだけは、結構たくさん手動で追加していますが、見つけ次第追加 みたいなやり方で、偏りが出そうな気がするのと、手動追加だと入力ミスも結構あって 面倒なので、どこかで後続棋譜が少ない手順を順次自動で追加していくようにしちゃ おうかなと思ったりしています。ただ、本当に見てるだけになっちゃうのがちょっと嫌。 そんな事より、棋譜作成のペースが速すぎて、逆順での読み切り(スコア確定)が 追い付かない。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/155
160: 310 [sage] 2020/03/06(金) 21:29:36.82 ID:76Zol1eh 小人閑居して不善をなす… 評価関数の学習周りをいじっていたら、学習エラーが大きく(4〜5倍)なってしまった。 オプティマイザーをAdamにしてみたのが悪かったのか(バグ?)、それとも他にいじった ところが悪かったのか。オプティマイザーを戻して、追加学習してみたけど、全然もとに 戻らない。 と言いながら、色々と溜まっていた懸案も機能追加してしまった。 結局、どうにも直らないのでウェイトを一旦クリアしてRMSpropで再学習してる最中です。 明日の朝にはまともになっているかなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/160
161: 310 [sage] 2020/03/06(金) 21:39:02.84 ID:76Zol1eh 行列パッケージEigenにユーザ拡張のサポート無し機能がいくつか追加されていて、 その中にTensorクラスがある事に気づいた。 速度は期待できないけど、もう一度DCNNやってみようかなぁ。 つか、もう一台PCがあれば、棋譜が既にあるので、テストできるんだよなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/161
162: 310 [sage] 2020/03/06(金) 22:53:37.48 ID:76Zol1eh RMSpropで一から学習しなおしで、もうすぐ20エポックだけど、順調な感じ。 前回同様20回+αも回せば結構よいところに行きそうな感じ。 おかしかった時は、もともとの場所から離れて、変な局所解にトラップされていた ような感じになっていたんだよなぁ。現状のAdamのコードにバグがあるのか調べ たいけど、もともと参考にしたサイトが見つからない。今見つかるやつはChainerの 類の疑似コードらしく、ちょっとやそっとでは解読できないレベルの記号の羅列orz http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/162
166: 310 [sage] 2020/03/07(土) 22:53:18.55 ID:6tZRBA6n まあまあ。 自分は棋譜作成開始して、既に数年経ってる気がする(汗 途中データ飛んだりしているから、実際はもっと長い。 だんだんコツがわかって収集速度は加速的に高速化してきているけど、 今度はメモリー溢れが恐怖。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/166
168: 310 [sage] 2020/03/11(水) 19:25:55.84 ID:N0CjcdIm Eigen UnsupportedのTensorクラスを見つけて、またぞろDCNNに興味が沸いて来ま した。で、思い出しがてらウェブを眺めていました。前回断念したのは畳み込み層の 計算を行列で行うためのim2colのロジックを高速に行う方法が見つからなかったから だと思い出しました(汗 しかし、気が付いてしまいました。所詮8×8のマスの定型変換で、汎用性いらないので 64ビットのローテーションとマスク値とのandというビット演算で、前処理ができてしまい ます。そのあとで行列に変換すれば良いだけの事でした。つまりim2col関数はいらん。 もう少しDCNNの最新動向をフォローしてから、同じ棋譜を学習させて試してみたいと 思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/168
174: 310 [sage] 2020/03/12(木) 00:31:25.32 ID:CNvjXxHZ GitHubとかよーわからんのだけど、コメント適当だったり、変数や関数名の英語が 変だったりするソース公開する度胸ないのを言い訳に、調べようとしていない(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/174
176: 310 [sage] 2020/03/12(木) 00:39:06.73 ID:CNvjXxHZ 情報ありがとうございます。 ちと調べてみます。 前みたいにソースもデータも丸ごと飛んだら困るので。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/176
183: 310 [sage] 2020/03/16(月) 00:36:34.84 ID:FpZgJFeI しばらくは棋譜の遡りを優先しようと思っていたのですが、やっぱり暇ができると どうしても何かやりたくなってしまい、結局序盤中盤の貪欲法絡みのブラッシュアップ をしてしまい、またまた遡り対象の棋譜を増殖させています(汗。 DLやろうか、将棋AIの勉強しようかと思い立ち、将棋AIの本などを買い込んでつらつら 眺めていたら、実現確率探索なるものを見つけてしまいました。遷移確率は評価値の Softmaxで作れる気がしています。現在、前方の打ち切りはProbCutでやっていますが、 途中の1つの盤面の評価値が酷い状態だと、その時点で問答無用でカット対象となって しまう懸念があります。その点、実現確率探索の方が多少ロバストなのかなぁと。逆に、 手が広い局面では探索深さが浅くなってしまう悪影響も想定できます。 とはいえ、中盤探索のロジック自体は多少の改良で済むのですが、置換表使って中盤 探索の結果を終盤探索のオーダリングに使うところは結構修正が必要な気がします。 最悪反復深化をまるっとあきらめなきゃならないかも知れません。あと、なぜか評価値 に+1〜2程度の手番加算がついたみたいになっている事から、探索深さを揃えられ ないと、そっちからも悪影響が出る可能性があります。 かなり大幅な変更と、テストが必要なので、ちょっと躊躇しています。 プロジェクト全体コピーして別プロジェクト建てるレベルです。むむむ。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/183
187: 310 [sage] 2020/03/18(水) 00:47:20.72 ID:Wk4mfxEa 結局、実現確率探索に取り掛かってしまいました(汗 新規ソリューション作ってコピペ始めたところで、いずれ評価関数を整数化したかった 事を思い出して、あちこち修正開始となりました。 一応、普通のDepthバージョンと同じ深さになるように調整して、速度比較してみるつもり。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/187
189: 310 [sage] 2020/03/18(水) 23:45:39.14 ID:Wk4mfxEa 実現確率探索の中盤探索、プロトタイプのαβ版を作って癖を見ています。 実現確率は、評価値のSoftmaxで各要素を足して1.0になるように正規化するより、 最大値が1.0になるようにした方が使いやすいです。というのも、最大値をひたすら 追った枝の終了条件が綺麗に決まって最大深さを指定できるようになるからです。 1.0そのままだと終わらないので、例えば0.5にしておくと、深さnにしたい時は1÷2^n が閾値になります。0.1の時は1÷10^nです。まあ、なんでもよいという事です。 後は各要素の差のつき具合を決める定数を調整すると、評価値が悪い手について、 どこまで探索の深さを確保するのかが決まります。ここが職人的作業なのがネック。 絞ると爆速。∞だと、ただの全幅探索になります。 速度は結構出てるのですが、調整ミスると全くダメみたいな様子が見え隠れしていて、 本当に常に使えるのか、まだ心配です。おそらくProbCutでも同じような問題がおきて いるんじゃないかと思いますが。 次は置換表ですが、合流が発生した時の実現確率がルートによって違うので、その 時の置換表の評価値を使って良いのか悩みどころです。また、上述のように最大探索 深さを調整できるので、反復進化的に閾値を下げて行く事が可能性です。そうすると、 反復深化的に使いたくなるのが人情ですが、オーダリングにどのように反映するのが 良いのか。これも悩みどころだったりします。 要するにあと1週間くらいは遊べそうです(笑) http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/189
190: 310 [sage] 2020/03/18(水) 23:56:29.62 ID:Wk4mfxEa あと、裏で棋譜作成進行中ですが、評価関数の学習時に、既存データに対する エラーが増加を始めて、過学習の傾向を示しているのですが、例えばFFOの盤面 のように教師データ中に現れない盤面に対するエラーは減少しています。 状況的には、極端な石差がついている盤面の評価値が、石差ほどの評価値になって おらず、じわじわと汎化が進んでいる一方、±0近傍の盤面は既に多いため、過学習 気味になっているのかなぁと推測しています。 とはいえ、非常に気持ち悪いです。 というわけで、ちょっと工夫をして石差が大きい棋譜を優先的に遡りチェック対象にしたり、 新規の自己対局するときに石差が大きくなる(悪い)進行も作るようにする事で、ほんの 少しですが、石差が大きい棋譜が増えるようにしてみました。まあ気休めです。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/190
191: 310 [sage] 2020/03/19(木) 23:17:05.43 ID:opMYHtHc 実現確率探索の中盤探索ができました。置換表と並列処理のところまでです。 反復深化→読み切り処理までです。置換表というか、オーダリング処理を結構修正。 反復深化まではそこそこ機能していますが、置換表経由で読み切り処理の高速化が 性能が出ません。置換表経由で、中盤探索の結果を用いて終盤探索のオーダリング をするところで、置換表データの不足があったり、オーダリングの間違いが生じて、 無駄な探索をしているように思います。 とすると、これは読み切り処理を前提とすると結構致命的な問題な気がします。 もちろん、まだバグや仕様ミスの可能性もありますが。というわけで、Solver関係には 使えない可能性が出てきました。 また、評価関数で実現確率を導いているので、浅い段階での間違いに対して、探索 対象をロックしてしまいやすく、深く探索していっても間違いがなかなか改まらない 傾向が見受けられます。 まあ、仮にダメでも、新バージョンにする過程で、これまでペンディングしていた細かい 修正ができますし、既存タイプの中盤探索も作ってあるので、このまま進めてみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/191
193: 310 [sage] 2020/03/21(土) 02:31:57.66 ID:XYOBIhf/ 実現確率探索で、探索幅広げる方向の反復を試してみましたが効果はあまりなし。 単体で使用するとかなり早いのですが、置換表使った探索との相性がいまいち。 とりあえずSolverまで作って速度計測していますが、既存の反復深化より遅く、反復 深化無しよりは若干早いという感じで、単体の速度を利用して幅を思いっきり広げて みましたが、こちらは逆に遅くなるという体たらく。 置換表周りでどこか間違いがあるのかなぁという気もしていますが、今のところ不明。 Solver周りでの活用は一旦置いといて、自己対局で使ってみる事にします。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/193
198: 310 [sage] 2020/03/28(土) 00:29:51.53 ID:vtZj/mQ8 実現確率探索というか、ソース全体見直し版が、だいたいできました。 まだデバッグ全部済んだわけではありませんが、後はログメッセージなんかの 細かいところくらいの修正かなと。 実現確率探索自体は、棋譜作成にフックを入れる感じでの使用にとどめていますが、 しばらく動かして、結果がよさそうなら切り替えようかなと思います。というか、対戦版 作るときには、中盤探索は実現確率探索で行くと思います。 で、実現確率探索と呼んでいますが、実際のところは違います。本来の実現確率は 「プロ棋譜など別途棋譜集から、よく出てくる手を回帰分析で確率化したもの」で、 よく出る手については深く探索しましょうという内容です。自分の奴は、確率を1手読み の評価値から生成しています。1手読みにした理由は、差分計算で速く計算できる からです。というわけで、本来は別の名前にした方が良いのですが、ネーミングセンス が無いので放置です(笑) 他にも、本来と違う形で実装してるけど、放置してある名前が結構ありますorz http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/198
200: 310 [sage] 2020/03/28(土) 22:16:21.29 ID:vtZj/mQ8 見直し版のチェックを本番やりながら進めてます。 今のところ、学習の速度が30%程度ダウンしたものの、終盤探索の速度が 30〜50%高速化している感じ。どちらも原因不明。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/200
201: 310 [sage] 2020/03/31(火) 00:30:27.16 ID:1mhY2vrp 見直し版で、遡りチェックで無駄な処理を見つけて直しました。 更に速度アップして、トータル50%強の速度アップとなりました。 まだ探索自体の速度は上がってませんが、まだ無駄があったとは。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/201
202: 310 [sage] 2020/04/01(水) 23:58:19.45 ID:SRR0rDGm 急に探索自体の速度アップを思い立ちまして、いくつか実行。 ヒープ領域に作っていたオーダリング処理をスタック領域に来るように修正。 置換表のHash関数の修正で、置換表のキーエントリーの偏りを減らす。 これらにより更に高速化して、トータルで前バージョンの倍速近くなった感じです。 残り26手探索処理が1時間に90件弱→160件くらい。 あと、もうちょっとやってみたい事があります。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/202
207: 310 [sage] 2020/04/06(月) 22:33:27.64 ID:eOx9NvDZ 更に少し高速化しました。 オーダリングのvectorをスタック領域の配列に変更する部分ですが、並列探索部分 にも適用しました。配列も&でアドレス渡せばSTLのalgorism周りが使えるの知りました(^^; スレッド間でのlockも他の処理と一緒にできるので、オーバーヘッドはありません。 あと、地味にセーブの時間がかかっていたので、回数減らしました。 残り26手1000件で10時間半が、5時間40〜50分くらいまで来ました。平均20秒強。 残り25手の読み切りができていてBookで時短しているので、まったくの新規棋譜の 読み切りはもっと遅くなります。 sort部分も何とかならないかと思いましたが、もともと32件以下(オセロはたまたま ですが次の手の上限は32)は挿入ソートになっているようです。コピペで挿入ソート を組んで、速度比較してみましたが、有意差は出ませんでした。 件数少ない時に早くかつ安定ソートな方法が他にないか調べてみようかと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/207
248: 310 [sage] 2020/04/22(水) 20:43:03.08 ID:ZptezZKq 相変わらず棋譜作成中。 プログラムはそれなりに改良しているつもりだけど、成果は全くなし。 まあ、思いついて試すのが楽しいんだけどね。 つか、逆順探索での棋譜訂正。やってるそばからあまりに間違っている筋を 見つけて、修正かける過程で、新しい棋譜どんどん増えて、バックログがどんどん 増えていく地獄になっています。まだまだ重要な分岐でも間違いというか未探索 が多すぎる。 手作業で修正箇所見つけるの面倒なので、延々やらないといけないけど、 ε-Greedy的な何か導入しようかなぁと思い始めています。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/248
250: 310 [sage] 2020/04/22(水) 22:21:38.60 ID:ZptezZKq あるところまでは、間違いは間違いと学習するための時間かも知れませんね。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/250
255: 310 [sage] 2020/04/24(金) 19:50:11.65 ID:wU9GyZ2x DCNNなら層数よりもフィルタ数の方が大事かも。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/255
257: 310 [sage] 2020/04/24(金) 22:19:55.86 ID:wU9GyZ2x >>256 256フィルタあるんなら流石に大丈夫そうだね。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/257
284: 310 [sage] 2020/05/09(土) 00:56:41.26 ID:tOwbW1Pp 棋譜作成触りすぎるとなかなかはかどらなくなるので、しばし回しっぱなし。 そろそろBookが巨大化しすぎているので、メモリーからSDDに移せないか検討中。 concurrent_unordered_mapを自作した経緯があるので、同じような感じでランダム アクセスなDB化をしてます。確定分は探索で使うのでメモリーにおいて、速度を 必要としないアクセスをDBにしようかなと。 巨大Bookの作成処理の類を並列処理にしているので、何とか並列にできないかと 色々やっていますが、色々と罠がある。複数プロセスからの並列更新はあきらめた けど、単一プロセスからの並列更新でロック範囲がまだいまいち。 専門書買ってコード見て勉強した方が早いんだろうけど、まあ、しばらく楽しみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/284
287: 310 [sage] 2020/05/12(火) 23:05:51.81 ID:AcB4a3UT うぬぬ。DB化は並列諦めてみたけど、やはり更新が遅すぎる。 もうちょっと工夫してみるけど。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/287
296: 310 [sage] 2020/05/18(月) 21:57:15.59 ID:lyHQ6R5E Hash関数変更 DBのハッシュキーの効率が悪かったので、ちょっと考えてみた。 今まではshuffle_epi8でバイト単位シャッフルしていたのを、BMIのpextでビット単位の シャッフルと、rotateしたものを、xorでまとめていく方法。以前よりは、ちょっと良くなった 気がする。 何をもってよくなったかの指標が欲しくなり、ネットを探索したけど、数値指標みたいなの は見つからない。確率論の誕生日問題の反対みたいな状況なのでしばらく考えてみる。 要するに、1万人くらいの生徒がいる学校で、誰一人誕生日ではない日が何%くらい存在 するのかという類の問題です。 また、そう考えてみると、現状では直観よりかなり未使用キーが多い気がしています。 xorを繰り返してビットのオンオフをすると、いずれ立っているビット数が32個を平均と した正規分布(二項分布)になって、一様分布にならないのではないかという疑念が。 正規分布だと、中央に近いところは重複しやすく、立っているビット数が0とか64とか の出現確率が下がる事になります。xor繰り返すと正規分布に本当に近づいていくのか、 ちょっと検証してみたい。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/296
297: 310 [sage] 2020/05/18(月) 22:17:24.43 ID:lyHQ6R5E DBの件 たぶんあるだろうとネットで検索してみたら、Kyoto Cabinetなるキーバリュー型の 簡易DBライブラリがある事が判明。ほかにもLevelDBとか、何種類かあるみたい。 RDB使うまでもないけど、データ量が多いとメモリーだとリソース勿体ないみたいな。 やはりみんな考える事は一緒だなと。せっかくなので導入の方向で検討。 DBの速度問題 また、おそらく1棋譜単位でのBook更新は速度的に問題ないのですが、DAG(合流) 時に、棋譜外の合流元の方の更新がされないという問題があり、学習前に一括で 再構築しています。この一括更新が件数の関係ですごく時間がかかる事が問題です。 一応、1棋譜単位で更新した時に、DAG分もちゃんと処理するロジックを検討中です。 バグさえなければ速度問題はかなり解消できるはず。とはいえ、何回もループを回す 処理となるため、速度に自信なし。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/297
298: 310 [sage] 2020/05/18(月) 23:50:13.18 ID:lyHQ6R5E DBの件… 確定探索の時にはメモリーに確定分だけおいとくと考えていましたが、 今件数確認したらおよそ2/3は確定分として確保しなきゃならない 事に気づきました(汗 棋譜作成時はメモリーでやるしかないかも。 1棋譜更新でのDAG問題回避はやりたいかな。 Book再構築にだいたい20分くらいかかる。 DAG回避で1棋譜分更新するのが1秒として1000棋譜追加でおよそ16分。 これ以下の時間で済むならやる価値ありそう。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/298
299: 310 [sage] 2020/05/20(水) 01:15:22.70 ID:Xgj8E+2H 久々に完全読み切りでバグ発生。 ProbCutを広げながらmtd(f)している時に、どうもパス絡みで発生しているっぽい。 ProbCutによるIterative Wideningを止めたらちゃんと読み切る。 まあ、置換表絡みなんだとは思うけど、事例が少なすぎて(数か月に1回程度)、 前の記録消しちゃったので、とりあえず記録を残し、絆創膏当てて続行。 気が向いたらデバッグしてみる。可能性があるところはなんとなくわかっている つもりだけど。 Book更新時のDAG回避は、かなり悩ましい。というか頭がこんがらがる。 未使用Hashの期待値計算も頭が未だにこんがらがってます。。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/299
302: 310 [sage] 2020/05/20(水) 17:28:20.84 ID:Xgj8E+2H Hash関数の効率判断基準できました。 同じキーにデータが8つくらい入っているようなものもあり、それが適正かどうか 判断できなくてゴチャゴチャしていましたが、昨夜しれっと書いたように未使用キー の数の期待値に着目したら簡単でした。 キーサイズと、データ件数からExcelなどで簡単に計算できます。 3件程度調べてみましたが、理想的な一様ランダム値で生じる未使用キー数の 期待値との差は0.1%未満で、このHash関数も一様ランダム化するものと言って 良いレベルでした。 逆に言えば、自分の典型的な使用方法だと20〜30%のキーが未使用になる という事のようです。これはこれで…。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/302
304: 310 [sage] 2020/05/21(木) 00:46:28.65 ID:ahADKaci Hash値、1件2件…と期待値出そうと思ったら、なんとなく昔の記憶が戻ってきて、 0件の時は不要だけど、こちらではPとかCとかが必要になるような気がしてきた。 確率の勉強するかな。 ZDDちらっと見てみたけど、ちょっと目的と違うような感じがしている。 本買ってみるけど。 脱線はこれくらいにして、DAG考慮したBook更新に戻ろう。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/304
308: 310 [sage] 2020/05/29(金) 00:49:53.42 ID:wYh6jGrP DAG時のBook更新の件、めっちゃ悩み中。 普通にやったら1件更新に14秒とかかかって使い物にならない。 逆引きDBを作ろうかと思うのだけど、結構なサイズになるので、それこそメモリーに 置きたくない。形としてはunordered_multimapになるんだけど、Kyoto Cabinetが重複 キーを許すのか英文読まなきゃならないので止まってる。 そうこうするうちに完全読み切りのバグがまた発生して、事例が3件になったので、 調査開始。2か所間違いを発見。一つ目はケアレスミス。 2つ目は最善手の直後にパスが来るケース。置換表登録はパス後、オーダリングなどで 読む時はパス前の盤面になっていた。これで値が狂う理由がいまいち理解できないの だけど、修正したら正しい答えが出るようになった。パスの処理は本当に鬼門。 たぶんバグは取れたけど、50%くらい速度低下。どこかにまだバグがありそう。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/308
309: 310 [sage] 2020/05/29(金) 00:56:37.17 ID:wYh6jGrP 速度低下は50%どころではなかった…150〜200%だorz http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/309
312: 310 [sage] 2020/05/31(日) 10:02:44.30 ID:/CnVYfEH またエラーが… なんとなく記憶をたどっていくと、初段で並列処理してMap-Reduceすると、βカットの関係で 評価値は合っていても、ordering次第で間違った手を返す事を思い出しました。 で、たまたま回避策となっていた処理を>>201で外してしまったのではないかと。 並列探索だと本質的に回避できない気がするので、初段を順次処理に変更。残り空きマス 26での平均処理時間。一時は20〜25秒くらいまで来ていたのが、30秒程度に悪化orz http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/312
314: 310 [sage] 2020/06/05(金) 22:28:59.18 ID:TnykYlJh 藤井7段凄かったね。今年中に8段行っちゃうんじゃないかと思った。 エラーの原因を冷静に見直したところ、どこをどう変えたか覚えていないレベルの ちょっとした修正を加えたところからドツボって、修正するたびに更にバグを仕込んで いたような。結局、元々のプログラムに戻して、速度も復旧しました。むむむ。 こういうのがあるからから、終盤探索に手を入れたくないorz Bookの遡り修正ですが…行き詰っています。 Kyoto Cabinetはやはり単一キーしか扱えず。 メモリー上に逆引きDBを作ると、たぶんBookよりサイズが大きくなるためメモリーにおけない。 しばし悩み中。 息抜きで、棋譜作成のロジックをちょこっと修正。 同じような評価値が並んでいたり、最善手より評価値が良くなる分岐について、今までは 見つけて気になったところだけ手で追加していましたが、適度なペースで見つけて自動的 に追加する様にしました。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/314
316: 310 [sage] 2020/06/15(月) 23:12:30.86 ID:r41RfhWg DB化、未だに方法が見いだせずストップしてます。 パブリックドロー臭いのにそうじゃない筋を手動で修正して、20件ほどもとに戻った。 その間に、棋譜が100万件突破しました。 が、Book眺めていると、まだまだ間違い多い。 Zebraも結構間違えているけどね。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/316
326: 310 [sage] 2020/07/03(金) 01:33:21.30 ID:ULg6SDrD 相変わらず棋譜作成しながら評価関数学習を続けています。ようやく100万件突破。 推定パブリックドローは大体700件くらいで増えたり減ったりしています。 対称形や合流も重複させていますので、重複除くと400件くらいかなぁ。 終盤は比較的多数の分岐を試しているのですが、序中盤の分岐が不足していて、 棋譜が偏っているような気がしてきたので、棋譜作成のロジックを大幅に変更して 序中盤の分岐が多くなるように。また、評価値とBook値が大きく違う分岐を再検証 するようにしてみました。これで、抜けている筋がだいぶ拾えるようになると期待。 棋譜作成中に暇な時間が多いので、試しにZebraと対戦。Zebraはランダムに パブリックドロー筋から外れる様にできているようですが、外れたら勝てるはずが、 なかなか勝てない。Zebra26手読み、こちらは時間の都合で20手読みくらいなので 仕方が無いのですが、それにしてもBook外れた時の評価関数の精度が悪いという事に。 あと、やはり中盤探索の速度に大きな差があり、とても26手読みなどできない。 むむむ。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/326
327: 310 [sage] 2020/07/03(金) 01:35:54.46 ID:ULg6SDrD つか、藤井先生強すぎ。 1回勝負なら時々一発入るけど、番勝負で勝ち越せる人いないんじゃないかな。 竜王戦勝ち進んで、豊島竜王名人との番勝負が見てみたい。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/327
331: 310 [sage] 2020/07/11(土) 00:47:07.96 ID:UjRsM2rb 残念だったね<F7先生。相当疲れているんじゃないかな。まだ連戦続くので心配。 こちらは棋譜じゃんじゃか追加中。もう逆順探索で正確さを高めるなんて言ってられない。 いちいち遡りチェックするより、分岐を増やしてしまった方が早い気がしてきた。 で、Zebraと対戦させると、まだまだ穴だらけ。Zebraがわざとパブリックドローから外した ところからが本番の対局となるのですが、そこから10〜20手の間に2回くらい間違えて 逆転される感じ。逆にZebraがほとんど間違えていない事に驚いています。評価値は怪しい ところもあるけど、選択する手のミスが本当に少ない。Zebra24手読みに変えましたが、 こちらは17手。読む深さの差もあるのか。 デバッグ用のBookチェックプログラムを改良して、簡易対戦と棋譜訂正が外から簡単 にできるようにしました。今まではプログラム動かしていると、気が付いた訂正箇所も いちいちプログラム止めないと追加できなかったのですが、動かしっぱなしのままで 訂正済棋譜にして適宜放り込めるようになりました。ただ、Bookが凄い勢いで増大して いるので、メモリーがかなり危機的状況になってきました。BookチェッカーもBook全体を 読み込むので、ダブルで効いてくる。今16Gなのですが32Gは欲しい。 Zebraに負けた棋譜の手を遡って最善手順っぽいの探して訂正していくと、まだまだ パブリックドローっぽい手順が結構見つかる。過去に間違えてパブリックドローではない と判断している奴も結構ありそうなので、見つけられたら最終800件くらいは行くと思う。 中盤探索の速度差は、ただのProbCutとMulti-ProbCutの差かなぁ。あれ、再計算が重くて 以前は実装していたんだけど、PC壊れてソース全滅して以来手を出していないのよね。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/331
333: 310 [sage] 2020/07/17(金) 13:10:16.58 ID:wiyFtChq 王位戦第二局も含めて、ツエーーーーーーーーーー!って、今更ながらに思った。 人間相手ならabemaAI的40:60で不利な局面程度はひっくり返せるという事なんだろうなぁ。 あと、木村王位の体育座りが悲しかった。 棋譜作成は、自動作成で一気に大量に貪欲法かけたところ、既存の推定パブリックドロー筋 の4割くらいが、事前の分岐でパブリックドローから外れる事態に(汗 想定からズレた箇所は、見つけ次第ログに書き出して、そこから貪欲法でチェックするの ですが、それでもパブリックドローから外れる筋については、Zebra使って徹底チェック。 自分のAIとZebraが同意見でも、読みが深まるにつれて揺れ動くZebraの評価値を見ていた ら、なんとなくZebraが間違えていそうな着手がわかるようになってきて、その手をさらに 深堀してチェックする事で、ほぼ元の数まで戻す事ができました。たぶん、「パブリック ドローから外れるのが正解」という筋が2系統ありまして、逆に周辺を掘って行ったら別の パブリックドロー筋が見つかったりして、現在のところ残り30手推定パブリックドローが 780通り程度となりました。 増えたり減ったりはあるけど、今週だけで80件近く増えているので最終は1000件程度に なってもおかしくない気がします。 もろに、人間が判断して手作業で修正みたいなのが、悲しいところ。 Zebraが無ければこんな事できないわけで。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/333
339: 310 [sage] 2020/07/31(金) 00:20:53.97 ID:EPRjv06N 一括貪欲法を何度か繰り返す事で少し落ち着いてきたみたいで、パブリックドロー候補は 850件くらいになりました。 別途、Bookの再構築を速度アップしました。今までは文字通り再構築でしたが、直したい のはDAGから生じる矛盾の修正だったので、トップから再帰で潜って戻りながら評価値など を更新する形にして、再構築分の手間を削減しようという目論見です。が、シングルスレッド でしか動作しないため非常に遅い。最終的に、基本の対称形を一括処理するようにして、 2手目の分岐単位でスレッドを分割して、何とか20分から5分に短縮できました。 まだ、スレッド3つしか使えていないので、もうちょっと工夫して8スレッド全部使えるように しようかと思っています。目論みでは2分〜3分くらいまで行けかな。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/339
340: 310 [sage] 2020/07/31(金) 00:22:31.35 ID:EPRjv06N >>335 タイルゲームの最善手計算凄いですね。 5×5とか6×6にしたらどうなるんでしょうね。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/340
341: 310 [sage] 2020/08/10(月) 01:12:51.32 ID:ABN1ddg2 bookの再構築は1分50秒台まで短縮しました。 30手読み切りのパブリックドロー候補は900件超え。 割と淡々と増えているので、ホンマかいなと不安になってきています。 過去にパブリックドローとみなした筋が、パブリックドローを外れた時に、原因となった 着手を追いかけて、間違い箇所探していて、大抵直す事ができるのですが、この新しく 棋譜にした筋の評価値が結構へんてこになっています。Zebraも時々そういう局面が ありますが、結構遭遇します。おそらく過学習の絞り尻が、棋譜に出現していない局面 に押し込められているのだと思います。という訳で貪欲法のロジックを変更して、評価値 が怪しい局面から分岐をさせるように変更。とにかく棋譜を作りたいし、過去に間違えた 筋の訂正にもなるので、これをメインにしてみます。遡りチェックは、諦めて、棋譜の数の 暴力で正解筋を引く方向に変更。 そろそろ合流筋が増えて来たのと、FFOテストの局面が3つ棋譜から生成されたので、 手筋のカバー度は結構上がってきていると思うんだけどなぁ。 ちなみに現在118万棋譜。どこかで区切りつけたい気もしてきた。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/341
343: 310 [sage] 2020/09/04(金) 16:05:06.49 ID:h5QFISg8 棋譜数の暴力で130万棋譜突破。 Book確認用画面の方で手修正を掛けられるようにして、通常の棋譜作成プログラム を動かしながら、おかしなBook値のところから後続の棋譜作成を手作業で指示して 修正がかけられるようにしました。最初は1件単位だったのが、縦深型の貪欲法で チェック掛けられるようになり、処理時間はかかるけど効率よく修正できるようになり ました。 となると、以前からパブリックドローの可能性が否定できないと思っている筋(Zebraで +0〜-1程度の変化)を重点的に調べる事ができるようになりました。調査自体はドロー ではないと確信できるまで、Zebra参考に縦深貪欲法を適用するだけですが、結構な 筋でドローが見つかりました。続いて、既存の幅優先貪欲法と30手まで遡りチェックで ドロー筋である事を確認。幅優先貪欲法は間違いが多いので、ここで外れた筋はもう 1回縦深貪欲法でチェック。これを繰り返して、 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/343
344: 310 [sage] 2020/09/04(金) 16:15:15.87 ID:h5QFISg8 途中で送信しちゃった。 まあ、要するに、色々棋譜作成していたら、現在ドロー候補が1000件超えました。 FJTは生きてますが、LOGISTELLOは消えました。F5d6C4g5筋がそこそこ充実。 斜め取りはF5f6E6f4G5d6からE3は消えましたが、F3とD7、もしかしたらC5も候補として浮上。 まだ、間違いがあって消える筋もあり、場合によっては200件単位でボツという事もありえ ますが、最初は100件程度から始まった事を思えば、増えたものです。 今はとりあえずリストアップ優先ですが、最後の最後に、ガッツリとチェックの篩にかける つもりです。どれくらい残るかなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/344
345: 310 [sage] 2020/09/10(木) 17:54:29.45 ID:4Zp+kLKC やっちまった。操作ミスで棋譜データ飛ばした。たまたま8月20日のバックアップと、 現時点でのパブリックドローリストがあったので、現在そこから復旧中。 消えた棋譜は恐らく10万件以上orz こういうミスが起きそうなのは認識していたし、色々プログラムも整理したいので、また プロジェクト一から作り直しするかなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/345
348: 310 [sage] 2020/10/06(火) 23:13:30.11 ID:RrvANMT6 棋譜件数とパブリックドローリストはほぼ復活。 パブリックドロー件数は、1200件くらいのところで落ち着きそうな気が してますが、まだしばらく増減があると思います。 ソースも整理して、気になっていたところを直しました。 これでデータ飛ばすリスクはかなり減りました。 ただ、Bookはまだまだスカスカだし、評価値もギザギザです。 棋譜が間違っていると思ったら、評価値(自作もZebraも)が間違っていた というケースも散見され、そろそろBuroさん型の評価関数の限界が見えて きた気がしています。 今ある棋譜を生かして、もっとフィット率が良い評価関数が作れないものか。 とはいえ、NN系は計算が重すぎるし、いまいちモチベーションがわかない。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/348
352: 310 [sage] 2020/10/16(金) 00:09:49.89 ID:5RABX7jk やねうら王2019のソースを見つけてダウンロードしたけど、やっぱり他人のソースを 見るモチベーションが沸きません(汗。NNUEとかLazySMPとか興味はあるんだけど。 LazySMPは8スレッド以上だと効果が出るそうで、自分の CNNは十分な複雑さがあれば万能近似関数になりうるので、可能性はありますが、 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/352
355: 310 [sage] 2020/10/19(月) 14:10:40.58 ID:pQ38Gazt 書き込み途中で送信しちゃった直後から、BBQになってます。 とりあえず仕事場からカキコ。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/355
356: 310 [sage] 2020/10/22(木) 21:49:58.25 ID:1yysGYXi そろそろ書けるかな? CNNは色の無い万能近似関数で、汎化性能なるものが幻想ならば、という前提で。 万能近似関数が正しく学習できるためには、全局面分の教師データが必要となります。 その時、万能近似関数で学習する暇があったら、全局面分の教師データでTHE BOOK を作ってしまえば良い。これで絶対に間違えなくなる。 という事で、可能性はあるけど、それが実現できるレベルに至ったら、そもそもCNNが 必要ないという事になるのではないかと思います(汗 評価関数なるものは、そもそも全局面を列挙する事が不可能な時に、とりあえず重要そう な局面のセットで学ばせるものではないかと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/356
360: 310 [sage] 2020/10/29(木) 23:07:11.56 ID:ZYSZpPVA 藤井二冠の自作PCについて最強将棋ソフト開発者に聞いたらトンデモないことが判明した件 https://originalnews.nico/281224 コンピュータ将棋スレで拾って読んだけど、めちゃうなずいてしまった。 あと、テラショック定跡という名前でビビッて劣等感を感じていたけど100万局面とな。 今140万超の棋譜なので、局面ではその60倍になる。重複外しても1000万はあるはず。 でも、オセロの様な単純なゲームにとっても、まだ全然スカスカ。 貪欲法の効率が上がり、ついでにおかしそうな棋譜の訂正もかけるようにしたので、 以前よりは、ゴミ棋譜が減ったと思う。過去のゴミ棋譜除去にはまだ時間かかるけど。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/360
372: 310 [sage] 2020/11/11(水) 19:16:52.71 ID:PnPV3j+5 入院したみたいですね。 お寺対局って寒そうだし。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/372
383: 310 [sage] 2020/11/27(金) 22:44:47.70 ID:hZcTJqyt ご無沙汰です。 現在棋譜は160万くらいになっています。縦掘り型の貪欲法が良い調子なので、学習より 棋譜作成を優先しています。残り30手推定パブリックドローは相変わらず1100〜1300件 くらいを行ったり来たりしています。まだ、知られていないドロー筋がありそうです。 やねうら王さんのサイト見ていたら、終盤近辺のヒューリスティックスオーダリングのアイデア (偶数理論がらみ)を思いついてしまった。どうしよう(汗 羽生さん残念だったね。 正月のabemaTVトーナメントスピンオフ企画が楽しみです。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/383
390: 310 [sage] 2020/12/08(火) 20:01:53.15 ID:XtZeNl55 羽生さん残念でしたね。 自分はDL系は諦めました(汗 将棋で別ルートのアイデア考え中ですが、その前にオセロ片付けねば。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/390
392: 310 [sage] 2020/12/09(水) 00:40:30.93 ID:yA++6X4X どっちかというと、パブリックドローがどんだけあるのかに興味が移っています。 残り30手ドロー筋が1100〜1300くらいとか言っていましたが、色々やっていたら 1700超えしてしまいまして。大半は、やっぱり違いましたという事になるのだと思い ますが、まだまだ定跡が整ったと言える状態では無いという事で…。 将棋は序盤定跡だけちょっとやってみたい事があります。まだまだ妄想の域ですが。 だけど、盤面をどう表現するのか、まだ悩み中です。方針が決まったら手を付け始める かも知れません。 http://mevius.5ch.net/test/read.cgi/gamedev/1574503798/392
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.022s