【学习笔记】cs231n-assignment1-SVM

    前言

        大家好,我是Kay,小白一个。以下是我完成斯坦福 cs231n-assignment1-SVM 这份作业的做题过程、思路、踩到的哪些坑、还有一些得到的启发和心得。希望下面的文字能对所有像我这样的小白有所帮助。

        在第一份作业里,我们使用的 kNN 其实有很多缺陷,比如要和全部训练集比较一遍才能得到结果、每张图存的信息太多了内存容易不足等等。现在我们来学习一种更有效率的工具: 线性分类器 。

线性分类器的思想是,训练集不是拿来比对的,而是拿来对 W 进行训练,使之存下一个所有有同一个标签下的图像的“模板”,等 W 的训练完成后,我们大可抛弃掉整个训练集,用 test 集与这个 W 做比较,显然这种方法高效得多。
一个完整的线性分类器由两部分组成:一个给图片评估分数的函数 + 一个评估与真实标签差距大小的损失函数。
分数函数以 f(x, W) 的形式出现,而损失函数我们将要接触两种处理方法: SVM & Softmax


数据含义分析

· X[N*D]: N 份训练集图像,每份包含的像素数据是 D
· W[D*C]: D 个像素数据,每个数据对 C 个标签的偏好/倾向


        TODO1:计算损失函数里的梯度 dW

    
        【思路】由于分数函数 f=Wx+b ,所以 W 的梯度为 x,所以直接把 x 的值直接 copy 进 dW 的数组里就行啦。
                dW += -np.reshape(X[i], (-1, 1))


【开始 Debug】结果完全对不上,刚开始以为是这种广播写法不对,用下面的代码去测试了一下,是可行的!不应该对自己的代码没有自信。(虽然这种写法形式很丑)
import numpy as np
a = np.arange(6)
b = np.zeros((6, 2))
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值