KNN

Machine Learning: Data-Driven Approach

机器学习 : 数据驱动法

  1. Collect a dataset(数据集) of images and laberls (收集一个数据集,包含 图片和标签)
  2. Use Machine Learning to train a classifier(分类器) (使用机器学习去训练一个分类器)
  3. Evaluate the classifier on new images (评估此分类器,使用全新的图片)

第三步,就是为了防止过拟合,过拟合,就是指当前的神经网络和训练数据集过度拟合,导致其在输入其他的数据集时,出现 远远达不到 训练数据集 时,理论上的精确程度。

分类器1:最近邻算法(惰性算法)

L1(Manhattan distance 曼哈顿距离,因为曼哈顿的街道规划都是方格形的,每到一个路口,进行左右判定,其最终到达目的地时的距离都是一样的) 距离衡量: 就是把两张图片的每一个对应像素点值求差后求和


所以,当进行图像分类时,我们把 输入图像 和 输出层的所有图像,做比较,选择其 L1 值 最小的图像,作为 我们的最终结果。
因为,这是一种,惰性算法,其 算法的 时间复杂度为一个常数
Train O(1)
predict O(N)
显然,这个算法不太好

二维直观的去看,就是 下图所示,不同颜色的点,就是不同的 输出层图片,两个图片之间做,垂直平分线, 不同点之间的垂直平分线相连,最终实现对整个 坐标系 的分割。

这样的话,就会导致中心,出现一个疑惑的黄色区域。

k-Nearest Neighbors (KNN)

K最近邻算法

之前是 K = 1 时的算法,但是,现在的话,我们令 K = 3, K = 5 也就是说,对 测试图像,选取 L1 距离最近的K个输出层图像,按照少数服从多数的原则,进行分类,这样会一定程度 提高 数据的 精确度。 但是,当 K 值过大时,比如说,包括了 所有的输出层图像,此时,KNN 算法,不再具有任何的辨别能力,所有输入层的图像,都会是一种 噪音。
白色部分,我们称之为 噪音。

L2(Euclidean 欧几里得)distance


将 I1 看作输出层,I2 看作输入层的图像, 当 I1 I2 均为 二维时,即:I1 = [xI1,yI1], I2 = [xI2,yI2] , 此时 : dI1 = | xI1 - xI2 | + | yI1 - yI2 | 以 I1 为 原点,此时:

dI2 = 根号下{|xI1-xI2|^2 + |yI1-yI2|^2} 此时,以 I1 为 原点,d2 为半径的图像,就是一个圆。

L1 距离,相对而言更适用于 坐标系 是相对明确的,也就是 I2,I1 对象的 维数对应的元素,当其发生变化时,就会导致 整个 d1 图像的改变。
L2 距离,则更多的,对 坐标系 有着更小的依赖,当 I2 I1 维数对应的含义变化时,L2 的距离 不会有 一个 很大的改变。

斯坦福的直观感受 demo
http://vision.stanford.edu/teaching/cs231n-demos/knn/

Hyperparameters 超参数

在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。
(These are hyperparameters : choices about the algorithm that we set rather than learn) algorithm 算法
我们称 KNN 中的 K 为 超参数,L1 与 L2 也是超参数

BAD (bad 缺点) Split 分离,拆分 evaluate 评估测试

最后,我们交叉验证,使用 Cross-Validation (交叉-验证)
fold 折叠,弯曲,包
average 平均
一般常用 五折交叉验证,十折交叉验证,二十折交叉验证

在小型数据集中,很有用,但是不要在深度学习中过于频繁的使用。

例子 :

single outcome 单一结果,我理解就是 相互独立
accuracy n. 准确性,精密
The line goes through the mean, 线条穿过的是 平均值,mean v. 意义,意图,意味着等, n. 平均值
bars indicated standard deviation. indicate v. 表明,指出,表示 standard deviation 标准差, deviation n. 偏差,偏向

KNN 在图像处理上从不使用

  1. 非常缓慢的训练速度(他是一种惰性的算法,它在计算的过程中,要对所有像素点进行计算,比对 o(N) )
  2. 距离度量标准在像素上是没有信息量的 (metrics 度量标准,metric 公制, pixel 像素)

    问:为什么L2的距离是一样的,原因是我们在处理的时候故意这样做成原图和这些图计算L2距离相同,这样就可以显示L2距离甚至KNN都不适合图像之间的计算。。。。。。。。 笑死
  3. Curse of dimensionality (Curse 诅咒, dimensionality 维度) 随着维度的增加,数据集的点数是指数增加的,计算的时间和数据集的点数是线性的。

