根据课程内容及网上相关内容记录笔记,仅学习使用
打卡内容:
1. f(x,w)线性分类器与knn区别
1.KNN分类器必须记住所有的训练数据并存储起来,以便未来测试数据比较,需要很大的空间
对一个测试数据需要与所有的训练数据进行比较,需要很大的计算资源和时间
2.KNN是不需要学习的,而线性分类器需要学习参数
3.线性分类器只能分类线性可分的数据。
2. 线性分类器为什么可以看成一种模板匹配方法
关于权重W的解释是它的每一行对应着一个分类的模板(有时候也叫作原型)。一张图像对应不同分类的得分,是通过使用内积(也叫点积)来比较图像和模板,然后找到和哪个模板最相似。从这个角度来看,线性分类器就是在利用学习到的模板,针对图像做模板匹配。从另一个角度来看,可以认为还是在高效地使用k-NN,不同的是我们没有使用所有的训练集的图像来比较,而是每个类别只用了一张图片(这张图片是我们学习到的,而不是训练集中的某一张),而且我们会使用(负)内积来计算向量间的距离,而不是使用L1或者L2距离。
3. 线性分类器的缺点也就是存在的问题
- 每个类别只能有一个模板向量,若一个类别中有不同的变种,算法会在变种的特征做平均。
- 数据在其所在的空间中可能不是线性可分的,如异或函数。
4. 分析代码实现的任务是什么,每个函数模块实现的功能是什么,代码运行的逻辑
贴上b站上大佬的作业代码链接https://github.com/JPLAY0/CS231nAssignment