Monte-Carlo-Integrationsanwendung beim Rendern

Wir alle haben im Laufe der Mathematik numerische Methoden studiert. Dies sind Methoden wie Integration, Interpolation, Reihen usw. Es gibt zwei Arten numerischer Methoden: deterministische und randomisierte.

Typische Methode zur Integration deterministischer Funktionen fim Bereich [a,b]Es sieht so aus: Wir nehmen n+1gleichmäßig verteilte Punkte t0=a,t1=a+ fracb−an, ldots,tn−bberechnen fin der Mitte  fracti+ti+12Fassen Sie von jedem der durch diese Punkte definierten Intervalle die Ergebnisse zusammen und multiplizieren Sie sie mit der Breite jedes Intervalls  fracb−ab. FĂźr ausreichend kontinuierliche Funktionen fmit zunehmender nDas Ergebnis konvergiert auf den richtigen Wert.


Die probabilistische Methode oder die Monte-Carlo- Methode zur Berechnung oder genauer eine ungefähre Schätzung des Integrals fim Bereich [a,b]sieht so aus: lass X1, ldots,Xn- zufällig ausgewählte Punkte im Intervall [a,b]. Dann Y=(b−a) frac1n sumi=1nf(Xi)Ist ein Zufallswert, dessen Durchschnitt ein Integral ist  int[a,b]f. Um die Methode zu implementieren, verwenden wir einen Zufallszahlengenerator, der generiert nPunkte im Intervall [a,b]wir berechnen in jedem f, mittle die Ergebnisse und multipliziere mit b−a. Dies gibt uns den ungefähren Wert des Integrals, wie in der folgenden Abbildung gezeigt.  int−11 sqrt1−x2dxmit 20 Proben entspricht ungefähr das korrekte Ergebnis gleich  frac pi2.


Natürlich erhalten wir jedes Mal, wenn wir einen solchen ungefähren Wert berechnen, ein anderes Ergebnis. Die Varianz dieser Werte hängt von der Form der Funktion ab. f. Wenn wir zufällige Punkte generieren xiungleichmäßig müssen wir dann die Formel leicht ändern. Dank der ungleichmäßigen Punkteverteilung erhalten wir jedoch einen großen Vorteil: Wir zwingen die ungleichmäßige Verteilung dazu, den Punkten den Vorzug zu geben xiwo f(x)groß, können wir die Varianz der ungefähren Werte signifikant reduzieren. Dieses Prinzip der ungleichmäßigen Probenahme wird als Probenahme nach Signifikanz bezeichnet .


Da in den letzten Jahrzehnten in Rendering-Techniken ein groß angelegter Übergang von deterministischen zu randomisierten Ansätzen stattgefunden hat, werden wir die randomisierten Ansätze untersuchen, die zur Lösung von Rendering-Gleichungen verwendet werden. Dazu verwenden wir Zufallsvariablen, mathematische Erwartungen und Varianz. Wir haben es mit diskreten Werten zu tun, weil Computer diskreter Natur sind. Kontinuierliche Größen befassen sich mit der Wahrscheinlichkeitsdichtefunktion , werden jedoch im Artikel nicht berücksichtigt. Wir werden über die Wahrscheinlichkeitsmassenfunktion sprechen. PMF hat zwei Eigenschaften:

  1. FĂźr jeden s inSexistiert p(s) geq0.
  2.  sums inSp(s)=1

Die erste Eigenschaft heißt Nicht-Negativität. Die zweite heißt "Normalität". Intuitiv das Sstellt die Menge der Ergebnisse eines Experiments dar, und p(s)Ist das Ergebnis der Wahrscheinlichkeit sMitglied S. Das Ergebnis ist eine Teilmenge des Wahrscheinlichkeitsraums. Die Wahrscheinlichkeit eines Ergebnisses ist die Summe der PMF-Elemente dieses Ergebnisses, da

Pr \ {E \} = \ sum_ {s \ in S} p (s)


