cs331n 线性分类器损失函数与最优化

tip:老师语速超快。。。痛苦= =

线性分类器损失函数与最优化

(Multiclass SVM loss: L_{i} = sum_{j eq y_{i}} max(0,s_{i}-s_{y_{i}}+1))

(Loss = frac{1}{N} sum_{i=1}^{N} L_{i})

Q1: what if the sum was instead over all classes(j = yi)?

A1:在计算中,我们可以知道这个没有意义,在公式中相当于加上了1,因为yi-yi=0

Q2:我们用平均值来替代求和会怎么样?

A2:没有任何意义,只是相当于使得最后损失的计算成倍地缩小。

Q3:如果公式变成了 $ L_{i} = sum_{j eq y_{i}} max(0,s_{i}-s_{y_{i}}+1)^{2} $ 会怎么样?

A3:这个公式实际上是square hinge loss。第一个公式我们通常叫做 hinge loss。

Q4:最大的损失值和最小值是多少?

A4:显然最小就是0,最大是无穷

Q5:当W很小的时候,s都等于0的时候,我们的loss会是多少?

A5:loss将会是种类数-1

code:
def L_i_vectorized(x,y,W):
    scores = W.dot(x)
    margins = np.maximum(0,scores - scores[y] + 1)
    margins[y] = 0 # margins[y] = 1
    loss_i = np.sum(margins)
    return loss_i

(f(x,W) = Wx)

(L = frac{1}{N} sum_{i=1}^{N} sum_{j!=y_{i}} max(0,f(x_{i};W)_{j} - f(x_{i};W)_{y-{i}} +1))

这个loss function实际上是有bug,这个可能得到我们不想得到的结果。

比如我们想找到损失函数为0的W,是否W是独一无二?

显然不是,只要score[y]>1即可……

Weight Regularization

(L = frac{1}{N} sum_{i=1}^{N} sum_{j!=y_{i}} max(0,f(x_{i};W)_{j} - f(x_{i};W)_{y-{i}} +1) + lambda R(W))

L2 regularzation (R(W) = sum_{k}sum{l}W_{k,l}^2)

L1 regularzation (R(W) = sumsum left | W_{k,l} ight |)

Elastic net(L1+L2),Max norm regularization,Dropout

加入正则化,使得泛化能力增强。

L2正则化实际上是想让你尽可能展开你的W,使得充分的考虑更多的元素。

L1会使得W变得稀疏。

Softmax Classifier(Multinomial Logistic Regression)

scores = unnormalized log probabilities of the classes

(L_{i} = -logP(Y = y_{i} | X = x_{i}))

最大化正确的概率(最小化负的对数概率)

Q1:最大最小的loss是多少?

A1:最小为0,最大为无穷,显然。

Q2:当w非常小,都接近0的时候,loss会是什么值?

A2:-log(1/n) 显然

原文地址:https://www.cnblogs.com/qscqesze/p/7881967.html