[過去ログ] 【オセロ,将棋】ボードゲーム Part2【囲碁,War】 (1002レス)
1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
310
(197): 535 2018/04/02(月)22:24 ID:3iK+AnRP(1) AAS
Leela ZeroがKGSでかなり強くなってる。
俺がパクったプログラムも学習し続けたらあれくらい強くなるんだろうか?
14: 310 2017/10/20(金)22:21 ID:AyXCD9Rq(2/2) AAS
あ、つけ忘れ失礼。

Rollout無し版を試してますが、何故か最近静まっていた終盤読み切りのエラーが(汗
撲滅していたはずなんですが・・・
29: 310 2017/10/27(金)09:09 ID:InThdIzI(1) AAS
あれれ。また名前が消えていた(汗
お分かりの通り、今のところ名無しは310です。
38: 310 2017/10/28(土)13:51 ID:rt9aGKVT(1/2) AAS
ネットワーク1段増やすだけで信じられないくらい遅くなりますよね。
最初に十分に深くして学習させて、だんだん減らしながら適切な深さを
求めたいんだけど、この速度低下を考えると、本当に学習できるのか
わからないままだんだん深くしていくしか無いというのが萎える点です。

スレッドについては、リソースモニターで確認するとわかりますね。

ヘッダのどこかに並列化の設定があったはずです。
コンパイラがVSならOpenMPのオプションを設定します。
省1
41: 310 2017/10/28(土)23:37 ID:rt9aGKVT(2/2) AAS
CPU使用率はそんなもんかも。
ヘッダの話、Eigenとごっちゃになってるかも。

強化学習ですが、徐々に進んでいます。もっと早くSMORMS3にしとけば良かった。

終盤読み切りのソート順に評価値を使用しているのですが、目に見えて速度が
上がってきています。また自己対局の精度も上がってきたようで、遡りチェックで
30手まで何度か行きました。逆に記譜収集の方は、スコアのばらつきが無くなって
きて、記譜的に良い事なのか不安。
省1
46: 310 2017/11/01(水)01:06 ID:FDjtq7R7(1) AAS
バラして部分づつ学習する手もあるかも。
あ、元データはランダムに並び替えた方が良いですよ。
わかってると思いますが。

こちらは、しばらく強化学習していたら、それなりに学習が進んだ結果、
対戦相手側の手のばらつきが足りなくなって、局所解に陥ってた感じ。
急きょばらつきを広げて学習再開させたところです。

バリューの方は地道に損失が減っているんだけど、ポリシーの損失が
省3
49
(1): 310 2017/11/01(水)20:13 ID:A50hx8cn(1) AAS
たぶん、損失の減り方は最初はゆっくりだと思います。
「特徴抽出しながら」誤差修正していってますから。

僕と同じ悩みですね。
ネットワークの大幅簡素化の結果、最終的に線形回帰まで戻ってしまいました(汗
もっとも、オセロはBuroさんの特徴抽出があったから線形回帰まで戻れたのですが。

スリッパとGPUが呼んでます(笑)
でも、もしかしたらAMDよりINTELの方が良いかもしれない。
省1
63: 310 2017/11/05(日)01:04 ID:BooXEMcV(1/4) AAS
同じ道をたどってますね(汗

こちらは、MCTSで構築したツリーを使って、完全読み切りが速くならないか
試していますが、謎のバグのオンパレードでかなり戦線縮小。一応、それなり
に動作するレベルまで撤退してテストしていますが、なんとなく速度アップは
している模様。

ただ、バグの過程で置換表データに変なものが混じったらしく、学習させると
異常終了になります。記譜は1700件くらい集まっているので、一旦全消去して
省1
64: 310 2017/11/05(日)17:40 ID:BooXEMcV(2/4) AAS
ツリー探査がおかしくなる状態を確認。
けど、カーっとなって即座に終了してしまったので、詳細判明せず。
なんとなく症状は見えたので、しばらく目視デバッグします。

というか、これにより直近に遡りチェックやった記譜の正確さに不安が生じてます。
やけに遡りチェックが簡単に通るなぁと思っていたけど、これが原因かもしれない。
というわけでタイムアウトまで行った記譜を50件ほど再チェックしなきゃならん。
全部で54時間くらいかかる予想。今週はまるまるパーになりそうです。
省1
65: 310 2017/11/05(日)17:50 ID:BooXEMcV(3/4) AAS
計算間違い。全部で80時間くらいだorz
67: 310 2017/11/05(日)23:36 ID:BooXEMcV(4/4) AAS
ぬがーーーーーーーーーーーー!
バグって、記譜データがすべて上書きされて消えてしまったorz

ツリー利用探索のデバッグ用にput処理にエラートラップ仕掛けた時に
やっちゃいました。

学習済のデータが残っているのだけが救いだ・・・。
ここから記譜作ると、そこそこ精度が良い記譜になるはずなのが救いだ…。
70: 310 2017/11/07(火)15:06 ID:8EOI4Ksy(1) AAS
>>68
おっしゃる通りですorz

評価関数の方は要所要所でコピー残していたのに、記譜はなめてました。

>>69
ライブラリ公開されても、実行できる環境構築の方がハードル高いかなと。

論文はいまだに読んでいませんが、rollout無し(バリューネットに100%依存)
はうまく機能しています。圧倒的にツリー探索性能がアップしているため、評価関数
省7
75: 310 2017/11/12(日)22:19 ID:Uu7EAeJ9(1/2) AAS
しばらく出張してました。

終盤DBといえばチェスですかね。
遡りチェックは詰みを回避できるかチェックになるのかなぁ。
オセロだと何にも考えずに終局の石差でやっちゃうので。
言われてみて気付いたけど、ゲームの種類によって結構違う考えが必要なんですね。

最近、藤井四段に触発された友人の影響で将棋を始めました。
負けたくないので、3手詰め問題解いていると、どうやってプログラムしようか
省1
76: 310 2017/11/12(日)22:31 ID:Uu7EAeJ9(2/2) AAS
MCTSのツリーを使ったオーダリングは、たぶんバグが取れたと思います。
が、なんか別のところで意味不明の動作をして、速度が出せませんorz

また、テストの際に半日経っても終了しなかった盤面を使ってしまい、
何度もやり直しをしていたために、強化学習が滞ってしまいました。

これ曲者過ぎるので、今夜一晩解かせてパスしたい。
朝までにとけなかったらどうしよう。
79: 310 2017/11/14(火)00:31 ID:ZeqYQGfh(1/2) AAS
重い局面は6〜7時間くらいかけてクリアしました。

MCTSの速度が出ない問題は、解消というか、原因不明のまま別の方法で回避。
parallel_forの問題かと思っていたけど、shared_ptrの方の問題だったっぽい。
遡りチェックの時、PVは探索せずに、その他の手をチェックしていくので、他の手
にも探索を振り向けたかったのですが、単純に1手先の局面からUCTを実行すると
10万プレイアウトくらいで突然数十秒宇固まったようになって、それを何度も繰り
返す結果、まったくツリー探索が進まないという症状です。UCT探索の方に1回目
省5
82: 310 2017/11/14(火)23:35 ID:ZeqYQGfh(2/2) AAS
MCTSのツリーを使用する奴は、どうも挙動が変なのですが原因不明なので後回し。

アルファ碁Zeroでは、強化学習に軽い探索を取り入れたというのを見かけたので、
想像で真似してみる事にしました。

序盤はランダム着手。そこから5手読みの中盤探索を入れて、残り10手完全読み。
評価関数はValueを使用。たぶん、学習はマシになると思います。

もっと精度が上がったら、3手読みにしてスピードアップしたいです。
今はまだ結構ボロボロなので、これで我慢。
84: 310 2017/11/17(金)23:19 ID:0nQ3gtJu(1) AAS
浅い探索付き強化学習は結構有効に機能しているようです。
学習の速度が明らかに上がったし、精度も良くなっているようで、テスト盤面の
誤差が結構減りました。ただ、そろそろ飽和したか、局所解に入ったような印象。

で、色々考えたあげく、線形回帰ではこの辺が限界かもしれないという事で、
評価関数をmlpにしてみました。valueの方がうまく学習しなかったので、回帰型
ではなくsigmoid出力にして0〜1の数字を石差に変換かけてます。
強化学習は、回帰版の評価関数の結果をそのまま利用してます。
省2
86: 310 2017/11/18(土)20:23 ID:TwYSqk9E(1) AAS
やっぱスピードは万能ですよねぇ。

モンテカルロですが、評価関数ができたら、アルファ碁Zero方式で(汗
緩やかに読み筋を絞り込みながら、有望な手を深読みする形になります。

mlp版を試していますが、中間層を64にしたら、学習は良いのですが、
モンテカルロが劇遅になりました…。今、中間層8で強化学習していますが、
なんか早々と線形回帰と同様に飽和状態になってしまった模様。

速度的には8が限界な気がする。
省2
87: 310 2017/11/19(日)15:23 ID:O7LFJYCP(1) AAS
あちゃー。

学習がいまいち変に感じていたのは、これは恥ずかしくて言えないレベルの
仕様ミスでした。あれ?と思って、良く考えずに念のため追加したコードが
数か所。ことごとく悪さしていました。

数日損をしたなぁ。
88: 310 2017/11/20(月)22:18 ID:/GG7G9SR(1/2) AAS
ぎゃー。

評価関数に入れるデータの変換テーブルに間違い見つけた。
評価関数がいまいち収束しなかったのはこれが原因かも。

もともとの線形回帰版の時代から隠れていたものなので、
線形回帰版も計算し直しです。

というわけで、数日パーどころか1か月単位でパーですorz
89: 310 2017/11/20(月)22:23 ID:/GG7G9SR(2/2) AAS
申し遅れましたが、これにて評価関数は最初から計算しなおしです。

幸い、記譜が60件+遡り時の訂正前分100件ほどの合計160件と、
置換表から拾ったものが10万件単位でありますので、最近得ていた
感触だと、これをベースに強化学習で補えそうだというのが、
唯一の救いです。
93: 310 2017/11/23(木)21:17 ID:A/JPNP9D(1) AAS
アルファ碁ゼロの論文はまだ読んでませんが、アルファ碁の正常進化ですよ。
自分はDeep Learningのところは「しかと」しているので、MCTSの進化形として
とらえてみると、まあ想像ですうが、当たり前の事を当たり前にやっただけかなぁ
と思っています。

それより大問題が…
また、評価関数の入力データ作るための変換に間違いを見つけてしまいました。
前回どころではない大きな間違いで、良くこの評価関数でそこそこ収束していたなぁ
省4
97: 310 2017/11/25(土)00:38 ID:Dx7Nr2Ji(1/3) AAS
もういっちょ間違い発見orz

ソース喪失後焦って数日でパーッと書いて、そのまま学習させて、そこそこ
収束していたから放置していたのを思い出してきた。今度は全部チェックした。

しかし、いい加減な評価関数でも、結構収束していたってのが凄いな。
そこはかとなく表現力不足を感じていたのはその辺が原因かなぁ。

記譜と置換表データで1から学習させるのに、一気に500回学習させたら、
思いっきり過学習になってしまった。現在、強化学習で解きほぐし中。
省1
98: 310 2017/11/25(土)00:54 ID:Dx7Nr2Ji(2/3) AAS
>>95
某スレをウォッチしていたら、前から気になっていた事を指摘していた人がいた。
スレッドリッパーはAVX2命令の中に遅いものがあって、一つ下のインテルの奴の
方が、この手の計算は速いらしい。

あと、GPUをどう使うかだね。
けど学習だけならTensor Flowにやらせちゃえばよいのだろうけど、学習データを
使うところまで行ったら、GPU使った非同期並列処理とか考えなきゃならないし。
省3
100: 310 2017/11/25(土)01:26 ID:Dx7Nr2Ji(3/3) AAS
コンピュータ囲碁か何かのスレです
この1か月くらいのカキこのどこかにありました(汗
104: 310 2017/11/26(日)13:10 ID:kav93n5u(1/2) AAS
ソース喪失以外の時は、結構コピペしていますよw

書き直しの時は、たいていあちこちで使用しているクラスの構造変え
たりする類の後戻りが難しい変更加える時なので、中の関数は一緒です(汗

新しい評価関数は、だいぶ落ち着いてきましたが、遡り28手くらい
でタイムアウトになります。並べ替えに使っているので精度が上がる
と速度が速くなるのです。前は29手、調子が良い時は30手くらい
まで行っていたので、まだ精度が追い付いていないみたいです。
省4
107: 310 2017/11/26(日)22:28 ID:kav93n5u(2/2) AAS
僕が読んだ本では、

最適化するな。アルゴリズムを考えろ。
アルゴリズムなら桁単位で速度アップし、過去に行った最適化は無駄になる。

と言うよな事がトップに書いてあって、それ以来(自分の)読みやすさ優先にしている。

BITBOARDのAVX2命令とか、その辺でいくつかの関数のみ、ゴリゴリにしている。
とはいえ、その辺も一応アルゴリズムの範疇かなぁ。
演算子のオーバーロードとか関数で隠ぺいしているしね。
省2
110: 310 2017/12/01(金)20:29 ID:ONM9KZwZ(1) AAS
またしても問題発覚。

タイムアウトなどでキャンセルしたとき、探索途中の中途半端な評価値の置換表
が作成されている模様。対象の特定はできないため、置換表データをいったん
削除して、全データに対して再度遡りチェックを実施する事で、置換表データを
再作成する事にしました。

むむむ。

評価関数はそれなりの精度になっているので、それなりの速度ではチェックできる
省2
112: 310 2017/12/05(火)23:36 ID:5HB6IIYO(1/2) AAS
とりあえず軽く遡りチェック完了。28〜30まで遡ると時間かかるので当面25前後まで。
もっとも誤着手なしタイムアウト無しだと30手だろうと遡れちゃうから、28手あたりの
適度なところで止めちゃいましたが。

で、置換表データ激減。いままで間違ったものを相当学習に取り込んでいたっぽい。

あと、MCTSのツリーの末端(以後終盤探索しているので数値確定)の評価が時々
狂う問題がありまして、いつもではなかったので目をつぶってましたが、暇だった
ので着手。原因不明なれど、二重更新問題っぽかったので、ツリー部分のコード
省4
113: 310 2017/12/05(火)23:43 ID:5HB6IIYO(2/2) AAS
Buroさん型特徴の評価関数もそろそろ限界っぽいのと、今のままだと強化学習にも
かなり時間がかかるので、新しいパソコンが欲しくなってきました。やはりCNNに行く
しかないかもという事で。

ものは試しにi9-7980でパソコン組んだら幾らになるのか、ネットで見積もってみた
のですが…そっと閉じてしまいました(汗

クロック数とか見ると、10コア20スレッドくらいの奴が、一番よさそうな気がするんだ
けど、どうなんだろう。
116: 310 2017/12/06(水)21:37 ID:fJiMVswg(1/2) AAS
今見たorz

夢想段階にあったものをことごとく圧倒的な力量でやられてしまふ。
そのうち、5分でオセロ作ったよとか言われるんだろうなぁ。

学習と評価の実行が完全に二分された今となっては、
学習に使用するハード性能は正義だと思い知らされる。
121: 310 2017/12/06(水)23:02 ID:fJiMVswg(2/2) AAS
non-MonteCalroなツリー探索(勝手にそう呼んでる)は、MCTSがロールアウト
関数さえ作れれば万能なように、完全情報ゲームでは万能だと思う。
あと強化学習による評価関数の作成も。

ただ、まだAlpha碁Zeroの論文読んでないからわからないけど、CNNの入力
については、人間が介在しているかもしれない。少なくともアルファ碁の段階
では、ちょっと特殊な入力データを用意していた。

それと、完全情報ができない以上、強さの地平線を広げたに過ぎないのも確か。
省4
123: 310 2017/12/07(木)00:22 ID:EKyZH2pF(1) AAS
Googleがやらかしてから、後だしで俺も考えていたとか悔しいので、
前から思っている事をボソっと書いとく。

十分に深いDCNNの場合、表現の自由度が高いから、強化学習を繰り返す
事で過学習になる事が、起こりうる局面の大半を内部に保持する事につな
がっていて、実は汎化性能ガン無視で良いのではないか。起こりにくい局面の
評価値はグチャグチャでも構わないという事で。

と思っていたりする。
132: 310 2017/12/07(木)22:57 ID:JixNNylG(1) AAS
>>129
大変です(汗
143: 310 2017/12/10(日)22:11 ID:3vDAj4sl(1) AAS
MLP版の評価関数がNaN地獄に落ちてた。
何回かやり直したけど、結構簡単にNaN地獄に落ちるので、一旦仕切り直しで、
線形回帰な評価関数に注力する事にしました。

MCTSでテストすると、途中まで割と見知ったオープニングになってきているけど、
評価値自体はあんまり安定していない感じ。まあ、相対関係があっていれば、
絶対値はずれていても関係ないといえば関係ないけど。

しばらく強化学習を続けながら、ちっと別な事を考えてみます。
省3
152: 310 2017/12/13(水)00:38 ID:oWC3TnL7(1) AAS
MCTSのマルチスレッド化は簡単だと思う…
マルチコンピュータは難しいけど。

強化学習がなんかおかしい感じだったので、記譜学習で上書きしたら
かなり過学習になってしまった。強化学習で戻せばよいかと思ったけど
なんかなかなか戻らないorz

強化学習どっかおかしいのかもしれない。
156: 310 2017/12/14(木)00:19 ID:9pKHf6s7(1) AAS
排他制御は、まあ普通にしてますけど、PPLのcritical_sectionでlockしたり、
int型ならatomic<int>していたりで、並列ライブラリにお任せです。

またVirtual Lossという方法があって、ツリーを下っていく時は、先に負けた事にして
降りて行って、末端から戻ってくる時に正しい勝敗に置き換える事で、並列探索
の各スレッドが同じ枝に集中しないようにして、排他がかかる可能性を減らしてます。
あとは、排他制御が必要な領域を細かい単位に分割する事ですかね。

#と思って、ソース見たらVirtual Drawになっていた(汗
省5
158: 310 2017/12/15(金)10:32 ID:+7BwQo/4(1) AAS
PPLはVC++専用の並列処理ライブラリです。
Intel TBBとかと中身はほぼ同じだと思います。
かなり抽象されていて、わかりやすいです。
自分はこれなしでは並列化できません(汗

ツリー構造だと子ノードへのポインタが一番大事な情報になっちゃいますね。
その場合ポインターと直前着手があれば盤面情報は不要になります。
一方で、ハッシュテーブル構造だと、子ノードポインタ不要で、キー(と衝突検出)
省5
159: 310 2017/12/17(日)00:21 ID:qILmYkkQ(1/2) AAS
ノートPCの冷却用(動作周波数に結構影響する)にUSB扇風機使ってましたが、
結構サイズでかくて持ち運び面倒だし、ノートPCのUSBポートに刺していると
安全装置が働いてしまうので、別途電源取っていました。

で、どうせ強化学習回しておくだけで暇だったので、専用のクーリングファンを
自作してみました。

タカチのアルミケースをぴったりサイズに切り欠いて、USBコネクタと5Vの
クーリングファンをセット。ノートPCに装着するとファンが回って冷却開始。
省2
160: 310 2017/12/17(日)02:09 ID:qILmYkkQ(2/2) AAS
EigenのSparseMatrixのサイズ制限を変える方法が見つかりました。

現在、簡易版と詳細版の2種類の評価関数を学習していますが、
これにより詳細版を完全にBuroさんモデルにする事ができるように
なりました。

というわけで、詳細版は再度学習し直しです。

簡易版は、多少癖があるようだけど、そこそこまともになっています。
一方、詳細版は何度もやり直し中(汗
164: 310 2017/12/19(火)00:06 ID:jyMFUoq3(1) AAS
気が付いたらTensorFlowがWindows対応になってるね。

New PC欲しい病再発の兆し・・・
171: 310 2017/12/23(土)09:08 ID:V4gvcHPy(1) AAS
ノードを完全読み切りまで展開した時に、末端ノードの評価が狂う時があるという
バグが以前ありました。おそらく並列処理による2重更新問題だろうと言う事で、
UCT探索の排他部分を強化して対応していましたが、ここにきてまた発生。
昨日原因が判明しました。まさかの、浮動小数点誤差の問題でした。

スコアの合計値と、試行回数を持っていて、合計値÷試行回数で平均スコアを
計算しているのですが、合計値が3500万を超えたあたりで+2をしてもfloat的
には、その2差を表現できる精度が無くなって、少しづつ合計値が不足していく
省4
172: 310 2017/12/24(日)00:22 ID:XlhSPCGK(1) AAS
intに変更。桁溢れが無ければ、これで大丈夫だと思います。
ついでに速度アップしている分だけ、自己対局の探索時間を短くしました。

評価関数を簡易版・詳細版2種類使っていましたが、詳細版も十分に学習
できたようなので、詳細版一本に絞りました。というか、そろそろ追い抜いた
と思えるようになってきました。とはいえ自己対局の評価値を見ていると
30手目以後はそこそこまともな感じですが、序盤はまだデタラメかなぁ。

完全読み切りですが、30手より前に遡る事がなかなかできません。評価関数
省10
180: 310 2017/12/28(木)00:14 ID:p44JRClR(1) AAS
やっぱりintでオーバーフローしてた(汗。仕方無いのでint64で。doubleでも
メモリーサイズは一緒だけど、intの方がオーバーフローがわかりやすい。

あと、効果あるかわからないけど、置換表再利用回りをちょっと機能追加。

途中でゲーム終了になった時のスコアカウントですが、FFO計算をチェックに
使っている関係で空白マスを勝者総取りにしています。しかし、学習の時には
空白マスを含めない方が回帰の計算的には良いのではないかなと思い始め
ています。MCTS的には終局判定を入れてあり正しく終局時スコアを返すので、
省3
186: 310 2018/01/05(金)08:48 ID:DiPIPsFr(1) AAS
年末年始で学習進めてました。
学習が進んだ結果、33〜35手目あたりは正確になり、評価値の精度が上がった
事からオーダリングが機能するようになり、遡りチェックの時間は少しづつ減ってきて
いる感じですが、30〜32手目以前はまだまだばらつきがある感じです。

また、以前から気になっていたのですが、MCTSによる記譜作成では35手目以後で
急に頻繁に手を間違える症状が出ています。記譜を膨らますにはちょうど良いので
放置していましたが、いよいよバグ探しを開始。やっぱり、並列処理の排他が不十分
省5
187: 310 2018/01/08(月)02:22 ID:hx3YjBuD(1/3) AAS
記譜作成ですが、スコア差が大きなものが少ないため、ランダム着手の所に手を
加えてみましたが、今度は極端になりすぎて、パーフェクト勝敗な記譜が増えて
しまいました。どうしよう。

スピードダウンの影響は結構大きく、探索の終盤で、同じツリーに対する探索が集中
するためか、さらに大きく速度低下し、今度はそちらが原因で終盤間違えるように
なった感じです。あちらを立てればこちらが立たずです。

当初は、こういう問題はなかったはずなので、過去のソースを見直してみるつもり。
189: 310 2018/01/08(月)21:48 ID:hx3YjBuD(2/3) AAS
ありゃ。すでにあるんだ。
たぶんディープラーニングしてるんだろうなぁ。

そりゃそうと、CPUのバグの影響どうなんでしょね。
あまりに時間がかかるので、ちょっと辛い。

記譜作成やめて、ひたすら強化学習にしてみようかなぁ。
後は細かい精度なので、その方が早い気がしてきた。
190: 310 2018/01/08(月)22:10 ID:hx3YjBuD(3/3) AAS
わかりにくい文章でした。

「あまりに時間がかかるので、ちょっと辛い。」

は、現状の学習方法だとあまりに時間がかかるので、やはり新PC欲しいんだけど、
CPUバグの話が出たので、ちょっと様子見すべきかどうかって事です。

ただ、MCTSで排他待ち合わせによる速度低下が出ているのと、読み切り探索では
並列探索の効果が頭打ちになりやすいので、本当にCPUに投資した効果があるの
かが不安になってきている面もあります。
省1
195: 310 2018/01/11(木)22:33 ID:TAFrfVFR(1/2) AAS
しばらく学習しっぱなしというか、デバッグしながら中途半端に遡り状態で放置した
記譜をガッツリ遡りチェック中なので暇です。で、よからぬ蟲が疼きだして、そろそろ
ボードを作ろうかと思い始めました。ソース消失前は、min-Max版時代のボードが
あったのですが、また作り直しです。

オセロにも碁盤ソフトみたいなのがあれば良いのですが、無いようなので自作を検討。
囲碁のGTPみたいなプロトコルを作って、思考エンジンとGUIを分離できたら良いなぁと。

というわけで、匿名パイプを使ったプロセス間通信について勉強してました。
省8
196: 310 2018/01/11(木)22:48 ID:TAFrfVFR(2/2) AAS
>>191
色々見直して、若干速度は回復しましたが、最初にRollout外した時のびっくりする
ほどの速度は出なくなっちゃいました。ただ、時々瞬間的に速い時があるので、
単純ではないかもしれません。

30手過ぎるとどんどん選択しが狭まっていきますので、ツリーサイズは小さくなって
いきます。ここで、一部の手に探索が集中して、100万探索単位で追加探索したとき
にようやく他の枝を調べ始めるようで、それでもツリーサイズはそれほど大きくならない
省6
199: 310 2018/01/14(日)01:33 ID:Wql34YtP(1) AAS
コネクト4のGitHUBってどこにありますか?
ちょっと見てみたいかも。

GUI作ろうと思って調べたら、VS2017からなんかだいぶ変わっているみたいです。
MFCは非推奨との事で、ユニバーサルWindowsとかってやつと、あとはCLRですか。
両方試してみようとしたのですが、ユニバーサルWindowsはWindows10じゃないと
ダメっぽい。CLRはなんかエラーで動かない…。他にもC#だと楽だとか色々ある
みたい。MFCは使えるのですが、もう忘れたし、面倒くさかった記憶しかない(汗
省3
201
(2): 2018/01/15(月)19:10 ID:SOjHonZe(1) AAS
>>310
オセロ用の確立された GUI はありませんが、
nboard
外部リンク:www.orbanova.com
xboard / winboard (alien edition)
外部リンク[html]:hgm.nubati.net
Othello Engine Protocol (cassio)
省3
203: 310 2018/01/16(火)01:56 ID:8d/ib1bw(1) AAS
>>200
どもです。ダウンロードしてみました。
酔っぱらって帰ってきたところなので、明日以後見てみます。

>>201
ありがとうございます。
cassioはmin-Max前提みたいですね。
nboardとxboardは明日以後見てみます。
省6
206: 310 2018/01/20(土)13:01 ID:Zq3gts8j(1) AAS
>>205
ありがとうございます。
さっそくダウンロードしました。
211: 310 2018/01/27(土)00:56 ID:0QPAoXtC(1) AAS
自分もGUIでモチベ保てず、がっつりさぼり中。

技術的に難しそうな事は気合入るんだけど、どっちが黒番とかのラジオボタン
をどうしようかとか考え出すと、思考が止まってしまう(汗

一つの項目で諦めがつくまでに3日づつかかっていますorz
213: 310 2018/01/28(日)17:18 ID:0oeW9Kee(1) AAS
GUIのパスの処理を真剣にチェックしだしたら、特定のケースで動作が
おかしいので、丸々一晩デバッグしていました。ケースは特定できてた
のですが、ぱっと見まったく原因がわからず。

C#はオブジェクトを代入すると参照になるのでした。やられた。
やっぱCというのは名前だけですね。
219: 310 2018/01/31(水)00:01 ID:EjEC4Ae7(1) AAS
すまん。わからんけど、collecdt2というフォルダ(ファイルかも)が無いと言ってる?

こちらは、どうしても画面が崩れてしまうので、最初から作り直し。
原因は、トップのFormでauto resizeをtrueにしていた事でした。

ゲームの進行を上手に管理する方法が無いか考えていると、つい寝てしまうorz
223: 310 2018/02/04(日)20:16 ID:Wmf+lsae(1) AAS
他人のコードは読みづらいですよね。
1年前に書いた自分のコードもですがorz

Theano動作おめでとうございます。良かったです。

こちらは…GUI作るのに嫌気がさして、学習部をいじっていましたが、
そろそろ〜30手の評価関数もそれほど酷いものではなさそうな気がしてきて、
中盤探索9手読み(なんの工夫も無し)で記譜作れる事に思い至りまして。
つまり、MCTSより短時間で記譜作成できると…。
省3
226: 310 2018/02/05(月)23:37 ID:tGe3CIWd(1) AAS
相変わらず、GUIから逃げています。

アルファ碁でいうところのポリシーネットの学習を放棄して、代わりに評価値から
P(UCT探索に対する絞り込み項)を生成していましたが、これをQ(UCT探索の
予想スコア:これまでの探索の加重平均)から、1プレイアウト毎に再計算するよう
にしてみました。

多少探索速度は落ちますが、良い感じかなぁ。
228: 310 2018/02/09(金)23:42 ID:XzN5+u9b(1) AAS
新言語習得はストレスですよね。
C#ですら混乱して、C++に帰りたくなってます(汗

というか、メモリー管理できないC#にいらついて、記譜作成回りをいじって
慰みにしています。中盤探索に置換表を足して、反復深化っぽくしてみま
したが、あんまり早くならなくてがっかり。

Python本はまだ買ってません。ウェブ上の入門を眺めたくらいです。

Pythonは構造やら変数の型の考えやら、落とし穴になりそうなところが
省2
235: 310 2018/02/13(火)13:07 ID:SwoVylIU(1) AAS
アルファ碁の論文に書いてあったかな。次の1手的には意味なさそうだけど、
有った方が強くなるので外せなかったみたいな事が書いてあったような。

今現在の思いつきですが、ツリーサーチの末端近くでは、手の流れに応じて
点数が変わる事で、そのツリーのルート側の評価(加重平均)に影響が出てくる
可能性はある。

囲碁の場合、同一盤面が出る可能性が非常に高いのだけど、そこに至る経路で
隙があると、相手にその隙を突かれて、分岐が生じる事で、その点数は無意味に
省6
237: 310 2018/02/14(水)20:49 ID:I/pUqAGs(1) AAS
単にGUIが嫌いなんですorz

凝りたい気持ちと、画面遷移の罠から、心がデッドロックを起こして、
しまいに面倒くさくなってしまうという。
241: 310 2018/02/17(土)21:53 ID:vz2S+0Ke(1) AAS
ドタバタしながら音だけ聞いていたけど、なんか普通に互角から徐々に優勢を
築いて、相手の奇手にも動ぜずにさばいて、勝利って感じで、強さが際立って
いましたね。

これで勝っても漫画なら編集長にバカにされるレベルと言われていましたが、
本当に笑うしかないですね。
248: 310 2018/02/19(月)23:48 ID:KY7Wcd5F(1/2) AAS
PythonからC++関数を呼べるみたいですね。
C++からPythonも呼べるみたいです。
前にPythonに手を出そうかと思った時にググったら出てきました。
前者の方が解説が多かったと思います。

自分はBitboardを使いまくりなので、Pythonに手を出しあぐねていました。
また、評価関数の学習部と、評価値計算をうまく分離できれば、前者を
Python、後者をC++で書けないかなぁと思っていますが、im2col関数の
省1
249: 310 2018/02/19(月)23:56 ID:KY7Wcd5F(2/2) AAS
ここ数日強化学習の結果がよさげになってきたので、結果の良かった学習方法に
集中させたら、また変な学習になってしまったようで、迷走中です。

学習の具合が良いと、色々な探索も速度アップするんだけど、具合が悪いと全部
悪循環になってしまうという。

仕方無いので、中盤探索の反復深化を作り、その結果を置換表に溜めてオーダ
リングを行うようにしてみましたが、効果があったのかよくわからない罠。
こちらも、学習の具合が良くなったら、急激に効果が表れるのではないかと期待
省1
253: 310 2018/02/22(木)01:36 ID:pKMuaeJh(1) AAS
評価関数がどんどん悪化していく罠。
頭に来たので、評価関数をステージ分割。

ステージ分割すると学習部分の全面書き直しとなる。
どうせニューラルネットは使わないと決めたので、線形回帰にスケールダウン。

またしてもゴチャゴチャしてきた部分を全面書き直しパターンへ。

もうGUIはすっかり忘れていますorz
264: 310 2018/02/28(水)22:12 ID:4D1Jf52Q(1) AAS
評価関数変更ついでにまるっと作り直してます。
自己対戦など、汚いコードを綺麗に書き直し。
かけた工数的には自己対戦の方が大変だったかも。

評価関数を1手毎のステージ分割で60ステージにして、学習し直しです。
これで序盤を学習させると終盤が狂う問題は解消されると信じていますが、
学習に60倍の時間がかかる事が予想されるという状態で、記譜を幾ら作って
も追い付かない感じなので、強化学習主体にするつもりです。
省3
281
(1): 310 2018/03/08(木)00:53 ID:KJS05rsc(1/2) AAS
新評価関数版ようやく一通りできた。
強化学習にすごーく時間がかかりそう(汗

というわけでNew PC見繕ってます。
ノートPCでi7-8700Kの6コア12スレッドにメモリー32メガで
GTX1080搭載のノートPCがある。

むむむ。
287: 310 2018/03/08(木)23:33 ID:KJS05rsc(2/2) AAS
どもです。
お高いですが、デスクトップのフルスペックの1/3以下で済むようです。

回しっぱなしの奴がレアケースで異常終了すると萎えますね。
自分の奴は、たぶん怪しいところはほぼ蓋をしているので、今は安心しています。

とはいえ、評価値の保存に数秒かかるようになってしまったので、保存中にうっかり
終了してウェイトファイルを破壊しないように、いくつか策を講じました。最近はOSの
アップデートで勝手に再起動されちゃうので。
289: 310 2018/03/10(土)19:53 ID:jEGGoWyJ(1/2) AAS
あ、価格と性能です(^^;

強化学習に凡ミス発見。
強化学習が良いのは、学習し続ければ何とか復旧できると思えるところorz
291
(1): 310 2018/03/10(土)23:47 ID:jEGGoWyJ(2/2) AAS
こいつです。
外部リンク[php]:www.pc-koubou.jp

i9-7080XEのデスクトップだとメモリー頑張ると100万ですからね…
294: 310 2018/03/14(水)21:17 ID:Hsr0gVbu(1) AAS
うぬぬ。強化学習でどこかおかしい。
強化学習単純化しすぎちゃったかなぁ。

暫定的にひたすら記譜作成&記譜学習に戻しました。
遡り30手が鬼門。記譜学習で、ここをクリアする事を当面の目標にします。

とはいえ、残り29手完全読み切りの記譜がそれなりにあるのは、以前では
考えられない状況ではありますが。
295: 310 2018/03/15(木)22:46 ID:CxmBs8oA(1) AAS
強化学習がおかしいというより、記譜のパターンが圧倒的に足りていなかった
のかもと思い始めました。それによって、着手して分岐しても±0となっている
みたいな。

とりあえず、記譜の増殖手段を模索中。
今は、ヌルウィンドウサーチを使用して、遡り探索を行っている関係で、間違った
着手(石損となる手)を捨ててますが、ある程度までその手も読み切って、記譜に
加えても良いのかなぁと思っています。
省3
296: 310 2018/03/17(土)02:14 ID:Foa7nGV6(1) AAS
なんとなく想像しただけですが、何が悪かったのかわかり始めました。
今の学習は「良い手」しか学習していないという事です。

序盤はある程度ランダムな着手を入れて、結果がばらつくようにしていますが、
途中から読みを入れて、良い手だけで着手し、その結果を遡りで訂正しています。
遡りが有効なのは30手くらいまでで、序盤のランダムは20手程度までに抑えて
あります。とすると、遡れる範囲では、悪手を打ったらどういう事になるのかという
学習が抜けている。間違えた着手もちょっとだけ悪いだけでです。結果、最善手の
省11
301: 310 2018/03/25(日)02:23 ID:Yig4cMbl(1) AAS
分岐をすべて記譜にリストアップするようにしてから、爆発的に記譜が増えてます。
2000程度だったのが、15000超えました。

が、まだまだスカスカみたいです。

ここまでするんなら、真面目に自己対戦して遡りせずに、ランダム着手に対して
分岐をリストアップさせても一緒というか、早い気がしてきています(汗
302: 310 2018/03/31(土)01:38 ID:h3UgGfs1(1/2) AAS
ランダム着手も追加して記譜増殖中。ただいま32000超え。
もっとも、残り数手とかの記譜もあるけど(汗

ステージ分割しているので、記譜がなかなか生成されない25〜30手近辺で
非常に少ない教師データで何度も学習する事になり、そのあたりが極端な
過学習になってしまった。

解消方法をいくつか検討中です。
1)時間かかっても良いので、25〜30手の記譜ができるまで頑張る
省5
303: 310 2018/03/31(土)01:43 ID:h3UgGfs1(2/2) AAS
あと、時々スコア指定(ヌルウィンドウサーチ)の記譜作成処理で
エラー(スコア間違い)が出る時がある。

運が悪い事にハンドリングミスその他で、記譜を残せていないので、
現象の特定ができていない。

頻度としては数日に1回くらい。

たぶん、全滅と直前のパスがらみだと思うんだけど。
306: 310 2018/04/01(日)01:07 ID:OBeH+1OH(1) AAS
おお。どんどん進んでますね。

こちらは、昨夜のバグの現象は特定しました。
スコアが62や−62で、mtd(f)の探索開始が64や−64の時に、
置換表に残った64や−64が悪さして、64や−64と誤答する模様。

とはいえ、どこを直すべきかはわかりません。探索開始が64や−64
の時に、62や−62にしてやる事で、姑息的に回避はできるので後回し。

あと、記譜作成に色々機能を加えていたら、どこかがおかしそうだという
省7
308: 310 2018/04/01(日)13:49 ID:DAl+8Sdv(1) AAS
バグ問題は、結局姑息的手段では回避できず。
全滅がらみでほかのケースでも誤答するケースが発生しました。
元々FFO#59用にmin-Max探索に入れていた、全滅時の処理くらいしか
原因となりそうなものが思い当たらなかったので、とりあえずコメントアウト
して様子見です。全滅時の探索が速度低下しますが、仕方がありません。
309: 310 2018/04/02(月)20:15 ID:9LYme7cN(1) AAS
結局バグ問題は…迷宮入り臭いです。

記譜作成で負荷テスト並みに探索を繰り返すと、全滅絡まなくても間違うケースが
出てきました。再現性が無いのが辛いところ。

その昔悩んでいた時も、やっぱり置換表がらみの問題で迷宮入りでしたが、
今回も、ケチって置換表を極力クリアせずに使用していた事から、何らかの
矛盾が起きているようです。それを言っちゃうと、置換表付mtd(f)でf値を変え
ながら探索することも、またその時に作成された置換表を流用して記譜作成
省11
313: 310 2018/04/06(金)22:00 ID:952uhqxW(1) AAS
誤答問題は、置換表クリアで解消しました。
違う局面の探索で使用した置換表データは使いまわしてはいけないという事で。
なんか、結果的に、2年くらい前にも同じ事で騒いでいたような。

色々整ってきたので、あとはひたすら記譜作成しながら学習を回すだけになって
しまって、暇になってます。別PC買ってそっちで学習させながら、別の事をはじめ
ようかなぁと思い始めています。
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.048s