420 likes | 571 Views
投入計算量の有限性に基づく UCT 探索の枝刈り. 新領域創成科学研究科 基盤情報学専攻 近山研究室 47-076308 北川竜平. はじめに. 時間が限られている状態で最大の成果を得たい時には 現時点で良さそうなことを重点的に考える 考えても無駄そうなことは早めに打ち切る 例:数学の問題集 家で解くときは時間がたくさんあるので全ての問題を解いてみる 試験等で時間が限られている時は解けそうな問題から解く 解くのが難しそうなら後回し この考え方でアルゴリズムの性能強化を行う. 本研究の目的. 対象 非常に難しい問題を解くアルゴリズム
E N D
投入計算量の有限性に基づくUCT探索の枝刈り 新領域創成科学研究科 基盤情報学専攻 近山研究室 47-076308 北川竜平
はじめに • 時間が限られている状態で最大の成果を得たい時には • 現時点で良さそうなことを重点的に考える • 考えても無駄そうなことは早めに打ち切る • 例:数学の問題集 • 家で解くときは時間がたくさんあるので全ての問題を解いてみる • 試験等で時間が限られている時は解けそうな問題から解く • 解くのが難しそうなら後回し • この考え方でアルゴリズムの性能強化を行う
本研究の目的 • 対象 • 非常に難しい問題を解くアルゴリズム • 処理性能の低いCPU(組み込み用等)上で実行されるアルゴリズム • 実用的な時間内で精度の高い解が得られるとは限らない • 投入できる計算量は有限 • 使用可能な残りの計算量を意識させることでアルゴリズムの性能強化を行う • ゲーム木探索を例として、この考え方の有効性を実証 • 解くのが非常に難しい問題 • 処理性能の低いCPU上での実行も想定可能 (携帯ゲーム機等) • 評価が簡単
本研究の手法 • 残り探索時間を考慮することによる探索の放棄 • いくつかの選択肢の中から最善のものを選ぶ問題 • 評価値が一番高いものが最善 • 探索できる時間が までなら選択肢Bが選択肢Aを超えることはない • 選択肢Bの探索を放棄してもよい • 探索できる時間が までなら選択肢Bが選択肢Aを超える可能性はある • 選択肢Bの探索を放棄してはいけない 評価値 それまでの評価値 評価値の推定値の上限下限 選択肢A 選択肢B 時間
本研究の位置づけ • 投入計算量の有限性を意識することによるアルゴリズムの性能強化手法の提案 • ゲーム木探索の性能強化手法の提案 • ゲームの知識を用いない • ゲームの性質に依存しない
発表の流れ • はじめに • 背景 • 関連研究 • 提案手法 • 実験と評価 • 結論
背景 • ゲームにおける“解” • 与えられた局面において必勝の合法手を見つけること • ゲームを解くには、ゲーム木探索を使用 • ルートノード:現在局面・枝:合法手・子ノード:移行局面 初期局面においては解かれた 探索時間は数年単位 ゲーム木探索は、非常に難しい問題を解くアルゴリズムに相当
… … … ゲーム木探索 • 探索時間に上限が無ければ解くことは可能 • 全ての局面を探索 • 実際には有限時間で探索を打ち切って近似解を使用 • モンテカルロ木探索 [Brugmann. 1996] • UCT探索 [Kocsis et al. 2006] • 各合法手の評価値にはゲームのプレイアウトを繰り返した時の勝率を用いる • 評価値の精度はプレイアウトの回数に依存 • 評価関数を使用しないので知識表現の難しいゲームや新しいゲームで効果的 プレイアウト 何らかの方法により合法手を選ばせ、現在局面から終局までのゲームを行うこと プレイアウト 勝ち数 プレイアウト回数
プレイアウト • モンテカルロ木探索 • 全てランダムで選択 • UCT探索 • 未探索ノード:ランダム選択 • 探索されたことのあるノード:UCB値が一番高いノードを選択 • 勝率の高いノード・探索された回数の少ないノード程探索されやすくなる 勝率 親ノードのプレイアウト回数 そのノードのプレイアウト回数 正の定数
UCTの利点と欠点 • 利点 • 結果的に勝率が高くなりそうなノードを多く探索 • ゲーム木探索では選ばれそうな手の評価値の精度が高いことが重要 • 選ばれなさそうな手の評価値はデタラメで良い • 欠点 • 探索時間に上限が無ければ必ず最適な解が得られる • 実際は探索に使える時間は有限 • 探索時間の後半で、選ばれそうにない手に関しても探索してしまう
関連研究 • 選ばれそうな手のプレイアウトの回数を増やす • UCB1-Tuned [Gelly et al. 2006] • 多腕バンディット問題の手法 • Progressive Pruning [Bouzy. 2006] • モンテカルロ木探索の手法
UCB1-Tuned[Gelly et al. 2006] • UCB値を以下のように求める 親ノードのプレイアウト回数 勝率 そのノードのプレイアウト回数 を動的に求める 報酬の分散 • プレイアウトが多くなると、極端に勝率の低い枝が探索される可能性が低下
Progressive Pruning [Bouzy. 2006] • 勝率は正規分布に従うと仮定 • 区間推定で勝率の区間 を推定 • 手Aの より手Bの の方が大きければ、手Aが選択される可能性は低い • 手Aを枝刈り(=探索の放棄) 勝率 報酬の標準偏差 信頼係数 プレイアウト回数 手A 手B 手C 勝率
問題点 • 現時点までの探索の結果のみを用いて、選ばれそうな枝とそうでない枝とを判別している • 評価値は現時点までの結果と将来の結果に影響される • 将来の結果を推定することで、より少ないプレイアウト回数で枝刈りを進めることが可能
提案手法 • ゲーム木探索を行うのに使える時間は有限 • 今後プレイアウトが行える回数が有限 • 残りプレイアウト回数から、それぞれの手が到達する勝率の区間を推定 • 現在非常に勝率の低い枝は、今後のプレイアウトでたくさん勝ったとしても高い勝率にはならない • その区間から選択される可能性の低い手を判断
… … … 提案手法概要 残り10回しかプレイアウトができない 絶対に選択されないので枝刈り プレイアウト 勝ち数 プレイアウト数 勝ち数 結果が最善だった場合 プレイアウト数 勝ち数 結果が最悪だった場合 プレイアウト数
到達勝率の推定 • 合法手 が探索の終了時に到達する勝率 • 将来の報酬の平均 と推定残りプレイアウト回数 が必要 今後のプレイアウトによって得られる報酬の平均 今後のプレイアウトによる勝ち数 現在の勝ち数 探索終了時の推定勝ち数 現在のプレイアウト回数 推定残りプレイアウト回数 探索終了時の推定プレイアウト回数
将来報酬推定 • 今後のプレイアウトによって得られる報酬の平均の区間 を推定 • 報酬の平均は[0,1]のため最大値と最小値を設定 報酬の標準偏差 勝率 信頼係数 プレイアウト回数
残りプレイアウト回数推定 (1) • 安全な枝刈りにはプレイアウト回数の推定の上限が必要 • 区間推定によって合法手 でプレイアウトが行われる確率 の上限を推定 • 親ノードの残りプレイアウト回数 と に従う二項分布 から、合法手 の残りプレイアウト回数の上限 を推定 • 親ノードの残りプレイアウト回数 が必要 プレイアウト回数の標準偏差 今回のプレイアウトで枝刈りされない手の集合
残りプレイアウト回数推定 (2) • 1段目の残りプレイアウト回数 は探索打ち切り条件から推定 • 例:プレイアウトの回数、経過時間 • 2段目以降の残りプレイアウト回数は本提案手法による推定値を用いる
到達勝率区間推定 • 探索終了時に合法手 が到達する勝率の区間 を将来報酬の平均の区間 と推定残りプレイアウト回数 から推定 • 手Aの より手Bの の方が大きければ、手Aが選択される可能性は低い • 手Aを枝刈り(=探索の放棄) 手A 手B 手C 勝率
枝刈り条件 • を満たす枝 を枝刈り • は最大のものが正確であることが重要 • は全て正確である必要がある • 各種推定はプレイアウト回数が十分大きいときの近似 • 最低枝刈りプレイアウト回数 を超えた枝でなければ枝刈りを行わない
利点 • 探索した回数が多くなると枝刈りが進む • 残り計算量が少なくなると枝刈りが進む • 勝率の低い手のプレイアウト回数が少ないUCT探索でも効果が期待できる
実験 • 対象ゲーム • 囲碁9路盤 コミ5目半 • 実験環境 • CPU Opteron 2.1GHz QuadCore • メモリ3GB • 実験のパラメータ • UCTとUCTにUCB1-Tunedを利用した探索(UCT-Tuned)に提案手法を実装
実験概要 • 推定実験 • 将来報酬推定、残りプレイアウト回数推定、到達勝率推定 • 枝刈り実験 • 枝刈りされた枝の割合、プレイアウト回数の割合、最善手を選ぶ可能性の変化 • 対戦実験 • 提案手法適用前と後との対戦結果、同一の相手に対する対戦結果
推定実験 • 全プレイアウト回数が10,000回の時点で推定 • その後10,000回プレイアウトを行い、実際の結果と推定を比較 • 初期局面に対して100回行い,推定失敗率の平均を求める • 1段目の手の推定について提示 • 将来報酬推定 • 残りプレイアウト回数推定 • 到達勝率推定
残りプレイアウト回数推定実験 UCT-Tuned UCT 青よりも上になっている点が推定を失敗したノード
将来報酬推定実験 UCT UCT-Tuned 青:推定の上限 紫:推定の下限 下限より下になる割合が高い
到達勝率推定実験 UCT-Tuned UCT 青:推定の上限 紫:推定の下限 上限より上になる割合が少ない方が枝刈りを失敗する可能性は低い
推定の失敗率 • 用いたパラメータによる失敗率が期待しているものより高い • 探索の前半と後半で得られる結果の質が変化することが原因 • 各ノードは前半はランダム、後半では勝ちそうな手を選びやすい
枝刈り実験 • 枝刈りに関する実験 • 枝刈りされた枝の割合 • プレイアウト回数の割合 • 枝刈りの影響に関する実験 • 真の最善手の評価順位の変化 • ランダムに作成した5手目の100局面 • 真の最善手は100,000回のプレイアウトを行うFuegoを用いて判断 • 1段目の手に関して提示
枝刈りされた枝の割合 UCT-Tuned UCT • 枝刈りされた枝の割合が下がることがあるのは、枝刈り条件の緩和による枝の復活のため • 残りプレイアウト回数が減ると、枝刈りされた枝が増加
プレイアウト回数の割合 • 提案手法を組み込むことで、選択された手のプレイアウト回数は増加 • 評価順位が上位のプレイアウト回数も増加 • 強い手に対する枝刈りが発生していなければ、性能向上が期待できる
最善手の評価順位 • 最善手に対する枝刈りは発生している • 最善手を選択する割合は上昇
枝刈りによる影響 • 枝刈りによって最善手を非常に悪い手と判断してしまうこともある • 行ってはいけない枝刈りの発生 • 最善手を選択する割合は増加 • 枝刈りによって、選択された手や評価順位が上位の手に関しての枝刈り回数は増加 • 最善手を枝刈りされたとしても、枝刈りされていない手の中から、最も良い手を選択する可能性は向上
対戦実験 • 提案手法適用前と後との対戦結果 • プレイアウト回数固定 • 探索時間固定 • 同一の相手に対する対戦結果 • 黒白50戦ずつの計100戦 • 有意水準5%の二項検定で有意に勝ち越したと判断された合計の勝ち数には*マーク
プレイアウト回数固定での対戦結果 提案手法適用後の適用前に対する勝ち数 UCT 1手20,000プレイアウト UCT-Tuned UCT,UCT-Tuned共に有意に勝ち越した
探索時間固定での対戦結果 提案手法適用後の適用前に対する勝ち数 UCT 1手2秒 UCT-Tuned UCT,UCT-Tuned共に有意に勝ち越した
同一相手に対する対戦結果 GnuGo level10に対する各種アルゴリズムの勝ち数 1手20,000プレイアウト 提案手法を用いることで勝率は上昇 UCT:有意に負け→有意な差無し UCT-Tuned:有意な差無し→有意に勝ち
まとめ • UCTを投入計算量の有限性から枝刈り • 残りプレイアウト回数から探索終了時の状態を推定 • ゲームの知識や性質に依存しない • 最善手に対して枝刈りを行う可能性はあるが、結果的には最善手を選択する可能性は上昇 • 推定の失敗は探索の前半と後半で得られる結果の質に違いがあるのが原因 • 提案手法を組み込むことでゲーム木探索の性能強化に成功 • UCTでは勝率8割以上、UCT-Tunedでは勝率6割以上 • 投入できる計算量を意識することでアルゴリズムの性能強化は可能であることを示すことができた
今後の課題 • 推定の改善 • 推定失敗率が期待されるものよりも高い • 探索の前半と後半で得られる報酬の質が違うため • 近いプレイアウトによるものを重視させる推定手法 • ゲーム木探索以外への応用 • 残り計算量を意識したアルゴリズム改善手法はゲーム木探索に限ったものではない
発表文献 • 査読付会議論文 • 北川竜平,三輪誠,近山隆. 麻雀の牌譜からの打ち手評価関数の学習. 第12回ゲームプログラミングワークショップ2007. pp.76--83,2007 • 北川竜平,栗田哲平,近山隆. 投入計算量の有限性に基づくUCT探索の枝刈り. 第13回ゲームプログラミングワークショップ2008. pp.46--53,2008 • 研究奨励賞受賞