Rebinning-Algorithmus in VEGAS


8

Ich versuche, den Rebinning-Algorithmus der Monte-Carlo-Integration von VEGAS ( Originalveröffentlichung ( Preprint von LKlevin) und Implementierungshinweise ) zu verstehen . Ich werde versuchen, zuerst zu erklären, was ich zu verstehen glaube, und dann meine Fragen zu stellen.

Nehmen wir der Einfachheit halber an, wir haben eine eindimensionale Funktion , die über das gesamte Intervall positiv ist . Dieses Intervall ist beispielsweise in n Bins unterteilt. Diese Behälter sind anfangs gleich groß. Die Behältergrößen \ Delta x_i definieren eine Wahrscheinlichkeitsdichte[ 0 , 1 ] n & Dgr; x if(x)[0,1]nΔxi

ρ(x)={0x<Δx1:1nΔx1Δxn1x<Δxn:1nΔxn.

Die Behältergrößen müssen sich zur Länge des Intervalls addieren, damit richtig normalisiert wird:ρ(x)

i=1nΔxi=101dxρ(x)=1.

Unter Verwendung von zufällig ausgewählten Zahlen aus der Verteilung berechnet VEGAS eine Näherung des Integrals:N{xi}ρ(x)S(1)

S.(1)=1N.{xich}}f(xich)ρ(xich)01dxf(x)

Bisher ist dies nur eine wichtige Stichprobe (ich bin nicht an einer geschichteten Stichprobe interessiert), die ein Raster mit variabler Größe verwendet. Das interessante Stück in VEGAS ist der Rebinning-Algorithmus, dh der Algorithmus, der die Bin-Größen in Abhängigkeit von den Funktionswerten neu berechnet, die in der vorherigen Iteration akkumuliert wurden:

  • Für jeden Behälter werden die quadratischen Funktionswerte (?) Summiert (in der Originalveröffentlichung werden die absoluten Werte summiert).
  • Es gibt auch eine Dämpfungsfunktion, die auf jeden Wert angewendet wird, um "schnelle, destabilisierende Änderungen zu vermeiden".
  • Danach wird jeder Wert mit den benachbarten Bins geglättet. Ich denke, dies erhöht auch die Stabilität des Rebinning-Algorithmus für bestimmte Funktionen (aber ich kann nicht erklären, warum). Nennen wir die Endwerte .bich
  • Die Behältergrößen sind jetzt so eingestellt, dass jeder neue Behälter ungefähr den Durchschnitt enthält:

b¯=1nich=1nbich

Dieser Algorithmus lässt die Bins wachsen, wenn die Funktion "klein" ist, und schrumpfen, wenn die Funktion "groß" ist. Klein und groß werden im Verhältnis zueinander verstanden, z. B. werden die Maxima der Funktion als "groß" und alles andere als "kleiner" betrachtet. Da die Wahrscheinlichkeit, dass ein Punkt in einem Bin landet, gleich ist (VEGAS wird geschrieben, um dieses Verhalten zu zeigen), wird die Funktion am meisten dort abgetastet, wo sie am größten ist, und dadurch wird der Fehler verringert.x

Warum ist es so geschrieben? Warum geht man das Problem nicht direkter an, indem man beispielsweise die gemittelte und gruppierte Funktion als Wahrscheinlichkeitsdichte für die nächste Iteration verwendet?


Sie sollten einen Link zur Originalveröffentlichung hinzufügen. Was meinen Sie mit "Funktionen, die sich in benachbarten Behältern stark unterscheiden"? Was ist eine kleine Funktion? Was ist eine große Funktion?
vanCompute

Ich bin mir nicht ganz sicher, was deine Frage ist. Ist das Problem, dass die absoluten Werte summiert werden?
LKlevin

@LKlevin: Nun, die quadratischen Werte werden summiert, was sich von dem unterscheidet, was in der Originalveröffentlichung (Summe der absoluten Werte) für eins geschrieben wurde. Aber ich denke, das liegt daran, dass es für die meisten Integranden in der Praxis eine bessere Konvergenz ergibt. Aber warum ist das so? Haben sie das nur empirisch gemacht oder gibt es eine richtige Erklärung? Ich bin mir auch nicht sicher, warum dieser Algorithmus überhaupt stabil sein könnte, wenn Sie die Quadrate anstelle der absoluten Werte summieren. Ich habe versucht, einen besseren Rebinning-Algorithmus zu finden, aber es scheint unmöglich zu sein, einen stabilen für Integranden zu finden, die nicht faktorisierbar sind. Warum ist es so gut?
Schwan

Antworten:


1

Haftungsausschluss: Ich bin mit Monte-Carlo-Algorithmen im Allgemeinen sehr vertraut, nicht jedoch mit dem VEGAS-Algorithmus im Besonderen.

Der VEGAS-Algorithmus basiert auf der Tatsache, dass wir, wenn wir die genaue Wahrscheinlichkeitsdichte kennen, die die Varianz unserer Monte-Carlo-Integration minimiert, unsere Antwort mit genau 1 Auswertung der Funktion f erhalten könnten.

Dies ist gegeben durch

p(x)=|f(x)|Ω|f(x)|dx

Wir kennen die Wahrscheinlichkeitsdichte nicht und eine genaue Schätzung ist für eine hochdimensionale Funktion nicht möglich, da sie schnell eine enorme Menge an Speicher beanspruchen würde.

Stattdessen approximiert der VEGAS-Algorithmus es als stückweise konstante M-Schritt-Funktion.

Ich vermute, Sie haben keinen Zugriff auf den vollständigen Artikel? Der Originalartikel verwendet NICHT die Quadratfunktion, sondern die absolute (eine Vordruckversion finden Sie hier ).

Ich hoffe, dies hilft bei der Beantwortung Ihrer Frage. Der ursprüngliche Artikel beantwortet das meiste davon, daher könnte es sich lohnen, ihn zu bekommen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.