last modified: 2021-10-18 03:00:01
このページではMathJaxによる数式表示を行っています。対応しているブラウザーであれば少し待てば数式が表示されます。
(画面左下にMathJaxのタイプセットステータスが表示されます。)
環境によっては表示が崩れているかもしれません。その際はブラウザーを変更してみてください。

Resampled Importance Sampling

このページでは目標の分布に近い分布を発生させる手法であるImportance Resamplingを重点的サンプリングに適用したResampled Importance Samplingを紹介します。

(Sampling) Importance Resampling

何らかの目標分布 $ \hat{p}(x) $ に沿ったサンプル列がほしいとき、簡単な分布であれば逆関数法(Inverse Transform Sampling)などが使われますが、難しい目標分布からのサンプリングの一手法としてSampling Importance Resampling (SIR)があります。この手法は次に示す3段階の手続きから構成されます。

  1. 簡単にサンプルできる提案分布 $ q(x) $ から候補サンプルを $ M $ 個生成する。これらのサンプルセットを $ \vec{x} = \Brc{x_1, \ldots x_M} $ とする。
  2. 各候補サンプル $ x_j $ に関してウェイト $ \displaystyle w(x_j) = \frac{\hat{p}(x_j)}{q(x_j)} $ を計算する。
  3. 候補サンプルセット $ \vec{x} $ の中からひとつのサンプル $ x_z \hspace{3mm} (1 \leq z \leq M) $ を各候補のウェイトに比例した確率で引き出す。

3つの手順 (1) Sampling (2) Importance (ウェイト)の計算 (3) Resamplingが名前の由来となっています。ここでは短くImportance Resamplingと呼びます。目標分布はPDFのように正規化されていなくても問題ありません。$ M \RAR \infty $ となれば達成される分布は目標分布に等しくなります。提案分布として一様分布を使う場合を考えると、一様分布から得た無限の数のサンプルから $ \hat{p}(x) $ に沿った確率で最終的なサンプルを引き出すことになるので、達成される分布が目標分布に一致するのは直感的にわかる気もします。提案分布として一様分布以外を使う場合は、候補サンプルの偏りを補償するために $ q(x) $ で割ることが意味を持ちます。逆に $ M = 1 $ の場合に達成される分布は提案分布 $ q(x) $ そのものになります。したがって、候補サンプル数 $ M $ は提案分布と目標分布を補間するパラメターと解釈することができます。

目標分布
図1. 目標分布

ここでは例として図1に示すような $ [0, 1.5) $ の範囲の目標分布を設定してImportance Resamplingを実行してみます。提案分布としては $ [0, 1.5) $ の区間における一様分布を使いました。候補サンプル数 $ M $ を1, 2, 4, 64と変化させた結果のヒストグラムを図2に示します。それぞれサンプル数は100000です。見ての通り $ M = 1 $ の場合には達成される分布は一様分布にそっており、$ M $ が増加するに従って目標分布の形状に近づいていることがわかります(図1の目標分布は正規化されおらず、一方図2のヒストグラムは正規化されているので縦軸の絶対的な大きさの比較には意味がありません。相対的な大きさ、形状が重要です)。

達成された分布の比較
図2. 達成された分布の比較

重点的サンプリングへの適用

重点的サンプリング (Importance Sampling, IS)による被積分関数 $ f(x) $ のモンテカルロ積分の推定関数は次の式で表されます。 \begin{equation} \Abk{I}_{\mathrm{IS}} = \frac{1}{N} \sum_{i = 1}^{N} \frac{f(x_i)}{p(x_i)} \label{eq:standard_IS_estimator} \end{equation} 基本的な重点的サンプリングでは、PDFとして解析的にサンプリングが可能な逆関数法が使えるものや、棄却サンプリングが使えるものなどが選ばれます。サンプルの生成にImportance Resamplingを用いた重点的サンプリングをResampled Importance Sampling (RIS)と呼びます[Talbot2005]。SIR(IR)をISに用いたものがRISです。用語がややこしいですね。

