トップページ > 囲碁・オセロ > 2017年04月11日 > 9r5b5IUH

書き込み順位&時間帯一覧

10 位/137 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000001225



使用した名前一覧書き込んだスレッド一覧
名無し名人
コンピューター囲碁ソフトについて語るスレ50 [無断転載禁止]©2ch.net

書き込みレス一覧

コンピューター囲碁ソフトについて語るスレ50 [無断転載禁止]©2ch.net
413 :名無し名人[sage]:2017/04/11(火) 21:51:40.83 ID:9r5b5IUH
えっと。MCTSにアルファ碁の論文の肝を適用してオセロAIを作ってます。

オセロみたいに読み優先のゲームにおいて、MCTSは役に立たないと思っていましたが、
元来のひねくれ者故、いろいろやってましたが、オセロには既に評価関数が存在すると
言う事で、後半部分のTree searchに対する改良を組み込んでみた所・・・
既存の最強クラスのオセロプログラムの中盤と、御せるレベルのAIが、現実にできて
しまいました。つまり、人間で勝てる人はいないという事です。別板で勝利した棋譜を
何個か晒しています。

更に付け加えるなら、オセロ特有の戦略みたいな、開発者が自身のゲームに対する
知見を加えるような仕組み、ほぼ皆無の状況で、既存のオセロプログラムの中盤探索
に優越できそうなものができてしまいました。

アルファ碁の論文は、DCNNの評価関数ところがキャッチーなので、皆の注目がそこに
集まってしまっていますが、実のところ、評価関数が無い前提で開発されていたMCTSに
評価関数を組み合わせたら、「ゲーム特有の知見なしで、汎用的に強いAIができる」かも
しれないよという所に、というか、ゲームの知識が薄くても評価関数させあれば汎用的に
強いAIが作れますよという所に、あの論文のすごみがあるのではないかと思う次第です。

思うに、評価関数に、積極的に評価すべき手の選択に関与させる事で、従来のmin-Max
では実現不可能だった深さの探索が、評価関数さえそこそこ合っていればできるように
なるという点で、MCTSにもアドバンテージがあるのではないかと思いいたった次第です。
縦深の深さですね。縦深の方向が間違っていたら目も当てられませんが、合っている
事が評価関数で保証されていますので。

というわけで、他のゲームに使ってみるべきは、DCNNではなく論文でPUCTと書かれて
いるUCT探索アルゴリズムの改良であると、特に、既に評価関数が存在しているゲーム
においてはと、声を大にして言いたいと思います。
コンピューター囲碁ソフトについて語るスレ50 [無断転載禁止]©2ch.net
417 :名無し名人[sage]:2017/04/11(火) 22:25:09.23 ID:9r5b5IUH
>>416
最強クラスかどうかというと儀もがあるけど、WZebraというオセロAIの中盤26手読み
(定石DBなし)と対戦して、まだ数回対戦ですが、勝ち越せると判断しています。

計算コスト的には、こちらは相手入力待ちのバックグラウンド探索をしていますが、
1手20秒+探索延長あり(ゲーム無いで1〜2回)という事で、探索時間的にも、
相手AIとほぼ同じ時間使用でのゲームになります。

探索部の改良は、アルファ碁の論文そのままです。
ゲーム中にプレイアウトを使用しています。

強化学習は一切行わず、既存のオセロAIと同様に、既に存在する棋譜から作った
評価関数を使用しています。

今AI内では、ゲーム依存な個所は、評価関数と着手可能位置以外は、偶数理論も
開放度理論も、何にも使用していません。
コンピューター囲碁ソフトについて語るスレ50 [無断転載禁止]©2ch.net
418 :名無し名人[sage]:2017/04/11(火) 22:34:52.47 ID:9r5b5IUH
>>416
ま、珍しくまともな書き込みとか書かれていますが、僕が自分の開発の経緯を
書いたのは、あなたがあまりに変な主張をされるから、反例をあげようとしたと
言う点にあります。