Eine Zufallsvariable ist eine Funktion, die normalerweise durch einen Großbuchstaben gekennzeichnet ist und reelle Zahlen in den Wahrscheinlichkeitsraum einfügt:

X:S rightarrow boldsymbolR.


Beachten Sie, dass die Funktion X- Dies ist keine Variable, sondern eine Funktion mit reellen Werten. Sie ist auch nicht zufällig , X(s)Ist eine separate reelle Zahl fĂźr jedes Ergebnis s inS.

Eine Zufallsvariable wird verwendet, um die Ergebnisse zu bestimmen. Zum Beispiel viele Ergebnisse sfür welche X(s)=1Das heißt, wenn ht und th die Reihe von Linien sind, die "Adler" oder "Schwänze" bezeichnen, dann

E=s inS:X(s)=1


und

=ht,th



es ist ein Ergebnis mit Wahrscheinlichkeit  frac12. Wir schreiben es als Pr \ {X = 1 \} = \ frac {1} {2} . Wir verwenden das Prädikat X=1als verkĂźrzter Eintrag fĂźr das vom Prädikat bestimmte Ergebnis.

Schauen wir uns ein Codefragment an, das ein Experiment simuliert, das durch die oben dargestellten Formeln beschrieben wird:

headcount = 0 if (randb()): // first coin flip headcount++ if (randb()): // second coin flip headcount++ return headcount 

Hier bezeichnen wir mit ranb() Boolesche Funktion, die in der Hälfte der Fälle true zurßckgibt. Wie hängt es mit unserer Abstraktion zusammen? Stell dir viel vor SAlle mÜglichen Ausfßhrungen des Programms, wobei zwei Ausfßhrungen mit denselben Werten ranb , die von ranb , paarweise identisch. Dies bedeutet, dass es vier mÜgliche Ausfßhrungen des Programms gibt, in denen zwei ranb() -Aufrufe TT, TF, FT und FF zurßckgeben. Aus eigener Erfahrung kÜnnen wir sagen, dass diese vier Leistungen gleich wahrscheinlich sind, dh jeweils in etwa einem Viertel der Fälle auftreten.

Jetzt wird die Analogie klarer. Die vielen mÜglichen Ausfßhrungen eines Programms und die damit verbundenen Wahrscheinlichkeiten sind ein Wahrscheinlichkeitsraum. Programmvariablen, die von ranb Aufrufen abhängen, sind Zufallsvariablen. Ich hoffe dir ist jetzt alles klar.

Lassen Sie uns den erwarteten Wert diskutieren, der auch als Durchschnitt bezeichnet wird. Dies ist im Wesentlichen die Summe des Produkts aus PMF und einer Zufallsvariablen:

E[X]= sums inSp(s)X(s)


Stellen Sie sich vor, h sind "Adler" und t sind "Schwänze". Wir haben bereits ht und th behandelt. Es gibt auch hh und tt. Daher ist der erwartete Wert wie folgt:

E[X]=p(hh)X(hh)+p(ht)X(ht)+p(th)X(th)+p(tt)X(tt)


= frac14.2+ frac14.1+ frac14.1+ frac14.0


=1 textQED


Sie fragen sich vielleicht, woher es kam X. Hier meinte ich, wir sollten Bedeutung zuweisen Xvon dir selbst. In diesem Fall haben wir h 1 und t 0 zugewiesen. X(hh)gleich 2, weil es 2 enthält h.

Sprechen wir Ăźber die Verteilung. Die Wahrscheinlichkeitsverteilung ist eine Funktion, die die Wahrscheinlichkeiten verschiedener Ergebnisse eines Ereignisses angibt.

Wenn wir sagen, dass eine Zufallsvariable Xhat eine Verteilung fdann sollte anzeigen X simf.

Streuwerte haben sich angesammelt Xheißt seine Dispersion und ist wie folgt definiert:

 boldsymbolVar[X]=E[(X− barX)2]


