- コンピューター囲碁ソフトについて語るスレ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の進化系として もっと評価すべきだと考えます。 既に評価関数が存在しているゲームで、パフォーマンスを改善する可能性があると言う事です。
|