失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 李飞飞计算机视觉课CS231n第三天

李飞飞计算机视觉课CS231n第三天

时间:2023-05-05 10:37:38

相关推荐

李飞飞计算机视觉课CS231n第三天

1、线性分类器与 K N N KNN KNN的区别

线性分类器:通过特征的线性组合来做出分类决定。如感知机、支持向量机、 L D A LDA LDA算法以及逻辑斯蒂回归模型。

K N N KNN KNN:用数据训练模型,把很多图片输入模型,让模型记住这些图片,对新来的图片进行比较,看和哪一类的图片最像。相似度度量一般采用是L2距离算法或L1距离算法。下面以L1距离算法举例:

直接比较图片和图片直接的绝对差,最后将差值直接相加,即:

50 + 7 + 26 + 31 + 20 + 12 + 4 + 54 + 20 + 7 + 11 + 59 + 1 + 8 + 40 + 9 = 359 50+7+26+31+20+12+4+54+20+7+11+59+1+8+40+9=359 50+7+26+31+20+12+4+54+20+7+11+59+1+8+40+9=359

这就是用L1计算得到的相似度,当图片相同时就是0。

让近邻算法中有相似性的合并为一个,这就变成了K近邻。

2、线性分类器为什么可以看成一种模板匹配方法

如1中有关线性分类器的介绍, W W W权重矩阵中的每一行都可以被视为一个模板,对应不同的种类(猫、狗、船)。因为在计算 W x + b Wx+b Wx+b时,每个类别的得分只与矩阵中跟它在同一行的的元素有关,所以认为矩阵中的这一行是这个类别的模板。

3、线性分类器的缺点

a. 如果想在训练好的模型里再加入一个类别,则需要重新训练模型。

b. 不能用于线性不可分的情况。

4、代码

代码实现的任务

1、载入cifar-10 数据集。

2、输出相应的训练集和测试集数据 Xtr, Ytr, Xte, Yte。

3、显示数据集的形状和部分信息。

4、调整数据集大小。

5、使用KNN进行训练。

6、修改 k 参数。

7、验证其他两种实现方式。

8、查看三种实现方法的使用时间。

KNearestNeighbor 类整体分析

本质上, 这是一个类, 有多个成员函数构成, 用户调用的时候, 只需要调用 train 和 predict 即可得到想要的预测数据

其中, compute_distances_two_loops,compute_distances_one_loop,compute_distances_no_loops分别是用来实现需要预测的数据集 X 和 原始记录的训练集 self.X_train之间的距离关系, 并通过 predict_labels 进行KNN预测。

compute_distances_two_loops

这个函数主要通过两层 for 循环对计算测试集与训练集数据之间的欧式距离。

compute_distances_one_loop

本质上这里填入的代码和 上一节中的是一致的, 只是多了一个 axis = 1 指定方向。

compute_distances_no_loops

参考文章: /geekmanong/article/details/51524402

predict_labels

根据计算得到的距离关系, 挑选 K 个数据组成选民, 进行党派选举。

predict

这里主要做了两个步骤:

计算欧式距离;

KNN 统计预测信息。

如果觉得《李飞飞计算机视觉课CS231n第三天》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。