Wo  barXIst durchschnittlich X.

 sqrt boldsymbolVarStandardabweichung genannt . Zufällige Variablen Xund Ywerden als unabhängig bezeichnet, wenn:

Pr \ {X = x \ text {und} Y = y \} = Pr \ {X = x \}. Pr \ {Y = y \}


Wichtige Eigenschaften unabhängiger Zufallsvariablen:

  1. E[XY]=E[X]E[Y]
  2.  boldsymbolVar[X+Y]= boldsymbolVar[X]+ boldsymbolVar[Y]

Als ich mit einer Geschichte Ăźber die Wahrscheinlichkeit begann, verglich ich kontinuierliche und diskrete Wahrscheinlichkeiten. Wir haben die diskrete Wahrscheinlichkeit untersucht. Lassen Sie uns nun Ăźber den Unterschied zwischen kontinuierlichen und diskreten Wahrscheinlichkeiten sprechen:

  1. Die Werte sind kontinuierlich. Das heißt, die Zahlen sind unendlich.
  2. Einige Aspekte der Analyse erfordern mathematische Feinheiten wie die Messbarkeit .
  3. Unser Wahrscheinlichkeitsraum wird unendlich sein. Anstelle von PMF sollten wir die Wahrscheinlichkeitsdichtefunktion (PDF) verwenden.

PDF-Eigenschaften:

  1. FĂźr jeden s inSwir haben p(s) geq0
  2.  ints inSp(s)=1

Aber wenn die Verteilung Sgleichmäßig , dann ist das pdf wie folgt definiert:

Bild

Mit kontinuierlicher Wahrscheinlichkeit E[X]wie folgt definiert:

E[X]:= ints inSp(s)X(s)


Vergleichen Sie nun die Definitionen von PMF und PDF:

\ mathbb {PMF} \ rightarrow p_y (t) = Pr \ {Y = t \} \ text {for} t \ in T


\ mathbb {PDF} \ rightarrow Pr \ {a \ leq X \ leq b \} = \ int_a ^ bp (r) dr


Bei kontinuierlicher Wahrscheinlichkeit werden Zufallsvariablen besser als Zufallspunkte bezeichnet . Denn wenn SIst der Wahrscheinlichkeitsraum und Y:S rightarrowTin einem anderen Raum als angezeigt  mathbbRdann sollten wir anrufen Yzufälliger Punkt , keine zufällige Variable. Das Konzept der Wahrscheinlichkeitsdichte ist hier anwendbar, weil wir das fĂźr jeden sagen kĂśnnen U TeilmengeTwir haben:

Bild

Wenden wir nun das Gelernte auf die Sphäre an. Die Kugel hat drei Koordinaten: Breitengrad, Längengrad und Breitengradkomplement. Wir verwenden Längen- und Breitengradaddition nur in  mathbbR2zweidimensionale kartesische Koordinaten, die auf eine Zufallsvariable angewendet werden Smach sie zu S2. Wir erhalten folgendes Detail:

Y:[0,1] times[0,1] rightarrowS2:(u,v) rightarrow( cos(2 piu) sin( piv), cos( piv) sin(2 piu)sin( piv))


Wir beginnen mit einer einheitlichen Wahrscheinlichkeitsdichte pbei [0,1] times[0,1]oder p(u,v)=1. Schauen Sie sich die Formel fĂźr die einheitliche Wahrscheinlichkeitsdichte oben an. Der Einfachheit halber werden wir schreiben (x,y,z)=Y(u,v).

Wir haben ein intuitives Verständnis dafür, dass, wenn Sie Punkte gleichmäßig und zufällig in einem Einheitsquadrat auswählen und verwenden fUm sie in Punkte auf einer Einheitskugel umzuwandeln, sammeln sie sich neben dem Pol an. Dies bedeutet, dass die erhaltene Wahrscheinlichkeitsdichte in Twird nicht einheitlich sein. Dies ist in der folgenden Abbildung dargestellt.


