05.11.2013 Aufrufe

Inkrementelle Akquisition von 3D-Objektmodellen - Institut für ...

Inkrementelle Akquisition von 3D-Objektmodellen - Institut für ...

Inkrementelle Akquisition von 3D-Objektmodellen - Institut für ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!