Inkrementelle Akquisition von 3D-Objektmodellen - Institut für ...
Inkrementelle Akquisition von 3D-Objektmodellen - Institut für ...
Inkrementelle Akquisition von 3D-Objektmodellen - Institut für ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
54 IR-INI 2006–01, c○ 2006 <strong>Institut</strong> <strong>für</strong> Neuroinformatik, Ruhr-Universität Bochum, FRG<br />
8.3.1 Kurzer Überblick über evolutionäre Algorithmen<br />
Es soll hier nur kurz und allgemein die Funktionsweise evolutionärer Algorithmen erläutert werden.<br />
Eine ausführliche Einführung und tiefgehende Behandlung bietet beispielsweise [Jan03].<br />
Evolutionäre Algorithmen sind randomisierte Suchheuristiken, deren Vorbild – wie der Name verrät<br />
– die natürliche Evolution ist. Gegeben ist eine Population <strong>von</strong> Datenpunkten, beispielsweise<br />
repräsentiert durch Vektoren x ∈ R n , und eine Fitnessfunktion f : R n → R, die diese Vektoren<br />
bewertet, indem sie ihnen einen Fitnesswert zuordnet. Ein evolutionärer Algorithmus läuft dann<br />
im Allgemeinen in folgenden Phasen ab:<br />
1. Bewertung der Anfangspopulation. Alle Vektoren der Population werden durch die Fitnessfunktion<br />
bewertet.<br />
2. Selektion zur Reproduktion. Aufgrund der Ergebnisse der Bewertungen werden Vektoren<br />
zur Reproduktion – also zur Erzeugung neuer Vektoren – ausgewählt. Je höher der<br />
Fitnesswert eines Vektors, desto größer die Wahrscheinlichkeit, dass er ausgewählt wird.<br />
3. Reproduktion und Variation. Aus den ausgewählten Vektoren werden Nachkommen erzeugt,<br />
indem die Daten zweier Vektoren miteinander kombiniert werden und / oder indem<br />
die Daten eines Vektors mutiert werden, d.h. zufällig ausgewählte Einträge leicht verändert<br />
werden.<br />
4. Bewertung der Nachkommen. Die Nachkommen werden mit der Fitnessfunktion bewertet.<br />
5. Selektion zur Ersetzung. Aufgrund der Bewertungen der Population und der Nachkommen<br />
werden Vektoren aus der Population ausgewählt, die entfernt werden, sowie Nachkommen, die<br />
der Population hinzugefügt werden. Je kleiner der Fitnesswert eines Vektors, desto größer die<br />
Wahrscheinlichkeit, dass er entfernt wird. Je größer der Fitnesswert eines Nachkommen, desto<br />
größer die Wahrscheinlichkeit, dass er in die Population übernommen wird. Im Allgemeinen<br />
wird die Größe der Population konstant gehalten.<br />
6. Testen auf Abbruchkriterium. Die Phasen ab 2. werden wiederholt, bis ein Abbruchkriterium<br />
erfüllt wird (z.B. keine Nachkommen mit höherem Fitnesswert erzeugt werden).<br />
Es gibt zahlreiche Varianten der evolutionären Algorithmen, die sich in unterschiedlichen Strategien<br />
der Selektion und Variation unterscheiden sowie durch Parameter wie unterschiedlichen Populationsgrößen<br />
und Anzahl an Nachkommen. Es wird gehofft, dass die Vektoren sich mit der Zeit<br />
an die Fitnessfunktion ”<br />
anpassen“, die Fitnesswerte der Vektoren also steigen und insbesondere<br />
der maximale Fitnesswert eines Vektors in der Population ständig erhöht wird. In einem Minimierungsproblem<br />
kann die zu minimierende Funktion als Fitnessfunktion benutzt werden und der<br />
Fitnesswert analog zur beschriebenen Vorgehensweise minimiert anstatt maximiert werden. Evolutionäre<br />
Algorithmen haben den Vorteil, dass sie auf beliebige Funktionen angewendet werden<br />
können, über die nichts bekannt ist und die keinen weiteren Vorgaben unterliegen – sie müssen<br />
lediglich einen Wert liefern, der als Fitnesswert interpretiert werden kann. Ist jedoch mehr über<br />
die Funktion bekannt – so wie im Fall des Bundle Adjustments – sind Optimierungsstrategien wie<br />
der Levenberg-Marquardt-Algorithmus deutlich überlegen und im Allgemeinen viel schneller.<br />
Evolutionäre Algorithmen haben jedoch einen zweiten großen Vorteil: Sie können über lokale Minima<br />
hinwegkommen. Das macht sie auch <strong>für</strong> bekannte Funktionen, <strong>für</strong> die eigentlich schnellere<br />
Optimierungsverfahren existieren, interessant.<br />
8.3.2 Ein einfacher evolutionärer Algorithmus als Alternative zum<br />
Bundle Adjustment<br />
Wir benutzen einen recht einfachen evolutionären Algorithmus, der zumindest <strong>für</strong> den entscheidenden<br />
Punkt – die Überwindung lokaler Minima – ausreichend ist. Er funktioniert nach dem in