课程内容全纪录:
1、讲解图像分类的难点
  1、光照强度

  2、主体变形
  3、主体与背景咬合
  4、主体与背景相接近
  5、同类别间存在区别
2、KNN
  1、最近邻算法
  2、Knn
  3、hyperparameter 的 cross-validation
3、线性分类器
 
全解析:
1、图像分类的难点示意图
  
 2、KNN

首先是KNN中用到的距离计算公式,L1和L2如下:

图示KNN的计算过程:

图中有种类 a o,当需要确定c属于哪个种类时,可以使用KNN

    

计算c到所有a和所有o的距离,L1或者L2均可。如图示取K为3,即取到3个较小值。

因为较小值中包含在o种类的数量多,所以确定c种类为o:

    

当K为1时,即为最近邻。同时KNN需要注意的点:

  1.取K为奇数  

  2.K个较小值中尽量包含少的种类  

  3.在实际中需要权衡训练时间和测试时间,最近邻不需要训练时间,但是需要很多的测试时间。

而CNNs则相反。所以在实际当中很少使用最近邻。

    

可以使用KNN运算库:ANN 来进行计算。在数据可视化中会使用KNN.

reference:https://www.youtube.com/watch?v=UqYde-LULfs

2.3  cross-validation 交叉验证

KNN中K的取值是不确定的,称之为hyperparameter,即超参数。通过cross-validation即交叉验证的方式来选取合适的K值。

  选取validation集:将原始训练集拆分成多个数据集合,使用其中之一作为验证集。

  验证过程:选取K后,对验证集进行计算,得到不同验证集上的准确率,对准确率取平均值,平均准确率较好的K值为合适的超参数。

  绘制准确率曲线,得到合适的超参数:此处选择K = 7

当然最重要的是课程的最后总结:

瞬间爆炸。。。

3、线性分类器

  所谓线性分类器,是对输入数据进行线性的计算,最终得到预测label的概率值:

  参数设置:注意此时加了bias也就是截距 b:

  对线性分类器进行分类界面的可视化:

  那么问题来了:解释加bias的原因?

    如果没有bias,所有的分类界面均经过原点。可区分性降低。

    bias在CNNs中也会使用。原因类似。

  线性分类器总结:

    当图像所需要识别的主体部分缺失时,分类困难。 

图片来源:CS231n winter 课件。

附:通关CS231n企鹅群:578975100 validation:DL-CS231n

CS231n 2016 通关 第二章-KNN的更多相关文章

  1. CS231n 2016 通关 第二章-KNN 作业分析

    KNN作业要求: 1.掌握KNN算法原理 2.实现具体K值的KNN算法 3.实现对K值的交叉验证 1.KNN原理见上一小节 2.实现KNN 过程分两步: 1.计算测试集与训练集的距离 2.通过比较la ...

  2. CS231n 2016 通关 第一章-内容介绍

    第一节视频的主要内容: Fei-Fei Li 女神对Computer Vision的整体介绍.包括了发展历史中的重要事件,其中最为重要的是1959年测试猫视觉神经的实验. In 1959 Harvar ...

  3. CS231n 2016 通关 第六章 Training NN Part2

    本章节讲解 参数更新 dropout ================================================================================= ...

  4. CS231n 2016 通关 第三章-SVM与Softmax

    1===本节课对应视频内容的第三讲,对应PPT是Lecture3 2===本节课的收获 ===熟悉SVM及其多分类问题 ===熟悉softmax分类问题 ===了解优化思想 由上节课即KNN的分析步骤 ...

  5. CS231n 2016 通关 第五章 Training NN Part1

    在上一次总结中,总结了NN的基本结构. 接下来的几次课,对一些具体细节进行讲解. 比如激活函数.参数初始化.参数更新等等. ====================================== ...

  6. CS231n 2016 通关 第四章-反向传播与神经网络(第一部分)

    在上次的分享中,介绍了模型建立与使用梯度下降法优化参数.梯度校验,以及一些超参数的经验. 本节课的主要内容: 1==链式法则 2==深度学习框架中链式法则 3==全连接神经网络 =========== ...

  7. CS231n 2016 通关 第五、六章 Dropout 作业

    Dropout的作用: cell  1 - cell 2 依旧 cell 3 Dropout层的前向传播 核心代码: train 时: if mode == 'train': ############ ...

  8. CS231n 2016 通关 第五、六章 Batch Normalization 作业

    BN层在实际中应用广泛. 上一次总结了使得训练变得简单的方法,比如SGD+momentum RMSProp Adam,BN是另外的方法. cell 1 依旧是初始化设置 cell 2 读取cifar- ...

  9. CS231n 2016 通关 第五、六章 Fully-Connected Neural Nets 作业

    要求:实现任意层数的NN. 每一层结构包含: 1.前向传播和反向传播函数:2.每一层计算的相关数值 cell 1 依旧是显示的初始设置 # As usual, a bit of setup impor ...

随机推荐

  1. Invalid regular expression: unmatched parentheses

    Unmatched ) in Javascript regular expression您的某些字符串包含错误')'.你需要逃避这个.这是这样做的功能: function escapeRegExp(s ...

  2. android开发教程之使用线程实现视图平滑滚动示例 改

    package com.melonsapp.messenger.ui.popupuser; import android.os.Handler; import android.view.View; i ...

  3. jquery ajax 跨域訪问样例

    <script type="text/javascript"> $(function(){    $.ajax({    cache : false,    type ...

  4. IoT设备程序开发及编译环境搭建初体验

    引言 Mirai事件一经曝出,立即引领了一轮研究IoT设备的热潮.目前,对Mirai的报告大多只是在对其功能实现上的介绍,却很少提及如何实现IoT设备程序开发的测试环境.本文在对Mirai的源码研究的 ...

  5. VC中常见API函数使用方法(经验版)

    ***********************************************声明*************************************************** ...

  6. (转)typedef用法

    Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法.不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮 ...

  7. Centos修改静态IP

    vim /etc/sysconfig/network-scripts/ifcfg-eth0代开配置文件 写入 DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为et ...

  8. 字符串函数---strcat()与strncat具体解释及实现

    一.strcat()与strncat() strcat():strcat(dest,src);        strcat把src所指向的字符加入到dest结尾处(覆盖原dest结尾处的'\0').并 ...

  9. bash shell和进程

    1 exec builtin 不创建子shell,在原进程的上启动新的脚本,但是它会把老shell的环境清理掉,所以,它从原shell中什么也不继承,在一个干净的环境中执行新的脚本.执行完之后退出当前 ...

  10. Lambda Architecture

    Lambda Architecture » λ lambda-architecture.net http://lambda-architecture.net/ Twitter's tweets ana ...