Berechnen Sie den Gradienten der SVM-Verlustfunktion

Ich versuche, die SVM-Verlustfunktion und ihren Gradienten zu implementieren. Ich habe einige Beispielprojekte gefunden, die diese beiden implementieren, aber ich konnte nicht herausfinden, wie sie die Verlustfunktion bei der Berechnung des Verlaufs verwenden können.

Hier ist die Formel der Verlustfunktion:

as ich nicht verstehen kann, ist, wie ich das Ergebnis der Verlustfunktion beim Berechnen des Gradienten verwenden kan

Das Beispielprojekt berechnet den Verlauf wie folgt:

for i in xrange(num_train):
    scores = X[i].dot(W)
    correct_class_score = scores[y[i]]
    for j in xrange(num_classes):
      if j == y[i]:
        continue
      margin = scores[j] - correct_class_score + 1 # note delta = 1
      if margin > 0:
        loss += margin
        dW[:,j] += X[i]
        dW[:,y[i]] -= X[i] 

dW steht für das Gradientenergebnis. Und X ist das Array von Trainingsdaten. Aber ich habe nicht verstanden, wie die Ableitung der Verlustfunktion zu diesem Code führt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage