第一节课大部分都是废话。第二节课的前面也都是废话。

First classifier: Nearest Neighbor Classifier

在一定时间,我记住了输入的所有的图片。在再次输入一个图片之后,我和之前的图片进行比较,然后输出分类。

近邻分类器用50000张32*32 10labels的训练集来训练。我们定义距离为曼哈顿距离d1(I1,I2)=sigma(abs(I1-I2)),我们相互之间算出每个像素的差值,然后加起来就是距离。

然后我们得到距离最小的一个图片,然后看这图片的label是什么。

tip1:这个傻逼算法会随着训练集合增加,速度变得很慢。。

tip2:这个傻逼算法在训练的时候,我们不计算,只会在最后测试的时候才计算。


加速方法:加速近邻距离的计算,加速匹配。

改变方法:我们亦可以使用不同的距离计算方法,比如欧氏距离。


升级版:KNN,我们找k个最近的list,然后让里面的实例进行vote,票数最多的就是这个分类。k越大分界线越平滑。k的选择是一个超参数。

tip1:假设训练集就是测试集,那么nn的准确率就是100%(因为总能找到自己)

tip2:假设是knn,acc就不一定是100%

tip3:我们怎么去设置超参数?这是一个独立问题,我们不知道,你只能不断的去尝试这个超参数的取值(这不是等于没说吗。。。


拟合程度的选择会影响你的泛化能力,你可以使用k-fold来提高你的泛化能力。cross-validation也可以

实际生活中,没人使用这个傻逼算法,因为这个傻逼算法很慢。如果如果图片稍微变了一下(比如往左边平移,比如亮度不一样),距离就会差很多,但实际上这个图片只是小小的改变了一下,knn就会很难识别。(实际上我觉得这应该是你选择的距离计算方法不对)

Linear Classification

神经网络现在非常屌,哪儿都有神经网络。neural networks practitioner,我们就像搭积木一样搭建神经网络。

考虑32323的一个数据集,一个图一共3072个数,我们想知道这个图属于哪一类。

f(x,W)来表示,x是image,W是parameters。输入图片,输出分类。

最简单的线性分类器\(fx,W,b) = Wx+b\),W是10*3072的矩阵,x是3072*1的矩阵,b是10*1的bias。我们通过不断的调整W和b来到最佳的结果。

tips1:线性分类器做了什么?W就像一个模版匹配,它实际上是用一些分数的加权和,与自己想要的颜色匹配。我们可以把图片想成高伟空间的点,然后线性分类器就是每一条线,描绘这个取样空间中负点指向正点方向的梯度。沿着这条直线,你会得到0分,如果在正方向,距离越远分数越高。

tip2:什么东西线性分类系很难去分类?你的图片如果在3072高维空间是一个圆,那么一条直线很难去很好的分割(自行脑补画面)。灰度图片很难用线性分类器去做,因为特征不够。

定义损失函数,能够quantifying what it means to have a good W.