RISによる推定関数は次の式で表されます。 \begin{equation} \Abk{I}_{\mathrm{RIS}} = \frac{1}{N} \sum_{i = 1}^{N} \frac{f(x_i)}{\hat{p}(x_i)} \Prt{\frac{1}{M} \sum_{j = 1}^{M} \frac{\hat{p}(x_{i, j})}{q(x_{i, j})}} \label{eq:RIS_estimator} \end{equation} ここで $ x_i $ は $ i $ 回目のResamplingにおいてサンプルセット $ \vec{x}_i = \Brc{{x_{i, 0}, x_{i, 1}, \ldots x_{i, M}}} $ から選ばれたサンプル $ x_{z_{i}} \hspace{3mm} (1 \leq z_i \leq M) $ に対応します。
式 $ \eqref{eq:RIS_estimator} $ と標準的な重点的サンプリング $ \eqref{eq:standard_IS_estimator} $ を見比べると、RISの推定関数は、サンプルを目標分布 $ \hat{p}(x) $ からサンプルしたかのように振る舞っていると同時に、本当の分布ではない(かつ $ \hat{p}(x) $ は正規化されていない)ので補正項をかけている、と解釈することができます。注意点として、通常の重点的サンプリングにおけるPDF項はサンプルが決まれば一意に決まる値でしたが、RISの場合最終的なサンプル $ x_i $ を生成しうるサンプルセットとインデックスの組み合わせは無数に存在します。つまり、RISを標準的な重点的サンプリング $ \eqref{eq:standard_IS_estimator} $ の形のまま考えると、サンプルだけでなくサンプルに対応するPDFも確率変数になります。
補正項をよく見ると、これは被積分関数を目標分布 $ \hat{p}(x) $、PDFを提案分布 $ q(x) $ とした標準的な重点的サンプリングの式になっていることに気づきます。つまりRISではモンテカルロ積分を入れ子で実行していると解釈することもできます。さらに入れ子の段数を増やすことも可能で、2段階のRISによる推定関数は次の形になります。 \begin{equation*} \Abk{I}_{\mathrm{RIS}} = \frac{1}{N} \sum_{i = 1}^{N} \frac{f(x_i)}{\hat{p}_0(x_i)} \Brk{\frac{1}{M_0} \sum_{j = 1}^{M_0} \frac{\hat{p}_0(x_{i, j})}{\hat{p}_1(x_{i, j})} \Brk{\frac{1}{M_1} \sum_{k = 1}^{M_1} \frac{\hat{p}_1(x_{i, j, k})}{q(x_{i, j, k})}}} \end{equation*} ここでは最終的な目標分布が $ \hat{p}_0(x) $ によって表されていて、$ \hat{p}_0(x) $ のための提案分布はさらに内側のRISにおける目標分布 $ \hat{p}_1(x) $ となります。一般的な多段RISは次の形になります。 \begin{equation*} \Abk{I}_{\mathrm{RIS}} = \frac{1}{N} \sum_{i = 1}^{N} \frac{f(x_i)}{\hat{p}_0(x_i)} \Brk{\frac{1}{M_0} \sum_{j = 1}^{M_0} \frac{\hat{p}_0(x_{i, j})}{\hat{p}_1(x_{i, j})} \Brk{\frac{1}{M_1} \sum_{k = 1}^{M_1} \frac{\hat{p}_1(x_{i, j, k})}{\hat{p}_2(x_{i, j, k})} \cdots}} \end{equation*}

不偏推定量(unbiased)になる条件

通常の重点的サンプリングが不偏推定量となる条件は、被積分関数 $ f(x) $ が非ゼロの箇所では、PDF $ p(x) $ が必ずゼロより大きくなることでした。RISではこれが拡張され、被積分関数 $ f(x) $ が非ゼロの箇所では、目標分布 $ \hat{p}(x) $ と提案分布 $ q(x) $ の両方がゼロより大きくなる必要があります。RISが入れ子でモンテカルロ積分を実行しているという解釈からもなんとなくわかるかもしれません。多段階のRISの場合には最初の提案分布から最終的な目標分布に至るまでの途中の目標分布であり提案分布もすべて同じ条件を満たす必要があります。

