cs231n lecture2 image classification
1、图片分类若采用最近邻法:
import numpy as np class NearestNeighbor:
def _init_(self):
pass def train(self, X, y):
self.Xtr = X
self.ytr = y def predict(self, X):
num_test = X.shape[0]
Y_pred = np.zeros(num_test, dtype = self.ytr.dtype) for i in range(num_test):
distances = np.sum(np.abs(self.Xtr - X[i, :]), axis = 1)
min_index = np.argmin(distances)
Y_pred[i] = self.ytr[min_index] return Y_pred
train函数时间复杂度为O(1),test函数时间复杂度为O(n),n为训练集大小。
训练时间短,但测试时间过长。
一般最好是训练时间较长,测试时间短,如CNN。
2、超参数:不是学习到的参数而是自己人工设置的参数。
如K近邻算法中的K值和距离度量算法的选择。
3、数据集划分:
划分为训练集、验证集、测试集。验证集用来选择超参数,只在测试集上测试一次。
当数据集比较小时,可采用k折交叉验证的方法,即将数据集划分为k份,其中k - 1份作为训练集,剩下的1份作为验证集,取k份数据集分别作为验证集的结果的平均值作为最终结果。
然而由于交叉验证计算代价高,在实践中使用较少。
4、KNN(K最近邻)优缺点:
当特征个数较少时适合用。另外可通过kd树、k均值等方法减少时间复杂度。

另外通过L2距离来比较图片是和人类直觉不同的,如上图中,原始图片分别经过平移、遮挡、变色,但得到的图片和原始图片的L2距离相同,
这和人类直觉显然不符。

在上面的图片中,相邻的图片L2距离较小,可以发现一些背景相似的图片距离较小,相对于主体,背景对类别的影响更大。
cs231n lecture2 image classification的更多相关文章
- cs231n spring 2017 lecture2 Image Classification 听课笔记
1. 相比于传统的人工提取特征(边.角等),深度学习是一种Data-Driven Approach.深度学习有统一的框架,喂不同的数据集,可以训练识别不同的物体.而人工提取特征的方式很脆弱,换一个物体 ...
- cs231n spring 2017 lecture2 Image Classification
1. 相比于传统的人工提取特征(边.角等),深度学习是一种Data-Driven Approach.深度学习有统一的框架,喂不同的数据集,可以训练识别不同的物体.而人工提取特征的方式很脆弱,换一个物体 ...
- CNN for Visual Recognition (02)
图像分类 参考:http://cs231n.github.io/classification/ 图像分类(Image Classification),是给输入图像赋予一个已知类别标签.图像分类是计算机 ...
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN,LSTM
http://cs231n.github.io/neural-networks-1 https://arxiv.org/pdf/1603.07285.pdf https://adeshpande3.g ...
- L2 范数 L1 范数 出租车范数
https://en.wikipedia.org/wiki/Norm_(mathematics) http://cs231n.github.io/classification/
- AI入门丨开源学习资源推荐
现在AI大热,网上的资源也非常多,让人眼花缭乱.非科班的我,经过半年的摸索,也算马马虎虎入了坑.下面整理了我认为不错的学习资源,大部分我都看过,以分享给更多的人.我会不断保持更新,也欢迎大家补充. P ...
- (Review cs231n) Spatial Localization and Detection(classification and localization)
重在图像的定位和检测的内容. 一张图片中只有一种给定类别标签的对象,定位则是图像中有对象框:再这些类中,每一个训练目标都有一个类和许多的图像内部对应类的位置选框. 猜想的仅是类标签,不如说它们是位置 ...
- 1. cs231n k近邻和线性分类器 Image Classification
第一节课大部分都是废话.第二节课的前面也都是废话. First classifier: Nearest Neighbor Classifier 在一定时间,我记住了输入的所有的图片.在再次输入一个图片 ...
- 【cs231n】图像分类-Linear Classification线性分类
[学习自CS231n课程] 转载请注明出处:http://www.cnblogs.com/GraceSkyer/p/8824876.html 之前介绍了图像分类问题.图像分类的任务,就是从已有的固定分 ...
随机推荐
- SQL游标示例
DECLARE @@totalNum INT;SET @@totalNum=0;DECLARE @num INT;DECLARE @CustomInfo NVARCHAR(MAX);DECLARE M ...
- [NOIP10.4模拟赛]2.y题解--折半搜索+状压计数
题目链接: 咕 闲扯: 这题暴力分似乎挺多,但是一些奇奇怪怪的细节没注意RE了,还是太菜了 分析: 首先我们考虑最naiive的状压DP ,\(f[u][v][state]\)表示u开头,v结尾是否存 ...
- vue runtime报错问题
Webpack中导入vue和普通网页中导入vue的区别1. 普通网页导入vue方式 <script></script> 2. Webpack导入vue方式 Import Vue ...
- 小程序wxs价格显示小数点后两位
function toFix(data, val) { var numbers = ''; for (var i = 0; i < val; i++) { numbers += '0'; } v ...
- golang整数与小数间的加减乘除
我们假设你需要 整数与小数一起进行运算,或者 整数除以整数 得到小数这种运算 如果你使用了decimal, 那么之后所有的运算你都必须使用decimal, 因为通过它计算出来的结果的类型统统为deci ...
- Oracle笔记(十二) 集合、序列
一.集合 在数学的操作之中存在交.差.并.补的概念,而在数据的查询中也存在此概念,有如下几个连接符号: UNION:连接两个查询,相同的部分不显示: UNION ALL:连接两个查询,相同的部分显示: ...
- Django—model系统:ORM对数据库操作
基本操作 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): ...
- 013.子查询和分页子查询(sql实例)
--1 子查询 如果子查询和表连接都实现的时候,推荐用表连接实现( 一般:能用表连接实现的就用表连接,有些情况用表连接不能 或者不易实现的再选择子查询) 系统:缓存,执行计划技术手段 --1 wher ...
- 生成漂亮报告的Go语言代码检查工具
上篇文章,老司机给各位同学介绍了Go语言的静态代码测试“三板斧”以及Go语言的testing类库. “三板斧”简洁明了,但是缺点也很明显,命令行执行,命令行输出.适合研发攻城狮看,不适合交给领导过目. ...
- c#中打开视频,word
打开所有的文件的 代码,包括word/ppt/txt/xls/mp3/视频文件 添加using using System.Diagnostics; string fileName = @"D ...