1. cs231n k近邻和线性分类器 Image Classification的更多相关文章

  1. 最近邻分类器,K近邻分类器,线性分类器

    转自:https://blog.csdn.net/oldmao_2001/article/details/90665515 最近邻分类器: 通俗来讲,计算测试样本与所有样本的距离,将测试样本归为距离最 ...

  2. cs231n笔记:线性分类器

    cs231n线性分类器学习笔记,非完全翻译,根据自己的学习情况总结出的内容: 线性分类 本节介绍线性分类器,该方法可以自然延伸到神经网络和卷积神经网络中,这类方法主要有两部分组成,一个是评分函数(sc ...

  3. cs231n笔记 (一) 线性分类器

    Liner classifier 线性分类器用作图像分类主要有两部分组成:一个是假设函数, 它是原始图像数据到类别的映射.另一个是损失函数,该方法可转化为一个最优化问题,在最优化过程中,将通过更新假设 ...

  4. 【Python 代码】CS231n中Softmax线性分类器、非线性分类器对比举例(含python绘图显示结果)

    1 #CS231n中线性.非线性分类器举例(Softmax) #注意其中反向传播的计算 # -*- coding: utf-8 -*- import numpy as np import matplo ...

  5. 机器学习 —— 基础整理(三)生成式模型的非参数方法: Parzen窗估计、k近邻估计;k近邻分类器

    本文简述了以下内容: (一)生成式模型的非参数方法 (二)Parzen窗估计 (三)k近邻估计 (四)k近邻分类器(k-nearest neighbor,kNN) (一)非参数方法(Non-param ...

  6. chapter02 K近邻分类器对Iris数据进行分类预测

    寻找与待分类的样本在特征空间中距离最近的K个已知样本作为参考,来帮助进行分类决策. 与其他模型最大的不同在于:该模型没有参数训练过程.无参模型,高计算复杂度和内存消耗. #coding=utf8 # ...

  7. 机器学习之路: python k近邻分类器 KNeighborsClassifier 鸢尾花分类预测

    使用python语言 学习k近邻分类器的api 欢迎来到我的git查看源代码: https://github.com/linyi0604/MachineLearning from sklearn.da ...

  8. cs231n线性分类器作业 svm代码 softmax

    CS231n之线性分类器 斯坦福CS231n项目实战(二):线性支持向量机SVM CS231n 2016 通关 第三章-SVM与Softmax cs231n:assignment1——Q3: Impl ...

  9. [基础]斯坦福cs231n课程视频笔记(一) 图片分类之使用线性分类器

    线性分类器的基本模型: f = Wx Loss Function and Optimization 1. LossFunction 衡量在当前的模型(参数矩阵W)的效果好坏 Multiclass SV ...

随机推荐

  1. Notepad++文件自动更新

  2. C#学习-类和结构

    类和结构体,对两者进行比较 语法上的区别在于,定义类要使用关键字class,而定义结构体则使用关键字struct; 结构体中不可对声明字段进行初始化,但类可以: 如果没有为类显式地定义构造函数,C#编 ...

  3. vue-all

    http://v1-cn.vuejs.org/guide/ [1]. vue-cli [项目不完整,跳过]https://github.com/vuejs/vue-cli vue-cli-master ...

  4. Flink-- 数据输出Data Sinks

    flink在批处理中常见的sink 1.基于本地集合的sink(Collection-based-sink) 2.基于文件的sink(File-based-sink) 基于本地集合的sink(Coll ...

  5. BZOJ1208 [HNOI2004]宠物收养所 splay

    原文链接http://www.cnblogs.com/zhouzhendong/p/8085803.html 题目传送门 - BZOJ1208 题意概括 有两种数,依次加入. 规则为下: 如果当前剩余 ...

  6. Python交互图表可视化Bokeh:3. 散点图

    散点图 ① 基本散点图绘制② 散点图颜色.大小设置方法③ 不同符号的散点图 1. 基本散点图绘制 import numpy as np import pandas as pd import matpl ...

  7. ES集群

    1. ElasticSerach集群安装  修改配置文件elasticserach.yml [elk@localhost config]$ vi elasticsearch.yml # ------- ...

  8. 048 SparkSQL自定义UDAF函数

    一:程序 1.需求 实现一个求平均值的UDAF. 这里保留Double格式化,在完成求平均值后与系统的AVG进行对比,观察正确性. 2.SparkSQLUDFDemo程序 package com.sc ...

  9. HDU 2888 Check Corners (模板题)【二维RMQ】

    <题目链接> <转载于 >>> > 题目大意: 给出一个N*M的矩阵,并且给出该矩阵上每个点对应的值,再进行Q次询问,每次询问给出代询问子矩阵的左上顶点和右下 ...

  10. HDU 3308 LCIS (经典区间合并)【线段树】

    <题目链接> 题目大意: 给你一段序列,对其进行两种操作,一是修改某个序号的点的值:二是查询某个区间的LCIS(最长上升子序列). 解题分析: 线段树区间合并的典型例题,用求某个区间的LC ...