knn&linear classification

今天的计算机视觉基础课听了斯坦福C231N的两个视频,然后啥都没懂,搜了一下博客,稍微学一下,希望大概能理解个概念。

KNN

看了这篇博客,看了中文的材料之后立马知道是在干什么了,想听懂英文课,虽然带了字幕(感觉是字幕翻译不到位的锅,反正甩了再说,免得影响心态),果然还是很难。

k-NearestNeighbor,k最近邻,就是判断某一个样本类型的时候,找他k个最近的邻居,大多数邻居是什么类型它就判定成什么类型。这么一看,马上就觉得knn不是看视频的时候那个云里雾里的东西了。

然后再回过来看视频配套的ppt,这一部分:
knn&linear classification
左图是标记好类型的图片,希望对右图第一列的每张图片,找到k个最近的邻居。所以才顺理成章地引出下面的问题:如何比较两张图片的距离?

于是有了像素值对应直接相减,将差值相加的这第一种思路:
knn&linear classification
但是距离的选择是一个hyperparameter,超参数。看视频的时候很懵,后来查了查,超参数就是需要人工确认的参数,另一种从数据学习和评估中得到的称为模型参数。那么这里提到了它的两种选择:
knn&linear classification
Manhattan距离和Euclidean距离。

后面讲述对训练集选取、k值选取的内容,讲到了knn算法从未真正用到过图像识别上过,因为自身存在诸多缺陷。

Linear Classification

看到了这篇博客,非常详细了,就是对着这份cs231n来写的。knn到linear classification讲解的过渡是很有意思的,knn性能上的缺陷就非常明显,对于每一个样本,都要去和所有数据比较,而线性分类器训练完成之后,输入的数据进行矩阵乘法和加法就可以得到预测结果,可以说是非常有帮助的。