Stanford cs231n

计算机视觉概述


computer vision 针对视觉数据的研究
视觉传感器的增长和发展(eg 手机)

超级多的视觉数据
思科2015研究:估计到2017 互谅网上大约80%的流量都是视频
但是视觉数据很大,接下来的问题就是如何用算法开发和利用这些数据

视觉数据真的很难理解
另一个统计youtube 每一秒 就有长达5h的视频传到youtube(eg 我的一个朋友,网易实习,视频标记,分类)

计算机视觉跨学科领域(生物,物理,cs,math)。。。

cv历史背景


视觉的历史很久很久以前,水里的动物进化出了眼睛,以为澳大利亚研究者,进化出眼睛,视力功能促进了物种数量的爆炸。视觉对于智慧的动物至关重要。
照相机的历史,留住世界。

60s研究动物的视觉处理机制,用猫来研究,观察什么会引起神经皮层的反应。视觉处理起始于视觉世界的简单结构,边缘。再认识复杂的。

《vision》david marr 70s
边缘,曲线,2.5曲面----》3d模型
同样是70s,识别和表示现实世界的试题,每个对象都由简单的几何图组成

80s,重建和识别视觉空间

目标分割

2000 face detection,adaboost实时面部检测
2006 fujjika面部检测的相机

90-00 一个非常有影响力的思想方法是:基于特征的目标识别,SIFT特征
某些特征在变化中具有整体性和不变性,所以目标识别的首要任务就是在目标上确认这些关键的特征。

整体场景识别,空间金字塔特征,方向梯度直方图

2006-2012 pascal visual object challenge 目标识别的数据集

训练数据不够,出现过拟合,组件ImageNet数据集(目标检测)

imagenet大规模视觉是被竞赛,140图像,1000类别
2012 错误率显著下降。--CNN算法(重点)

图像分类问题


2015 微软残差网络 152层
1998手写数字识别,类似2012的alexnet网络

突破性进展
1 计算能力提升,GPU具有超高并行计算能力
2 data 带标签数据集Pascal imagenet

Lecture02

image classification pipeline


图像是一堆数字,每个数字三个值组成rgb

图像识别有很多挑战:illumination deformation变形,遮挡,背景干扰

数据驱动方法


之前使用硬编码规则,计算图像边缘,将形状分类号,但是这样不可推演,对于每一个物体都要重新编写一套规则
现在:使用数据驱动的训练,抓取数据集,训练机器分类图像,总结,生成一个模型,来识别新的图像


Stanford cs231n_第1张图片
image.png

训练函数 接受输入图片和标签输出 模型
预测函数 接受模型 对图片预测

Stanford cs231n_第2张图片
image.png

寻找最相近的图片

Stanford cs231n_第3张图片
image.png

在训练集中找到最相似的图片,找到其标签,这个时候就可以说测试图片是什么类别

NN分类器
对于两张图片比较
什么样的比较函数
曼哈顿距离:


Stanford cs231n_第4张图片
image.png
Stanford cs231n_第5张图片
image.png
Stanford cs231n_第6张图片
image.png

k赋值大,决策边缘光滑
白色区域表示没有获得k邻近的投票,没有最近的点

k-最近邻算法


Stanford cs231n_第7张图片
image.png

曼哈顿距离 每个像素之前的距离总总和
欧氏距离(距离是确定的,无论在什么坐标系中)


Stanford cs231n_第8张图片
image.png
Stanford cs231n_第9张图片

与实际解决的问题有关的超参数

机器学习中,我们关心的不是尽可能拟合,而是要让我们的分类器,我们的方法,在训练集以外的未知数据上表现更好。


Stanford cs231n_第10张图片
image.png

测试集是个我们的算法一个评估,即在没遇到的数据上算法表现将会如何


image.png

验证集,分验证集和测试集,最后一步接触到测试集,确保测试集数据得到严格的控制


image.png

交叉验证适合于小的数据集


Stanford cs231n_第11张图片
image.png

深度学习中,大型模型不使用


Stanford cs231n_第12张图片
image.png

knn不适合用于图像分类


Stanford cs231n_第13张图片
image.png

维度灾难 高维空间的像素很多


Stanford cs231n_第14张图片
image.png
Stanford cs231n_第15张图片
image.png

线性分类

linear classification


Stanford cs231n_第16张图片
image.png
Stanford cs231n_第17张图片
image.png
image.png

image.png

image.png

但是在现在参数化的过程中,


image.png

image.png

image.png

测试的时候我们需要的是参数

image.png

b是偏置项

Stanford cs231n_第18张图片
image.png

线性分类是一种模板匹配方法


Stanford cs231n_第19张图片
image.png

线性分类器每个类别只能学习一个模板

Stanford cs231n_第20张图片
image.png
  • 回顾:


    Stanford cs231n_第21张图片
    image.png

    Stanford cs231n_第22张图片
    image.png

线性分类器可以解释为每个种类的学习模板,对图里的每个像素以及10个分类中的一类,矩阵w里都有一些对应的项,告诉我们那个像素,对那个分类有多少影响,也就是说矩阵w里的每一行,都对应一个分类模板,如果我们解开这些行的值(成图片的大小),那么每一行又分别对应一些权重,每个图像像素值和对应的那个类别的一些权重,将这行分解回图像的大小,我们
就可以可视化学到的每个类的模板

还有一种对线性分类器的解释是,学习像素在高维空间的一个线性决策边界,其中高伟空间就对应了图片能取到的像素密度值

如何选择w?

损失函数


Stanford cs231n_第23张图片
image.png
Stanford cs231n_第24张图片
image.png
image.png

image.png

image.png
定量的衡量

定量的衡量w是好是坏

Stanford cs231n_第25张图片
image.png
image.png

image.png

给出y的预测

二元svm。两个类,要么是正例要么是负例,推广到多分类SVM(支持向量机),推广到多个类别识别


Stanford cs231n_第26张图片
image.png

Stanford cs231n_第27张图片
image.png
Stanford cs231n_第28张图片
image.png

SVM函数只关注于正确的分数比

一个损坏函数的全部意义在于量化不同的错误到底有多坏

加入正则项


Stanford cs231n_第29张图片
image.png

其他损失函数:
Softmax loss


Stanford cs231n_第30张图片
image.png

目标是促使我们计算得到的概率分布,就是通过softmax计算的结果,去匹配上述的目标概率分布,即正确的类别应该具有几乎所有的概率

svm vs softmax?

优化函数

optimization


对于参数w的一些设置,w所带来的损失,使用迭代,改进


Stanford cs231n_第31张图片
image.png

这就是普遍使用的方法:梯度下降


Stanford cs231n_第32张图片
image.png

函数下降最快的地方

Stanford cs231n_第33张图片
image.png
Stanford cs231n_第34张图片
image.png

最后网络收敛
步长是一个超参数,在那个方向前进多少距离,这个步长也被叫做学习率
(他是你需要设定的一个重要参数)

你可能感兴趣的:(Stanford cs231n)