CS231N学习笔记-图像分类

 仅供自己学习记录参考

注:感谢B站up主,同济子豪兄的优质课程

【子豪兄】精讲CS231N斯坦福计算机视觉公开课(2020最新)_哔哩哔哩_bilibili

第二讲 图像分类

概述

目标检测等方向本质是图像分类

CS231N学习笔记-图像分类_第1张图片

一个通道由三个RGB矩阵构成,其中的像素点是[0,255],像素点值是0-2^8

CS231N学习笔记-图像分类_第2张图片

其中目标的图像可能只占一部分,但是也要可以识别:

 图像分类是一个黑盒,不能像计算公式那样明显的推导,不能人工构建特征,需要用大量图片灌输,形成特征

CS231N学习笔记-图像分类_第3张图片

如果手动构建,人类无法详细的描述特征,也不能高效的构建

CS231N学习笔记-图像分类_第4张图片

所以就要用到机器学习的数据驱动方法

        1)准备大量图片和标签

        2)使用数据进行机器训练

        3)评估/测试分类器

First classifier:Nearest Neighbor(近邻算法)

算法思想

看离这个点最近的点是好的还是坏的,离他最近的是好人,这个点就是好人,离他最近的是坏人,他就是坏人,也叫惰性算法,不需要构建算法

CS231N学习笔记-图像分类_第5张图片

一个比较权威的数据集CIFAR 10

L1 distance(曼哈顿距离/第一街区距离):把两个方向的绝对值之差相加

类别边界,就是每个点相对另一个点的垂直平分线

CS231N学习笔记-图像分类_第6张图片

CS231N学习笔记-图像分类_第7张图片

代码实现(python2)及算法问题

问题:训练的时候不需要花时间,预测的时候在进行大量计算,不符合实际要求

CS231N学习笔记-图像分类_第8张图片

算法具象化

CS231N学习笔记-图像分类_第9张图片

K-Nearest Neighbors

算法思想

比较该点周围K个点的好坏,在判断该点。如果这个点的三个或更多个周围点都是好的,那么该点也是好的。反之,该点为坏

CS231N学习笔记-图像分类_第10张图片

L2 distance():所有点到原点的距离

不管连个点怎么变换,距离都是不变的 但是L1就会发生变动

CS231N学习笔记-图像分类_第11张图片

两种距离计算和不同近邻算法的DEMO演示:http://vision.stanford.edu/teaching/cs231n-demos/knn/

怎样选择超参数呢?

两个超参数:K值和distance类型

训练集、验证集、测试集

CS231N学习笔记-图像分类_第12张图片

交叉验证法

用在小数据集上更有效

CS231N学习笔记-图像分类_第13张图片

算法缺陷

下面图片处理以后的L2距离相同,但是这些图片跟原图有较大差别

CS231N学习笔记-图像分类_第14张图片

随着维度的增加,计算量指数级增大

应用

推荐系统(协同过滤模型)

CS231N学习笔记-图像分类_第15张图片

 

CS231N学习笔记-图像分类_第16张图片

Linear Classification(线性分配器)

二维

CS231N学习笔记-图像分类_第17张图片

三维

CS231N学习笔记-图像分类_第18张图片

分类器使用的基本思想

把原图像像素值编程自变量输入函数,可以得到权重W和截距b

CS231N学习笔记-图像分类_第19张图片

CS231N学习笔记-图像分类_第20张图片

使用线性分类器训练出来的图像效果(将提取的特征可视化了)

image-20211225110041173

线性分类效果

太直了,只能用直线分类

CS231N学习笔记-图像分类_第21张图片

很多非直线问题无法解决

CS231N学习笔记-图像分类_第22张图片

tensorflow-playground-demo

https://playground.tensorflow.org/#activation=tanh®ularization=L1&batchSize=10&dataset=xor®Dataset=reg-plane&learningRate=0.03®ularizationRate=0&noise=0&networkShape=4,3,3,3,3&seed=0.93022&showTestData=false&discretize=false&percTrainData=50&x=true&y=true&xTimesY=false&xSquared=false&ySquared=false&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=classification&initZero=false&hideText=false

你可能感兴趣的:(深度学习,深度学习框架,python,计算机视觉,python,人工智能)