cs231n spring 2017 lecture2 Image Classification
1. 相比于传统的人工提取特征(边、角等),深度学习是一种Data-Driven Approach。深度学习有统一的框架,喂不同的数据集,可以训练识别不同的物体。而人工提取特征的方式很脆弱,换一个物体就要重新设计特征。
2. 描述图像之间相似程度,可以直接把每个对应像素做减法,然后把差的绝对值累加起来。这个差值的和越小,图片越接近。这是曼哈顿距离L1。
对应像素点的差值的平方累加再开平方,这是欧几里得距离L2。
L1和L2谁更好,这取决于具体问题。但一般来说,如果做差的向量有很具体的含义,比如对于员工分类,向量的每一个元素可能是“工作年限”、“工资”等,这种用L1会更好一点,因为L1更依赖坐标系。
3. K近领域算法是计算当前图片和所有候选图片的相似程度(或者说距离),最近的K个候选中,最多的那个标签就被作为当前图片的标签。K越大,对噪音越鲁棒(当然,也不是越大越好,会有最佳值)。
这种算法的缺点是:1)预测的复杂度太高,需要和每一个训练数据去比较。2)不鲁邦,测试数据和训练数据必须很像,如果有遮挡、旋转之类的,会误认为差别很大。3)维度问题,数据集必须在整个空间很稠密的分布,需要指数级增加的数据集,维度高的时候就很不现实。
4. Hyperparameter:预先设定的参数,而不是算法学习得到的。比如K近领域算法中的K。这种参数是很依赖具体问题的。如何设置Hyperparameter呢?
方案一:在训练集上表现最好的。这个方案是不行的,因为我们在乎的不是在训练集上表现怎么样,而是在乎在没见过的测试集上表现好。或者说方案一并不能保证很好的泛化能力。
方案二:把数据集分为训练集和测试集,选在测试集上最好的。这个方案的问题和方案一一样,依旧不能保证很好的泛化能力。
方案三:把数据集分为训练集、验证集、测试集,根据验证集上的表现来选择hyperparameter,然后再在测试集上评估。这种方案很好。对于很多hyperparameter的情况,验证集最好也设定的更大一点。
方案四:把数据集分为n组,交叉验证。随机挑选n-2组用来训练,1组用来验证,1组用来测试。这种方法比较适合小数据集,在深度学习中,由于训练的代价太大,所以用的也不算多这种方案。
5. 深度学习的框架像是拼乐高积木,而线性回归是最基本最好用的最广泛使用的积木。
6. 深度学习的训练过程就是训练出一组参数W,在预测x的时候计算y=f(x,W),W的每一行都是一个template,对应一个标签,计算出的y是一个向量,每个元素对应一个标签的相似程度,最大的值就对应预测出的标签。深度学习的框架反映在函数f上。
对于线性回归,f就是简单相乘,f(x,W) = Wx。
cs231n spring 2017 lecture2 Image Classification的更多相关文章
- cs231n spring 2017 lecture2 Image Classification 听课笔记
		
1. 相比于传统的人工提取特征(边.角等),深度学习是一种Data-Driven Approach.深度学习有统一的框架,喂不同的数据集,可以训练识别不同的物体.而人工提取特征的方式很脆弱,换一个物体 ...
 - cs231n spring 2017 lecture11 Detection and Segmentation 听课笔记
		
1. Semantic Segmentation 把每个像素分类到某个语义. 为了减少运算量,会先降采样再升采样.降采样一般用池化层,升采样有各种"Unpooling"." ...
 - cs231n spring 2017 lecture11 Detection and Segmentation
		
1. Semantic Segmentation 把每个像素分类到某个语义. 为了减少运算量,会先降采样再升采样.降采样一般用池化层,升采样有各种“Unpooling”.“Transpose Conv ...
 - cs231n spring 2017 lecture13 Generative Models 听课笔记
		
1. 非监督学习 监督学习有数据有标签,目的是学习数据和标签之间的映射关系.而无监督学习只有数据,没有标签,目的是学习数据额隐藏结构. 2. 生成模型(Generative Models) 已知训练数 ...
 - cs231n spring 2017 lecture9 CNN Architectures 听课笔记
		
参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的sh ...
 - cs231n spring 2017 lecture7 Training Neural Networks II 听课笔记
		
1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...
 - cs231n spring 2017 Python/Numpy基础 (1)
		
本文使根据CS231n的讲义整理而成(http://cs231n.github.io/python-numpy-tutorial/),以下内容基于Python3. 1. 基本数据类型:可以用 prin ...
 - cs231n spring 2017 lecture13 Generative Models
		
1. 非监督学习 监督学习有数据有标签,目的是学习数据和标签之间的映射关系.而无监督学习只有数据,没有标签,目的是学习数据额隐藏结构. 2. 生成模型(Generative Models) 已知训练数 ...
 - cs231n spring 2017 lecture9 CNN Architectures
		
参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的sh ...
 
随机推荐
- 201771010123汪慧和《面向对象程序设计JAVA》第八周实验总结
			
一.理论部分 1.接口 用interface声明,是抽象方法和常量值定义的集 合.从本质上讲,接口是一种特殊的抽象类. 在Java程序设计语言中,接口不是类,而是对类 的一组需求描述,由常量和一组抽象 ...
 - Ubuntu Teamviewer安装使用
			
关于Ubuntu环境下teamviewer的安装(亲测可用-) 以下内容均转自:https://blog.csdn.net/weixin_41887832/article/details/798329 ...
 - openlayers基础用例
			
http://weilin.me/ol3-primer/ch03/03-01.html#http://weilin.me/ol3-primer/ //地址http://openlayers.org/ ...
 - python+Sqlite+Dataframe打造金融股票数据结构
			
5. 本地数据库 很简单的用本地Sqlite查找股票数据. DataSource类,返回的是Dataframe物件.这个Dataframe物件,在之后的业务,如计算股票指标,还需要特别处理. impo ...
 - 用数组来实现Stack
			
1:Stack特点 stack:栈,是一种特殊的数据结构,有着先入后出的特点(first in last out).stack中栈底始终不变,只有一端能变化.栈顶在有数据push的时候增大,有数据po ...
 - javascript编程中极易出现的错误(个人)
			
2018-08-10 1,setInterval打错字写成ser 2,document.getElementById().innerHTML;HTML需要全部大写 3,在for循环中定义一个i时要记住 ...
 - Gym102361E Escape
			
Link 首先我们可以推出一些有用的结论: 1.任意两个机器人之间的路线不能重合,但是可以垂直交叉. 2.如果一个格子没有转向器,那么最多允许两个机器人以相互垂直的方向通过. 3.如果一个格子有转向器 ...
 - LNMP应用
			
1.LNMP架构概述 LNMP就是Linux+Nginx+MySQL+PHP Linux作为服务器的操作系统 Nginx作为Web服务器 PHP作为解析动态脚本语言 MySQL即为数据库 Nginx服 ...
 - C盘满了解决办法之pagefile.sys文件
			
pagefile.sys文件一般存在于C盘,只有点击了隐藏属性才能看见. 这个文件一般比较大,它是系统创建虚拟内存页面的文件.平时大家使用软件的时候对于产生大量的临时数据,这些数据需要占用大量内存,如 ...
 - 吴裕雄--天生自然 PYTHON3开发学习:网络编程
			
# 导入 socket.sys 模块 import socket import sys # 创建 socket 对象 serversocket = socket.socket( socket.AF_I ...