2016-06-14 4 views
-1

enter image description hereDerive SVM Dual-Formular Gleichung

Für die oben Lagrangefunktion für SVM, kann ich die partiellen Ableitungen als unten: enter image description here

Allerdings kann ich nicht verstehen, wie ich sie zu den Steckern Lagrangian, um die Doppelform abzuleiten? W kann ersetzt werden, aber wohin geht b?

enter image description here

Kann jemand bitte erklären und die detaillierten Schritte geben?

+1

Ich stimme nicht in beide Richtungen, aber ich bin nicht davon überzeugt, das ist Programmierung-bezogen genug für Sie, um eine gute Antwort zu erhalten Hier. Wenn Sie Ihre Schritte bereits skizziert haben und wo Sie falsch gelaufen sind, und Sie die Regeln in mathe.stackexchange gelesen haben, können sie möglicherweise eine bessere Antwort geben. –

+2

Ich stimme zu: Diese Frage würde viel bessere Antwort auf Mathe oder Statistiken bekommen. – Prune

+0

Ich versuchte Mathe, aber bekam keine Antwort und meine Frage wurde aus Gründen abgelehnt, die ich nicht kenne. Ich konnte in der Vergangenheit immer Hilfe von hier bekommen, also habe ich die Frage hierhin verschoben. Tatsächlich bekam ich innerhalb kürzester Zeit eine Antwort. Danke allen! – Allen

Antwort

2

Ihre lagrangian ist von Form

L(w, b, a) = 1/2 ||w||^2 + SUM_i a_i (1 - y_i(<w, x_i> + b)) 

und Sie lösen, dass, um extremum zu erreichen, müssen Sie haben:

w = SUM_i a_i y_i x_i 
SUM_i a_i y_i = 0 

wir in erster Stecker w

L(w, b, a) = 1/2 <SUM_i a_i y_i x_i, SUM_j a_i y_i x_i> 
       + SUM_i a_i (1 - y_i(<SUM_j a_j y_j x_j , x_i> + b)) 
      = 1/2 SUM_i,j a_i a_j y_i y_j <x_i, x_j> 
       + SUM_i a_i 
       - SUM_i (a_i y_i(SUM_j a_j y_j <x_j, x_i> + b)) 
      = 1/2 SUM_i,j a_i a_j y_i y_j <x_i, x_j> 
       + SUM_i a_i 
       - SUM_i (a_i y_i SUM_j (a_j y_j <x_j, x_i>) + a_i y_i b) 
      = 1/2 SUM_i,j a_i a_j y_i y_j <x_i, x_j> 
       + SUM_i a_i 
       - SUM_i a_i y_i SUM_j (a_j y_j <x_j, x_i>) 
       - SUM_i a_i y_i b 
      = 1/2 SUM_i,j a_i a_j y_i y_j <x_i, x_j> 
       + SUM_i a_i 
       - SUM_i a_i a_j y_i y_j <x_j, x_i> 
       - SUM_i a_i y_i b 
      = + SUM_i a_i 
      -1/2 SUM_i a_i a_j y_i y_j <x_j, x_i> 
       - b (SUM_i a_i y_i) 

Und jetzt schließen wir SUM_i a_i y_i = 0 an, was uns

gibt
L(w, b, a) = SUM_i a_i - 1/2 SUM_i a_i a_j y_i y_j <x_j, x_i> 

Folglich von Programmierern Perspektive Sie nicht über b während Optimierungsprozess kümmern, wie Sie ohne optimale a zu wissen, es finden können! Sobald Sie Code, der Optimierung für a hat, können Sie jetzt wiederherstellen b mit Original-Gleichungen usw.

+0

Ich schätze es sehr, dass Sie eine Antwort darauf gegeben haben, aber (selbst wenn ich die Ableitung kenne), das ist furchtbar schwer zu lesen. Dieser innere Block ist undurchdringlich, imo, und selbst etwas wie "" hat mich eine Weile gebraucht, um herauszufinden ... ist das das innere Produkt von w und xi; nur ein gruppierter Index; Vektoren; ein Java-generischer Typ ...? +1 für eine gute Antwort, aber dies verstärkt zu erfüllen, dass die ursprüngliche Frage war nicht geeignet für dieses Format –

+0

leider Latex Unterstützung wurde in Meta so abgelehnt. Ich mag die Idee, "Java generic type" in mathematischen Beweisen zu verwenden! – lejlot