【发布时间】:2016-07-01 10:36:21
【问题描述】:
我正在尝试实现 SVM 损失函数及其梯度。 我找到了一些实现这两个的示例项目,但我无法弄清楚它们在计算梯度时如何使用损失函数。
我无法理解的是,在计算梯度时如何使用损失函数的结果?
示例项目计算梯度如下:
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 用于梯度结果。 X 是训练数据的数组。 但我不明白损失函数的导数是如何产生这段代码的。
【问题讨论】:
-
你用的是什么例子?
标签: python machine-learning svm gradient