思うだけで学ばない日記 2.0

思うだけで学ばない日記から移転しました☆!よろしくお願いします。

最善手の誤差感度と共謀数

相変わらず固定深さまでの探索で考える。
探索のルートノードはORノード(自己手番)である。探索の末端ノードもORノードに揃えたとする。
前々回のエントリで固定深さまでのmin-max探索において無限に高精度な評価関数の存在を示せたから、この線からまず入る。すなわち、探索の全ての末端ノードに誤差無し・精度∞の真の評価値が存在するとして、探索のルートノードから始まる真の最善手の連鎖*1と交差する末端ノードx(当然真の最善手の読み筋上にある)の評価値best_valueが、xからルートノードrootに上がっていく様子を思い描いてみよう。

best_valueは、rootに達するまで次の経過を辿る。
 (末端ノードx評価)→min{}→max{}→min{}→...→max{}→min{}→max{}→(ルートノード到達)
(min{}とmax{}は同数)

さしあたりbest_valueは誤差無しで得られたものとして、このrootへの到達が他の末端ノード評価値の評価誤差によって邪魔されない条件を考えてみる。

上記の到達パスにおいて、
min{}の対象となった評価値全体からbest_valueを除いたものの和集合をUB、
max{}の対象となった評価値全体からbest_valueを除いたものの和集合をLBとおくと、
best_valueがrootに到達する条件は次のように書ける。
 max{LB}≦best_value≦min{UB} ・・・(1)

、、、
、、、
、、、
、、、このLB,UBの定義では後の話の展開がイクナイorz
共謀数に話をつなげるためにはノードの区別をはっきりさせることが必要であって、異なる末端ノードの評価値同士は、値が等しくても区別しておきたい。厳密に取り扱うには、値の出自である末端ノードと評価値とのtupleでも考えてそれをUBやLBの元にすべきなのだが、それをしても複雑化するだけで実態の把握に寄与しないからやめておいて、かわりに、「異なるノードの評価値は無条件に無限小以上の違いを持つ」と見なしてUBやLBの定義は上のまま変えない
、ことにする。つまり出自の末端ノードが異なる限り3≠3とみなす*2

さてヒューリスティックな手段で構成された世間一般の評価関数Hは水平線の向こうの未知の情報を仮定で補っているから評価値に必ず何がしかの誤差をどこかで発生する。LBやUBの元を求める際もこれを免れない、ということはmax{LB}やmin{UB}についても誤差が生じる危険性がある。ノードxの真の評価値(正解)をV(x)、評価関数Hで評価したときの誤差をε(x)と書くことにすると、
 max{LB}の誤差 = max{x∈LB|V(x)+ε(x)} - max{LB}
 min{UB}の誤差 = max{x∈UB|V(x)+ε(x)} - max{UB}
ので、これらを式(1)に代入するとbest_valueがrootに到達する条件は
 max{x∈LB|V(x)+ε(x)}≦best_value≦min{x∈UB|V(x)+ε(x)} ・・・(2)
だる。これはmin{}やmax{}を外せて、次のように書ける。
 (∀x∈LB: ε'(x)≦best_value - V(x)) かつ (∀x∈UB: ε'(x)≦V(x) - best_value) ・・・(2)'
ただしε'は、V(x)からbest_value方向に向かう向きが正となるようにεの符号を付け直した量(もちろん|ε'|=|ε|)。

式(2)'は、LBやUBの元がbest_value付近に集中していると成立し難い。なぜなら、そうなればなるほどLBやUBのより多くの元(=多数の末端ノードの評価値)について、ε'がより小さい上限で押さえられねばならないから。

つまり、rootの共謀数が大きいと式(2)'ひいては式(1)の成立がシビアになり、したがって評価関数の誤差により最善手を誤る危険性が増す傾向が大きくなる(誤差に対する感度が大きくなる傾向が増す)、

とGMA0BNは勝手に思っているらしい、

*1:これはゲーム終局まで読み切るmin-max探索で得られる

*2:暴挙っていやー暴挙だが直そうと思えばいつでもTupleを使った厳密表現に直せるハズので妥当性わ失われていないハズ。