CS231n笔记 Lecture 2 Image Classification pipeline
距离度量\(L_1\) 和\(L_2\)的区别
一些感性的认识,\(L_1\)可能更适合一些结构化数据,即每个维度是有特别含义的,如雇员的年龄、工资水平等等;如果只是一个一般化的向量,\(L_2\)可能用得更多。但这些仍然需要视具体情况而定。
Nearest Neighbor
KNN-demo
相当于\(K=1\)的KNN分类,这种其实是把所谓的“训练”过程推后了,是一种lazy的做法,model实际上隐藏在了训练数据中。训练时,只是单纯地“记下”训练样本的特征和标签;测试时,拿到一个新的样本,需要遍历所有的训练数据,找到最相似的那个,然后取其label作为当前样本的预测。
K的选取
取1的时候,在训练样本上的精度为100%,但这并不是好事,因为好的模型要有好的泛化能力。
评估model的好坏
像KNN等等这样的模型,存在K这样的超参数。不同超参数的选取是会直接影响模型的好坏的,那么如果评估一个模型,如何去选择最好的超参数呢?
- 只用训练集
用训练集训练,也用训练集来评测。由上一个问题引申出来,如果只用测试集来衡量,可能会在训练集上达到很高的准确度,可能就过拟合了,但实际上我们关注的是unseen的样本。 - 训练集、测试集
这时候我们很自然地就会想到,那我们把训练数据分成两部分,一部分用来训练,另一部分用来测试,我们选取能在测试集上表现最好的模型(or超参数)。这样做带来的问题也是类似的,我们这次会在测试集上过拟合,而测试集却又不能代表未来unseen的样本。 - 训练集、验证集、测试集
更常见的做法是,在训练的初始阶段,就把数据分成(训练集+验证集)+测试集这两大部分。训练时,可以采用比如交叉验证等方法,用验证集上的精度来选择模型的参数,得到最好的模型。然后只在测试集上做一次性的验证,得到的准确度可用于来表征这个模型的能力。需要注意的是,测试集的数据在整个训练过程中都是要保持untouched,只有到了最后要评估模型能力的时候,在测试集上跑一次,得到准确度等度量。
Linear model
\(y = Wx + b\)
b, 处理 imbalanced data , data independent bias terms。 举例来说,10分类的问题,b是一个10维的向量,如果cat的图片多,那b中cat对应的那一维就会大一些。
小感悟
- 在Justin讲课的过程中,有大概5~6次来自学生的提问。这些问题中有一些是作为有一定背景知识的人看来是不值一提的,比如CNN中输入图像的\(28\times 28\times 3\)中的3是代表什么意思等等,但是即便是这样看似“简单”的问题,我们也要敢于去发问。
还有一些问题,是我们会比较容易忽略的,比如在KNN的分类区域图上面,除了几个有颜色的区域外,还有一些白色区域。我看到的时候可能就一看了之,但是有学生就会问白色区域的含义是什么?实际上这些区域是无法采用majority voting产生结果的区域,比如K=3时,新来的样本的三个近邻恰好分属三个类别,那就无法决定它的类别了,这时候就是白色区域——当然这只是Justin的slides中的定义,不具有普遍性。
另一个问题印象比较深刻的是,在说\(L_1\)或者\(L_2\)不适合用作衡量图像距离的度量时,Justin给了下图的几张图片,说右边三张和第一张的\(L_1\)的距离都是一样的。想要说明\(L_1\)并不好。
刚开始说的时候我也疑惑了一下,怎么可能是一样的?直到有一个同学在后面提出了这个疑问,Justin解答说这是他特地凑的......好吧。说这个只想说明,有时候我们自己疑惑的点也许也正是很多其它人所疑惑的,有问题就问出来 :-)
CS231n笔记 Lecture 2 Image Classification pipeline的更多相关文章
- CS231n笔记 Lecture 5 Convolutional Neural Networks
一些ConvNets的应用 Face recognition 输入人脸,推测是谁 Video classfication Recognition 识别身体的部位, 医学图像, 星空, 标志牌, 鲸.. ...
- CS231n笔记 Lecture 4 Introduction to Neural Networks
这一讲主要介绍了神经网络,基本内容之前如果学习过Andrew的Machine learning应该也都有所了解了.不过这次听完这一讲后还是有了新的一些认识. 计算图 Computational gra ...
- CS231n笔记 Lecture 3 Loss Functions and Optimization
这一讲总体上就是引入Loss Function的概念,以及让大家对优化有一个初步的认识,和其他课程里面说的内容大同小异. Loss function Multiclass svm loss multi ...
- CS231n笔记 Lecture 1 Introduction
主题有关 这一讲主要是介绍性质的,虽然大多数概念以前听说过,但还是在他们的介绍中让我有如下一些认识,所谓温故而知新,不无道理: IMAGENET Feifei Li的团队首先爬取.标注了IMAGENE ...
- 【cs231n笔记】assignment1之KNN
k-Nearest Neighbor (kNN) 练习 这篇博文是对cs231n课程assignment1的第一个问题KNN算法的完成,参考了一些网上的博客,不具有什么创造性,以个人学习笔记为目的发布 ...
- 深度学习课程笔记(二)Classification: Probility Generative Model
深度学习课程笔记(二)Classification: Probility Generative Model 2017.10.05 相关材料来自:http://speech.ee.ntu.edu.tw ...
- CS231n-lecture2-Image Classification pipeline 课堂笔记
---恢复内容开始--- 相关资源 Event Type Date Description Course Materials Lecture 2 Thursday April 6 Image ...
- cs231n spring 2017 lecture2 Image Classification 听课笔记
1. 相比于传统的人工提取特征(边.角等),深度学习是一种Data-Driven Approach.深度学习有统一的框架,喂不同的数据集,可以训练识别不同的物体.而人工提取特征的方式很脆弱,换一个物体 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 18—Photo OCR 应用实例:图片文字识别
Lecture 18—Photo OCR 应用实例:图片文字识别 18.1 问题描述和流程图 Problem Description and Pipeline 图像文字识别需要如下步骤: 1.文字侦测 ...
随机推荐
- [机器视觉] SIFT特征-尺度不变特征理解
SIFT特征-尺度不变特征理解 简介 SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述.这种描述具有尺度不变性 ...
- HTTP、HTTP2.0、HTTPS、SPDY
本文原链接:https://cloud.tencent.com/developer/article/1082516 HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事 1.web始祖HT ...
- xshell5 上传下载命令
借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器. yum -y install lrzsz 其中,对于sz和rz的理解与记忆我用 ...
- kubernetes-平台日志收集(ELK)
使用ELK Stack收集Kubernetes平台中日志与可视化 K8S系统的组件日志 K8S Cluster里面部署的应用程序日志 日志系统: ELK安装 安装jdk [root@localhost ...
- java基础—java对象的序列化和反序列化
一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存 ...
- 正确适配苹果ATS审核要求的姿势
首先,ATS的技术行为不会有任何变化(除了新增两个字段NSAllowsArbitraryLoadsInWebContent和NSRequiresCertificateTransparency,也就是更 ...
- 安装ElasticSearch 6.1.1 head插件
https://blog.csdn.net/zoubf/article/details/79007908 主要参考了这个blog 才完成所有的配置,很好的参考资料
- 不依赖Hibernate的万能BaseDao---模仿了Hibernate底层的原理
今天写了个万能的BaseDao:有了这个BaseDao以后的Dao层直接继承这个BaseDao就能直接操作数据库了,增删改查,这是一个简易的Hibernate模型.写这个BaseDao的原因是最近在学 ...
- 配置httpd虚拟主机
轻松配置httpd的虚拟主机 httpd使用VirtualHost指令进行虚拟主机的定义.支持三种虚拟主机:基于ip,基于端口和基于名称.其中基于端口的虚拟主机在httpd的术语上(例如官方手册)也属 ...
- 初学Python02
数据类型和变量: 1.整数 整数在Python中直接输入就好,没有特殊要求(正负整数皆可).由于计算机是二进制的,有时候会使用十六进制表示数字,0X+0-9或者a-f来表示. 2.浮点数 浮点数 ...