cs231n训练营学习笔记(2)

开始第二次学习

最近看到一句话很有治愈力,绘画老师教小朋友的时候,如果小朋友画的很差,老师通常会说:你不是没画好,你只是没画完。

所以我不是没学会,我只是没学完……先这样安慰自己吧

目录

1. 图像分类数据和label分别是什么  图像分类存在的问题与挑战

2. 使用python加载一张彩色图片,观察像素值

3.  L1范数,L2范数数学表达式  这两种度量分别适用于什么情况

4. 描述近邻算法KNN  NN算法复的杂度 为什么很少使用在图像中以及它存在的问题

5. 了解cifar10数据集

6. 超参数怎么选择合适(即数据集如何划分)


1. 图像分类数据和label分别是什么  图像分类存在的问题与挑战

数据就是输入的图像像素,label是代表图像中物体的类别标签

问题和挑战就是计算机看到的是一大片像素值,它很难理解这些像素代表的意义,即语义鸿沟

而且还有看到目标的角度变化,遮挡,变形,光线变化,和背景很像,类内差异

2. 使用python加载一张彩色图片,观察像素值

3.  L1范数,L2范数数学表达式  这两种度量分别适用于什么情况

cs231n训练营学习笔记(2) 

旋转坐标轴(矩阵乘法)会改变L1距离,但不会改变L2距离

L1适用于输入特征向量的值有一定意义的情况,比如对员工分类,特征向量各个数值代表薪资、工作年限之类的

L2适用于向量中各值没有什么特殊意义,它的距离更自然

4. 描述近邻算法KNN  NN算法复的杂度 为什么很少使用在图像中以及它存在的问题

数据驱动类算法,是比深度学习更广义的理念,所以在学习神经网络以及CNN前,先学习了简单的线性分类器,NN,KNN

在训练分类器时,什么都不做,只是读数据,时间复杂度是O(1)

在预测时,读入新的数据,对比前面训练时读进去的数据,对比距离,找到最近的,即NN,最近邻方法,时间复杂度是O(N),因为要和所有的训练数据对比

正常我们希望训练时间长而预测时间短,因为训练可以离线进行,而预测为保证实时性用时越短越好。

KNN是在NN的基础上,不是计算距离最近的点,而是距离最近的N个点,这N个点里哪个类更多(这是简单的投票,也可以加权投票),预测数据就被分到那个类里,以此避免噪声离群点影响预测结果。

在图像中很少使用KNN的一个原因是维度灾难(curse of dimentionality),KNN更像是用分类器把样本空间分成几块,如果想要分类效果好,需要样本数据紧密地分布在空间里,不然距离可能会很远,也就是和待测数据不太相似。而为了密集分布,需要的训练数据呈指数增长

5. 了解cifar10数据集

10个类,5万训练集,1万测试集

类分别是:飞机,汽车,鸟,猫,鹿,狗,青蛙,马,船,卡车

6. 超参数怎么选择合适(即数据集如何划分)

对于线性分类器,KNN中K的值,距离函数的选择都是超参数,需要尝试哪个超参数更好

评价更好的标准,比较好的做法是:在训练集上用不同组的超参数训练,然后在验证集上验证,选择表现最好的一组超参数,最好用在测试集上进行测试。

在小测试集上经常使用的方法是交叉验证,但是太废计算资源了,深度学习通常不用这个方法。