Machine Learning: SVMs

Vorlesungen, Seminare und Praktika aus dem Bereich Angewandte Informatik
Lectures, seminars and labs from the area Applied Computer Science

Machine Learning: SVMs

Beitragvon aRo » 24.06.12 14:28

Hallo!

Vielleicht schaut hier ja mal der ein oder andere rein, der auch Machine Learning hört/gehört hat, und kann mir folgende Frage beantworten:

Man sagt die Trennebene für eine SVM zu finden, sei ein Optimierungsproblem der Form:
Finde die Trennebene die 0.5 * ||w||^2 minimiert unter der Bedingung, dass t_n ( w^T x_n + b) >= 1 für alle n.
Dabei hat die Hyperebene die Form w^T x + b = 0 und t_n ist der gewünschte Output für das Eingabebeispiel x_n.

Meine Frage ist nun:
Wieso sollen wir 0.5 * ||w||^2 minimieren? Eigentlich wollen wir die Hyperebene mit dem größten "Margin" finden, und der Margin betragt 2/||w||. Wir wollen also ||w|| minimieren. Woher kommt der Exponent und der Faktor?

Danke euch!
aRo
 
Beiträge: 311
Registriert: 23.10.07 01:28
Anwendungsfach: Medizin

Re: Machine Learning: SVMs

Beitragvon egal » 24.11.13 19:22

||w|| ist ja sqrt(\sum_i w_i^2), und sqrt() ist eine nicht-lineare funktion, die scheisse zu optimieren ist.

macht man ^2 dadran, verschwindet die wurzel. das aendert nicht die loesung des problems (hausaufgabe: warum?), macht die optimierung aber einfacher.

bei optimierungsoperationen (argmin/argmax) kann man ja beliebig positive konstanten dranmultiplizieren, deswegen aendert 1/2 auch die loesung nicht. dieser faktor dient nur der bequemlichkeit (du wirst das oft in anderen aufgaben finden, wo man foo^2 ableitet, und statt mit 2foo spaeter einfach mit foo rechnen moechte).

wie genau die optimierung jetzt aussieht, kann ich dir auch nicht sagen, aber du kannst bei wikipedia mit "quadratic programming" anfangen.

viel erfolg
egal
 
Beiträge: 6
Registriert: 12.10.10 20:10
Studiengang: Informatik (Dipl.)


Zurück zu Angewandte Informatik / Applied Computer Science