CS231N-课程简介与图像分类

CS231N-课程简介与图像分类

1.计算机视觉历史背景和概述

enter description here

enter description here

这是很有趣的,开始是原始图像的二值化这种,然后经历了一个2.5d,伪3d,最后达到我们日常见到的3d图像。有人最初 将输入图像作为 一些圆柱体,有些作为圈,线条处理。还有用了adaboost目标检测。还说明图片的识别还很受 遮挡,颜色,动作等影响。

2.K近邻

1.数据方面问题

一个猫的图片用一堆像素点表示,稍微改变一下,像素点会发生巨大变化,计算机很难理解这种变化。这个叫做语义鸿沟(semantic gap)。视角,照明,动作,遮挡等等都会改变。

2.k近邻算法

enter description here

enter description here

通过计算预测的图像与已知图像的最近的距离的图像,作为预测的label
选用L1距离的时候,如上图。

3.复杂度怎么样?

Q: With N examples, how fast are training and prediction?
A: Train O(1), predict O(N)

4.距离度量方式很多,选择哪种方式?

enter description here

enter description here

根据助教介绍,L1比较适用于每个feature有一定意义的情况下。L1下改变坐标轴会有不同的结果。最好还是都试一下。
K怎么选择?
enter description here
不同的k有不同的效果。基本上是根据K进行投票。除此之外也有利用距离进行加权的。通常来说,比较大的k的边界比较平滑。

5.超参数怎么设置?

首先数据集划分,
1,数据集全做训练
2.分为训练集和验证集(缺少在新数据下的表现能力)
3..分成训练集验证集和测试集 (比较合理,并且为了确保测试集比较可靠,让测试集不能泄露。也就是最后把测试集拿出来看结果)
4.k-folds交叉验证 数据分k组,k-1组训练,1组验证。最终会有k个损失,求得平均,选择损失最小的组 再做训练。knn中就是选择使得平均误差最小的k。

3.计算机视觉基本不用knn:

  • 维度灾难:knn属于泛一致性模型,不管数据是什么分布,如果给足够多的数据就能有最好的结果。然而,假设16 * 16数据,每个像素点3个取值。那么需要3^256数据。
  • 测试集上很慢
  • 距离的衡量方式很不准确。如下图,l2距离一样但是并不能很好表示变化。

enter description here

enter description here

猜你喜欢

转载自www.cnblogs.com/cbfstudy/p/9094919.html