损失函数(loss function)
量化模型的好坏
a dataset of examples:
loss:
简单介绍一下SVM:
SVM(support vector machine):支持向量机,是一种二分类模型。基本思想是求解能够正确划分训练数据集并且使几何间隔最大的分离超平面(具有唯一性)。
multi-class SVM loss:
公式里的1(边界)只是一个任意的选择,,关心分数的相对差值。
SVM损失函数只关注正确的分数比不正确的分数是否大于1,若大于1,则损失为0.
下面这个图是对SVM公式的理解:
def L_i_vectorized(x,y,w):
scores = W.dot(x)
margins = np.maximum(0, scores - scores[y] + 1)
margins[y] = 0 #j不等于y(对正确分类的归零)
loss_i = np.sum(margins)
return loss_i
如果发现在w下,L=0,但是W并不唯一,2W,3W…也会使L=0.
增加正则化在loss中:
第一项为data loss(model predictions should match training data)
第二项为正则化(model should be simple),目的是减轻模型的复杂度,防止过拟合,增强泛化能力,其中拉姆达是超参数,平衡data loss和regularization
in common use:
L1 regularization:在W矩阵中鼓励稀疏
L2 regularization(w的欧式范数):能够传递出x中不同元素值的影响,当x存在变化,主要取决于x变量的整体情况,而不是依赖仅仅几个元素
eg:x=[1,1,1,1],w1=[1,0,0,0],此时采用L1正则化会更好(少复杂性);x=[1,1,1,1],w2=[0.25,0.25,0.25,0.25],此时采用L2正则化会更好(较小的范数)