複数の提案分布の使用

通常のRIS $ \eqref{eq:RIS_estimator} $ は $ M $ 個の候補サンプルの生成に使用する提案分布にはすべて同じ分布 $ q(x) $ を用いることになっていますが、実は複数の提案分布を用いることができます[Bitterli2020]。式で表すと次のようになります。 \begin{equation} \Abk{I}_{\mathrm{RIS}} = \frac{1}{N} \sum_{i = 1}^{N} \frac{f(x_i)}{\hat{p}(x_i)} \Prt{\frac{1}{M} \sum_{j = 1}^{M} \frac{\hat{p}(x_{i, j})}{q_j(x_{i, j})}} = \frac{1}{N} \sum_{i = 1}^{N} f(x_i) W(x_i, \vec{x}_i) \label{eq:multi_dist_RIS_estimator} \end{equation} 今後の説明のために標準的な重点的サンプリングにおけるPDFの逆数に相当する部分を以下のように $ W(x_z, \vec{x}) $ として表記しています。 \begin{equation} W(x_z, \vec{x}) = \frac{1}{\hat{p}(x_z)} \Prt{\frac{1}{M} \sum_{j = 1}^{M} \frac{\hat{p}(x_j)}{q_j(x_j)}} \label{eq:RIS_weight} \end{equation} 式 $ \eqref{eq:multi_dist_RIS_estimator} $ は式 $ \eqref{eq:RIS_estimator} $ とほぼ同じですが、提案分布 $ q(x) $ が $ q_j(x) $ に変わっています。もっと言えば外側の添字 $ i $ に関しても異なる分布や候補サンプル数、つまり $ q_{i, j} $ や $ M_i $ を考えることもできるみたいですが、ここでは簡単のため無視しています。様々な提案分布が使えるものの、ひとつでも「 $ f(x) $ が非ゼロの箇所で $ q_j(x) > 0 $ 」という条件を満たせなかった場合推定量には偏りが生じてしまいます。式 $ \eqref{eq:RIS_weight} $ の期待値が次のように表されます(導出)。 \begin{equation} \mathbb{E} \Brk{W(x_z, \vec{x})} = \frac{1}{p(x_z)} \frac{| Z(x_z) |}{M} \label{eq:RIS_weight_expected_value} \end{equation} ここで $ Z(x_z) = \Brc{j \;|\; 1 \leq j \leq M \wedge q_j(x_z) > 0} $ です。なんか数学っぽい表記で一瞬びびりますが、大したことは言ってなくて、これは $ M $ 個の提案分布のうち、$ q_j(x) > 0 $ となる $ j $ の集合です。例えば $ M = 4 $ で $ x_z $ に関してゼロより大きい値を持つ提案分布が2と4だった場合は $ Z(x_z) = \Brc{2, 4} $ です。すべての提案分布がゼロより大きいなら $ Z(x_z) = \Brc{1, 2, 3, 4} $ です。そして $ | Z(x_z) | $ は集合の要素の数を表しています。$ Z(x_z) = \Brc{2, 4} $ の場合は2、$ Z(x_z) = \Brc{1, 2, 3, 4} $ の場合は4です。$ p(x_z) $ は $ x_z $ が生成される本当のPDFを表しています。上でも書きましたが、Importance Resamplingで $ x_z $ を生成する場合、$ x_z $ を生成し得るサンプルセット $ \vec{x} $ は無数にあるのでPDF自体が確率変数になっていました。$ p(x_z) $ はその期待値となっています。
$ M $ 個の提案分布がすべて $ x_z $ を生成できる場合は $ | Z(x_z) | = M $ となるので、上の期待値は $ 1 \;/\; p(x_z) $ となり、推定関数はUnbiasedになります。$ x_z $ を生成し得ない提案分布が含まれている場合は上の期待値は本来の値より小さくなってしまうため、推定関数に偏りが生じます。

unbiased化

