cs231n_assignment1 SVM and softmax notes(2016版)

Notes

提出评分函数(score function)和损失函数(loss function)

score function 图像到分类标签的数值化映射
\displaystyle f(x_i,W,b)=Wx_i+b
W的每一个行向量就是一个分类器。如果改变其中一行的数字,会看见分类器在空间中对应的直线开始向着不同方向旋转。而偏差b,则允许分类器对应的直线平移。需要注意的是,如果没有偏差,无论权重如何,在x_i=0时分类分值始终为0。这样所有分类器的线都不得不穿过原点。
这里还可以将参数W和b合并,把b向量加到W上,同时列向量x在最底部加一个元素[1]。


score function对一张图片会预测出其属于每一种类别的数值,将得分最高的类型预测为其类型
loss function对score function不正确分类的数值进行loss计算
主要提出了多类SVM loss 和softmax的交叉损失熵

  \displaystyle L_i=\sum_{j\not=y_i}max(0,s_j-s_{y_i}+\Delta)\displaystyle Li=-log(\frac{e^{f_{y_i}}}{\sum_je^{f_j}})
多类SVM loss:想要SVM在正确分类上的得分始终比不正确分类上的得分高出一个边界值\Delta
softmax loss: 上右式log中的式子称为softmax函数,其将输入f,都归一化到[0,1],并相加为1。再取熵作为loss

为了提高泛化能力,也就是W中的每个因子都对图片分类做出贡献,而不使得W中的某个维度对整体分值有过大的影响。引入了正则化惩罚。
 R(W)=\sum_k \sum_l W^2_{k,l}
将上式加到loss中,我们希望得到的loss尽量小,则正则化惩罚倾向于更小更分散的权重向量值。

loss function计算完成后,就可以进行最重要的步骤,优化W。在机器学习中,优化问题一般都采用梯度下降法解决。

对SVM loss function的某个数据点,求正确分类的微分
L_i=\displaystyle\sum_{j\not =y_i}[max(0,w^T_jx_i-w^T_{y_i}x_i+\Delta)]


得:
\displaystyle\nabla_{w_{y_i}}L_i=-(\sum_{j\not=y_i}1(w^T_jx_i-w^T_{y_i}x_i+\Delta>0))x_i
对未正确分类的剩余行W求微分
得:
\displaystyle\nabla_{w_j}L_i=1(w^T_jx_i-w^T_{y_i}x_i+\Delta>0)x_i
其中1是一个函数,代表当条件满足(即产生loss时),函数值为1,否则取0。这两个公式使用numpy向量化形式coding

    # compute the gradient
    margins[margins > 0] = 1.0
    row_sum = np.sum(margins, axis=1)                  # 1 by N
    margins[np.arange(num_train), y] = -row_sum        
    dW += np.dot(X.T, margins)/num_train + reg * W     # D by C
margins为N*C的矩阵,means N个样本,每个样本被判别为一种类型时的loss,一共C类。由上面的微分公式得,正确分类的W微分为-X[i],错误分类的W微分为X[i]。X为N*D矩阵,means N个样本,每个样本有D个元素。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值