コンピュータ囲碁
引き続き↓のローカル実行。 blog.codecamp.jp GitHub - AppliedDataSciencePartners/DeepReinforcementLearning: A replica of the AlphaZero methodology for deep reinforcement learning in Python コード概要 動作を見てみるとどちらかというとAlphaGoZe…
メインマシン更新しました。RTX3060入りゲーミングノート。でDNNでAlphaZeroとかを追ってみます。 環境構築 これまでの環境はCygwinやMinGWが5個以上入っていて片付かないわDocker+WSL2を動かしてみたが非力だわでストレスがたまっていたので、今回はミニマ…
CGF2012参加者の皆様お疲れさまでした。(って遅いわ!) うにゅう碁(unyugo)は初参加でまずまずの結果を残すことができました。 名前はGNU Goのパクリです。宇宙流とは関係ありません。うにゅほとも関係ありません。 ほかのソフトのコードはなるべく見ない…
だったりするわけですが自制しましょうね>自分。 ・「相手の手の近傍という特徴の最適値」はあまり変化ないみたいでした。 ・代わりに3x3が空っぽなパターンの最適値が変化するのかもしれない、それとも相手の手の近傍と相関があって同時に動かさないといけ…
・ツイッター始めました。ブログとの連携とかよくわからないので追々。 ・コードのバグとかハマりとかはツイッターでいいかな ・playout用とUCT用のパターン分離完了。 ・UCTの結果をMMしてUCT用のパターンにしたら無事ちょっと強くなりました。 ・手作りパ…
・手作りパターンの着手の確率が特徴値の掛け算になっていないところを漸次改修中。弱くならないようにしようとしてつい時間をかけてしまいます。0.4.6から現在60点くらいアップ? ・学習対応用の3x3パターン処理の準備OK。場合分けと重ね合わせに関して手作…
思いのたけをUMLにぶつける ↓ 実際のところは仮想関数回避してみる ↓ なんか遅いと思ったらディレクティブをミスって先祖がえりしていた ↓ ほぼ同等の速度が出た ↓ スーパーコウ実装、パスによる同形反復はとりあえず例外扱い ↓
2011/11 一年ぶりに再開 ↓ playoutの機械学習はしばらくお預け ↓ リハビリがてらコア部分の見直し、コアは10%くらい高速化 ↓ nested Monte-Carloみたいなこともできるようにコード整理 ↓ それはそれとしてplayoutのコード見直し ↓
MMGoPatternsを基本的に踏襲してプレイアウトを改善しようと思っていたのですがなぜか論文を理解するのに時間がかかってしまい。 ・ここでのMM(少数化-最大化)アルゴリズムは最尤推定のための反復法です。ベイズ推定を使うのかと思わせといて実際にはパラ…
手の当然度と残り時間によるplayout数制御を 入れてCGOSに追加投入。32Kpo相当かなと ちなみにマシンは さくらのVPS 980 です(^^; ところでOrego-controlさんって ここで投了とか判断が鋭すぎ。時間の使い方から見てモンテカルロな人だと思うんですけど、こ…
1か月ほどDiscounted UCBとか枝刈りとか試してみたけど 有意なのかどうかはっきりしない結果しか出ず。 もしかして効果があったっていう人は「最初に全候補手を1回ずつやる」本来のUCTをスタート地点にしてるってこと? 自分は「それは明らかに無駄でしょ」…
たいていの場合は両者は一致するわけですが、 ・残り100poのタイミングで追加したルート候補手がやたら回って勝率1位のままゴールされるのがいや ・でもその条件だとその候補手は100poこなしてるはずなので全然だめなわけではない ・その件なら単に残りpoが…
バグに翻弄されてました。結局どうやって治ったのやら… 結果少々弱くなったり 手作りの着手確率分布は生半可にいじっても弱くなったり効果が見えなかったりしたので放置中。
一気にUCTまで実装したら、時間さえかければGnuGoにも勝てるようになりました… (9路、16k playoutでGnuGo レベル10に7勝3敗) (初手15秒とか総消費時間で6分とかかかるけど) (でも何回か同じ展開が再現したり、怪しいところはある) UCTすげえ。てか原始…
うーむ、先にUCB1だけでもやっておかないと不合理で沈没しそうだ。 候補手をplayoutと共用してると、上位に多く入ってくるタイプの手が誤差で選ばれやすい。 でもつぐ手を切断する手より確率上げると、playoutの評価で「今自分がつがなくても後で自分がつぐ…
思考エンジンを着手確率分布抜きでシチョウが読めるコア部分と着手確率分布を計算してplayoutをするモンテカルロ部分に分けました。 ただしシチョウ読み機能とか今は死んでますけどね。 でアタリになったら確率を上げるのはどう切り分けるのか大いに悩みまし…
playoutの手の選択に ・3x3のパターンの部分更新+Remiのうまい方法 と ・眼には打たないとか隣に打つと眼ができるとかダメ数に依存する条件とかダメ数には依存しないけど見た目にわからない条件とか を自分なりに折り合いをつけながら突っ込んでる作業中。 …
平均要素数が少なければソート済みstd::vectorが最速 そのまま勢いでモンテカルロ法(木探索以前)まで実装しました。GTP版はコマンドラインオプション"--(数字)"で候補手毎のplayout数を指定できます。デフォルトは--5 (32playout)。 unyugo04.lzh 続きはま…
気分転換にこいつの続き。 ・バグをつぶしたり簡易ハッシュ表を実装したりして2倍弱まで高速化。 ・実装してたつもりの機能がバグで死んでいたので復活させたら2倍以上低速化/(^o^)\ナンテコッタイ どっちもつまるところ「std::setが遅い」という話。簡易じゃ…
仕事とオンゲで忙しく(ry とりあえずCrazyStoneのCG2006.pdfをこなしておきたいんですよね。ていうかUCTだと繰り上げは平均オペレータしか見当たらないのですがなにゆえ? というわけでコードの進展はありませんが妄想を書き連ねときます。
8か月ぐらい放置していたやつなのですが、とりあえず公開。 unyugo03.lzh unyugo.exeはcygwin用、これベースのGTP(Go Text Protocol)エンジンです。 cgfthink.dllはCgfGoBan用の思考エンジンです。(こっちはBCCでコンパイルしたのでcygwin環境不要です)