実はRISの推定関数 $ \eqref{eq:multi_dist_RIS_estimator} $ に簡単な修正を加えるだけで、前述の条件を満たさない提案分布があった場合でも推定関数をUnbiasedにすることができます。単に $ M $ で割っているところを $ | Z(x_z) | $ で割るように変更します。つまり次の式を推定関数とします。 \begin{equation} \Abk{I}_{\mathrm{RIS}} = \frac{1}{N} \sum_{i = 1}^{N} \frac{f(x_i)}{\hat{p}(x_i)} \Prt{\frac{1}{| Z(x_i) |} \sum_{j = 1}^{M} \frac{\hat{p}(x_{i, j})}{q_j(x_{i, j})}} \label{eq:naive_unbiased_RIS_estimator} \end{equation}

多重重点的サンプリング(MIS)のウェイト

前述の修正で晴れて不偏な推定関数が手に入ったのですが、$ x_z $ がどの提案分布から発生した場合でも等しいウェイト $ 1 \;/\; |Z(x_z)| $ を使用していることになります。様々な提案分布を等しく扱って良いのでしょうか。一方で提案分布ごとに異なるウェイトを与えつつUnbiasedにすることはできるのでしょうか。式 $ \eqref{eq:RIS_weight} $ を、$ 1 \;/\; M $ の代わりに任意のウェイト $ m_z(x_z) $ に置き換えて表してみます。 \begin{equation*} W(x_z, \vec{x}) = \frac{1}{\hat{p}(x_z)} m_z(x_z) \sum_{j = 1}^{M} \frac{\hat{p}(x_j)}{q_j(x_j)} \end{equation*} この式の期待値は次のようになります(導出)。 \begin{equation} \mathbb{E} \Brk{W(x_z, \vec{x})} = \frac{1}{p(x_z)} \sum_{j \in Z(x_z)} m_j(x_z) \label{eq:MIS_RIS_weight_expected_value} \end{equation} ここで改めて各サンプルの変数について確認すると、$ x_z $ はRISによって最終的に選ばれたサンプル、そして $ x_j $ は候補サンプルです($ x_z $ 自体を含みます)。この式よりRISの推定関数がUnbiasedとなる条件は、 $ \sum_{j \in Z(x_z)} m_j(x_z) = 1 $ であることは明らかです。この条件を満たしつつ好ましいウェイト計算の方法として「多重重点的サンプリング」で紹介したバランスヒューリスティックを使います。つまり $ m_z(x) $ を次のように計算します。 \begin{equation*} m_z(x) = \frac{q_z(x)}{\sum_{j = 1}^M q_j(x)} \end{equation*} 各サンプルや提案分布の添字がいろんな組み合わせで出てくるので混乱しそうになりますが、上の式を慎重に見てみてください。提案分布の値の評価は、ひとつのサンプル $ x $ についてのみ行われています。分子は $ x $ を生成した提案分布 $ q_z $ をそのまま $ x $ に関して評価、分母はすべての提案分布を $ x $ に関して評価したものの総和となります。このバランスヒューリスティックによるウェイトを使うことで、Unbiasedにしつつ前述の等しいウェイトよりも分散の低減が期待できます。

MISウェイトを用いたRISの解釈

以下に1サンプルMIS、マルチサンプルMIS、そしてMISウェイトを使用したRIS、それぞれの概要を並べて書いてみます。ウェイトとしてはバランスヒューリスティックを使います。

