730 文字
4 分
ロシアンルーレットについての考察

ロシアンルーレットは, 確率的に処理を打ち切ることで計算コストを削減しつつ, 期待値を保つ手法であり, 今回はその動作原理を確認してみる.

ロシアンルーレットの定義#

確率変数 XXζU(0,1)\zeta\sim U(0,1) が独立であり, 0<q<10\lt q\lt 1 とする. このとき, 次のように定義する.

Xrr={Xqζ<q0otherwiseX_{rr} = \begin{cases} \frac{X}{q} & \zeta\lt q\\ 0 & \text{otherwise} \end{cases}

この期待値は,

E[Xrr]=E[Xq|ζ<q]P(ζ<q)+E[0ζq]P(ζq)=1qE[X]q+E[0](1q)=E[X]\begin{align*} E[X_{rr}] &=E\left[\frac{X}{q}\middle|\zeta\lt q\right]\,P(\zeta\lt q) + E[0|\zeta\ge q]\,P(\zeta\ge q)\\ &=\frac{1}{q}\,E[X]\,q + E[0]\,(1-q) =E[X] \end{align*}

となり, 期待値は保存される. この性質により, 確率的な打ち切りを行っても, 統計的に偏りのない推定が可能になる.

補足: 期待値について#

期待値に全確率の定理を適用すると,

E[X]=ixiP(X=xi)=ixijP(X=xiYj)P(Yj)(Law of total probability)=j(ixiP(X=xiYj))P(Yj)=jE[XYj]P(Yj)\begin{align*} E[X] &=\sum_{i} x_{i}\,P(X=x_{i})\\ &=\sum_{i} x_{i} \sum_{j} P(X=x_{i}|Y_{j})\,P(Y_{j}) \quad \text{(Law of total probability)}\\ &=\sum_{j} \left(\sum_{i} x_{i}\,P(X=x_{i}|Y_{j})\right) P(Y_{j})\\ &=\sum_{j} E[X|Y_{j}]\,P(Y_{j}) \end{align*}
NOTE

条件付き確率による全確率の定理:

標本空間 Ω\Omega が互いに排反な NN 個の事象 B1,,BNB_{1},\dots,B_{N} によって分割されているとする. このとき, 任意の事象 AA に対して次が成り立つ.

P(A)=iP(ABi)P(A) =\sum_{i} P(A\cap B_{i})

さらに P(Bi)>0P(B_{i})\gt 0 であるとき, 条件付き確率の定義より,

P(ABi)=P(ABi)P(Bi)P(A|B_{i}) =\frac{P(A\cap B_{i})}{P(B_{i})}

これを用いると, P(A)P(A) は次のように表せる.

P(A)=iP(ABi)P(Bi)P(A) =\sum_{i} P(A|B_{i})\,P(B_{i})

指示関数を使った表記#

ζU(0,1)\zeta\sim U(0,1) に対して, 指示関数 1ζ<q1_{\zeta\lt q}

1ζ<q={1ζ<q0otherwise1_{\zeta\lt q} = \begin{cases} 1 & \zeta\lt q\\ 0 & \text{otherwise} \end{cases}

と定義すると, Xrr=Xq1ζ<qX_{rr}=\frac{X}{q}\,1_{\zeta\lt q} と書ける. XXζ\zeta は独立であることから,

E[Xrr]=E[Xq1ζ<q]=E[Xq]E[1ζ<q]=1qE[X]P(ζ<q)=1qE[X]q=E[X]E[X_{rr}] =E\left[\frac{X}{q}\,1_{\zeta\lt q}\right] =E\left[\frac{X}{q}\right]\,E[1_{\zeta\lt q}] =\frac{1}{q}\,E[X]\,P(\zeta\lt q) =\frac{1}{q}\,E[X]\,q =E[X]

繰り返しと打ち切り#

次のような絶対収束する無限級数を考える.

S=k=0akS =\sum_{k=0}^{\infty} a_{k}

この和を有限の試行回数で評価したいとする. そこで, 各項 aka_{k} を確率 qq で次に進めるとし, 打ち切り確率を 1q1-q とする. このような設定で, 確率変数 NG(1q)N\sim G(1-q) に従って, 次のような近似的な和を定義できる.

Srr=k=0NakP(Nk)S_{rr} =\sum_{k=0}^{N} \frac{a_{k}}{P(N\ge k)}

幾何分布 G(1q)G(1-q) の性質から P(Nk)=qkP(N\ge k)=q^{k} なので,

Srr=k=0NakqkS_{rr} =\sum_{k=0}^{N} \frac{a_{k}}{q^{k}}

この期待値は,

E[Srr]=E[k=0akqk1kN]=k=0akqkE[1kN]=k=0akqkP(Nk)=k=0akqkqk=k=0ak=S\begin{align*} E[S_{rr}] &=E\left[\sum_{k=0}^{\infty} \frac{a_{k}}{q^{k}}\,1_{k\le N}\right]\\ &=\sum_{k=0}^{\infty} \frac{a_{k}}{q^{k}}\,E\left[1_{k\le N}\right]\\ &=\sum_{k=0}^{\infty} \frac{a_{k}}{q^{k}}\,P(N\ge k)\\ &=\sum_{k=0}^{\infty} \frac{a_{k}}{q^{k}}\,q^{k} =\sum_{k=0}^{\infty} a_{k} =S \end{align*}

例: 指数関数のマクローリン展開#

指数関数のマクローリン展開は次のように表される.

ex=k=0xkk!e^{x} =\sum_{k=0}^{\infty} \frac{x^{k}}{k!}

この展開に対しても, 近似的な和を定義できる.

Srr=k=0Nxkk!P(Nk)S_{rr} =\sum_{k=0}^{N} \frac{x^{k}}{k!\,P(N\ge k)}

この期待値は,

E[Srr]=E[k=0xkk!P(Nk)1kN]=k=0xkk!=exE[S_{rr}] =E\left[\sum_{k=0}^{\infty} \frac{x^{k}}{k!\,P(N\ge k)}\,1_{k\le N}\right] =\sum_{k=0}^{\infty} \frac{x^{k}}{k!} =e^{x}

まとめ#

今回は, 固定された qq を用いてロシアンルーレットの基本的な性質を確認した. 実際の応用, 例えばパストレーシングでは, 経路の貢献度に応じて qq を動的に調整することで, より柔軟かつ効率的な処理が行われる.

Appendix: notebook#

References#

ロシアンルーレットについての考察
https://hasenpfote.netlify.app/posts/thoughts-on-rr/
作者
Hasenpfote
公開日
2025-06-02
ライセンス
CC BY-SA 4.0