【オセロ,将棋】ボードゲーム Part3【囲碁,War】 (636レス)
上下前次1-新
158: 535 2020/03/05(木)21:05 ID:P4JeNRVF(3/3) AAS
とりあえず、この新しいAIで勝率データ取りなおして更に学習させるスパイラルへもっていくか。
159: 535 2020/03/06(金)20:19 ID:1GJjUnMY(1) AAS
うお、人間(俺)に勝った!
まぐれっぽいけど
160: 310 2020/03/06(金)21:29 ID:76Zol1eh(1/3) AAS
小人閑居して不善をなす…
評価関数の学習周りをいじっていたら、学習エラーが大きく(4〜5倍)なってしまった。
オプティマイザーをAdamにしてみたのが悪かったのか(バグ?)、それとも他にいじった
ところが悪かったのか。オプティマイザーを戻して、追加学習してみたけど、全然もとに
戻らない。
と言いながら、色々と溜まっていた懸案も機能追加してしまった。
結局、どうにも直らないのでウェイトを一旦クリアしてRMSpropで再学習してる最中です。
省1
161: 310 2020/03/06(金)21:39 ID:76Zol1eh(2/3) AAS
行列パッケージEigenにユーザ拡張のサポート無し機能がいくつか追加されていて、
その中にTensorクラスがある事に気づいた。
速度は期待できないけど、もう一度DCNNやってみようかなぁ。
つか、もう一台PCがあれば、棋譜が既にあるので、テストできるんだよなぁ。
162: 310 2020/03/06(金)22:53 ID:76Zol1eh(3/3) AAS
RMSpropで一から学習しなおしで、もうすぐ20エポックだけど、順調な感じ。
前回同様20回+αも回せば結構よいところに行きそうな感じ。
おかしかった時は、もともとの場所から離れて、変な局所解にトラップされていた
ような感じになっていたんだよなぁ。現状のAdamのコードにバグがあるのか調べ
たいけど、もともと参考にしたサイトが見つからない。今見つかるやつはChainerの
類の疑似コードらしく、ちょっとやそっとでは解読できないレベルの記号の羅列orz
163: 535 2020/03/07(土)01:06 ID:NIcvsU6/(1/3) AAS
モンテカルロ+ヒューリスティックAIにも勝利!!
いい感じだ。
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関数はいらん。
省2
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つの盤面の評価値が酷い状態だと、その時点で問答無用でカット対象となって
省9
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です。まあ、なんでもよいという事です。
後は各要素の差のつき具合を決める定数を調整すると、評価値が悪い手について、
省11
190: 310 2020/03/18(水)23:56 ID:Wk4mfxEa(3/3) AAS
あと、裏で棋譜作成進行中ですが、評価関数の学習時に、既存データに対する
エラーが増加を始めて、過学習の傾向を示しているのですが、例えばFFOの盤面
のように教師データ中に現れない盤面に対するエラーは減少しています。
状況的には、極端な石差がついている盤面の評価値が、石差ほどの評価値になって
おらず、じわじわと汎化が進んでいる一方、±0近傍の盤面は既に多いため、過学習
気味になっているのかなぁと推測しています。
とはいえ、非常に気持ち悪いです。
省3
191: 310 2020/03/19(木)23:17 ID:opMYHtHc(1) AAS
実現確率探索の中盤探索ができました。置換表と並列処理のところまでです。
反復深化→読み切り処理までです。置換表というか、オーダリング処理を結構修正。
反復深化まではそこそこ機能していますが、置換表経由で読み切り処理の高速化が
性能が出ません。置換表経由で、中盤探索の結果を用いて終盤探索のオーダリング
をするところで、置換表データの不足があったり、オーダリングの間違いが生じて、
無駄な探索をしているように思います。
とすると、これは読み切り処理を前提とすると結構致命的な問題な気がします。
省7
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周りでの活用は一旦置いといて、自己対局で使ってみる事にします。
194: 535 2020/03/21(土)17:30 ID:cG9Ai74P(1/3) AAS
メモリ欲しい…
256GBくらい
195: 535 2020/03/21(土)18:19 ID:cG9Ai74P(2/3) AAS
えー駄目だ負けるorz orz orz
なんで駄目なの???
196: 535 2020/03/21(土)18:23 ID:cG9Ai74P(3/3) AAS
今回のはかなり期待してたのにorz orz orz
197: 535 2020/03/22(日)12:02 ID:upkGajEt(1) AAS
棋譜見ると素のモンテカルロの動きが思っているよりずっといい。
なんでだろう?
198: 310 2020/03/28(土)00:29 ID:vtZj/mQ8(1/2) AAS
実現確率探索というか、ソース全体見直し版が、だいたいできました。
まだデバッグ全部済んだわけではありませんが、後はログメッセージなんかの
細かいところくらいの修正かなと。
実現確率探索自体は、棋譜作成にフックを入れる感じでの使用にとどめていますが、
しばらく動かして、結果がよさそうなら切り替えようかなと思います。というか、対戦版
作るときには、中盤探索は実現確率探索で行くと思います。
で、実現確率探索と呼んでいますが、実際のところは違います。本来の実現確率は
省6
199: 535 2020/03/28(土)21:52 ID:XqE/6uS7(1) AAS
囲碁AIでKatagoという凄く強いAIがあるのですがライフゲーム囲碁に流用できないかと思い始めた。
200: 310 2020/03/28(土)22:16 ID:vtZj/mQ8(2/2) AAS
見直し版のチェックを本番やりながら進めてます。
今のところ、学習の速度が30%程度ダウンしたものの、終盤探索の速度が
30〜50%高速化している感じ。どちらも原因不明。
201(1): 310 2020/03/31(火)00:30 ID:1mhY2vrp(1) AAS
見直し版で、遡りチェックで無駄な処理を見つけて直しました。
更に速度アップして、トータル50%強の速度アップとなりました。
まだ探索自体の速度は上がってませんが、まだ無駄があったとは。
202: 310 2020/04/01(水)23:58 ID:SRR0rDGm(1) AAS
急に探索自体の速度アップを思い立ちまして、いくつか実行。
ヒープ領域に作っていたオーダリング処理をスタック領域に来るように修正。
置換表のHash関数の修正で、置換表のキーエントリーの偏りを減らす。
これらにより更に高速化して、トータルで前バージョンの倍速近くなった感じです。
残り26手探索処理が1時間に90件弱→160件くらい。
あと、もうちょっとやってみたい事があります。
203: 2020/04/02(木)03:15 ID:iWlfdZP3(1) AAS
katago聞いたことない
alpha zeroは使わないの?
204: 535 2020/04/02(木)19:14 ID:9cAiWeM1(1/3) AAS
deep mindのオリジナルのalpha zeroは公開されてないはず。
github行くとクローンがいくつかあるけど。
katagoはKGSってネット碁会所で最高段位9dで打ってる。
205: 535 2020/04/02(木)20:00 ID:9cAiWeM1(2/3) AAS
でも当たり前だけどkatagoも相当高度なプログラムなので流用するのはかなり難しそう。
206: 535 2020/04/02(木)21:24 ID:9cAiWeM1(3/3) AAS
あかん、やっぱkatago相当難しい。
githubから簡単そうな奴探してお茶を濁すか…
207: 310 2020/04/06(月)22:33 ID:eOx9NvDZ(1) AAS
更に少し高速化しました。
オーダリングのvectorをスタック領域の配列に変更する部分ですが、並列探索部分
にも適用しました。配列も&でアドレス渡せばSTLのalgorism周りが使えるの知りました(^^;
スレッド間でのlockも他の処理と一緒にできるので、オーバーヘッドはありません。
あと、地味にセーブの時間がかかっていたので、回数減らしました。
残り26手1000件で10時間半が、5時間40〜50分くらいまで来ました。平均20秒強。
残り25手の読み切りができていてBookで時短しているので、まったくの新規棋譜の
省5
208(3): 535 2020/04/10(金)20:40 ID:KcO1uf/C(1) AAS
今これ見てます。
外部リンク:github.com
libraryをビルド通るところまで行ったんだけどpythonでそのライブラリ読み込むと以下のようなエラーになる。
K:\alpha-zero-gomoku-master\test>python library_test.py
Traceback (most recent call last):
File "library_test.py", line 6, in <module>
from library import Gomoku, MCTS
省3
209: 2020/04/12(日)04:59 ID:DFViLwjz(1) AAS
その環境の内容見てないから詳しくはわからないけど…原因は大体これ
1. 読み込もうとしているdllが適切なパスに存在してるか
2. 読み込むdllは64bitか32bitか(ビルド構成と一致していないとダメ
210: 535 2020/04/12(日)10:52 ID:lk7abFDy(1) AAS
32bitか64bitかは64bitしか選べないみたいです。
適切なパスに存在しているかというのはどうやってしらべればよいでしょうか。
library.pyと_library.pydをカレントディレクトリに置いたりもしてみたのですが駄目でした。
ちなみにこれはswigというのを使っていてC++をpythonから読めるようにしているようです。
library.pyと_library.pydが生成されてlibrary.pyから_library.pydをインポートするときにこけています。
211: 2020/04/13(月)02:33 ID:q8ASrlIp(1) AAS
github見てみましたが、中国人が下で同じような質問してますね
buildディレクトリにコンパイルされたファイルを配置しないと駄目なようです
Pythonとかライブラリのバージョンも書いてあるので合わせたほうがいいかもですね
外部リンク:github.com
212: 535 2020/04/13(月)20:06 ID:E8a4txq0(1/2) AAS
ありがとうございます。
今python が3.6だったので3.7にしてみようとしたらpytorchがpipで入らず苦戦しています。
213: 535 2020/04/13(月)20:47 ID:E8a4txq0(2/2) AAS
結局python 3.8.2を入れたんですが駄目っぽいorz
やっぱ無理にでも3.7にすべきか…
214: 535 2020/04/14(火)20:06 ID:ezpleFZl(1/2) AAS
python 3.7.6を試してみましたが駄目。
pytorchももう1.1手に入らないっぽい。
手詰まりです。
215: 535 2020/04/14(火)23:01 ID:ezpleFZl(2/2) AAS
>>208 動いたらめっちゃよさそうなんだけど悔しいな〜
216: 2020/04/15(水)20:25 ID:4FzrEabb(1) AAS
Ruby なら、require/load で相対パスで指定されたときに、ファイルを検索する時の場所は、$LOAD_PATH だけど、
Python にはそういうパスが無いのか?
これで、site_ruby, vendor_ruby などが、ずらずらと表示される
ruby -e 'puts $LOAD_PATH'
Python は、よく知らないけど、import _library
で、拡張子 .pyd まで探してくれるのか?
_library.pyd
217: 535 2020/04/15(水)21:11 ID:rifVao0V(1/9) AAS
レスありがとうございます。
ファイルを検索する場所はsys.pathというのがあるみたいです。
表示させたら以下のようになりました。
['K:\\temp\\alpha-zero-gomoku-master_orig\\test',
'C:\\Users\\nagat\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip',
'C:\\Users\\nagat\\AppData\\Local\\Programs\\Python\\Python37\\DLLs',
'C:\\Users\\nagat\\AppData\\Local\\Programs\\Python\\Python37\\lib',
省4
218: 535 2020/04/15(水)21:32 ID:rifVao0V(2/9) AAS
ん、neural_network_test.pyは動いた。
どういうことだ???
219: 535 2020/04/15(水)21:34 ID:rifVao0V(3/9) AAS
import libraryの前にimport torchをつければいいのか???もしかして
220: 535 2020/04/15(水)21:42 ID:rifVao0V(4/9) AAS
うおお、動いたっぽい!!!!
ありがとうございます!!
221: 535 2020/04/15(水)21:59 ID:rifVao0V(5/9) AAS
leaner_test.py train 動きました!!
GUIが起動してポチポチ自己対局を始めました!!
これは期待が高まる!!
222: 535 2020/04/15(水)22:01 ID:rifVao0V(6/9) AAS
とりあえず、五目並べでちゃんと強くなるかどうか2〜3日学習させてみます。
223: 535 2020/04/15(水)22:19 ID:rifVao0V(7/9) AAS
ん、GPUの使用率が1%くらいから上がりませんね。
でも0%じゃないからちゃんと使ってんのかな…
224: 535 2020/04/15(水)22:36 ID:rifVao0V(8/9) AAS
お、早くも石が中央に寄り始めた??
そうだとしたら凄い。
225: 535 2020/04/15(水)22:48 ID:rifVao0V(9/9) AAS
しかし、4すら止めないw。
ホントに0からの学習なんだなぁ
226: 535 2020/04/16(木)19:32 ID:y39ZfUyK(1/8) AAS
お、凄い!たった一日で五目並べっぽくなってる!
たまにそっぽ打つのは乱数でランダムな手を打つようになってるんでしょうね。
227: 2020/04/16(木)19:37 ID:y39ZfUyK(2/8) AAS
うお、早くも人間(俺)に勝った!!
あり得ね〜〜〜!!!
228: 2020/04/16(木)19:38 ID:y39ZfUyK(3/8) AAS
ヤバイ、これはヤバイww
229: 535 2020/04/16(木)19:40 ID:y39ZfUyK(4/8) AAS
15路という非常に広い盤面でここまで早く強くなるとは…
230: 535 2020/04/16(木)19:44 ID:y39ZfUyK(5/8) AAS
もう五目並べの学習は十分ですね。
となると次のステップはライフゲーム囲碁か囲連星を移植ですね。
231: 535 2020/04/16(木)19:54 ID:y39ZfUyK(6/8) AAS
ライフゲーム囲碁はパスを実装しないといけないからまずは9路囲連星かなぁ
232: 535 2020/04/16(木)20:15 ID:y39ZfUyK(7/8) AAS
すぐにでもコード書き始めたくなるけどぐっと我慢して>>208のソースを少し読み解かねば。。。
233: 535 2020/04/16(木)21:57 ID:y39ZfUyK(8/8) AAS
あれ、モチベすげー湧いてくると思ったのに意外とそうでもないな…
仕事で疲れてんのかな…
234: 535 2020/04/18(土)17:12 ID:FJQxs35t(1) AAS
実はライフゲーム囲碁を移植しようとしてたのですがパスの実装がやはり意外と難しそうです
9路囲連星に転進しようかな
235: 535 2020/04/18(土)20:23 ID:dW+TeRwf(1) AAS
は〜目の前に理想のalpha zeroがあるというのになぜかモチベが湧いてこない、踏ん張りがきかない。
さぼりモードに入りつつあるorz。
ていうか思ってるより移植が工数かかる作業なのかもしれない。
236: 535 2020/04/19(日)14:29 ID:w4GEcYV8(1/6) AAS
9路囲連星はコードを消失していたので19路囲連星を移植してます。
237: 535 2020/04/19(日)17:44 ID:w4GEcYV8(2/6) AAS
多分移植完了した。バグが無ければ。
学習フェーズへ移項します。
238: 535 2020/04/19(日)17:58 ID:w4GEcYV8(3/6) AAS
うーん。これGUIの盤のひろさとプログラム上での盤の広さが違いますね。
まあ論理的には整合性は取れているので見た目だけの問題なので放置。
上下前次1-新書関写板覧索設栞歴
あと 398 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.030s