总结

  1. 在图像分类中,我们开始于 带有图片和标签的训练集,并且 一定要在 测试集 上进行预测标签。
  2. 这个 KNN 分类器 预测标签基于最近的训练例子 (这个 KNN 基于最近的 K 个 训练的例子中,可以通过加权平均,加权求和等的方式,可以增加更近的对象的权重等,去优化最后的 预测)
  3. 距离函数 [ (Distance metric) ](https://en.wikipedia.org/wiki/Metric_(mathematics) 和 K 是超参数
  4. 选择超参数使用 验证集去选择,划分
  5. 仅仅在最最后使用测试集!

所以说,近邻算法训练上,是很快的,基本上不需要训练,但是,在使用时,要进行大量的计算。

线性分类器

在一维空间中,线性分类器就是一个点呗
在二维空间中,线性分类器不必多言,是一个我们都很常见的直线,y = kx + b
在三维空间中,线性分类器是一个平面。

线性分离器在 神经网络 中 是非常常用,其往往是第一个处理模块。


我们把一个图像展开,然后将其中的像素值展开成 一个一维的长向量,向量 传入 神经网络中,按照不同的权重去计算每一个向量值,我们还可以加上一个偏置(b,截距,+ 一个常数),最后所得的值,来判断图像的类别。

b 的话,可以理解为,在青蛙的识别中,因为 往往是中央出现一片绿色等,所以神经网络应该对中间有绿色的部分较为关注,所以我们就可以增加中间部分为绿色的权重。即 增加 绿色

001_KNN与线性分类器相关推荐

  1. 线性分类器与非线性分类器的区别是什么?有哪些优劣特性?

    线性分类器与非线性分类器的区别是什么?有哪些优劣特性? 线性分类器 线性分类器就是用一个"超平面"将两个样本隔离开,如:   (1)二维平面上的两个样本用一条直线来进行分类:    ...

  2. SVM中的线性分类器

    线性分类器: 首先给出一个非常非常简单的分类问题(线性可分),我们要用一条直线,将下图中黑色的点和白色的点分开,很显然,图上的这条直线就是我们要求的直线之一(可以有无数条这样的直线)     假如说, ...

  3. 【机器学习】SVM学习(三):线性分类器的求解

    [机器学习]SVM学习(三):线性分类器的求解 2016-10-10 19:56 239人阅读 评论(0) 收藏 举报 本文章已收录于:  机器学习知识库  分类: 机器学习(37)  目录(?)[+ ...

  4. 一个自带简易数据集的模拟线性分类器matlab代码——实验训练

    一个自带简易数据集的模拟线性分类器matlab代码--实验训练 %%%% Tutorial on the basic structure of using a planar decision boun ...

  5. Fisher 线性分类器--转

    原文地址:http://blog.csdn.net/htyang725/article/details/6571550 Fisher 线性分类器由R.A.Fisher在1936年提出,至今都有很大的研 ...

  6. 高效计算基础与线性分类器

    高效计算基础与线性分类器 标签: 深度学习线性分类器 2016-06-29 16:01 131人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: 深度学习笔记(1) 作者同类文章X 版权声明:本 ...

  7. SVM学习(三):线性分类器的求解

    1.问题的描述 上节说到我们有了一个线性分类函数,也有了判断解优劣的标准--即有了优化的目标,这个目标就是最大化几何间隔,但是看过一些关于SVM的论文的人一定记得什么优化的目标是要最小化||w||这样 ...

  8. TF之LiR:利用TF自定义一个线性分类器LiR对乳腺癌肿瘤数据集进行二分类预测(良/恶性)

    TF之LiR:利用TF自定义一个线性分类器LiR对乳腺癌肿瘤数据集进行二分类预测(良/恶性) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 X_train = np.float32 ...

  9. KNN算法与线性分类器

    一.图像识别 1.简单介绍 图像识别的核心问题:矩阵. 图像识别的任务就是给定图像即矩阵后,对矩阵去做图像识别,以得到一组概率,以此来判断图像的所属类别. 2.不足之处 图像识别的困难之处:准确率一直 ...

  10. [深度学习基础] 2. 线性分类器

    本文将以 softmax 线性分类器为例, 讨论数据驱动过程的各组成部分. 同时本章是后文非线性分类器和深度学习的铺垫. 1 训练数据 给定由 m 张图像组成的训练集, 每个图像的标记是 K 个不同类 ...

最新文章

  1. 2011年7个最佳的Linux发行版
  2. 淘宝旺铺基础版装修出专业版效果(不花钱也一样做到)
  3. tensorflow随笔-读取图像文件数据(2)-TFRecord
  4. 计算机无法弹出支付,windows7系统打不开支付宝功能导致付款与转账失败怎么办...
  5. oracle函数中bitand,Oracle bitand()函数使用方法
  6. 图像处理理论(六)——Harris, Eigenface
  7. P3914-染色计数【树形dp】
  8. mysql默认时间怎么不同步_MYSQL 更新时间自动同步与创建时间默认值共存问题
  9. Jboss 安全和优化
  10. linux中sed工具的简单解析与实例参考
  11. 2d 蓝图_“二渲三”打破传统思维!Netflix冲奥动画会推动2D动画变革吗?
  12. Spring Data Jpa的JpaRepository的getOne()方法查询数据实体时报错could not initialize proxy
  13. 你们小时候绝对没玩过的游戏
  14. 为Mac任意命令设置快捷键
  15. python 读写西门子PLC例子
  16. python OpenCV给视频去除水印
  17. 什么是决策!决策的定义!决策的本质!大数据决策定义!
  18. python读取txt提取信息
  19. Linux学习06--进程
  20. 云原生Java架构实战 K8s+Docker+KubeSphere+DevOps(上)

热门文章

  1. 车站计算机系统的简称,AFC计算机系统.ppt
  2. 虚幻引擎UE编辑器卡顿问题
  3. 屏幕录像专家录制视频时不能全屏
  4. 尚学堂浪曦视频学习推荐顺序
  5. 图像匹配论文总结(一)
  6. 如何测算信息化项目软件运维费?
  7. Android连接USB打印机
  8. 计算机网络练习题——一起肥学
  9. ArchiSteamFarm(ASF优秀的Steam挂卡工具) V4.0.3.3绿色版
  10. api64 gta5缺少steam_GTA5无法启动此程序,因为计算机中丢失steam_api64.dll 游戏打不来 现实这个,win7 64位....