正直、すり寄られても気持ち悪いので、思いっきり「嘘つき」と罵倒してもらいたい
と思います。
コンピューター囲碁ソフトについて語るスレ50 [無断転載禁止]©2ch.net
421 :名無し名人[sage]:2017/04/11(火) 23:17:32.89 ID:9r5b5IUH
>>419
一般的にオセロAIは、終盤はDBを使用せずに単純に完全読み切りを行っています。
残り24手くらいまでは短時間で読み切れます。
序盤はDB化していますが、オセロAIの多くは、過去の対戦からDBにデータを記録し、
同じ負け方はしないように作られていますので、今のオセロAIの強さのは実際のところ
DBの優劣で決まります。

しかし、それではアルゴリズムの勝負にならないので、今回はWZebraには終盤34手
目で勝敗判定。35手目から完全読み切り。定石DB不使用という事に設定。こちらは、
定石DBも終盤読み切りも使用していません。ゲーム開始直後(初手F5のみ固定)から、
全てMCTS探索をしています。

20秒探索で何手まで読めるのかは、ゲームの進行度合いにもよります。
序盤では、正直15手くらいが関の山ですが、それで間違った答えを出さないのでOKです。
25〜30手目までには、ツリーはそれが正解手順ではなくとも、ゲーム終端まで伸びて
います。この辺は定数の設定次第な面はあるのですが、評価関数が選択すべき手の
範囲を狭めてくれていますので、通所のMCTSと比較して、縦深方向に探索を集中させる
設定にしています。

そして、典型的な勝利パターンでは、30手近辺でWZebraに読み勝っているという事。
30手目でWZebraが+2と評価している局面で、既に55%くらいの評価値になって、
32手目でWZebraが±0と評価している局面で60%超え。WZebraが勝敗判定をしたとき
には、既に勝っているという形になります。注)モンテカルロなので手の揺らぎはあります。
逆に負ける時は、50%+αから一気に30%近辺まで落ちます。

もちろん、終局までツリーが伸びていても、それが正しい探索である保障はありません。
大事なのは、次の1手を判断するに足るプレイアウトが行われているかであり、それが
行われているから、26手読みに対抗できているのだと言う事です。

なお、自分の中では、まぁまぁ正しい次の1手を導くプレイアウト数はルートノードで
10万くらいじゃないかと思っています。それゆえ、20秒でプレイアウト数が不足して
いるときは、探索延長をしています。設定や評価関数の学習次第で減らせる数字で
ありますが、今の段階では、この数字です。

アルファ碁のPUCTを導入する前は、100万プレイアウトでも不足していました。
コンピューター囲碁ソフトについて語るスレ50 [無断転載禁止]©2ch.net
422 :名無し名人[sage]:2017/04/11(火) 23:31:38.91 ID:9r5b5IUH
補足です。

自分はもともとmin-Maxで開発をしていました。
その時のプログラムは、オセロゲーム固有の特徴を加味しようと努力はしていましたが、
やはり既存のプログラムの水準まで達していなかったためか、例えばWZebraに勝てる
AIは作れませんでした。

その後MCTSに移行しましたが、当然弱くなりました。

今回PUCTなアルゴリズムを取り入れたAIでは、評価関数は基本的にmin-Max時代の
ものと同じ。その他、高速化に寄与するオセロ関連のライブラリも共通となっています。
MCTS時には、プレイアウトの精度を増そうとさまざまなゲームの知見(ヒューリスティックス)
を試していましたが、PUCTでは途中でそれらが邪魔になっている事に気づき、全て削除
しています。

つまり、自分の作ったAIの中では(他の条件が一定という意味で)、min-MaxよりPUCTの
方が強いという事であります。

専用は汎用より強いというのは、同じアルゴリズムにおいて語られるべき言葉であり、
アルゴリズムが違う場合には言えない事。まして、学術の世界においては汎用性が高い
AIの方が優れている事から、僕はPUCTというアルゴリズムがMCTSの進化系として
もっと評価すべきだと考えます。

既に評価関数が存在しているゲームで、パフォーマンスを改善する可能性があると言う事です。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。