erganzungen_zur_vorlesung. - Bionik TU

Werbung
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
Eine Menge von Suchpunkten wird gleichzeitig benutzt
• Stochastisch
Die neuen Suchpunkte sind Realisierung einer Verteilung
• Rangbasiert
Es zählt nur der Rang der Suchpunkte untereinander
(nicht die Qualität).
16.05.2016
Einführung
2
Vorteile Evolutionsstrategie
• Nur schwache Voraussetzungen für die Qualitätsfunktion (notwendig ist starke
Kausalität).
• Störsicher, robust gegen Rauschen der
Qualitätsfunktion.
• Sowohl für die Optimierung in ComputerSimulationen als auch während
Experimente nutzbar.
• Sehr einfach in der Realisierung.
16.05.2016
Einführung
3
Algorithmus der (μ/μ, λ)-ES
• Generiere Folge von Punkten (μ/μ,λ)-ES:
mit
16.05.2016
Einführung
4
Mehrdimensionale Normalverteilung
• xE – Erwartungswert bzw. Elter
• xN – Realisation bzw. Nachkomme
• C – Kovarianzmatrix
16.05.2016
Einführung
5
Mehrdimensionale Normalverteilung
16.05.2016
Einführung
6
Mehrdimensionale Normalverteilung
16.05.2016
1 0

C  
0 1
1 0

C  
 0 5
 1 0.5 

C  
 0.5 1 
1 2

C  
 2 5
Einführung
7
Globale Schrittweite
16.05.2016
Einführung
8
Individuelle Schrittweiten
16.05.2016
Einführung
9
Kovarianzmatrix
16.05.2016
Einführung
10
Wiederholung der Theorie
• Fortschritt an der Kugel:
 N
    c /  ,   
 2r
2
• Optimaler Fortschritt an der Kugel:
   c
opt
2
 /  ,
r
N
• Optimale Schrittweite an der Kugel:

16.05.2016
Einführung
opt
   c /  ,
r
N
11
Was ist eine Evolutionsstrategie ?
0.6
0.4
*2

*
*
    c /  ,  
2
0.2
Stagnation
-0.2
-0.4
-0.6
-0.8 -5
10
16.05.2016
-4
10
10
-3
-2
10
*
Einführung
10
-1
Rückschritt
Evolutionsfenster
*
0
10
0
1
10
12
Schrittweitenregelung: Wo und
Wie
• Varianz:
Einstellen der Varianz σ
• Kovarianz:
Einstellen der Kovarianzmatrix C
16.05.2016
Einführung
13
Varianzsteuerung (Globale Schw.)
Ziel ist die globale Schrittweite σ so einzustellen, dass der Fortschritt maximal wird !
Welche Verfahren sind bekannt:
• 1/5 – Erfolgsregel
• Mutative Schrittweitenregelung (MSR) mit
Isolation
• Goldene Regel
16.05.2016
Varianzsteuerung
14
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.
16.05.2016
Varianzsteuerung - MSR
15
Mutative Schrittweiten Regelung (MSR)
16.05.2016
Varianzsteuerung - MSR
16
Mutative Schrittweiten Regelung (MSR)
16.05.2016
Varianzsteuerung - MSR
17
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
16.05.2016
Varianzsteuerung - MSR
18
Mutative Schrittweiten Regelung
6
10
Optimale Schr.,
MSR-Optimal
MSR
Verh. zur opt. Schrittweite.
4
10

(g)
/ opt für (1/1,20)-ES
2.5
2
2
10
1.5
0
10
Q, 
1
0.5
-2
10
0
1000
1500
2000
2500
3000
3500
4000
-4
10
Qualität
Schrittweite
Opt. Schrittw.
-6
10
-8
10
0
16.05.2016
1000
2000
3000
4000
5000
Generationen
Varianzsteuerung - MSR
6000
7000
8000
(1/1,20)-ES
9000
10000
19
Mutative Schrittweiten Regelung
4
10
Optimale Schr.,
MSR-Optimal
MSR
2
10

(g)
/ opt für (6/6,20)-ES
1.4
1.2
1
0
10
0.8
Q, 
0.6
0.4
-2
10
0.2
0
1000
1500
2000
2500
3000
3500
4000
-4
10
-6
10
Qualität
Schrittweite
Opt. Schrittw.
-8
10
0
5000
10000
15000
Generationen
16.05.2016
Varianzsteuerung - MSR
(6/6,20)-ES
20
Mutative Schrittweiten Regelung
10
4
Optimale Schr.,
MSR-Optimal
MSR
10
2

