比較的地味なボードゲーム専用のスレが欲しくて立ててみました。
前スレ
【オセロ,将棋】ボードゲーム Part2【囲碁,War】
https://mevius.5ch.net/test/read.cgi/gamedev/1508056498/
【オセロ,将棋】ボードゲーム Part3【囲碁,War】
2019/11/23(土) 19:09:58.05ID:0YM91Vba
144535
2020/02/27(木) 21:11:32.40ID:7f4H7cqb 先制攻撃を仕掛ける体制が整っているかどうかの判定が今後の課題ですね。
145535
2020/03/01(日) 21:57:12.55ID:X+Ti9n7n 先制攻撃を仕掛けた時に反撃で逆に取られる確率とか学習させたら駄目かなぁ?
146535
2020/03/02(月) 06:27:35.74ID:Td8MIT1I ある局面に対し、それぞれの点が黒の地になる確率のベクタを返すようにDNNを学習したらどうだろう?
147535
2020/03/03(火) 21:11:27.98ID:PL4UDoSq 前回はスコア差を評価値に学習させましたが、今回は勝率で学習させてみます。
結局セオリー通りがいいのかもしれないので。
ホントはスコア最大化はぜひともやりたいんだけど。
結局セオリー通りがいいのかもしれないので。
ホントはスコア最大化はぜひともやりたいんだけど。
148535
2020/03/04(水) 20:23:35.42ID:Q7ItuMwb 勝率で学習させたら黒番は勝ち越してますが、白番は負け越してますね。
白番でも勝てると思いましたが。
白番でも勝てると思いましたが。
149535
2020/03/04(水) 20:44:28.42ID:Q7ItuMwb うお、バグ発見w
DNNが全く働いてなかったww
黒番で勝ち越したのはたまたまやなこれは。
DNNが全く働いてなかったww
黒番で勝ち越したのはたまたまやなこれは。
150535
2020/03/04(水) 21:10:05.82ID:Q7ItuMwb うーん、石をくっつけて打つなぁ
もっとばらけさせたほうがいいと思うんだけど。
もっとばらけさせたほうがいいと思うんだけど。
151535
2020/03/04(水) 21:14:38.18ID:Q7ItuMwb うーん、石がくっついているか離れているか標準偏差のようなものを出して学習パラメータに渡すとか
152535
2020/03/04(水) 21:17:15.27ID:Q7ItuMwb ホントはあんま手動で特徴量出そうとするのよくないアイディアなんだろうけど。
153535
2020/03/04(水) 21:43:12.15ID:Q7ItuMwb 結局モンテカルロの勝率データだけだとだめっぽくて、いろんな戦略の中からより良いものを探すようにしたいなぁ
154535
2020/03/04(水) 22:34:42.21ID:Q7ItuMwb あれ、黒番、白番ともダブルスコアで勝ち越してる??
まだ対局数少ないからあれだけど。
まだ対局数少ないからあれだけど。
155310
2020/03/04(水) 22:39:44.37ID:XCbeW9Ri 自分は、最近、学習効率アップさせようと入れていたヒューリスティックなロジックは
見つけ次第外す方向だったりします。
棋譜作成の元ネタだけは、結構たくさん手動で追加していますが、見つけ次第追加
みたいなやり方で、偏りが出そうな気がするのと、手動追加だと入力ミスも結構あって
面倒なので、どこかで後続棋譜が少ない手順を順次自動で追加していくようにしちゃ
おうかなと思ったりしています。ただ、本当に見てるだけになっちゃうのがちょっと嫌。
そんな事より、棋譜作成のペースが速すぎて、逆順での読み切り(スコア確定)が
追い付かない。
見つけ次第外す方向だったりします。
棋譜作成の元ネタだけは、結構たくさん手動で追加していますが、見つけ次第追加
みたいなやり方で、偏りが出そうな気がするのと、手動追加だと入力ミスも結構あって
面倒なので、どこかで後続棋譜が少ない手順を順次自動で追加していくようにしちゃ
おうかなと思ったりしています。ただ、本当に見てるだけになっちゃうのがちょっと嫌。
そんな事より、棋譜作成のペースが速すぎて、逆順での読み切り(スコア確定)が
追い付かない。
156535
2020/03/05(木) 20:28:15.73ID:P4JeNRVF 黒番 188勝 48敗
白番 176勝 55敗
めっちゃ勝ってる!!
白番 176勝 55敗
めっちゃ勝ってる!!
157535
2020/03/05(木) 20:45:33.61ID:P4JeNRVF 結局ポスグレ全く使ってないというw
ま、当面ポスグレは保留かなぁ
ま、当面ポスグレは保留かなぁ
158535
2020/03/05(木) 21:05:27.39ID:P4JeNRVF とりあえず、この新しいAIで勝率データ取りなおして更に学習させるスパイラルへもっていくか。
159535
2020/03/06(金) 20:19:27.94ID:1GJjUnMY うお、人間(俺)に勝った!
まぐれっぽいけど
まぐれっぽいけど
160310
2020/03/06(金) 21:29:36.82ID:76Zol1eh 小人閑居して不善をなす…
評価関数の学習周りをいじっていたら、学習エラーが大きく(4〜5倍)なってしまった。
オプティマイザーをAdamにしてみたのが悪かったのか(バグ?)、それとも他にいじった
ところが悪かったのか。オプティマイザーを戻して、追加学習してみたけど、全然もとに
戻らない。
と言いながら、色々と溜まっていた懸案も機能追加してしまった。
結局、どうにも直らないのでウェイトを一旦クリアしてRMSpropで再学習してる最中です。
明日の朝にはまともになっているかなぁ。
評価関数の学習周りをいじっていたら、学習エラーが大きく(4〜5倍)なってしまった。
オプティマイザーをAdamにしてみたのが悪かったのか(バグ?)、それとも他にいじった
ところが悪かったのか。オプティマイザーを戻して、追加学習してみたけど、全然もとに
戻らない。
と言いながら、色々と溜まっていた懸案も機能追加してしまった。
結局、どうにも直らないのでウェイトを一旦クリアしてRMSpropで再学習してる最中です。
明日の朝にはまともになっているかなぁ。
161310
2020/03/06(金) 21:39:02.84ID:76Zol1eh 行列パッケージEigenにユーザ拡張のサポート無し機能がいくつか追加されていて、
その中にTensorクラスがある事に気づいた。
速度は期待できないけど、もう一度DCNNやってみようかなぁ。
つか、もう一台PCがあれば、棋譜が既にあるので、テストできるんだよなぁ。
その中にTensorクラスがある事に気づいた。
速度は期待できないけど、もう一度DCNNやってみようかなぁ。
つか、もう一台PCがあれば、棋譜が既にあるので、テストできるんだよなぁ。
162310
2020/03/06(金) 22:53:37.48ID:76Zol1eh RMSpropで一から学習しなおしで、もうすぐ20エポックだけど、順調な感じ。
前回同様20回+αも回せば結構よいところに行きそうな感じ。
おかしかった時は、もともとの場所から離れて、変な局所解にトラップされていた
ような感じになっていたんだよなぁ。現状のAdamのコードにバグがあるのか調べ
たいけど、もともと参考にしたサイトが見つからない。今見つかるやつはChainerの
類の疑似コードらしく、ちょっとやそっとでは解読できないレベルの記号の羅列orz
前回同様20回+αも回せば結構よいところに行きそうな感じ。
おかしかった時は、もともとの場所から離れて、変な局所解にトラップされていた
ような感じになっていたんだよなぁ。現状のAdamのコードにバグがあるのか調べ
たいけど、もともと参考にしたサイトが見つからない。今見つかるやつはChainerの
類の疑似コードらしく、ちょっとやそっとでは解読できないレベルの記号の羅列orz
163535
2020/03/07(土) 01:06:05.32ID:NIcvsU6/ モンテカルロ+ヒューリスティックAIにも勝利!!
いい感じだ。
いい感じだ。
164535
2020/03/07(土) 21:53:01.55ID:NIcvsU6/ あーもう、計算時間かかりすぎ!
あと3〜4日は計算回さないとデータが集まらない。
こんなときスレッドリッパー3990xがあれば…
あと3〜4日は計算回さないとデータが集まらない。
こんなときスレッドリッパー3990xがあれば…
165535
2020/03/07(土) 22:30:53.08ID:NIcvsU6/ ぶっちゃけ1週間かかる計算が1日で終わるとしたら3990x買うのもありなんじゃないか…???
金がないけど。
金がないけど。
166310
2020/03/07(土) 22:53:18.55ID:6tZRBA6n まあまあ。
自分は棋譜作成開始して、既に数年経ってる気がする(汗
途中データ飛んだりしているから、実際はもっと長い。
だんだんコツがわかって収集速度は加速的に高速化してきているけど、
今度はメモリー溢れが恐怖。
自分は棋譜作成開始して、既に数年経ってる気がする(汗
途中データ飛んだりしているから、実際はもっと長い。
だんだんコツがわかって収集速度は加速的に高速化してきているけど、
今度はメモリー溢れが恐怖。
167535
2020/03/10(火) 21:38:55.27ID:IkE5Ol6x データもぼちぼち溜まったしDNN学習に移ります。
168310
2020/03/11(水) 19:25:55.84ID:N0CjcdIm Eigen UnsupportedのTensorクラスを見つけて、またぞろDCNNに興味が沸いて来ま
した。で、思い出しがてらウェブを眺めていました。前回断念したのは畳み込み層の
計算を行列で行うためのim2colのロジックを高速に行う方法が見つからなかったから
だと思い出しました(汗
しかし、気が付いてしまいました。所詮8×8のマスの定型変換で、汎用性いらないので
64ビットのローテーションとマスク値とのandというビット演算で、前処理ができてしまい
ます。そのあとで行列に変換すれば良いだけの事でした。つまりim2col関数はいらん。
もう少しDCNNの最新動向をフォローしてから、同じ棋譜を学習させて試してみたいと
思います。
した。で、思い出しがてらウェブを眺めていました。前回断念したのは畳み込み層の
計算を行列で行うためのim2colのロジックを高速に行う方法が見つからなかったから
だと思い出しました(汗
しかし、気が付いてしまいました。所詮8×8のマスの定型変換で、汎用性いらないので
64ビットのローテーションとマスク値とのandというビット演算で、前処理ができてしまい
ます。そのあとで行列に変換すれば良いだけの事でした。つまりim2col関数はいらん。
もう少しDCNNの最新動向をフォローしてから、同じ棋譜を学習させて試してみたいと
思います。
169535
2020/03/11(水) 20:59:47.72ID:kvcp7+Sq DNN学習、損失もいい感じで減ってきました。
素のモンテカルロとの対戦に移ります。
素のモンテカルロとの対戦に移ります。
170535
2020/03/11(水) 21:02:33.51ID:kvcp7+Sq 実を言えば私は畳み込みはやってないんですな。
全結合でやってます。
全結合でやってます。
171535
2020/03/11(水) 21:13:45.28ID:kvcp7+Sq お、
黒番 7勝2敗
白番 9勝0敗
これは期待が高まる!!!
黒番 7勝2敗
白番 9勝0敗
これは期待が高まる!!!
172535
2020/03/11(水) 22:57:19.64ID:kvcp7+Sq 黒番 22勝3敗
白番 20勝5敗
いいね〜いいね〜
白番 20勝5敗
いいね〜いいね〜
173535
2020/03/11(水) 23:19:03.17ID:kvcp7+Sq そろそろソースコードのバージョン管理とかやったほうがいいのかなぁ
GitHubとか
GitHubとか
174310
2020/03/12(木) 00:31:25.32ID:CNvjXxHZ GitHubとかよーわからんのだけど、コメント適当だったり、変数や関数名の英語が
変だったりするソース公開する度胸ないのを言い訳に、調べようとしていない(汗
変だったりするソース公開する度胸ないのを言い訳に、調べようとしていない(汗
175名前は開発中のものです。
2020/03/12(木) 00:34:39.55ID:TwK5c7NK プライベートプロジェクトにすればいい。昔はパブリックだけプロジェクト数無制限だったけど今はプライベートも無制限。
176310
2020/03/12(木) 00:39:06.73ID:CNvjXxHZ 情報ありがとうございます。
ちと調べてみます。
前みたいにソースもデータも丸ごと飛んだら困るので。
ちと調べてみます。
前みたいにソースもデータも丸ごと飛んだら困るので。
177名前は開発中のものです。
2020/03/12(木) 10:02:43.61ID:c8m7GwVr GitHubの前にGitを使おう
使えるようになってからでいいよ、GitHubは
使えるようになってからでいいよ、GitHubは
178535
2020/03/12(木) 19:58:09.43ID:so1xRnaL ありゃ、
黒番111勝 29敗
白番105勝 33敗
おもったほどじゃなかったorz
黒番111勝 29敗
白番105勝 33敗
おもったほどじゃなかったorz
179535
2020/03/13(金) 22:42:10.14ID:vmr0Tb8m 業を煮やしてヒューリスティックを実装した。
さてどうなるか。
さてどうなるか。
180535
2020/03/13(金) 23:28:51.32ID:vmr0Tb8m ちなみにヒューリスティックの内容は石がぶつかってないときは相手の石からも自分の石からも一間以上離して打つというもの。
181535
2020/03/14(土) 18:49:30.64ID:z7EfFQTc くそーうまく行かねー
182535
2020/03/14(土) 23:30:28.50ID:z7EfFQTc あーなんか気が抜けちゃったな
次のアイディアもないし
次のアイディアもないし
183310
2020/03/16(月) 00:36:34.84ID:FpZgJFeI しばらくは棋譜の遡りを優先しようと思っていたのですが、やっぱり暇ができると
どうしても何かやりたくなってしまい、結局序盤中盤の貪欲法絡みのブラッシュアップ
をしてしまい、またまた遡り対象の棋譜を増殖させています(汗。
DLやろうか、将棋AIの勉強しようかと思い立ち、将棋AIの本などを買い込んでつらつら
眺めていたら、実現確率探索なるものを見つけてしまいました。遷移確率は評価値の
Softmaxで作れる気がしています。現在、前方の打ち切りはProbCutでやっていますが、
途中の1つの盤面の評価値が酷い状態だと、その時点で問答無用でカット対象となって
しまう懸念があります。その点、実現確率探索の方が多少ロバストなのかなぁと。逆に、
手が広い局面では探索深さが浅くなってしまう悪影響も想定できます。
とはいえ、中盤探索のロジック自体は多少の改良で済むのですが、置換表使って中盤
探索の結果を終盤探索のオーダリングに使うところは結構修正が必要な気がします。
最悪反復深化をまるっとあきらめなきゃならないかも知れません。あと、なぜか評価値
に+1〜2程度の手番加算がついたみたいになっている事から、探索深さを揃えられ
ないと、そっちからも悪影響が出る可能性があります。
かなり大幅な変更と、テストが必要なので、ちょっと躊躇しています。
プロジェクト全体コピーして別プロジェクト建てるレベルです。むむむ。
どうしても何かやりたくなってしまい、結局序盤中盤の貪欲法絡みのブラッシュアップ
をしてしまい、またまた遡り対象の棋譜を増殖させています(汗。
DLやろうか、将棋AIの勉強しようかと思い立ち、将棋AIの本などを買い込んでつらつら
眺めていたら、実現確率探索なるものを見つけてしまいました。遷移確率は評価値の
Softmaxで作れる気がしています。現在、前方の打ち切りはProbCutでやっていますが、
途中の1つの盤面の評価値が酷い状態だと、その時点で問答無用でカット対象となって
しまう懸念があります。その点、実現確率探索の方が多少ロバストなのかなぁと。逆に、
手が広い局面では探索深さが浅くなってしまう悪影響も想定できます。
とはいえ、中盤探索のロジック自体は多少の改良で済むのですが、置換表使って中盤
探索の結果を終盤探索のオーダリングに使うところは結構修正が必要な気がします。
最悪反復深化をまるっとあきらめなきゃならないかも知れません。あと、なぜか評価値
に+1〜2程度の手番加算がついたみたいになっている事から、探索深さを揃えられ
ないと、そっちからも悪影響が出る可能性があります。
かなり大幅な変更と、テストが必要なので、ちょっと躊躇しています。
プロジェクト全体コピーして別プロジェクト建てるレベルです。むむむ。
184535
2020/03/17(火) 21:33:11.60ID:7xvLqO5q DNN評価値の上位7手を初手から全展開するというのをやろうとしたのですが、意外とDNNの計算が重たいですね。
すぐにメモリ溢れるだろうとみていたのですが、牛歩のような計算の進み具合で、溢れるまでかなり時間かかりそうです。
すぐにメモリ溢れるだろうとみていたのですが、牛歩のような計算の進み具合で、溢れるまでかなり時間かかりそうです。
185535
2020/03/17(火) 22:41:35.63ID:7xvLqO5q 60万局面展開するのに33分かかる。
遅い。
遅い。
186535
2020/03/17(火) 22:44:36.96ID:7xvLqO5q DNN使わないと100万局面展開するのに4秒www
うーむ
うーむ
187310
2020/03/18(水) 00:47:20.72ID:Wk4mfxEa 結局、実現確率探索に取り掛かってしまいました(汗
新規ソリューション作ってコピペ始めたところで、いずれ評価関数を整数化したかった
事を思い出して、あちこち修正開始となりました。
一応、普通のDepthバージョンと同じ深さになるように調整して、速度比較してみるつもり。
新規ソリューション作ってコピペ始めたところで、いずれ評価関数を整数化したかった
事を思い出して、あちこち修正開始となりました。
一応、普通のDepthバージョンと同じ深さになるように調整して、速度比較してみるつもり。
188535
2020/03/18(水) 20:17:58.60ID:4pnoWutQ DNNの評価値上位7手を全展開してポスグレに詰めるのを実行に移すべきかどうか迷ってる。
一応そのつもりで8TBのHDDもポスグレも用意したんだけど、あんまりいいアイディアに思えなくなってきたというか。
一応そのつもりで8TBのHDDもポスグレも用意したんだけど、あんまりいいアイディアに思えなくなってきたというか。
189310
2020/03/18(水) 23:45:39.14ID:Wk4mfxEa 実現確率探索の中盤探索、プロトタイプのαβ版を作って癖を見ています。
実現確率は、評価値のSoftmaxで各要素を足して1.0になるように正規化するより、
最大値が1.0になるようにした方が使いやすいです。というのも、最大値をひたすら
追った枝の終了条件が綺麗に決まって最大深さを指定できるようになるからです。
1.0そのままだと終わらないので、例えば0.5にしておくと、深さnにしたい時は1÷2^n
が閾値になります。0.1の時は1÷10^nです。まあ、なんでもよいという事です。
後は各要素の差のつき具合を決める定数を調整すると、評価値が悪い手について、
どこまで探索の深さを確保するのかが決まります。ここが職人的作業なのがネック。
絞ると爆速。∞だと、ただの全幅探索になります。
速度は結構出てるのですが、調整ミスると全くダメみたいな様子が見え隠れしていて、
本当に常に使えるのか、まだ心配です。おそらくProbCutでも同じような問題がおきて
いるんじゃないかと思いますが。
次は置換表ですが、合流が発生した時の実現確率がルートによって違うので、その
時の置換表の評価値を使って良いのか悩みどころです。また、上述のように最大探索
深さを調整できるので、反復進化的に閾値を下げて行く事が可能性です。そうすると、
反復深化的に使いたくなるのが人情ですが、オーダリングにどのように反映するのが
良いのか。これも悩みどころだったりします。
要するにあと1週間くらいは遊べそうです(笑)
実現確率は、評価値のSoftmaxで各要素を足して1.0になるように正規化するより、
最大値が1.0になるようにした方が使いやすいです。というのも、最大値をひたすら
追った枝の終了条件が綺麗に決まって最大深さを指定できるようになるからです。
1.0そのままだと終わらないので、例えば0.5にしておくと、深さnにしたい時は1÷2^n
が閾値になります。0.1の時は1÷10^nです。まあ、なんでもよいという事です。
後は各要素の差のつき具合を決める定数を調整すると、評価値が悪い手について、
どこまで探索の深さを確保するのかが決まります。ここが職人的作業なのがネック。
絞ると爆速。∞だと、ただの全幅探索になります。
速度は結構出てるのですが、調整ミスると全くダメみたいな様子が見え隠れしていて、
本当に常に使えるのか、まだ心配です。おそらくProbCutでも同じような問題がおきて
いるんじゃないかと思いますが。
次は置換表ですが、合流が発生した時の実現確率がルートによって違うので、その
時の置換表の評価値を使って良いのか悩みどころです。また、上述のように最大探索
深さを調整できるので、反復進化的に閾値を下げて行く事が可能性です。そうすると、
反復深化的に使いたくなるのが人情ですが、オーダリングにどのように反映するのが
良いのか。これも悩みどころだったりします。
要するにあと1週間くらいは遊べそうです(笑)
190310
2020/03/18(水) 23:56:29.62ID:Wk4mfxEa あと、裏で棋譜作成進行中ですが、評価関数の学習時に、既存データに対する
エラーが増加を始めて、過学習の傾向を示しているのですが、例えばFFOの盤面
のように教師データ中に現れない盤面に対するエラーは減少しています。
状況的には、極端な石差がついている盤面の評価値が、石差ほどの評価値になって
おらず、じわじわと汎化が進んでいる一方、±0近傍の盤面は既に多いため、過学習
気味になっているのかなぁと推測しています。
とはいえ、非常に気持ち悪いです。
というわけで、ちょっと工夫をして石差が大きい棋譜を優先的に遡りチェック対象にしたり、
新規の自己対局するときに石差が大きくなる(悪い)進行も作るようにする事で、ほんの
少しですが、石差が大きい棋譜が増えるようにしてみました。まあ気休めです。
エラーが増加を始めて、過学習の傾向を示しているのですが、例えばFFOの盤面
のように教師データ中に現れない盤面に対するエラーは減少しています。
状況的には、極端な石差がついている盤面の評価値が、石差ほどの評価値になって
おらず、じわじわと汎化が進んでいる一方、±0近傍の盤面は既に多いため、過学習
気味になっているのかなぁと推測しています。
とはいえ、非常に気持ち悪いです。
というわけで、ちょっと工夫をして石差が大きい棋譜を優先的に遡りチェック対象にしたり、
新規の自己対局するときに石差が大きくなる(悪い)進行も作るようにする事で、ほんの
少しですが、石差が大きい棋譜が増えるようにしてみました。まあ気休めです。
191310
2020/03/19(木) 23:17:05.43ID:opMYHtHc 実現確率探索の中盤探索ができました。置換表と並列処理のところまでです。
反復深化→読み切り処理までです。置換表というか、オーダリング処理を結構修正。
反復深化まではそこそこ機能していますが、置換表経由で読み切り処理の高速化が
性能が出ません。置換表経由で、中盤探索の結果を用いて終盤探索のオーダリング
をするところで、置換表データの不足があったり、オーダリングの間違いが生じて、
無駄な探索をしているように思います。
とすると、これは読み切り処理を前提とすると結構致命的な問題な気がします。
もちろん、まだバグや仕様ミスの可能性もありますが。というわけで、Solver関係には
使えない可能性が出てきました。
また、評価関数で実現確率を導いているので、浅い段階での間違いに対して、探索
対象をロックしてしまいやすく、深く探索していっても間違いがなかなか改まらない
傾向が見受けられます。
まあ、仮にダメでも、新バージョンにする過程で、これまでペンディングしていた細かい
修正ができますし、既存タイプの中盤探索も作ってあるので、このまま進めてみます。
反復深化→読み切り処理までです。置換表というか、オーダリング処理を結構修正。
反復深化まではそこそこ機能していますが、置換表経由で読み切り処理の高速化が
性能が出ません。置換表経由で、中盤探索の結果を用いて終盤探索のオーダリング
をするところで、置換表データの不足があったり、オーダリングの間違いが生じて、
無駄な探索をしているように思います。
とすると、これは読み切り処理を前提とすると結構致命的な問題な気がします。
もちろん、まだバグや仕様ミスの可能性もありますが。というわけで、Solver関係には
使えない可能性が出てきました。
また、評価関数で実現確率を導いているので、浅い段階での間違いに対して、探索
対象をロックしてしまいやすく、深く探索していっても間違いがなかなか改まらない
傾向が見受けられます。
まあ、仮にダメでも、新バージョンにする過程で、これまでペンディングしていた細かい
修正ができますし、既存タイプの中盤探索も作ってあるので、このまま進めてみます。
192535
2020/03/20(金) 23:24:37.61ID:7lhYYUd2 DNNの上位7手を幅優先に展開していき200万局面を上限にストップ
展開したものをminmaxで評価値を再計算。
その結果をDNNに学習させようとしています。
ポスグレの出番はいまのところないw
展開したものをminmaxで評価値を再計算。
その結果をDNNに学習させようとしています。
ポスグレの出番はいまのところないw
193310
2020/03/21(土) 02:31:57.66ID:XYOBIhf/ 実現確率探索で、探索幅広げる方向の反復を試してみましたが効果はあまりなし。
単体で使用するとかなり早いのですが、置換表使った探索との相性がいまいち。
とりあえずSolverまで作って速度計測していますが、既存の反復深化より遅く、反復
深化無しよりは若干早いという感じで、単体の速度を利用して幅を思いっきり広げて
みましたが、こちらは逆に遅くなるという体たらく。
置換表周りでどこか間違いがあるのかなぁという気もしていますが、今のところ不明。
Solver周りでの活用は一旦置いといて、自己対局で使ってみる事にします。
単体で使用するとかなり早いのですが、置換表使った探索との相性がいまいち。
とりあえずSolverまで作って速度計測していますが、既存の反復深化より遅く、反復
深化無しよりは若干早いという感じで、単体の速度を利用して幅を思いっきり広げて
みましたが、こちらは逆に遅くなるという体たらく。
置換表周りでどこか間違いがあるのかなぁという気もしていますが、今のところ不明。
Solver周りでの活用は一旦置いといて、自己対局で使ってみる事にします。
194535
2020/03/21(土) 17:30:57.63ID:cG9Ai74P メモリ欲しい…
256GBくらい
256GBくらい
195535
2020/03/21(土) 18:19:45.50ID:cG9Ai74P えー駄目だ負けるorz orz orz
なんで駄目なの???
なんで駄目なの???
196535
2020/03/21(土) 18:23:26.64ID:cG9Ai74P 今回のはかなり期待してたのにorz orz orz
197535
2020/03/22(日) 12:02:13.16ID:upkGajEt 棋譜見ると素のモンテカルロの動きが思っているよりずっといい。
なんでだろう?
なんでだろう?
198310
2020/03/28(土) 00:29:51.53ID:vtZj/mQ8 実現確率探索というか、ソース全体見直し版が、だいたいできました。
まだデバッグ全部済んだわけではありませんが、後はログメッセージなんかの
細かいところくらいの修正かなと。
実現確率探索自体は、棋譜作成にフックを入れる感じでの使用にとどめていますが、
しばらく動かして、結果がよさそうなら切り替えようかなと思います。というか、対戦版
作るときには、中盤探索は実現確率探索で行くと思います。
で、実現確率探索と呼んでいますが、実際のところは違います。本来の実現確率は
「プロ棋譜など別途棋譜集から、よく出てくる手を回帰分析で確率化したもの」で、
よく出る手については深く探索しましょうという内容です。自分の奴は、確率を1手読み
の評価値から生成しています。1手読みにした理由は、差分計算で速く計算できる
からです。というわけで、本来は別の名前にした方が良いのですが、ネーミングセンス
が無いので放置です(笑)
他にも、本来と違う形で実装してるけど、放置してある名前が結構ありますorz
まだデバッグ全部済んだわけではありませんが、後はログメッセージなんかの
細かいところくらいの修正かなと。
実現確率探索自体は、棋譜作成にフックを入れる感じでの使用にとどめていますが、
しばらく動かして、結果がよさそうなら切り替えようかなと思います。というか、対戦版
作るときには、中盤探索は実現確率探索で行くと思います。
で、実現確率探索と呼んでいますが、実際のところは違います。本来の実現確率は
「プロ棋譜など別途棋譜集から、よく出てくる手を回帰分析で確率化したもの」で、
よく出る手については深く探索しましょうという内容です。自分の奴は、確率を1手読み
の評価値から生成しています。1手読みにした理由は、差分計算で速く計算できる
からです。というわけで、本来は別の名前にした方が良いのですが、ネーミングセンス
が無いので放置です(笑)
他にも、本来と違う形で実装してるけど、放置してある名前が結構ありますorz
199535
2020/03/28(土) 21:52:44.02ID:XqE/6uS7 囲碁AIでKatagoという凄く強いAIがあるのですがライフゲーム囲碁に流用できないかと思い始めた。
200310
2020/03/28(土) 22:16:21.29ID:vtZj/mQ8 見直し版のチェックを本番やりながら進めてます。
今のところ、学習の速度が30%程度ダウンしたものの、終盤探索の速度が
30〜50%高速化している感じ。どちらも原因不明。
今のところ、学習の速度が30%程度ダウンしたものの、終盤探索の速度が
30〜50%高速化している感じ。どちらも原因不明。
201310
2020/03/31(火) 00:30:27.16ID:1mhY2vrp 見直し版で、遡りチェックで無駄な処理を見つけて直しました。
更に速度アップして、トータル50%強の速度アップとなりました。
まだ探索自体の速度は上がってませんが、まだ無駄があったとは。
更に速度アップして、トータル50%強の速度アップとなりました。
まだ探索自体の速度は上がってませんが、まだ無駄があったとは。
202310
2020/04/01(水) 23:58:19.45ID:SRR0rDGm 急に探索自体の速度アップを思い立ちまして、いくつか実行。
ヒープ領域に作っていたオーダリング処理をスタック領域に来るように修正。
置換表のHash関数の修正で、置換表のキーエントリーの偏りを減らす。
これらにより更に高速化して、トータルで前バージョンの倍速近くなった感じです。
残り26手探索処理が1時間に90件弱→160件くらい。
あと、もうちょっとやってみたい事があります。
ヒープ領域に作っていたオーダリング処理をスタック領域に来るように修正。
置換表のHash関数の修正で、置換表のキーエントリーの偏りを減らす。
これらにより更に高速化して、トータルで前バージョンの倍速近くなった感じです。
残り26手探索処理が1時間に90件弱→160件くらい。
あと、もうちょっとやってみたい事があります。
203名前は開発中のものです。
2020/04/02(木) 03:15:04.40ID:iWlfdZP3 katago聞いたことない
alpha zeroは使わないの?
alpha zeroは使わないの?
204535
2020/04/02(木) 19:14:11.82ID:9cAiWeM1 deep mindのオリジナルのalpha zeroは公開されてないはず。
github行くとクローンがいくつかあるけど。
katagoはKGSってネット碁会所で最高段位9dで打ってる。
github行くとクローンがいくつかあるけど。
katagoはKGSってネット碁会所で最高段位9dで打ってる。
205535
2020/04/02(木) 20:00:58.76ID:9cAiWeM1 でも当たり前だけどkatagoも相当高度なプログラムなので流用するのはかなり難しそう。
206535
2020/04/02(木) 21:24:35.34ID:9cAiWeM1 あかん、やっぱkatago相当難しい。
githubから簡単そうな奴探してお茶を濁すか…
githubから簡単そうな奴探してお茶を濁すか…
207310
2020/04/06(月) 22:33:27.64ID:eOx9NvDZ 更に少し高速化しました。
オーダリングのvectorをスタック領域の配列に変更する部分ですが、並列探索部分
にも適用しました。配列も&でアドレス渡せばSTLのalgorism周りが使えるの知りました(^^;
スレッド間でのlockも他の処理と一緒にできるので、オーバーヘッドはありません。
あと、地味にセーブの時間がかかっていたので、回数減らしました。
残り26手1000件で10時間半が、5時間40〜50分くらいまで来ました。平均20秒強。
残り25手の読み切りができていてBookで時短しているので、まったくの新規棋譜の
読み切りはもっと遅くなります。
sort部分も何とかならないかと思いましたが、もともと32件以下(オセロはたまたま
ですが次の手の上限は32)は挿入ソートになっているようです。コピペで挿入ソート
を組んで、速度比較してみましたが、有意差は出ませんでした。
件数少ない時に早くかつ安定ソートな方法が他にないか調べてみようかと思います。
オーダリングのvectorをスタック領域の配列に変更する部分ですが、並列探索部分
にも適用しました。配列も&でアドレス渡せばSTLのalgorism周りが使えるの知りました(^^;
スレッド間でのlockも他の処理と一緒にできるので、オーバーヘッドはありません。
あと、地味にセーブの時間がかかっていたので、回数減らしました。
残り26手1000件で10時間半が、5時間40〜50分くらいまで来ました。平均20秒強。
残り25手の読み切りができていてBookで時短しているので、まったくの新規棋譜の
読み切りはもっと遅くなります。
sort部分も何とかならないかと思いましたが、もともと32件以下(オセロはたまたま
ですが次の手の上限は32)は挿入ソートになっているようです。コピペで挿入ソート
を組んで、速度比較してみましたが、有意差は出ませんでした。
件数少ない時に早くかつ安定ソートな方法が他にないか調べてみようかと思います。
208535
2020/04/10(金) 20:40:22.22ID:KcO1uf/C 今これ見てます。
https://github.com/hijkzzz/alpha-zero-gomoku
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
File "../build\library.py", line 15, in <module>
import _library
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
https://github.com/hijkzzz/alpha-zero-gomoku
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
File "../build\library.py", line 15, in <module>
import _library
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
209名前は開発中のものです。
2020/04/12(日) 04:59:53.78ID:DFViLwjz その環境の内容見てないから詳しくはわからないけど…原因は大体これ
1. 読み込もうとしているdllが適切なパスに存在してるか
2. 読み込むdllは64bitか32bitか(ビルド構成と一致していないとダメ
1. 読み込もうとしているdllが適切なパスに存在してるか
2. 読み込むdllは64bitか32bitか(ビルド構成と一致していないとダメ
210535
2020/04/12(日) 10:52:42.02ID:lk7abFDy 32bitか64bitかは64bitしか選べないみたいです。
適切なパスに存在しているかというのはどうやってしらべればよいでしょうか。
library.pyと_library.pydをカレントディレクトリに置いたりもしてみたのですが駄目でした。
ちなみにこれはswigというのを使っていてC++をpythonから読めるようにしているようです。
library.pyと_library.pydが生成されてlibrary.pyから_library.pydをインポートするときにこけています。
適切なパスに存在しているかというのはどうやってしらべればよいでしょうか。
library.pyと_library.pydをカレントディレクトリに置いたりもしてみたのですが駄目でした。
ちなみにこれはswigというのを使っていてC++をpythonから読めるようにしているようです。
library.pyと_library.pydが生成されてlibrary.pyから_library.pydをインポートするときにこけています。
211名前は開発中のものです。
2020/04/13(月) 02:33:11.01ID:q8ASrlIp github見てみましたが、中国人が下で同じような質問してますね
buildディレクトリにコンパイルされたファイルを配置しないと駄目なようです
Pythonとかライブラリのバージョンも書いてあるので合わせたほうがいいかもですね
https://github.com/hijkzzz/alpha-zero-gomoku/issues/18
buildディレクトリにコンパイルされたファイルを配置しないと駄目なようです
Pythonとかライブラリのバージョンも書いてあるので合わせたほうがいいかもですね
https://github.com/hijkzzz/alpha-zero-gomoku/issues/18
212535
2020/04/13(月) 20:06:39.31ID:E8a4txq0 ありがとうございます。
今python が3.6だったので3.7にしてみようとしたらpytorchがpipで入らず苦戦しています。
今python が3.6だったので3.7にしてみようとしたらpytorchがpipで入らず苦戦しています。
213535
2020/04/13(月) 20:47:56.22ID:E8a4txq0 結局python 3.8.2を入れたんですが駄目っぽいorz
やっぱ無理にでも3.7にすべきか…
やっぱ無理にでも3.7にすべきか…
214535
2020/04/14(火) 20:06:25.38ID:ezpleFZl python 3.7.6を試してみましたが駄目。
pytorchももう1.1手に入らないっぽい。
手詰まりです。
pytorchももう1.1手に入らないっぽい。
手詰まりです。
216名前は開発中のものです。
2020/04/15(水) 20:25:07.80ID:4FzrEabb Ruby なら、require/load で相対パスで指定されたときに、ファイルを検索する時の場所は、$LOAD_PATH だけど、
Python にはそういうパスが無いのか?
これで、site_ruby, vendor_ruby などが、ずらずらと表示される
ruby -e 'puts $LOAD_PATH'
Python は、よく知らないけど、import _library
で、拡張子 .pyd まで探してくれるのか?
_library.pyd
Python にはそういうパスが無いのか?
これで、site_ruby, vendor_ruby などが、ずらずらと表示される
ruby -e 'puts $LOAD_PATH'
Python は、よく知らないけど、import _library
で、拡張子 .pyd まで探してくれるのか?
_library.pyd
217535
2020/04/15(水) 21:11:30.83ID:rifVao0V レスありがとうございます。
ファイルを検索する場所は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',
'C:\\Users\\nagat\\AppData\\Local\\Programs\\Python\\Python37',
'C:\\Users\\nagat\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages',
'..\\build']
import _library.pyd はエラーになりました。
ファイルを検索する場所は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',
'C:\\Users\\nagat\\AppData\\Local\\Programs\\Python\\Python37',
'C:\\Users\\nagat\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages',
'..\\build']
import _library.pyd はエラーになりました。
218535
2020/04/15(水) 21:32:18.35ID:rifVao0V ん、neural_network_test.pyは動いた。
どういうことだ???
どういうことだ???
219535
2020/04/15(水) 21:34:10.97ID:rifVao0V import libraryの前にimport torchをつければいいのか???もしかして
220535
2020/04/15(水) 21:42:29.92ID:rifVao0V うおお、動いたっぽい!!!!
ありがとうございます!!
ありがとうございます!!
221535
2020/04/15(水) 21:59:07.45ID:rifVao0V leaner_test.py train 動きました!!
GUIが起動してポチポチ自己対局を始めました!!
これは期待が高まる!!
GUIが起動してポチポチ自己対局を始めました!!
これは期待が高まる!!
222535
2020/04/15(水) 22:01:14.83ID:rifVao0V とりあえず、五目並べでちゃんと強くなるかどうか2〜3日学習させてみます。
223535
2020/04/15(水) 22:19:15.19ID:rifVao0V ん、GPUの使用率が1%くらいから上がりませんね。
でも0%じゃないからちゃんと使ってんのかな…
でも0%じゃないからちゃんと使ってんのかな…
224535
2020/04/15(水) 22:36:14.51ID:rifVao0V お、早くも石が中央に寄り始めた??
そうだとしたら凄い。
そうだとしたら凄い。
225535
2020/04/15(水) 22:48:39.68ID:rifVao0V しかし、4すら止めないw。
ホントに0からの学習なんだなぁ
ホントに0からの学習なんだなぁ
226535
2020/04/16(木) 19:32:35.61ID:y39ZfUyK お、凄い!たった一日で五目並べっぽくなってる!
たまにそっぽ打つのは乱数でランダムな手を打つようになってるんでしょうね。
たまにそっぽ打つのは乱数でランダムな手を打つようになってるんでしょうね。
227名前は開発中のものです。
2020/04/16(木) 19:37:25.76ID:y39ZfUyK うお、早くも人間(俺)に勝った!!
あり得ね〜〜〜!!!
あり得ね〜〜〜!!!
228名前は開発中のものです。
2020/04/16(木) 19:38:07.71ID:y39ZfUyK ヤバイ、これはヤバイww
229535
2020/04/16(木) 19:40:53.49ID:y39ZfUyK 15路という非常に広い盤面でここまで早く強くなるとは…
230535
2020/04/16(木) 19:44:25.68ID:y39ZfUyK もう五目並べの学習は十分ですね。
となると次のステップはライフゲーム囲碁か囲連星を移植ですね。
となると次のステップはライフゲーム囲碁か囲連星を移植ですね。
231535
2020/04/16(木) 19:54:51.08ID:y39ZfUyK ライフゲーム囲碁はパスを実装しないといけないからまずは9路囲連星かなぁ
233535
2020/04/16(木) 21:57:22.76ID:y39ZfUyK あれ、モチベすげー湧いてくると思ったのに意外とそうでもないな…
仕事で疲れてんのかな…
仕事で疲れてんのかな…
234535
2020/04/18(土) 17:12:26.15ID:FJQxs35t 実はライフゲーム囲碁を移植しようとしてたのですがパスの実装がやはり意外と難しそうです
9路囲連星に転進しようかな
9路囲連星に転進しようかな
235535
2020/04/18(土) 20:23:03.93ID:dW+TeRwf は〜目の前に理想のalpha zeroがあるというのになぜかモチベが湧いてこない、踏ん張りがきかない。
さぼりモードに入りつつあるorz。
ていうか思ってるより移植が工数かかる作業なのかもしれない。
さぼりモードに入りつつあるorz。
ていうか思ってるより移植が工数かかる作業なのかもしれない。
236535
2020/04/19(日) 14:29:45.72ID:w4GEcYV8 9路囲連星はコードを消失していたので19路囲連星を移植してます。
237535
2020/04/19(日) 17:44:45.53ID:w4GEcYV8 多分移植完了した。バグが無ければ。
学習フェーズへ移項します。
学習フェーズへ移項します。
238535
2020/04/19(日) 17:58:16.33ID:w4GEcYV8 うーん。これGUIの盤のひろさとプログラム上での盤の広さが違いますね。
まあ論理的には整合性は取れているので見た目だけの問題なので放置。
まあ論理的には整合性は取れているので見た目だけの問題なので放置。
239535
2020/04/19(日) 18:02:39.80ID:w4GEcYV8 まだ学習始めたばっかなので全然見当違いのところに打ちまくるの見てて切ないw
でもまあ、五目並べではわずか一日で人間(俺)に勝てるところまで来たのだから期待して待ちましょう。
でもまあ、五目並べではわずか一日で人間(俺)に勝てるところまで来たのだから期待して待ちましょう。
240535
2020/04/19(日) 18:42:21.72ID:w4GEcYV8 メモリ10GBくらい使ってる。
思ったよりでかい。
思ったよりでかい。
241535
2020/04/19(日) 21:12:09.10ID:w4GEcYV8 GPUのファンが五月蠅い。
タスクマネージャーだと1%とかなのに。
タスクマネージャーじゃ使用率ちゃんと測れないのかな?
タスクマネージャーだと1%とかなのに。
タスクマネージャーじゃ使用率ちゃんと測れないのかな?
242535
2020/04/20(月) 18:56:48.06ID:fRC4t5vc 強くなってないと思ったら致命的なバグがorz
勝敗データをパイソンに渡す個所にバグがあったようです。
丸一日の学習がパーorz
勝敗データをパイソンに渡す個所にバグがあったようです。
丸一日の学習がパーorz
243535
2020/04/20(月) 21:27:15.82ID:fRC4t5vc ん、付けにははねよを覚えたっぽい?
だとしたら凄い。
だとしたら凄い。
レスを投稿する
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★2 [お断り★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 【ネトウヨの理想国家】中国、スペイ防止法発動、中国人民に対して日本人の通報を奨励 [419054184]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★3
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★4
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★5
- エッヂ落ちた?
- 【緊急】水ダウひ避難所
