mirror of
https://github.com/janishutz/eth-summaries.git
synced 2025-11-25 02:24:23 +00:00
84 lines
3.2 KiB
TeX
84 lines
3.2 KiB
TeX
% ┌ ┐
|
|
% │ AUTHOR: Janis Hutz<info@janishutz.com> │
|
|
% └ ┘
|
|
|
|
\newsection
|
|
\subsection{Methoden zur Reduktion der Varianz}
|
|
% NOTE: Mostly from TA slides, as the script is quite convoluted there
|
|
Bei höheren Dimensionen $d$ ist die Monte-Carlo-Methode oft die einzige praktikable Option.
|
|
Deshalb ist es wichtig, Methoden zu haben, um die Varianz zu verringern.
|
|
|
|
\subsubsection{Control Variates}
|
|
Die Idee ist hier, bekannte Integrale zu verwenden, um die Varianz zu reduzieren.
|
|
Wir schreiben unser Integral unter Verwendung eines bekannten, exakten Integrals $\varphi(x)$ neu:
|
|
\rmvspace
|
|
\begin{align*}
|
|
\iiint f(x) = \iiint (z(x) - \varphi(x)) = \iiint z(x) + \iiint \varphi(x)
|
|
\end{align*}
|
|
|
|
\drmvspace
|
|
Das Ganze funktioniert natürlich für jedes $d \in \N$.
|
|
Oft wird die Taylor-Entwicklung von $f(x)$ gewählt, da diese einfach analytisch integrierbar ist.
|
|
|
|
Die Varianz wird dadurch reduziert, dass wir nur noch für $z(x)$ einen Fehler haben.
|
|
|
|
\innumpy können wir dies folgendermassen implementieren:
|
|
\begin{code}{python}
|
|
def control_variate_mc(func, phi, analytic_int_phi, a, b, N):
|
|
t = np.random.uniform(a, b, N)
|
|
val = func(t) - phi(t)
|
|
I = np.mean(val) * (b - a) + analytic_int_phi
|
|
return I
|
|
\end{code}
|
|
|
|
|
|
\subsubsection{Importance Sampling}
|
|
\begin{intuition}[]{Importance Sampling}
|
|
\begin{itemize}
|
|
\item Nicht alle Punkte, die während der Monte-Carlo Integration gezogen werden sind, sind gleich wichtig
|
|
\item Importance Sampling optimiert die Verteilung der Punkte
|
|
\item Man gewichtet die Punkte mit einer Dichtefunktion $g(x)$, die wichtige Bereiche betont
|
|
\item Der Erwartungswert wird als gewichteter Mittelwert berechnet, sodass keine Verzerrung auftritt
|
|
\end{itemize}
|
|
\end{intuition}
|
|
Wir schreiben unser zu berechnendes Integral mit $D = [0, 1]^d$ ein Intervall
|
|
\rmvspace
|
|
\begin{align*}
|
|
I = \int_D f(x) \dx x
|
|
\end{align*}
|
|
|
|
\drmvspace
|
|
mit der Hilfsdichte $g(x)$ (für welche gilt $\int_{D} \dx = 1$)
|
|
\rmvspace
|
|
\begin{align*}
|
|
I = \int_D \frac{z(x)}{g(x)} g(x) \dx x = \E_g \left( \frac{z(\cX)}{g(\cX)} \right)
|
|
\end{align*}
|
|
|
|
\drmvspace
|
|
Der entsprechende Monte-Carlo-Schätzer mit $N$ Stichproben $\cX_i \sim g$ ist
|
|
\rmvspace
|
|
\begin{align*}
|
|
\hat{I}_N = \frac{1}{N} \sum_{i = 1}^{N} \frac{z(\cX_i)}{g(\cX_i)}
|
|
\end{align*}
|
|
|
|
\drmvspace
|
|
und dessen Varianz ist
|
|
\rmvspace
|
|
\begin{align*}
|
|
\V_g\left( \frac{z(\cX)}{g(\cX)} \right) = \int_{D} \frac{z^2(x)}{g(x)} \dx x - I^2
|
|
\end{align*}
|
|
|
|
\drmvspace
|
|
Ideal ist $g(x) \propto |f(x)|$, also proportional zum Betrag von $f(x)$
|
|
|
|
|
|
|
|
\subsubsection{Quasi-Monte-Carlo}
|
|
Oft ist ein deterministischer Fehler nützlich, weshalb man bei der Quasi-Monte-Carlo-Methode die Zufallszahlen durch quasi-zufällige Folgen ersetzt.
|
|
Diese Folgen decken den Integrationsbereich systematisch ab.
|
|
|
|
Dies führt dazu, dass unser Fehler mit $\tco{N^{-1} \cdot (\log(N))^d}$ abnimmt.
|
|
Für kleine $d$ haben wir ungefähr eine Abnahme in $\tco{N^1}$, aber bei grossen $d$ ist die Verbesserung kaum mehr sichtbar.
|
|
|
|
In der Realität sind diese Methoden (besonders die Sobol-Sequenzen) trotzdem effektiv, da viele Integrale ``effektiv niedrigdimensional'' sind.
|