(g)
/ opt für (10/10,20)-ES
1.2
1
10
0
0.8
0.6
10
-2
Q, 
0.4
0.2
10
-4
0
1000
10
10
10
1500
2000
2500
3000
3500
4000
-6
-8
Qualität
Schrittweite
Opt. Schrittw.
-10
0
16.05.2016
0.5
1
1.5
Generationen
Varianzsteuerung - MSR
2
2.5
3
x 10
(10/10,20)-ES
21
4
Varianzsteuerung
Probleme beim Einsatz der MSR:
• Parameter τ ist abhängig von N:
• Zur korrekten Arbeit bei Rekombination,
wird eine [μ‘(μ/ μ, λ)γ, λ‘]-ES benötigt.
γ·λ·μ‘-facher Aufwand
16.05.2016
Varianzsteuerung - MSR
22
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 σ.
16.05.2016
Varianzsteuerung - MSR
23
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
16.05.2016
Varianzsteuerung - MSR
24
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 !
16.05.2016
Varianzsteuerung - MSR
25
Varianzsteuerung (Kumulation)
Welche andere Invariante könnte man nutzen ?
16.05.2016
Varianzsteuerung - Kumulation
26
Kumulation
16.05.2016
Varianzsteuerung - Kumulation
27
Kumulation
Welche andere Invariante könnte man nutzen ?
Bei optimaler Schrittweite sind zwei
aufeinander folgende Schritte im Mittel
senkrecht zueinander.
16.05.2016
Transformation des Suchraumes
28
Kumulation
Aufeinaderfolgende Schritte sind im Mittel
Orthogonal !
Die selektierten Mutationen sind also
unkorreliert !
Die Länge der Mutationen ist im Mittel χN!
16.05.2016
Varianzsteuerung - Kumulation
29
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 : N
• Die Länge der Summe von γ aufeinander summierte Zufallszahlen wächst
um den Faktor 
• Der Mittelwert von μ standard normalverteilte Zufallszahlen hat die Varianz
1/ μ.
D.h. sollte bei optimaler Schrittweite die Länge die der aufsummierten Zufallzahlen:
sein.
16.05.2016
 N

Varianzsteuerung - Kumulation
30
Kumulation
(/,10)-ES N=500
60
N1/2
=1
=3
=5
50
Pfadlänge * 1/2 / 1/2
40
30
20
10
0
0.5
0.6
0.7
0.8
0.9
1
Faktor
1.1
1.2
1.3
1.4
1.5
Fehlskalierung vs. Pfadlänge
16.05.2016
Varianzsteuerung - Kumulation
31
Kumulation
(/,20)-ES N=500
70
N1/2
=1
=3
=5
=6
=10
60
Pfadlänge * 1/2 / 1/2
50
40
30
20
10
0
0.5
0.6
0.7
0.8
0.9
1
Faktor
1.1
1.2
1.3
1.4
1.5
Fehlskalierung vs. Pfadlänge
16.05.2016
Varianzsteuerung - Kumulation
32
Kumulation
(/,100)-ES N=5000
200
N1/2
=1
=10
=27
=50
180
160
Pfadlänge * 1/2 / 1/2
140
120
100
80
60
40
20
0
0.5
0.6
0.7
0.8
0.9
1
Faktor
1.1
1.2
1.3
1.4
1.5
Fehlskalierung vs. Pfadlänge
16.05.2016
Varianzsteuerung - Kumulation
33
Kumulation (Algorithmus 1)
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
16.05.2016
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
Varianzsteuerung - Kumulation
34
Kumulation (Algorithmus 1)
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
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
Alle Nachkommen werden mit der selben
Schrittweite erzeugt !
16.05.2016
Varianzsteuerung - Kumulation
35
Kumulation (Algorithmus 1)
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
Kommentar:
Solange Stoppbedingung nicht gilt
Generationszähler erhöhen
Nachkommen erzeugen
Elter mutieren
Qualität bestimmen
Die Entscheidung welche Schrittweitenänderung durchgeführt wird ist nicht mehr
Zufällig (Derandomisierung)!
Qualitäten sortieren
16.05.2016
Vorhergehenden Elter merken
Selektierte Nachkommen rekombinieren
Pfad kumulieren
Pfad zu lang
Schrittweite erhöhen
Pfad zu kurz
Schrittweite verkleinern
Varianzsteuerung - Kumulation
36
10
4
10
2
10
0
10
10
(1/1,20)-ES
10
4
10
2
10
0
10
-2
10
-4
10
-6
10
-8
10
-10
Qualität

opt
0
200
400
600
Generation
800
1000
(6/6,20)-ES
Qualität

