作业记录

svm

做作业最重要的三个部分:

  • scores

  • loss

  • grad

loss

对于训练集中的第i个样本, ,其中,是为了书写简单。直观理解这个loss,就是scores中非正确类别的结果(f_j)大于了就产生loss,意思这个loss的要求很严格,不光期望正确类别的scores最大,并且这个margin还要大于1。

grad

需要注意,只有非正确类别并且margin要大于指定值的scores才会产生梯度

[图片上传失败...(image-50f6dc-1573011043056)]

所以总结一下梯度的数学公式

image

需要注意对于正确类别的index对应的W的列向量,一个样本可能就产生好几次的梯度,是存在一个sum的

Softmax分类器

之前一直不理解softmax需要求什么导数,现在总算是有认识了

还是按照scores, loss, grad三步走

概率归一,得到样本关于各个类别的概率

实际实现中的技巧,一般我们会让scores减去最大值,防止溢出

dw_k很容易求解

[图片上传失败...(image-1a3f33-1573011043056)]

因为其中后面一项是固定的,针对真实类别需要减一

实际实现的时候使用花式索引即可实现

two layer net

计算图

image

其中主要是softmax和relu的导数,其他没什么问题