Stanford cs231n

2018-07-21  本文已影响29人  _Ely

计算机视觉概述


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变形,遮挡,背景干扰

数据驱动方法


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


image.png

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

image.png

寻找最相近的图片

image.png

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

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


image.png image.png image.png

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

k-最近邻算法


image.png

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


image.png

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

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


image.png

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


image.png

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


image.png

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


image.png

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


image.png

knn不适合用于图像分类


image.png

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


image.png image.png

线性分类

linear classification


image.png image.png image.png
image.png
image.png

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


image.png
image.png
image.png

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

image.png

b是偏置项

image.png

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


image.png

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

image.png

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

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

如何选择w?

损失函数


image.png image.png image.png
image.png
image.png 定量的衡量

定量的衡量w是好是坏

image.png image.png
image.png

给出y的预测

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


image.png
image.png image.png

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

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

加入正则项


image.png

其他损失函数:
Softmax loss


image.png

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

svm vs softmax?

优化函数

optimization


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


image.png

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


image.png

函数下降最快的地方

image.png image.png

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

上一篇下一篇

猜你喜欢

热点阅读