opt
q(x),,opt
q(x),,opt
q(x),,opt
Kumulation (Algorithmus 1)
-2
1200
1400
(10/10,20)-ES
10
4
10
2
10
0
10
-2
10
-4
10
-6
10
-8
10
-10
Qualität

opt
-4
10
-6
10
-8
0
16.05.2016
100
200
300
Generation
400
500
600
0
Varianzsteuerung - Kumulation
100
200
300
Generation
400
500
37
600
Kumulation (Algorithmus 1)
Probleme bei der Einstellung der Schrittweite !
Weil die Kumulation nicht „vergißt“, d.h. es
werden alte Informationen noch berücksichtigt !
q(x),,opt
Lösung: Mittelung mit Vergessen !
16.05.2016
(1/1,20)-ES
10
4
10
2
10
0
10
-2
10
-4
10
-6
10
-8
10
-10
Qualität

opt
0
Varianzsteuerung - Kumulation
200
400
600
Generation
800
1000
1200
1400
38
Kumulation (Algorithmus 2)
Besser Mitteln der selektierten Mutationen:
Setze c1 und c2 s.d.
d.h.
16.05.2016
Varianzsteuerung - Kumulation
39
Kumulation (Algorithmus 2)
16.05.2016
Varianzsteuerung - Kumulation
40
Kumulation (Algorithmus 2)
Da außerdem die Vergangenheit vergessen, setze:
16.05.2016
Varianzsteuerung - Kumulation
41
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
16.05.2016
Varianzsteuerung - Kumulation
42
10
2
10
(1/1,20)-ES
10
2
10
0
10
-2
10
-4
10
-6
10
-8
10
-10
Qualität

opt
0
100
200
300
400
500
Generation
600
700
(6/6,20)-ES
800
2
0
10
0
10
-2
10
-2
10
-4
10
-4
10
-6
10
-6
10
-8
10
-8
10
-10
10
-10
0
16.05.2016
100
200
300
400
Generation
500
600
700
800
900
1000
(10/10,20)-ES
10
Qualität

opt
q(x),,opt
q(x),,opt
q(x),,opt
Kumulation (Algorithmus 2)
Qualität

opt
0
Varianzsteuerung - Kumulation
100
200
300
400
500
Generation
600
700
800
900
43
Kumulation
(/,10)-ES N=500
60
N1/2
=1
=3
=5
50
40
Pfadlänge * 1/2 / 1/2
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.
30
20
10
0
0.5
16.05.2016
Varianzsteuerung - Kumulation
0.6
0.7
0.8
0.9
1
Faktor
1.1
1.2
1.3
1.4
1.5
44
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
16.05.2016
Varianzsteuerung - Kumulation
45
10
4
10
2
10
(1/1,20)-ES
10
4
10
2
10
0
10
-2
10
-4
10
-6
10
-8
10
-10
Qualität

opt
0
200
400
600
Generation
800
(6/6,20)-ES
1000
4
10
2
0
10
0
10
-2
10
-2
10
-4
10
-4
10
-6
10
-6
10
-8
10
-8
10
-10
10
-10
0
16.05.2016
100
200
300
Generation
400
500
600
700
1200
(10/10,20)-ES
10
Qualität

opt
q(x),,opt
q(x),,opt
q(x),,opt
Kumulation
Qualität

opt
0
Varianzsteuerung - Kumulation
100
200
300
400
500
Generation
600
700
800
900
1000
46
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.
16.05.2016
Varianzsteuerung
47
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 !
16.05.2016
Covarianzsteuerung
48
Covarianzsteuerung (Zigarre)
Die Zigarre:
Besonderheit:
• Parameter x1 nicht so empfindlich wie die
Anderen.
16.05.2016
Covarianzsteuerung - Zigarre
49
Covarianzsteuerung (Zigarre)
Die Zigarre:
Besonderheit:
• Parameter x1 nicht so empfindlich wie die
Anderen.
16.05.2016
Covarianzsteuerung - Zigarre
50
Covarianzsteuerung (Zigarre)
16.05.2016
Covarianzsteuerung - Zigarre
51
Covarianzsteuerung (Zigarre)
Nur die empfindlichen Variablen werden
eingestellt.
16.05.2016
Covarianzsteuerung - Zigarre
52
Covarianzsteuerung (Zigarre)
Für x1 ist die Schrittweite zu klein.
16.05.2016
Covarianzsteuerung - Zigarre
53
Qualitätsfunktionen - Transformation
N
Q ( x )  x   a xi 
2
1
2
i 2
N
Q ( y )   yi
y  Ax
2
i 1
2
2
1.5
A
1.5
1
0.5
1
0.5
0
0
-0.5
-0.5
-1
-1
-1.5
-1.5
-2
-2
-1.5
-1
-0.5
16.05.2016
0
0.5
1
1.5
2
-2
-2
Covarianzsteuerung - Transformation des
Suchraumes
-1.5
-1
-0.5
0
0.5
1
1.5
2
54
Transformation
10
8
6
4
5 0


