JPLAY0/CS231nAssignment

linear_SVM.py 里面dw正则化为什么用L1

Closed this issue · 6 comments

linear_svm.py代码44行为什么使用的是
dW += reg * W
而不是dW += reg * np.sum(W * W)
同时问一下48行为什么你在loss正则化前面乘了0.5
loss += 0.5 * reg * np.sum(W * W)

我们在给loss加正则化项的时候为了方便求导(使用L2范数),通常会给正则化项的loss乘上1/2。
dW += reg * W
这步则是计算求导的正则化项,该项 reg1/22W=regW

乘上1/2这个是我们编程中的预定俗称的参数吗? 因为我看源代码并没有乘这个1/2;课程中有提及过这一点吗?
reg是我们的超参数对吧,那么2W这个求导的正则化项是怎么来的呢?
麻烦再解答一下~谢谢老哥

乘1/2的约定俗成的,就比如1/2*X^2求导等于X一样,我们希望求导后的表达式简化。

1/2完全明白啦~
2W是怎么来的呢?

W^2求导得来的

哎呀呀 懂了懂了 好傻的问题...
非常感谢!新年快乐~