距离度量\(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的更多相关文章

  1. CS231n笔记 Lecture 5 Convolutional Neural Networks

    一些ConvNets的应用 Face recognition 输入人脸,推测是谁 Video classfication Recognition 识别身体的部位, 医学图像, 星空, 标志牌, 鲸.. ...

  2. CS231n笔记 Lecture 4 Introduction to Neural Networks

    这一讲主要介绍了神经网络,基本内容之前如果学习过Andrew的Machine learning应该也都有所了解了.不过这次听完这一讲后还是有了新的一些认识. 计算图 Computational gra ...

  3. CS231n笔记 Lecture 3 Loss Functions and Optimization

    这一讲总体上就是引入Loss Function的概念,以及让大家对优化有一个初步的认识,和其他课程里面说的内容大同小异. Loss function Multiclass svm loss multi ...

  4. CS231n笔记 Lecture 1 Introduction

    主题有关 这一讲主要是介绍性质的,虽然大多数概念以前听说过,但还是在他们的介绍中让我有如下一些认识,所谓温故而知新,不无道理: IMAGENET Feifei Li的团队首先爬取.标注了IMAGENE ...

  5. 【cs231n笔记】assignment1之KNN

    k-Nearest Neighbor (kNN) 练习 这篇博文是对cs231n课程assignment1的第一个问题KNN算法的完成,参考了一些网上的博客,不具有什么创造性,以个人学习笔记为目的发布 ...

  6. 深度学习课程笔记(二)Classification: Probility Generative Model

    深度学习课程笔记(二)Classification: Probility Generative Model  2017.10.05 相关材料来自:http://speech.ee.ntu.edu.tw ...

  7. CS231n-lecture2-Image Classification pipeline 课堂笔记

    ---恢复内容开始--- 相关资源  Event Type  Date  Description  Course Materials Lecture 2 Thursday April 6 Image ...

  8. cs231n spring 2017 lecture2 Image Classification 听课笔记

    1. 相比于传统的人工提取特征(边.角等),深度学习是一种Data-Driven Approach.深度学习有统一的框架,喂不同的数据集,可以训练识别不同的物体.而人工提取特征的方式很脆弱,换一个物体 ...

  9. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 18—Photo OCR 应用实例:图片文字识别

    Lecture 18—Photo OCR 应用实例:图片文字识别 18.1 问题描述和流程图 Problem Description and Pipeline 图像文字识别需要如下步骤: 1.文字侦测 ...

随机推荐

  1. 使用Java connector消费ABAP系统的函数

    Java Connector(JCO)环境的搭建:Step by step to download and configure JCO in your laptop 我的ABAP系统有个函数名叫ZDI ...

  2. 重温Javascript(一)-基本概念

    工作中要用到JavaScript,一组复习笔记. 一些看法 1. 想想JavaScript目前最常用的宿主环境,浏览器或者服务端V8,都是单线程,所以不用过多的考虑并发的问题,如果是协程来实现异步的方 ...

  3. iOS动画——Layer Animations

    我们先来看一下今天我们要实现的效果,今天实现的效果用第一篇View Animations能实现相同效果. 动画由书籍<iOS Animations by tutorials>提供,我只是一 ...

  4. HTML_5 (1 2 3的代码总结)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 【转】 树莓派初次启动攻略for Mac

    http://blog.csdn.net/rk2900/article/details/8632713/ 树莓派初次启动攻略for Mac made by Rk 感谢浙江大学<嵌入式系统> ...

  6. 【转】绝对不要在树莓派上使用无源的HDMI→VGA视频转换器

    http://www.guokr.com/post/521521/ 树莓派由于BCM2835的限制,仅有HDMI和复合视频两种输出形式.所以对于使用VGA显示器的广大用户,HDMI转VGA转换器就成了 ...

  7. Bootstrap 提示工具(Tooltip)插件方法的用法

    方法 下面是一些提示工具(Tooltip)插件中有用的方法: 方法 描述 实例 Options: .tooltip(options) 向元素集合附加提示工具句柄. $().tooltip(option ...

  8. bp神经网络原理

    bp(back propagation)修改每层神经网络向下一层传播的权值,来减少输出层的实际值和理论值的误差 其实就是训练权值嘛 训练方法为梯度下降法 其实就是高等数学中的梯度,将所有的权值看成自变 ...

  9. CentOS 7.4 基于LNMP搭建wordpress

    之前有好多次搭建wordpress的经历,有在Ubuntu系统上,有在CentOS7.2系统上,但都是搭完还是稀里糊涂的,因为好多都是教程上照着敲的.这次好好出个教程,以便以后方便查看. 准备工作:C ...

  10. 如何用纯 CSS 和 D3 创作一艘遨游太空的宇宙飞船

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/oMqNmv 可交互视频 ...