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 lecture9 CNN Architectures 听课笔记
参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的sh ...
- cs231n spring 2017 lecture13 Generative Models 听课笔记
1. 非监督学习 监督学习有数据有标签,目的是学习数据和标签之间的映射关系.而无监督学习只有数据,没有标签,目的是学习数据额隐藏结构. 2. 生成模型(Generative Models) 已知训练数 ...
- cs231n spring 2017 lecture14 Reinforcement Learning 听课笔记
(没太听明白,下次重新听) 1. 增强学习 有一个 Agent 和 Environment 交互.在 t 时刻,Agent 获知状态是 st,做出动作是 at:Environment 一方面给出 Re ...
- cs231n spring 2017 lecture2 Image Classification
1. 相比于传统的人工提取特征(边.角等),深度学习是一种Data-Driven Approach.深度学习有统一的框架,喂不同的数据集,可以训练识别不同的物体.而人工提取特征的方式很脆弱,换一个物体 ...
- cs231n spring 2017 lecture9 CNN Architectures
参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的sh ...
- cs231n spring 2017 lecture11 Detection and Segmentation 听课笔记
1. Semantic Segmentation 把每个像素分类到某个语义. 为了减少运算量,会先降采样再升采样.降采样一般用池化层,升采样有各种"Unpooling"." ...
- cs231n spring 2017 lecture7 Training Neural Networks II 听课笔记
1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...
- cs231n spring 2017 lecture16 Adversarial Examples and Adversarial Training 听课笔记
(没太听明白,以后再听) 1. 如何欺骗神经网络? 这部分研究最开始是想探究神经网络到底是如何工作的.结果人们意外的发现,可以只改变原图一点点,人眼根本看不出变化,但是神经网络会给出完全不同的答案.比 ...
- cs231n spring 2017 lecture15 Efficient Methods and Hardware for Deep Learning 听课笔记
1. 深度学习面临的问题: 1)模型越来越大,很难在移动端部署,也很难网络更新. 2)训练时间越来越长,限制了研究人员的产量. 3)耗能太多,硬件成本昂贵. 解决的方法:联合设计算法和硬件. 计算硬件 ...
随机推荐
- IIS 5.x与ASP.NET
转自:http://www.cnblogs.com/artech/archive/2009/06/20/1507165.html 我们先来看看IIS 5.x是如何处理基于ASP.NET资源(比如.as ...
- 3.更改ssh服务远程登录的配置
- for循环语句以及输出语句
action() { int i; //定义变量 lr_start_transaction("submit_answer"); //开始事物 for(i=0; i ...
- OC学习10——内存管理
1.对于面向对象的语言,程序需要不断地创建对象.这些对象都是保存在堆内存中,而我们的指针变量中保存的是这些对象在堆内存中的地址,当该对象使用结束之后,指针变量指向其他对象或者指向nil时,这个对象将称 ...
- UILabletext去掉乱码 控制颜色 行高 自定义大小 。显示不同的字体颜色、字体大小、行间距、首行缩进、下划线等属性(NSMutableAttributedString)
text去掉乱码 设置不同颜色 行高 自定义大小 #import <Foundation/Foundation.h> @interface TextsForRow : NSObject @ ...
- 同时只允许Count个线程访问同一块区域的实现方式
转载请注明出处. 好吧,后来才发现有Semaphore和SemaphoreSlim这两个类. 以前的答案: 最近.Net项目中用到了网页截图功能,这个截图功能是类似后台开了一个IE浏览器默默加载某个网 ...
- 点击button1弹出form2,并在form2中点击button2来调用form1的方法
链接地址:http://www.sufeinet.com/thread-1273-1-1.html 1. private void button1_Click(object sender, ...
- JavaWeb之数据源连接池(2)---C3P0
我们接着<JavaWeb之数据源连接池(1)---DBCP>继续介绍数据源连接池. 首先,在Web项目的WebContent--->WEB-INF--->lib文件夹中添加C3 ...
- tesserat训练中文备忘录
最近用OCR识别身份证,用的tesseract引擎.但是google自带的中文库是在太慢了,尤其是对于性别.民族这样结果可以穷举的特征信息而言,完全可以自己训练字库.自己训练字库不仅可以提高识别速度, ...
- 程序员的自我救赎---10.1:APP版本控制系统
<前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...