Próbuję zaimplementować funkcję utraty SVM i jej gradient. Znalazłem kilka przykładów projektów, które implementują te dwa, ale nie mogłem dowiedzieć się, jak mogą korzystać z funkcji utraty podczas obliczania gradientu.Oblicz gradient funkcji utraty SVM.
Co nie mogę zrozumieć, że jak mogę wykorzystać wynik funkcji straty, podczas gdy obliczanie gradientu?
Przykład projekt oblicza nachylenie w następujący sposób:
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 na skutek gradientu. A X to zestaw danych treningowych. Ale nie rozumiem, w jaki sposób pochodna funkcji straty powoduje ten kod.
Jakiego przykładu używasz? – Prophecies