サンプルウェイト 推定関数 処理手順
1サンプルMIS $ \displaystyle w_z(x) = \frac{P_z q_z(x)}{\sum_{k = 1}^M P_k q_k(x)} $ $ \displaystyle \Abk{I} = w_z(x) \frac{f(x)}{P_z q_z(x)} $ 適当な(決定論的な)確率 $ P_z $ で戦略 $ z $ を選び、1つのサンプル $ x $ 生成、1サンプルで推定。
マルチサンプルMIS
(各戦略1サンプルずつの場合)
$ \displaystyle w_j(x_j) = \frac{q_j(x_j)}{\sum_{k = 1}^M q_k(x_j)} $ $ \displaystyle \Abk{I} = \sum_{j = 1}^M w_j(x_j) \frac{f(x_j)}{q_j(x_j)} $ 複数の戦略それぞれから1サンプルずつ生成、複数サンプルで推定。
RIS + MISウェイト
(各戦略1サンプルずつの場合)
$ \displaystyle w_z(x_z) = \frac{q_z(x_z)}{\sum_{k = 1}^M q_k(x_z)} $ $ \displaystyle \Abk{I} = w_z(x_z) \frac{f(x_z)}{P_z(x_z) q_z(x_z)} $ 複数の戦略それぞれから1サンプルずつ生成、サンプルウェイトを基にした確率 $ P_j(x_j) $ により戦略 $ z $ を決定、選んだ戦略から生成された1つのサンプル $ x_z $ で推定。

見比べてみるとMISウェイトを使用したRISは、サンプルウェイトはマルチサンプルMISと同じ形ですが、推定関数自体は1サンプルだけで推定を行うので1サンプルMISと似た形になっていることがわかります。1サンプルMISは実際のサンプリングは1種類の戦略に対してしか行わないので、サンプルに寄らない事前に決定できる確率で戦略を選ぶ必要があり、それを反映したウェイトが好ましいですが、RISの場合は複数の戦略からサンプリングを行うのでマルチサンプルMISのようなウェイトを使用することができます。このようにMISウェイトを使用したRISは2種類のMISの中間的なサンプリング手法として捉えることもできると思います。

光輸送問題への応用

direct lighting problem
図3. 直接光による反射光を推定する問題

RISの考え方を初めて見たとき、目標分布に沿ったサンプル生成としてのImportance Resamplingはわかるけど、RISはせっかく生成したサンプルを捨ててしまうのもったいなくない?と思うかもしれません(思いました)。RISの目標分布として被積分関数 $ f(x) $ を選んでしまうと、式 $ \eqref{eq:RIS_estimator} $ はほぼ標準的な重点的サンプリングの推定関数になります。実装上はRISの手続きの分のオーバーヘッドなどでむしろ遅くなってしまいます。そのためRISでは目標分布には被積分関数とは似てはいるものの異なる、そして $ f(x) $ よりも評価がずっと軽いものを選びたくなります。

光輸送問題への適用例として、図3に示す直接照明による反射光 $ L_r $ の推定問題を考えます。解きたい積分は次で表されます。 \begin{equation*} L_r(\vx \RAR \vz) = \int_\mathcal{M} f_s(\vy \RAR \vx \RAR \vz) L_e(\vy \RAR \vx) G(\vy \LRAR \vx) V(\vy \LRAR \vx) \d A(\vy) \end{equation*} ここで $ V(\vy \LRAR \vx) $ は光源上の点 $ \vy $ とシェーディング点 $ \vx $ の間の可視関数で遮蔽物が無い場合は1、ある場合は0となる二値関数です。幾何項 $ G $ に含めて考える場合もありますが、ここでは意図的に分けて書いています。「多重重点的サンプリング」でも紹介したように、BSDFに沿ったPDFや光源の発散度に沿ったPDFによる重点的サンプリングを使用することもできますが、理想的には被積分関数全体 $ f_s \cdot L_e \cdot G \cdot V $ に沿ったサンプリングを行いたいところです。RISは近似ではあるもののそのような分布に沿ったサンプリングを実現することができます。しかし、上でも説明したように被積分関数全体を目標分布とすることはRISとして無駄です。そこで、可視関数を省いた $ f_s \cdot L_e \cdot G $ を目標分布とすることを考えます。可視関数 $ V $ の評価はレイトレーシングの場合それなりのコストがかかるので、これを省いた残りの項は比較的軽量に評価することが可能で合理的な選択となります。

光源面の一様サンプリング 1spp RIS ($ M = 8 $) 1spp リファレンス
図4. 光輸送問題へのRIS適用例
モデルデータ: Morgan McGuire's Computer Graphics Archive

