710 likes | 813 Views
Einige Ergänzungen zur Vorlesung Evolutionsstrategie II. Iván Santibáñez Koref FG Bionik & Evolutionstechnik Technische Universität Berlin. Was ist eine Evolutionsstrategie ?. Biologisch motiviertes Suchverfahren Mengenorientiert Stochastisch Rangbasiert.
E N D
Einige Ergänzungen zur VorlesungEvolutionsstrategie II Iván Santibáñez Koref FG Bionik & Evolutionstechnik Technische Universität Berlin
Was ist eine Evolutionsstrategie ? Biologisch motiviertes Suchverfahren • Mengenorientiert • Stochastisch • Rangbasiert Eine Menge von Suchpunkten wird gleichzeitig benutzt Die neuen Suchpunkte sind Realisierung einer Verteilung Es zählt nur der Rang der Suchpunkte untereinander (nicht die Qualität). Einführung
Vorteile Evolutionsstrategie • Nur schwache Voraussetzungen für die Qua-litätsfunktion (notwendig ist starke Kausalität). • Störsicher, robust gegen Rauschen der Qualitätsfunktion. • Sowohl für die Optimierung in Computer-Simulationen als auch während Experimente nutzbar. • Sehr einfach in der Realisierung. Einführung
Algorithmus der (μ/μ, λ)-ES • Generiere Folge von Punkten (μ/μ,λ)-ES: mit Einführung
Mehrdimensionale Normalverteilung • xE– Erwartungswert bzw. Elter • xN – Realisation bzw. Nachkomme • C– Kovarianzmatrix Einführung
Mehrdimensionale Normalverteilung Einführung
Mehrdimensionale Normalverteilung Einführung
Globale Schrittweite Einführung
Individuelle Schrittweiten Einführung
Kovarianzmatrix Einführung
Wiederholung der Theorie • Fortschritt an der Kugel: • Optimaler Fortschritt an der Kugel: • Optimale Schrittweite an der Kugel: Einführung
Was ist eine Evolutionsstrategie ? Evolutionsfenster Rückschritt Stagnation Einführung
Schrittweitenregelung: Wo und Wie • Varianz: Einstellen der Varianz σ • Kovarianz: Einstellen der Kovarianzmatrix C Einführung
Varianzsteuerung (Globale Schw.) Ziel ist die globale Schrittweite σ so einzu-stellen, dass der Fortschritt maximal wird ! Welche Verfahren sind bekannt: • 1/5 – Erfolgsregel • Mutative Schrittweitenregelung (MSR) mit Isolation • Goldene Regel Varianzsteuerung
Mutative Schrittweiten Regelung (MSR) Einstellen einer guten Schrittweite durch den Test: Welche Schrittweite erzeugt die besten Nachkommen? • Umsetzung: • Erzeuge zu jeden Nachkommen eine eigenen Schrittweite. Durch logarithmische Variation. • Selektiere die besten Nachkommen und deren zugeh. Schrittweite. • Rekombiniere die Nachkommen und deren Schrittweite • Probleme: • Wahl des Schrittweitenäderungsparameters • Rauschen durch Zufallszahlen bei der Mutation. • Wie werden Schrittweiten rekombiniert. Varianzsteuerung - MSR
Mutative Schrittweiten Regelung (MSR) Varianzsteuerung - MSR
Mutative Schrittweiten Regelung (MSR) Varianzsteuerung - MSR
Mutative Schrittweiten Regelung Testmethode: Es wird ein Vergleich mit der optimalen Schrittweite σopt während der Simulation durchgeführt. Vergleich von: • Mutative Schrittweiten Steuerung mit „A“ • Mutative Schrittweiten Steuerung mit „τ“ • Optimale Schrittweite Varianzsteuerung - MSR
6 10 Optimale Schr., MSR-Optimal MSR 4 10 2 10 0 10 s Q, -2 10 -4 10 -6 10 -8 10 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Generationen (1/1,20)-ES Mutative Schrittweiten Regelung Verh. zur opt. Schrittweite. Qualität SchrittweiteOpt. Schrittw. Varianzsteuerung - MSR
4 10 Optimale Schr., MSR-Optimal MSR 2 10 0 10 s -2 10 Q, -4 10 -6 10 -8 10 0 5000 10000 15000 Generationen (6/6,20)-ES Mutative Schrittweiten Regelung Qualität SchrittweiteOpt. Schrittw. Varianzsteuerung - MSR
4 10 Optimale Schr., MSR-Optimal MSR 2 10 0 10 -2 10 s Q, -4 10 -6 10 -8 10 -10 10 0 0.5 1 1.5 2 2.5 3 Generationen 4 x 10 (10/10,20)-ES Mutative Schrittweiten Regelung Qualität SchrittweiteOpt. Schrittw. Varianzsteuerung - MSR
Varianzsteuerung Probleme beim Einsatz der MSR: Parameter τ ist abhängig von N: Zur korrekten Arbeit bei Rekombination, wird eine [μ‘(μ/μ,λ)γ,λ‘]-ES benötigt. γ·λ·μ‘-facher Aufwand Varianzsteuerung - MSR
MSR bei (1,λ)-ES Teste 𝒩(xE,σ2I) mit verschiedenen σ. Realisiere λ/2-mal 𝒩(xE,σ2·A2·I) bzw. 𝒩(xE,σ2·A-2·I) . Sehe welches bessere Realisierungen liefert. Wähle dann neue σ. Varianzsteuerung - MSR
Varianzsteuerung bei (μ/μ,λ)-ES Teste 𝒩(xE,σ2I) mit verschiedenen σ. Realisiere λ/2-mal 𝒩(xE,σ2·A2·I) bzw. 𝒩(xE,σ2·A-2·I) Sehe welches bessere Realisierungen liefert. Rekombiniere selektierte Nachkommen und Schrittweite Varianzsteuerung - MSR
Varianzsteuerung bei (μ/μ,λ)-ES Warum wird eine [μ‘,λ ‘(μ/μ,λ)γ]-ES benötigt? Bei (1,λ)-ES wird immer mit der gleichen Verteilung getestet. Bei (μ/μ,λ)-ES wird mit anderen Verteilung getestet als die ursprüngliche. Schachtelung notwendig γ=2 reicht ! Varianzsteuerung - MSR
Varianzsteuerung (Kumulation) Welche andere Invariante könnte man nutzen ? Varianzsteuerung - Kumulation
Kumulation Varianzsteuerung - Kumulation
Kumulation Welche andere Invariante könnte man nutzen ? Bei optimaler Schrittweite sind zwei aufeinander folgende Schritte im Mittel senkrecht zueinander. Transformation des Suchraumes
Kumulation Aufeinaderfolgende Schritte sind im Mittel Orthogonal ! Die selektierten Mutationen sind also unkorreliert ! Die Länge der Mutationen ist im Mittel χN! Varianzsteuerung - Kumulation
Kumulation • Da aufeinander folgende Schritte unkorreliert, insbesondere die für die • Mutation notwendigen Zufallszahlen. • D.h. die Summe der selektierten Zufallzahlen sollte immer eine bestimmte • Länge haben: • Länge von z mit den Komponenten zi~ 𝒩(0,1), …, i=1,…,N ist EχN bzw. grosse N : • Die Länge der Summe von γ aufeinander summierte Zufallszahlen wächstum den Faktor • Der Mittelwert von μ standard normalverteilte Zufallszahlen hat die Varianz1/ μ. • D.h. sollte bei optimaler Schrittweite die Länge die der aufsummierten Zufallzahlen: • sein. Varianzsteuerung - Kumulation
Kumulation Fehlskalierung vs. Pfadlänge Varianzsteuerung - Kumulation
Fehlskalierung vs. Pfadlänge Kumulation Varianzsteuerung - Kumulation
Fehlskalierung vs. Pfadlänge Kumulation Varianzsteuerung - Kumulation
Kumulation (Algorithmus 1) Kommentar: Solange Stoppbedingung nicht gilt Generationszähler erhöhen Nachkommen erzeugen Elter mutieren Qualität bestimmen Qualitäten sortieren Vorhergehenden Elter merken Selektierte Nachkommen rekombinieren Pfad kumulieren Pfad zu lang Schrittweite erhöhen Pfad zu kurz Schrittweite verkleinern while ~stop_bedingung(xE,g) g=g+1; for l=1:LAMBDA xN(:,l)=xE+sigma*randn(N,1); qN(l)=qualitat(xN(:,l)); end [s_qN,idx]=sort(qN); xE_alt=xE; xE=mean(xE(:,idx(1:MU))); pfad=pfad+(xE-xEo)/sigma; if (norm(zC)*sqrt(MU/N/g)>1) sigma=sigma*A; else sigma=sigma/A; end end Varianzsteuerung - Kumulation
Kumulation (Algorithmus 1) Kommentar: Solange Stoppbedingung nicht gilt Generationszähler erhöhen Nachkommen erzeugen Elter mutieren Qualität bestimmen Qualitäten sortieren Vorhergehenden Elter merken Selektierte Nachkommen rekombinieren Pfad kumulieren Pfad zu lang Schrittweite erhöhen Pfad zu kurz Schrittweite verkleinern while ~stop_bedingung(xE,g) g=g+1; for l=1:LAMBDA xN(:,l)=xE+sigma*randn(N,1); qN(l)=qualitat(xN(:,l)); end [s_qN,idx]=sort(qN); xE_alt=xE; xE=mean(xE(:,idx(1:MU))); pfad=pfad+(xE-xEo)/sigma; if (norm(zC)*sqrt(MU/N/g)>1) sigma=sigma*A; else sigma=sigma/A; end end Alle Nachkommen werden mit der selben Schrittweite erzeugt ! Varianzsteuerung - Kumulation
Kumulation (Algorithmus 1) Kommentar: Solange Stoppbedingung nicht gilt Generationszähler erhöhen Nachkommen erzeugen Elter mutieren Qualität bestimmen Qualitäten sortieren Vorhergehenden Elter merken Selektierte Nachkommen rekombinieren Pfad kumulieren Pfad zu lang Schrittweite erhöhen Pfad zu kurz Schrittweite verkleinern while ~stop_bedingung(xE,g) g=g+1; for l=1:LAMBDA xN(:,l)=xE+sigma*randn(N,1); qN(l)=qualitat(xN(:,l)); end [s_qN,idx]=sort(qN); xE_alt=xE; xE=mean(xE(:,idx(1:MU))); pfad=pfad+(xE-xEo)/sigma; if (norm(zC)*sqrt(MU/N/g)>1) sigma=sigma*A; else sigma=sigma/A; end end Die Entscheidung welche Schrittweiten- änderung durchgeführt wird ist nicht mehr Zufällig (Derandomisierung)! Varianzsteuerung - Kumulation
Kumulation (Algorithmus 1) Varianzsteuerung - Kumulation
Kumulation (Algorithmus 1) Probleme bei der Einstellung der Schrittweite ! Weil die Kumulation nicht „vergißt“, d.h. es werden alte Informationen noch berücksichtigt ! Lösung: Mittelung mit Vergessen ! Varianzsteuerung - Kumulation
Kumulation (Algorithmus 2) Besser Mitteln der selektierten Mutationen: Setze c1 und c2 s.d. d.h. Varianzsteuerung - Kumulation
Kumulation (Algorithmus 2) Varianzsteuerung - Kumulation
Kumulation (Algorithmus 2) Da außerdem die Vergangenheit vergessen, setze: Varianzsteuerung - Kumulation
Kumulation (Algorithmus 2) while ~stop_bedingung(xE,g) g=g+1; for l=1:LAMBDA xN(:,l)=xE+sigma*randn(N,1); qN(l)=qualitat(xN(:,l)); end [s_qN,idx]=sort(qN); xE_alt=xE; xE=mean(xE(:,idx(1:MU))); pfad=c1*pfad+sqrt(1-c1^2)(xE-xEo)/sigma; if (norm(zC)*sqrt(MU/N)>1) sigma=sigma*A; else sigma=sigma/A; end end Varianzsteuerung - Kumulation
Kumulation (Algorithmus 2) Varianzsteuerung - Kumulation
Kumulation Wie in Graph zu sehen, gibt die Länge nicht nur an ob die Schrittweite zu groß oder zu klein. Auch gewisse quantitative Informationen über die Abweichung von der Optimalen Schrittweite. Varianzsteuerung - Kumulation
Kumulation (finaler Algorithmus) while ~stop_bedingung(xE,g) g=g+1; for l=1:LAMBDA xN(:,l)=xE+sigma*randn(N,1); qN(l)=qualitat(xN(:,l)); end [s_qN,idx]=sort(qN); xE_alt=xE; xE=mean(xE(:,idx(1:MU))); pfad=c1*pfad+sqrt(1-c1^2)(xE-xEo)/sigma; sigma=sigma*exp(d*(norm(p)*sqrt(M/N)-1)); end Varianzsteuerung - Kumulation
Kumulation Varianzsteuerung - Kumulation
Schrittweitensteuerung (Varianz) Fazit • 1/5 Erfolgsregel für „+“-Strategien sinnvoll. • MSR funktioniert nicht immer (Rekombination). • Isolation/Schachtelung für allgemeine Probleme, grosser Aufwand. • Kumulation für bestimmte Probleme möglich und effizient. Varianzsteuerung
Covarianzsteuerung • Beispiel: Linse Erfordert die gleichzeitige Änderung aber nicht gleiche Änderung der Parameter Die Objektvariablen sind Korreliert D.h. die Suchverteilung ist nicht mehr Isotrop ! Covarianzsteuerung
Covarianzsteuerung (Zigarre) Die Zigarre: Besonderheit: • Parameter x1 nicht so empfindlich wie die Anderen. Covarianzsteuerung - Zigarre
Covarianzsteuerung (Zigarre) Die Zigarre: Besonderheit: • Parameter x1 nicht so empfindlich wie die Anderen. Covarianzsteuerung - Zigarre