optimierungsproblem

Gast #2378631
hi,

Ich beschäftige mich derzeit mit der Optimierung eines 
Klassifikationssystems mit 12 Parameter ... wobei ich jeweileis 4 
unabhängig voneinander behandeln kann. Derzeit verwende ich das 
Gradientenverfahren da irgendwie alle anderen Verfahren Signalkenntniss 
oder sogar Modelkenntnis voraussetzen.

D.h ich gehe folgendermaßen vor :

1.) ... probieren eines Schritt µ1 für jeden Parameter (mit einer 
Anfangsschrittweite und Ermittlungs der Kostenfunktion (Zusatzinfo: 
einmaliger Durchlauf benötigt ca. 1/2 h)
2.) Ermittlung des neg. Gradienten -> -(neue Kosten - alte Kosten / 
Parameterschritt) -> d.h implizite Annahme eines linearen Models !
3.) Berechnung des neuen Parametersatzes mit: p_neu=p - µ2 * grad(f(p));

Setzte ich die Schrittweite zu gross an ... konvergiert die Optimierung 
nur schlecht, umgekehrt gehts richtig schleppend und ich bleibe 
womöglich in einems lokalen minima stecken. -> Gibt es hier Methoden zur 
Schrittweitenbestimmung die "nicht von Signalstatistik bzw. 
Modellkenntniss ausgehen" ?!

Bin für jeden Tipp dankbar !

lg Peter
Gast
Im ersten Ansatz kannst Du Deine Gradienten ermitteln, wichten und die 
steilsten für die erste Näherung heranziehen. Dies ist insbesondere dann 
von Vorteil, wenn man keine Annahmen über das Gefüge der Gleichungen 
machen kann.
Gast
Danke für die die Tipps !

Werd mich mal vorerst über das Simplexverfahren stürzen ... und dann 
weiter zu genetischen Algorithmen, danke

@georg ... das ist ja genau der ansatz den ich gewählt hatte !
Das Simplex-Verfahren ist ein Verfahren 0. Ordnung. Das heißt, du 
benötigst die Ableitung nicht. Dafür wird es mehr Iterationen benötigen. 
Ein Problem könnte vielleicht sein, die Simplexe im 12-dimensionalen 
Raum auszurechnen. Immerhin geht's da heiß her, was sin und cos angeht, 
oder?

Es gibt in dem Zusammenhang auch noch das Hooke-Jeeves-Tastverfahren, 
das nur die die kartesischen Koordinatenrichtungen tastet.

Beide Verfahren bleiben, richtig implementiert, an einem lokalen Minimum 
hängen
--> ab Seite 321:
http://books.google.de/books?id=2_jkkX4DNWAC&printsec=frontcover&source=gbs_atb


die Jungs von wiki schreiben auch noch über ein paar andere Methoden, 
von denen ich aber nichts weiß:
http://en.wikipedia.org/wiki/Pattern_search_(optimization)



1. Ordnung
wenn du den gradienten berechnen kannst, dann macht es Sinn, in diese 
Richtung eine Liniensuche zu machen, um die Schrittweiten sinnvoll zu 
wählen. Dabei wird immer in Richtung des Gradienten ein Minimum gesucht.
Dazu steht auch viel im Schröder bei den Verfahren 1. Ordnung. Zum 
Beispiel die ALIS-Liniensuche.


Da das alles deterministische Verfahren sind, findest du IMMER nur 
lokale Minima, außer du hast einen glücklich gewählten Startpunkt!



Für die Hoffnung auf ein globales Minimum brauchst du einen 
stochastischen Ansatz über viele Messpunkte, was im 12-D wohl happig 
werden kann...
Aber nur so erhältst du nichtdeterministische Ergebnisse.
Die generischen Algorithmen wurden schon vorgeschlagen.
Wenn die Minima nahe beieinander liegen, kann man auch einen 
Ant-colony-Ansatz wählen.
Oder einer von den vielen anderen: 
http://en.wikipedia.org/wiki/Stochastic_optimization


Viel Erfolg =]

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.