図4は光源面を一様サンプリングした場合の結果と、提案分布は一様サンプリングとして $ f_s \cdot L_e \cdot G $ を目標分布としたRISの結果の比較です。RISの候補サンプル数は $ M = 8 $ です。どちらとも最終的にシェーディングに使用したサンプル数は1です。見ての通りRISの分散が低減されていることがわかります(画像を大きめで見るとより差がわかりやすいでしょう)。しかしRISではかなりサンプル生成コストが大きくなっているかつ、$ M = 8 $ 程度の少ない候補サンプル数だと達成される分布もそこまで良くないので、総合的な効率はそこまで向上していません。パラメターをうまく調整すれば[Talbot2005]それなりの効率向上は見込めますが、RIS単体では若干心許ないのが正直なところです。

[Bitterli2020, Wyman2021]では、アニメーションのフレーム間や、空間的に隣接するピクセル間では被積分関数、目標分布が似ていることを利用して、時空間的に候補サンプルを共有・再利用することで実質の候補サンプル数を劇的に増やし驚異的な分散低減を実現しています。この時空間的な候補サンプルの再利用を行う際、サンプル生成元と再利用先では目標分布が似ているとはいっても、微妙に異なるためそのままでは推定値に統計的な偏りが生じます。これをunbiasedにするために上で紹介したような調整が使用されています。

また、このページで紹介したRISそのままでは大量の候補サンプルを使用する場合、サンプルを保持しておくためのメモリが問題になります。「Weighted Reservoir Sampling」ではRISと組み合わせることで実にエレガントにこの問題をクリアすることが可能なテクニックについて紹介します。

RISのウェイトの期待値の導出

