SVM: Wie löst man das Minimierungsproblem?

Hallo Zusammen,

Seit kurzer Zeit beschäftige ich mich mit Support Vector Maschinen. Nachdem ich das Gefühl habe, grundsätzliche Zusammenhänge einigermaßen begriffen zu haben, wollte ich einmal versuchen eine SVM zu programmieren. Wie es scheint, muss ich lediglich eine Hyperebene berechnen, die folgende Form hat:

wx+b=0 (w=Gewichtsvektor, x=Trainingsdatenvektor)

Um w und b zu bekommen, muss man eine Lagrangegleichung maximieren. Diese lässt sich durch eine duale Gleichung ausdrücken, welche man minimieren muss. Aus der Minimierung erhält man den Lagarngemuliplikator, den man benutzen kann, um w und b auszurechnen.Jedoch heisst es in allen Büchern, in denen ich darüber etwas gelesen habe, dass das Auffinden einer Lösung dieses Minimierungsproblems nicht mit einfachen rechnerischen Mitteln zu finden ist. Vielmehr muss man numerische Methoden der quadratischen Optimierung anwenden. Leider weis ich aber gar nicht welche Methoden das sein sollen. Kann mir jemand sagen welche numersichen Methoden gemeint sind, so dass ich gezielt dannach suchen kann?

Danke schon mal

Jens

Reply to
Jens
Loading thread data ...

"Jens" schrieb im Newsbeitrag news: snipped-for-privacy@posting.google.com...

(...)

berechnen, die

maximieren.

Meinst Du die Extremierung einer Lagrange-Funktion, die via Lagrangesche-Multiplikatoren die Nebenbedingungen enthält?

den man

in denen

Bei vielen Variablen und Nebenbedingungen wird der numerische Aufwand, Extrema zu bestimmen, gewaltig. Das läßt man zweckmäßigerweise vom Rechner erledigen. Glücklicherweise gibt es inzwischen starke Algorithmen, die auf direktem Wege Extrema bestimmen, ohne die gefürchteten vielen Gleichungen (die man mit Hilfe Differentialrechnung erhält) lösen zu müssen. Software wie Mathematica, Maple, mathcad, ... erledigt das.

Aber vielleicht kannst du konkretere Hinweise auf deine Aufgabenstellung geben. Und in der NG dsm wird dir dann bestimmt geholfen werden.

Also werde konkreter.

Freundliche Grüße,

Alfred Flaßhaar

Reply to
Alfred Flaßhaar

Hi Jens,

meinst Du das mathematische Optimierungsproblem " ||f(x)||^2 --> min. , mit Bedingungen für x" ?

Hier, wie gewünscht, ein paar Suchworte für Heuristiken zur Lösung des Optimierungsproblems: Quasi-Newton-Method(s) Line Search Gaus-Newton Levenberg-Marquardt Sequential Quadratic Programming (SQP) Simulated Annealing Evolutionäre Algorithmen

Heuristiken werden angewandt um ein möglichst gutes, lokales Minimum zu finden, können aber nicht garantieren, das Du wirklich das globale Optimum findest! Ganz wichtig ist die Unterscheidung zwischen nichtlinearem und linearem Problem. Nichtlineare Optimierung ist sehr viel aufwendiger.

Ich empfehle Dir aus eigener Erfahrung, die "optimization toolbox" von Matlab zu verwenden! Ich habe selbst einmal eine Heuristik (Simulated Annealing) in C implementiert und festgestellt, daß die Matlab-Algorithmen sehr viel effizienter arbeiten.

Thiemo

Reply to
Stadtler

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.