0 5
2
0
-2
-4
-6
10
8
6
-8
 7.071 7.071 


  0.707 0.707 
4
-10
-10
-5
0
5
10
2
0
10
-2
8
-4
6
10 0 


 0 1
4
2
0
-2
-4
-6
-8
-10
-10
-5
0
5
10
-6
-8
-10
-10
-5
16.05.2016
0
5
10
Covarianzsteuerung - Transformation des
Suchraumes
55
N 1
QRosenbrock( x )   ( a ( xi  xi 1 ))  ( xi  1)
2
2
i 1
16.05.2016
Covarianzsteuerung – Rosenbrockfunkt.
2
a  100
56
Covarianzsteuerung (Ortho-Evolution)
 
+
,
,

[   ( ) ] - ES
+
Aktuelle Position
Gründerposition
Ortho-Evolution !
16.05.2016
Covarianzsteuerung - Transformation des
Suchraumes
57
Covarianzsteuerung (Ortho-Evolution)
• Geschachtelte Evolutionsstrategie mit
Ortho-Evolution:
[μ‘(μ/μ, λ)γ, λ‘]-ES
• Erzeuge Nachkomme:
• Wollen aber:
16.05.2016
Covarianzsteuerung - Transformation des
Suchraumes
58
Covarianzsteuerung
16.05.2016
Covarianzsteuerung - Zerlegung
59
Covarianzsteuerung
∙
∙
16.05.2016
Covarianzsteuerung - Zerlegung
60
Covarianzsteuerung
(MATLAB: eig)
16.05.2016
Covarianzsteuerung - Zerlegung
61
Covarianzsteuerung
16.05.2016
Covarianzsteuerung – Transformation
des Suchraumes
62
Covarianzsteuerung
Also sei:
und sei
dann ist
16.05.2016
Covarianzsteuerung – Transformation
des Suchraumes
63
Covarianzsteuerung
Setze an:
somit
Interpretation
• U – Drehmatrix
• Λ – Dehnung der Achsen
16.05.2016
Covarianzsteuerung – Transformation
des Suchraumes
64
Covarianzsteuerung
Wie kann man die Covarianzmatrix schätzen ?
Gegeben sei eine Menge von Punkten xi .
Die Covarianz lässt sich abschätzen:
Wie bei Kumulation: Gewichtete Mittelung
16.05.2016
Covarianzsteuerung – CMA
65
Covarianz Matrix Adaption CMA
for g=1:GAMMA
for l = 1:LAMBDA
z(:,l)=randn(N,1);
nk(:,l)=xE+T*z(:,l);
fnk(l)=qualität(nk(:,l));
end
[fnks,indi]=sort(fnk);
xEo=xE;
xE=mean(nk(:,indi(1:MU)),2); zznk=mean(z(:,indi(1:MU)),2) ;
S=(1-c)*S+cu/delta*(xE-xEo);
C=(1-ccov)*C+ccov*S*S'; C=triu(C)+triu(C,1)';
sDelta=(1-c_s)*sDelta+cu_s*B*zznk;
delta=delta*exp((norm(sDelta)/chin-1)/d);
[B,D]=eig(C); D=sqrt(D); T=delta*B*D;
end
16.05.2016
Covarianzsteuerung – CMA
66
Covarianz Matrix Adaption CMA
16.05.2016
Covarianzsteuerung – CMA
67
Covarianz Matrix Adaption CMA
Nur die empfindlichen Variablen werden
eingestellt.
16.05.2016
Covarianzsteuerung – CMA
68
Covarianz Matrix Adaption CMA
Adaptation der Covarianz
16.05.2016
Covarianzsteuerung – CMA
69
Covarianz Matrix Adaption CMA
Variable x1 wird optimiert.
16.05.2016
Covarianzsteuerung – CMA
70
Die Covarianz Matrix Adaptation (CMA)
Fazit
• CMA ist eine Erweiterung der ES.
• Funktioniert in einer grossen Zahl für eine
grosse Zahl von Problemen
E
• Effiziente Implementierung, trotz
„nummerischen“-Aufwand möglich.
16.05.2016
Covarianzsteuerung
71
Herunterladen