【オセロ,将棋】ボードゲーム Part3【囲碁,War】 (636レス)
上下前次1-新
164: 535 2020/03/07(土)21:53 ID:NIcvsU6/(2/3) AAS
あーもう、計算時間かかりすぎ!
あと3〜4日は計算回さないとデータが集まらない。
こんなときスレッドリッパー3990xがあれば…
165: 535 2020/03/07(土)22:30 ID:NIcvsU6/(3/3) AAS
ぶっちゃけ1週間かかる計算が1日で終わるとしたら3990x買うのもありなんじゃないか…???
金がないけど。
166: 310 2020/03/07(土)22:53 ID:6tZRBA6n(1) AAS
まあまあ。
自分は棋譜作成開始して、既に数年経ってる気がする(汗
途中データ飛んだりしているから、実際はもっと長い。
だんだんコツがわかって収集速度は加速的に高速化してきているけど、
今度はメモリー溢れが恐怖。
167: 535 2020/03/10(火)21:38 ID:IkE5Ol6x(1) AAS
データもぼちぼち溜まったしDNN学習に移ります。
168: 310 2020/03/11(水)19:25 ID:N0CjcdIm(1) AAS
Eigen UnsupportedのTensorクラスを見つけて、またぞろDCNNに興味が沸いて来ま
した。で、思い出しがてらウェブを眺めていました。前回断念したのは畳み込み層の
計算を行列で行うためのim2colのロジックを高速に行う方法が見つからなかったから
だと思い出しました(汗
しかし、気が付いてしまいました。所詮8×8のマスの定型変換で、汎用性いらないので
64ビットのローテーションとマスク値とのandというビット演算で、前処理ができてしまい
ます。そのあとで行列に変換すれば良いだけの事でした。つまりim2col関数はいらん。
もう少しDCNNの最新動向をフォローしてから、同じ棋譜を学習させて試してみたいと
思います。
169: 535 2020/03/11(水)20:59 ID:kvcp7+Sq(1/5) AAS
DNN学習、損失もいい感じで減ってきました。
素のモンテカルロとの対戦に移ります。
170: 535 2020/03/11(水)21:02 ID:kvcp7+Sq(2/5) AAS
実を言えば私は畳み込みはやってないんですな。
全結合でやってます。
171: 535 2020/03/11(水)21:13 ID:kvcp7+Sq(3/5) AAS
お、
黒番 7勝2敗
白番 9勝0敗
これは期待が高まる!!!
172: 535 2020/03/11(水)22:57 ID:kvcp7+Sq(4/5) AAS
黒番 22勝3敗
白番 20勝5敗
いいね〜いいね〜
173: 535 2020/03/11(水)23:19 ID:kvcp7+Sq(5/5) AAS
そろそろソースコードのバージョン管理とかやったほうがいいのかなぁ
GitHubとか
174: 310 2020/03/12(木)00:31 ID:CNvjXxHZ(1/2) AAS
GitHubとかよーわからんのだけど、コメント適当だったり、変数や関数名の英語が
変だったりするソース公開する度胸ないのを言い訳に、調べようとしていない(汗
175: 2020/03/12(木)00:34 ID:TwK5c7NK(1) AAS
プライベートプロジェクトにすればいい。昔はパブリックだけプロジェクト数無制限だったけど今はプライベートも無制限。
176: 310 2020/03/12(木)00:39 ID:CNvjXxHZ(2/2) AAS
情報ありがとうございます。
ちと調べてみます。
前みたいにソースもデータも丸ごと飛んだら困るので。
177: 2020/03/12(木)10:02 ID:c8m7GwVr(1) AAS
GitHubの前にGitを使おう
使えるようになってからでいいよ、GitHubは
178: 535 2020/03/12(木)19:58 ID:so1xRnaL(1) AAS
ありゃ、
黒番111勝 29敗
白番105勝 33敗
おもったほどじゃなかったorz
179: 535 2020/03/13(金)22:42 ID:vmr0Tb8m(1/2) AAS
業を煮やしてヒューリスティックを実装した。
さてどうなるか。
180: 535 2020/03/13(金)23:28 ID:vmr0Tb8m(2/2) AAS
ちなみにヒューリスティックの内容は石がぶつかってないときは相手の石からも自分の石からも一間以上離して打つというもの。
181: 535 2020/03/14(土)18:49 ID:z7EfFQTc(1/2) AAS
くそーうまく行かねー
182: 535 2020/03/14(土)23:30 ID:z7EfFQTc(2/2) AAS
あーなんか気が抜けちゃったな
次のアイディアもないし
183: 310 2020/03/16(月)00:36 ID:FpZgJFeI(1) AAS
しばらくは棋譜の遡りを優先しようと思っていたのですが、やっぱり暇ができると
どうしても何かやりたくなってしまい、結局序盤中盤の貪欲法絡みのブラッシュアップ
をしてしまい、またまた遡り対象の棋譜を増殖させています(汗。
DLやろうか、将棋AIの勉強しようかと思い立ち、将棋AIの本などを買い込んでつらつら
眺めていたら、実現確率探索なるものを見つけてしまいました。遷移確率は評価値の
Softmaxで作れる気がしています。現在、前方の打ち切りはProbCutでやっていますが、
途中の1つの盤面の評価値が酷い状態だと、その時点で問答無用でカット対象となって
しまう懸念があります。その点、実現確率探索の方が多少ロバストなのかなぁと。逆に、
手が広い局面では探索深さが浅くなってしまう悪影響も想定できます。
とはいえ、中盤探索のロジック自体は多少の改良で済むのですが、置換表使って中盤
探索の結果を終盤探索のオーダリングに使うところは結構修正が必要な気がします。
最悪反復深化をまるっとあきらめなきゃならないかも知れません。あと、なぜか評価値
に+1〜2程度の手番加算がついたみたいになっている事から、探索深さを揃えられ
ないと、そっちからも悪影響が出る可能性があります。
かなり大幅な変更と、テストが必要なので、ちょっと躊躇しています。
プロジェクト全体コピーして別プロジェクト建てるレベルです。むむむ。
184: 535 2020/03/17(火)21:33 ID:7xvLqO5q(1/3) AAS
DNN評価値の上位7手を初手から全展開するというのをやろうとしたのですが、意外とDNNの計算が重たいですね。
すぐにメモリ溢れるだろうとみていたのですが、牛歩のような計算の進み具合で、溢れるまでかなり時間かかりそうです。
185: 535 2020/03/17(火)22:41 ID:7xvLqO5q(2/3) AAS
60万局面展開するのに33分かかる。
遅い。
186: 535 2020/03/17(火)22:44 ID:7xvLqO5q(3/3) AAS
DNN使わないと100万局面展開するのに4秒www
うーむ
187: 310 2020/03/18(水)00:47 ID:Wk4mfxEa(1/3) AAS
結局、実現確率探索に取り掛かってしまいました(汗
新規ソリューション作ってコピペ始めたところで、いずれ評価関数を整数化したかった
事を思い出して、あちこち修正開始となりました。
一応、普通のDepthバージョンと同じ深さになるように調整して、速度比較してみるつもり。
188: 535 2020/03/18(水)20:17 ID:4pnoWutQ(1) AAS
DNNの評価値上位7手を全展開してポスグレに詰めるのを実行に移すべきかどうか迷ってる。
一応そのつもりで8TBのHDDもポスグレも用意したんだけど、あんまりいいアイディアに思えなくなってきたというか。
189: 310 2020/03/18(水)23:45 ID:Wk4mfxEa(2/3) AAS
実現確率探索の中盤探索、プロトタイプのαβ版を作って癖を見ています。
実現確率は、評価値のSoftmaxで各要素を足して1.0になるように正規化するより、
最大値が1.0になるようにした方が使いやすいです。というのも、最大値をひたすら
追った枝の終了条件が綺麗に決まって最大深さを指定できるようになるからです。
1.0そのままだと終わらないので、例えば0.5にしておくと、深さnにしたい時は1÷2^n
が閾値になります。0.1の時は1÷10^nです。まあ、なんでもよいという事です。
後は各要素の差のつき具合を決める定数を調整すると、評価値が悪い手について、
どこまで探索の深さを確保するのかが決まります。ここが職人的作業なのがネック。
絞ると爆速。∞だと、ただの全幅探索になります。
速度は結構出てるのですが、調整ミスると全くダメみたいな様子が見え隠れしていて、
本当に常に使えるのか、まだ心配です。おそらくProbCutでも同じような問題がおきて
いるんじゃないかと思いますが。
次は置換表ですが、合流が発生した時の実現確率がルートによって違うので、その
時の置換表の評価値を使って良いのか悩みどころです。また、上述のように最大探索
深さを調整できるので、反復進化的に閾値を下げて行く事が可能性です。そうすると、
反復深化的に使いたくなるのが人情ですが、オーダリングにどのように反映するのが
良いのか。これも悩みどころだったりします。
要するにあと1週間くらいは遊べそうです(笑)
190: 310 2020/03/18(水)23:56 ID:Wk4mfxEa(3/3) AAS
あと、裏で棋譜作成進行中ですが、評価関数の学習時に、既存データに対する
エラーが増加を始めて、過学習の傾向を示しているのですが、例えばFFOの盤面
のように教師データ中に現れない盤面に対するエラーは減少しています。
状況的には、極端な石差がついている盤面の評価値が、石差ほどの評価値になって
おらず、じわじわと汎化が進んでいる一方、±0近傍の盤面は既に多いため、過学習
気味になっているのかなぁと推測しています。
とはいえ、非常に気持ち悪いです。
というわけで、ちょっと工夫をして石差が大きい棋譜を優先的に遡りチェック対象にしたり、
新規の自己対局するときに石差が大きくなる(悪い)進行も作るようにする事で、ほんの
少しですが、石差が大きい棋譜が増えるようにしてみました。まあ気休めです。
191: 310 2020/03/19(木)23:17 ID:opMYHtHc(1) AAS
実現確率探索の中盤探索ができました。置換表と並列処理のところまでです。
反復深化→読み切り処理までです。置換表というか、オーダリング処理を結構修正。
反復深化まではそこそこ機能していますが、置換表経由で読み切り処理の高速化が
性能が出ません。置換表経由で、中盤探索の結果を用いて終盤探索のオーダリング
をするところで、置換表データの不足があったり、オーダリングの間違いが生じて、
無駄な探索をしているように思います。
とすると、これは読み切り処理を前提とすると結構致命的な問題な気がします。
もちろん、まだバグや仕様ミスの可能性もありますが。というわけで、Solver関係には
使えない可能性が出てきました。
また、評価関数で実現確率を導いているので、浅い段階での間違いに対して、探索
対象をロックしてしまいやすく、深く探索していっても間違いがなかなか改まらない
傾向が見受けられます。
まあ、仮にダメでも、新バージョンにする過程で、これまでペンディングしていた細かい
修正ができますし、既存タイプの中盤探索も作ってあるので、このまま進めてみます。
192: 535 2020/03/20(金)23:24 ID:7lhYYUd2(1) AAS
DNNの上位7手を幅優先に展開していき200万局面を上限にストップ
展開したものをminmaxで評価値を再計算。
その結果をDNNに学習させようとしています。
ポスグレの出番はいまのところないw
193: 310 2020/03/21(土)02:31 ID:XYOBIhf/(1) AAS
実現確率探索で、探索幅広げる方向の反復を試してみましたが効果はあまりなし。
単体で使用するとかなり早いのですが、置換表使った探索との相性がいまいち。
とりあえずSolverまで作って速度計測していますが、既存の反復深化より遅く、反復
深化無しよりは若干早いという感じで、単体の速度を利用して幅を思いっきり広げて
みましたが、こちらは逆に遅くなるという体たらく。
置換表周りでどこか間違いがあるのかなぁという気もしていますが、今のところ不明。
Solver周りでの活用は一旦置いといて、自己対局で使ってみる事にします。
上下前次1-新書関写板覧索設栞歴
あと 443 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.012s