Nun werden wir MÜglichkeiten diskutieren, den erwarteten Wert einer kontinuierlichen Zufallsvariablen zu approximieren und ihre Anwendung zur Bestimmung der Integrale. Dies ist wichtig, da beim Rendern der Wert des Reflektivitätsintegrals bestimmt werden muss :

Lref(P, omegao)= int omegai inS+2L(P,− omegai)fs(P, omegai, omega0) omegai. boldsymbolnd omegai,


fĂźr verschiedene Werte Pund  omega0. Wert  omegaIst die Richtung des einfallenden Lichts. Code, der eine Zufallszahl erzeugt, die gleichmäßig im Intervall verteilt ist [0,1]Wenn Sie die Quadratwurzel ziehen, wird ein Wert im Bereich von 0 bis 1 erstellt. Wenn wir PDF dafĂźr verwenden, ist der erwartete Wert gleich, da dies ein einheitlicher Wert ist  frac23. Auch dieser Wert ist der Durchschnittswert f(x)= sqrtxin diesem Intervall. Was bedeutet das?

Betrachten Sie Satz 3.48 aus dem Buch Computergrafik: Prinzipien und Praxis. Sie sagt das wenn f:[a,b] rightarrow mathbbRist eine Funktion mit reellen Werten und X sim boldsymbolU(a,b)ist eine einheitliche Zufallsvariable im Intervall [a,b]dann (b−a)f(x)Ist eine Zufallsvariable, deren erwarteter Wert die Form hat:

E[(b−a)f(x)]= intabf(x)dx.


Was sagt uns das? Dies bedeutet, dass Sie einen zufälligen Algorithmus verwenden kÜnnen, um den Wert des Integrals zu berechnen, wenn wir den Code viele Male ausfßhren und die Ergebnisse mitteln .

Im allgemeinen Fall erhalten wir einen bestimmten Wert C, wie im oben gezeigten Integral, das bestimmt werden muss, und einem zufälligen Algorithmus, der einen ungefähren Wert zurückgibt C. Eine solche Zufallsvariable für eine Größe wird als Schätzer bezeichnet . Ein Schätzer gilt als verzerrungsfrei, wenn sein erwarteter Wert ist C. Im allgemeinen Fall sind Schätzer ohne Verzerrungen Verzerrungen vorzuziehen.

Wir haben bereits diskrete und kontinuierliche Wahrscheinlichkeiten diskutiert. Es gibt jedoch einen dritten Typ, der als gemischte Wahrscheinlichkeiten bezeichnet wird und beim Rendern verwendet wird. Solche Wahrscheinlichkeiten entstehen aufgrund von Impulsen in den Verteilungsfunktionen der bidirektionalen Streuung oder von Impulsen, die durch Punktbeleuchtungsquellen verursacht werden. Solche Wahrscheinlichkeiten werden beispielsweise im Intervall in einer kontinuierlichen Menge definiert [0,1]aber nicht streng durch die PDF-Funktion definiert. Betrachten Sie das folgende Programm:

 if uniform(0, 1) > 0.6 : return 0.3 else : return uniform(0, 1) 

In sechzig Prozent der Fälle gibt das Programm 0,3 zurück, und in den restlichen 40 Prozent gibt es einen Wert zurück, der gleichmäßig verteilt ist [0,1]. Der Rückgabewert ist eine Zufallsvariable mit einer Wahrscheinlichkeitsmasse von 0,6 bei 0,3, und das PDF an allen anderen Punkten wird als angegeben d(x)=0,4. Wir müssen das PDF definieren als:

Bild

Im Allgemeinen ist eine Zufallsvariable mit gemischten Variablen eine Variable, für die es im PDF-Definitionsbereich eine endliche Menge von Punkten gibt, und umgekehrt gleichmäßig verteilte Punkte, an denen die PMF nicht definiert ist.

Source: https://habr.com/ru/post/de461805/


All Articles