まずサンプルセット $ \vec{x} $ を生成するPDFは次の式のように単純にそれぞれの提案分布 $ p_j $ からそれぞれのサンプル $ x_j $ を生成するPDFの積になります。 \begin{equation} p(\vec{x}) = \prod_{j = 1}^M p_j(x_j) \label{eq:sample_set_PDF} \end{equation} 次に、与えられたサンプルセット $ \vec{x} $ の $ z $ 番目の要素を選択する確率は各サンプルのウェイトから求められます。 \begin{equation} P(z | \vec{x}) = \frac{w_z(x_z)}{\sum_{j = 1}^M w_j(x_j)} \label{eq:selection_prob} \end{equation} サンプルセット $ \vec{x} $ を生成した上で $ z $ 番目の要素を選択するPDFは式 $ \eqref{eq:sample_set_PDF} $ と式 $ \eqref{eq:selection_prob} $ の積になります。 \begin{equation*} p(\vec{x}, z) = p(\vec{x}) P(z | \vec{x}) = \Brk{\prod_{j = 1}^M p_j(x_j)} \frac{w_z(x_z)}{\sum_{j = 1}^M w_j(x_j)} \end{equation*} 最終的に選択されたサンプル $ x_z $ を、今後の導出において混乱を防ぐために $ y = x_z $ として表します。サンプル $ y $ はいろんなインデックス $ z $ で選ばれた結果になりえます。例えば1番目のサンプルが $ y = x_1 $ であり1番目を選択するケース、2番目のサンプルが $ y = x_2 $ であり2番目を選択するケース...などです。またそれぞれのケースにおいて $ y $ 以外のサンプルの値の組み合わせも無数に存在します。したがってサンプル $ y $ を生成しうるサンプルセット $ \vec{x} $ とインデックス $ z $ の組み合わせは無数に存在します。サンプル $ y $ のPDFは次に示すように、これらの可能性すべてを考慮したものになります。 \begin{equation*} p(y) = \sum_{j \in Z(y)} \underbrace{\int \int \cdots \int}_{M - 1} p(\vec{x}^{x_j = y}, j) \underbrace{\d x_1 \d x_2 \ldots \d x_M \vphantom{\int}}_{M - 1} \end{equation*} ここで、$ \vec{x}^{x_j = y} = \Brc{x_1, \ldots, x_{j - 1}, y, x_{j + 1}, \ldots, x_M} $ は $ j $ 番目のサンプルが $ y $ であるサンプルセットを表しています。$ x_i \hspace{2mm} \Prt{1 \leq i \leq M \wedge i \neq j} $ は積分変数、$ x_j = y $ はここでは定数です。総和の範囲は $ [1, M] $ でも問題ありません。その場合は $ y $ を生成し得ない戦略 $ j $ に対しては $ p(\vec{x}^{x_j = y}, j) $ がゼロになって積分もゼロになるだけなので同じことです。
このサンプル $ y $ のPDFを使って、RISのウェイト $ \eqref{eq:RIS_weight} $ の期待値を次のように与えられた $ y $ に対する条件付き期待値として表すことができます。 \begin{equation} \underset{x_z = y}{\mathbb{E}} \!\! \Brk{W(\vec{x}, z)} = \frac{1}{p(y)} \sum_{j \in Z(y)} \underbrace{\int \int \cdots \int}_{M - 1} W(\vec{x}^{x_j = y}, j) p(\vec{x}^{x_j = y}, j) \underbrace{\d x_1 \d x_2 \ldots \d x_M \vphantom{\int}}_{M - 1} \label{eq:RIS_weight_expected_value_detailed} \end{equation} 条件付き期待値なので全体を $ p(y) $ で割っています。残りは一般的な期待値の計算式となっていて、あらゆる可能性におけるRISのウェイトにそのPDFをかけ合わせた積分です。先に被積分関数の中身を次に示すように整理します。 \begin{eqnarray*} W(\vec{x}^{x_j = y}, j) p(\vec{x}^{x_j = y}, j) &=& \Brk{\frac{1}{\hat{p}(y)} m_j(y) \sum_{k = 1}^M w_k(x_k)} \Brk{\Prt{\prod_{k = 1}^{j - 1} p_k(x_k)} p_j(y) \Prt{\prod_{k = j + 1}^{M} p_k(x_k)} \frac{w_j(y)}{\sum_{k = 1}^M w_k(x_k)}} \\ &=& m_j(y) \Brk{\prod_{k = 1}^{j - 1} p_k(x_k)} \Brk{\prod_{k = j + 1}^{M} p_k(x_k)} \end{eqnarray*} サンプルセットを生成するPDF $ \eqref{eq:sample_set_PDF} $ に対応する部分を少し展開して、式全体でキャンセルできる項を消すことで2行目の形になります。この式を前述の式 $ \eqref{eq:RIS_weight_expected_value_detailed} $ に代入すると次のように、整理された形のRISウェイトの期待値を求めることができます。 \begin{eqnarray*} \underset{x_z = y}{\mathbb{E}} \!\! \Brk{W(\vec{x}, z)} &=& \frac{1}{p(y)} \sum_{j \in Z(y)} \underbrace{\int \int \cdots \int}_{M - 1} m_j(y) \Brk{\prod_{k = 1}^{j - 1} p_k(x_k)} \Brk{\prod_{k = j + 1}^{M} p_k(x_k)} \underbrace{\d x_1 \d x_2 \ldots \d x_M \vphantom{\int}}_{M - 1} \\ &=& \frac{1}{p(y)} \sum_{j \in Z(y)} m_j(y) \end{eqnarray*} ここで何重にもあった積分は、それぞれ独立のPDFに関するものだったので積分すれば1になりまとめて消えてくれます。これで式 $ \eqref{eq:MIS_RIS_weight_expected_value} $ を導出することができました。$ m_j(y) $ に $ 1 \;/\; M $ を代入すれば式 $ \eqref{eq:RIS_weight_expected_value} $ になります。

参考文献

  • [Talbot2005] Justin F. Talbot, David Cline, Parris Egbert - "Importance Resampling for Global Illumination", 2005
  • [Bitterli2020] Benedikt Bitterli, Chris Wyman, Matt Pharr, Peter Shirley, Aaron Lefohn, Wojciech Jarosz - "Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting", 2020
  • [Wyman2021] Chris Wyman, Alexey Panteleev - "Rearchitecting Spatiotemporal Resampling for Production", 2021

Today : 00000008 Total : 00187422
Copyright © 2021 shocker.