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

290: 535 2020/05/15(金)19:20 ID:55GCUZ0E(2/3) AAS
自己対局みてると結構強そうに見えるだけどな。
公式AIと対局すると勝てねんだよな。
291: 535 2020/05/15(金)19:53 ID:55GCUZ0E(3/3) AAS
ギブアップです。
何か次のこと考えよう。
292
(1): [age] 2020/05/16(土)11:39 ID:n0PK2vlL(1) AAS
AlphaGoは計算資源をコスト度外視で使って1000年分対局してるから……
293: 2020/05/16(土)15:42 ID:G8tru4l4(1) AAS
IT掲示板群 外部リンク[aspx]:x0000.net

学術の巨大掲示板群 - アルファ・ラボ 外部リンク:x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
外部リンク[aspx]:x0000.net
UIライブラリ (C#, 2D) を作ったよ
外部リンク[aspx]:x0000.net
連続と離散を統一した!
外部リンク[aspx]:x0000.net
4Dエンジン
外部リンク[aspx]:x0000.net
matrixのライブラリ
外部リンク[aspx]:x0000.net
ある強力なFor関数
外部リンク[aspx]:x0000.net
SQLライブラリ
外部リンク[aspx]:x0000.net
294: 535 2020/05/16(土)18:10 ID:BsSPHqoG(1) AA×
>>292>>-

295: 535 2020/05/18(月)18:55 ID:ErVFXYqV(1) AAS
次のアイディアもなくすっかりさぼりモード
296: 310 2020/05/18(月)21:57 ID:lyHQ6R5E(1/3) AAS
Hash関数変更
DBのハッシュキーの効率が悪かったので、ちょっと考えてみた。
今まではshuffle_epi8でバイト単位シャッフルしていたのを、BMIのpextでビット単位の
シャッフルと、rotateしたものを、xorでまとめていく方法。以前よりは、ちょっと良くなった
気がする。

何をもってよくなったかの指標が欲しくなり、ネットを探索したけど、数値指標みたいなの
は見つからない。確率論の誕生日問題の反対みたいな状況なのでしばらく考えてみる。
要するに、1万人くらいの生徒がいる学校で、誰一人誕生日ではない日が何%くらい存在
するのかという類の問題です。

また、そう考えてみると、現状では直観よりかなり未使用キーが多い気がしています。
xorを繰り返してビットのオンオフをすると、いずれ立っているビット数が32個を平均と
した正規分布(二項分布)になって、一様分布にならないのではないかという疑念が。
正規分布だと、中央に近いところは重複しやすく、立っているビット数が0とか64とか
の出現確率が下がる事になります。xor繰り返すと正規分布に本当に近づいていくのか、
ちょっと検証してみたい。
297: 310 2020/05/18(月)22:17 ID:lyHQ6R5E(2/3) AAS
DBの件
たぶんあるだろうとネットで検索してみたら、Kyoto Cabinetなるキーバリュー型の
簡易DBライブラリがある事が判明。ほかにもLevelDBとか、何種類かあるみたい。
RDB使うまでもないけど、データ量が多いとメモリーだとリソース勿体ないみたいな。
やはりみんな考える事は一緒だなと。せっかくなので導入の方向で検討。

DBの速度問題
また、おそらく1棋譜単位でのBook更新は速度的に問題ないのですが、DAG(合流)
時に、棋譜外の合流元の方の更新がされないという問題があり、学習前に一括で
再構築しています。この一括更新が件数の関係ですごく時間がかかる事が問題です。

一応、1棋譜単位で更新した時に、DAG分もちゃんと処理するロジックを検討中です。
バグさえなければ速度問題はかなり解消できるはず。とはいえ、何回もループを回す
処理となるため、速度に自信なし。
298: 310 2020/05/18(月)23:50 ID:lyHQ6R5E(3/3) AAS
DBの件…
確定探索の時にはメモリーに確定分だけおいとくと考えていましたが、
今件数確認したらおよそ2/3は確定分として確保しなきゃならない
事に気づきました(汗

棋譜作成時はメモリーでやるしかないかも。

1棋譜更新でのDAG問題回避はやりたいかな。
Book再構築にだいたい20分くらいかかる。
DAG回避で1棋譜分更新するのが1秒として1000棋譜追加でおよそ16分。
これ以下の時間で済むならやる価値ありそう。
299: 310 2020/05/20(水)01:15 ID:Xgj8E+2H(1/2) AAS
久々に完全読み切りでバグ発生。

ProbCutを広げながらmtd(f)している時に、どうもパス絡みで発生しているっぽい。
ProbCutによるIterative Wideningを止めたらちゃんと読み切る。

まあ、置換表絡みなんだとは思うけど、事例が少なすぎて(数か月に1回程度)、
前の記録消しちゃったので、とりあえず記録を残し、絆創膏当てて続行。

気が向いたらデバッグしてみる。可能性があるところはなんとなくわかっている
つもりだけど。

Book更新時のDAG回避は、かなり悩ましい。というか頭がこんがらがる。
未使用Hashの期待値計算も頭が未だにこんがらがってます。。
300
(1): 2020/05/20(水)03:14 ID:kE3dJxL+(1) AAS
お姉さん問題で有名な、北大の湊教授のZDD を使えないの?

本も出てる
301: 535 2020/05/20(水)16:25 ID:BUng/tdF(1/2) AAS
katagoを使った9路囲碁の巨大Book作成、やってみようかなぁ。
難しそうだけど。
302: 310 2020/05/20(水)17:28 ID:Xgj8E+2H(2/2) AAS
Hash関数の効率判断基準できました。

同じキーにデータが8つくらい入っているようなものもあり、それが適正かどうか
判断できなくてゴチャゴチャしていましたが、昨夜しれっと書いたように未使用キー
の数の期待値に着目したら簡単でした。

キーサイズと、データ件数からExcelなどで簡単に計算できます。

3件程度調べてみましたが、理想的な一様ランダム値で生じる未使用キー数の
期待値との差は0.1%未満で、このHash関数も一様ランダム化するものと言って
良いレベルでした。

逆に言えば、自分の典型的な使用方法だと20〜30%のキーが未使用になる
という事のようです。これはこれで…。
303: 535 2020/05/20(水)18:41 ID:BUng/tdF(2/2) AAS
やっぱライフゲーム囲碁やりてぇなぁ。
ウーム悩ましい。
304: 310 2020/05/21(木)00:46 ID:ahADKaci(1) AAS
Hash値、1件2件…と期待値出そうと思ったら、なんとなく昔の記憶が戻ってきて、
0件の時は不要だけど、こちらではPとかCとかが必要になるような気がしてきた。
確率の勉強するかな。

ZDDちらっと見てみたけど、ちょっと目的と違うような感じがしている。
本買ってみるけど。

脱線はこれくらいにして、DAG考慮したBook更新に戻ろう。
305: 535 2020/05/22(金)19:57 ID:khQY98T/(1) AAS
自己流でライフゲーム囲碁に取り組むべきか。
なぜalpha zeroがうまく行かなかったのかを調査すべきか。

まあしばらくさぼりモードだけど。
306
(1): [age] 2020/05/26(火)02:09 ID:dgMv5Qb/(1) AAS
・19路盤での定石の発見とかを可視化して、強さを判断する
・まず5〜9路盤で最強目指す

俺なら後者を選択する
バグが出なくなったら前者に取り組む
307: 535 2020/05/26(火)18:51 ID:QRHJU3eS(1) AAS
>>306
実際に自分で手を動かす人なら歓迎するぞ?
口先だけならいらない。
308: 310 2020/05/29(金)00:49 ID:wYh6jGrP(1/3) AAS
DAG時のBook更新の件、めっちゃ悩み中。
普通にやったら1件更新に14秒とかかかって使い物にならない。
逆引きDBを作ろうかと思うのだけど、結構なサイズになるので、それこそメモリーに
置きたくない。形としてはunordered_multimapになるんだけど、Kyoto Cabinetが重複
キーを許すのか英文読まなきゃならないので止まってる。

そうこうするうちに完全読み切りのバグがまた発生して、事例が3件になったので、
調査開始。2か所間違いを発見。一つ目はケアレスミス。

2つ目は最善手の直後にパスが来るケース。置換表登録はパス後、オーダリングなどで
読む時はパス前の盤面になっていた。これで値が狂う理由がいまいち理解できないの
だけど、修正したら正しい答えが出るようになった。パスの処理は本当に鬼門。

たぶんバグは取れたけど、50%くらい速度低下。どこかにまだバグがありそう。
309: 310 2020/05/29(金)00:56 ID:wYh6jGrP(2/3) AAS
速度低下は50%どころではなかった…150〜200%だorz
310
(126): 310 2020/05/29(金)20:25 ID:wYh6jGrP(3/3) AAS
orderingの中でパス処理をしていたのでmobility関数を呼びまくっているのが遅い原因
ではないかと思い、パスの処理の仕方を変えて、パスも1手とするように変更したところ、
15〜20%の速度低下まで戻りました。他にも、つられてバグが発覚したので修正。

かなりのレアケースでしか発生しないバグですが、今まで自信満々で完全読み切りは
間違っていないと思っていましたが、なんか自信なくなった。

中盤探索も同様に修正したら、浅い探索の読み筋が変わったみたいで、少しは精度が
良くなるのかなぁと期待しています。
311: 535 2020/05/30(土)18:11 ID:TznaFVwY(1) AAS
以前もちょろっと触れたけど囲碁ディープラーニングプログラミングという本の12章にあるactor-critic法というのがまた気になり始めた。
自分なりに解釈して実装してみようかな。
312: 310 2020/05/31(日)10:02 ID:/CnVYfEH(1) AAS
またエラーが…

なんとなく記憶をたどっていくと、初段で並列処理してMap-Reduceすると、βカットの関係で
評価値は合っていても、ordering次第で間違った手を返す事を思い出しました。
で、たまたま回避策となっていた処理を>>201で外してしまったのではないかと。

並列探索だと本質的に回避できない気がするので、初段を順次処理に変更。残り空きマス
26での平均処理時間。一時は20〜25秒くらいまで来ていたのが、30秒程度に悪化orz
313: 535 2020/06/04(木)21:00 ID:asDXFlye(1) AAS
藤井センセw
314: 310 2020/06/05(金)22:28 ID:TnykYlJh(1) AAS
藤井7段凄かったね。今年中に8段行っちゃうんじゃないかと思った。

エラーの原因を冷静に見直したところ、どこをどう変えたか覚えていないレベルの
ちょっとした修正を加えたところからドツボって、修正するたびに更にバグを仕込んで
いたような。結局、元々のプログラムに戻して、速度も復旧しました。むむむ。
こういうのがあるからから、終盤探索に手を入れたくないorz

Bookの遡り修正ですが…行き詰っています。
Kyoto Cabinetはやはり単一キーしか扱えず。
メモリー上に逆引きDBを作ると、たぶんBookよりサイズが大きくなるためメモリーにおけない。
しばし悩み中。

息抜きで、棋譜作成のロジックをちょこっと修正。
同じような評価値が並んでいたり、最善手より評価値が良くなる分岐について、今までは
見つけて気になったところだけ手で追加していましたが、適度なペースで見つけて自動的
に追加する様にしました。
315: 535 2020/06/15(月)22:53 ID:SQc2KJ2b(1) AAS
長期サボりモードに突入
なんか本で読んだけどモンテカルロ木探索の訪問回数をdnnの教師データとして使うようなやり方もあるらしい
316: 310 2020/06/15(月)23:12 ID:r41RfhWg(1) AAS
DB化、未だに方法が見いだせずストップしてます。
パブリックドロー臭いのにそうじゃない筋を手動で修正して、20件ほどもとに戻った。

その間に、棋譜が100万件突破しました。
が、Book眺めていると、まだまだ間違い多い。
Zebraも結構間違えているけどね。
317: 535 2020/06/17(水)21:35 ID:nCYZMpcd(1/2) AAS
2020/05/11 グロービス、囲碁AI「GLOBIS-AQZ」のプログラムをオープンソース化 プロジェクトの集大成としてソースコードを公開
外部リンク[html]:www.globis.co.jp

知らなかった。
ちょっと見てみようかなぁ
318: 535 2020/06/17(水)23:13 ID:nCYZMpcd(2/2) AAS
なお、公開しているソースコードは対局・解析のみの実装で、学習に関する機能は含まれていません。

駄目じゃんorz
319: 535 2020/06/18(木)19:28 ID:i+asT3Px(1) AAS
ライフゲーム囲碁でモンテカルロ木探索の訪問回数をdnnの教師データにするのやり始めました。
今教師データを収集してるところです。
1-
あと 317 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.022s