ロシアンルーレットは, 確率的に処理を打ち切ることで計算コストを削減しつつ, 期待値を保つ手法であり, 今回はその動作原理を確認してみる.
ロシアンルーレットの定義#
確率変数 X と ζ∼U(0,1) が独立であり, 0<q<1 とする. このとき, 次のように定義する.
Xrr={qX0ζ<qotherwise この期待値は,
E[Xrr]=E[qXζ<q]P(ζ<q)+E[0∣ζ≥q]P(ζ≥q)=q1E[X]q+E[0](1−q)=E[X] となり, 期待値は保存される. この性質により, 確率的な打ち切りを行っても, 統計的に偏りのない推定が可能になる.
補足: 期待値について#
期待値に全確率の定理を適用すると,
E[X]=i∑xiP(X=xi)=i∑xij∑P(X=xi∣Yj)P(Yj)(Law of total probability)=j∑(i∑xiP(X=xi∣Yj))P(Yj)=j∑E[X∣Yj]P(Yj) NOTE条件付き確率による全確率の定理:
標本空間 Ω が互いに排反な N 個の事象 B1,…,BN によって分割されているとする. このとき, 任意の事象 A に対して次が成り立つ.
P(A)=i∑P(A∩Bi) さらに P(Bi)>0 であるとき, 条件付き確率の定義より,
P(A∣Bi)=P(Bi)P(A∩Bi) これを用いると, P(A) は次のように表せる.
P(A)=i∑P(A∣Bi)P(Bi)
指示関数を使った表記#
ζ∼U(0,1) に対して, 指示関数 1ζ<q を
1ζ<q={10ζ<qotherwise と定義すると, Xrr=qX1ζ<q と書ける. X と ζ は独立であることから,
E[Xrr]=E[qX1ζ<q]=E[qX]E[1ζ<q]=q1E[X]P(ζ<q)=q1E[X]q=E[X] 繰り返しと打ち切り#
次のような絶対収束する無限級数を考える.
S=k=0∑∞ak この和を有限の試行回数で評価したいとする. そこで, 各項 ak を確率 q で次に進めるとし, 打ち切り確率を 1−q とする. このような設定で, 確率変数 N∼G(1−q) に従って, 次のような近似的な和を定義できる.
Srr=k=0∑NP(N≥k)ak 幾何分布 G(1−q) の性質から P(N≥k)=qk なので,
Srr=k=0∑Nqkak この期待値は,
E[Srr]=E[k=0∑∞qkak1k≤N]=k=0∑∞qkakE[1k≤N]=k=0∑∞qkakP(N≥k)=k=0∑∞qkakqk=k=0∑∞ak=S 例: 指数関数のマクローリン展開#
指数関数のマクローリン展開は次のように表される.
ex=k=0∑∞k!xk この展開に対しても, 近似的な和を定義できる.
Srr=k=0∑Nk!P(N≥k)xk この期待値は,
E[Srr]=E[k=0∑∞k!P(N≥k)xk1k≤N]=k=0∑∞k!xk=ex まとめ#
今回は, 固定された q を用いてロシアンルーレットの基本的な性質を確認した. 実際の応用, 例えばパストレーシングでは, 経路の貢献度に応じて q を動的に調整することで, より柔軟かつ効率的な処理が行われる.