没有合适的资源?快使用搜索试试~ 我知道了~
李飞飞 CS231n 中文笔记
需积分: 22 17 下载量 140 浏览量
2018-08-21
22:55:56
上传
评论
收藏 1.19MB PDF 举报
温馨提示
试读
11页
李飞飞cs231n 课程笔记翻译中文笔记 线性分类器,主要对线性分类器进行了简介。
资源推荐
资源详情
资源评论
CS231n
课
程
笔
记
翻
译
:
线
性
分
类
笔
记
原
文
如
下
内容列表:
线性分类器简介
线性评分函数
阐明线性分类器
损失函数
多类SVM
Softmax分类器
SVM和Softmax的比较
基于Web的可交互线性分类器原型
小结
线
性
分
类
上一篇笔记介绍了图像分类问题。图像分类的任务,就是从已有的固定分类标签集合中选择一个并分配给一张图
像。我们还介绍了k-Nearest Neighbor (k-NN)分类器,该分类器的基本思想是通过将测试图像与训练集带标签
的图像进行比较,来给测试图像打上分类标签。k-Nearest Neighbor分类器存在以下不足:
分类器必须
记
住
所有训练数据并将其存储起来,以便于未来测试数据用于比较。这在存储空间上是低效的,数
据集的大小很容易就以GB计。
对一个测试图像进行分类需要和所有训练图像作比较,算法计算资源耗费高。
概
述
:我们将要实现一种更强大的方法来解决图像分类问题,该方法可以自然地延伸到神经网络和卷积神经网络
上。这种方法主要有两部分组成:一个是
评
分函
数
(
score function
)
,它是原始图像数据到类别分值的映射。另
一个是
损
失
函
数
(
loss function
)
,它是用来量化预测分类标签的得分与真实标签之间一致性的。该方法可转化为
一个最优化问题,在最优化过程中,将通过更新评分函数的参数来最小化损失函数值。
从
图
像
到
标
签
分
值
的
参
数
化
映
射
该方法的第一部分就是定义一个评分函数,这个函数将图像的像素值映射为各个分类类别的得分,得分高低代
表图像属于该类别的可能性高低。下面会利用一个具体例子来展示该方法。现在假设有一个包含很多图像的训练集
,每个图像都有一个对应的分类标签 。这里 并且 。这就是说,我们有N个图像
样例,每个图像的维度是D,共有K种不同的分类。
举例来说,在CIFAR-10中,我们有一个N=50000的训练集,每个图像有D=32x32x3=3072个像素,而K=10,这是
因为图片被分为10个不同的类别(狗,猫,汽车等)。我们现在定义评分函数为: ,该函数是原始
图像像素到分类分值的映射。
线
性
分
类
器
:在本模型中,我们从最简单的概率函数开始,一个线性映射:
在上面的公式中,假设每个图像数据都被拉长为一个长度为D的列向量,大小为[D x 1]。其中大小为[K x D]的矩
阵W和大小为[K x 1]列向量b为该函数的
参
数
(
parameters
)
。还是以CIFAR-10为例, 就包含了第 个图像的所
有像素信息,这些信息被拉成为一个[3072 x 1]的列向量,W大小为[10x3072],b的大小为[10x1]。因此,3072个
数字(原始像素数值)输入函数,函数输出10个数字(不同分类得到的分值)。参数W被称为权重(weights)。b
被称为偏差向量(bias vector),这是因为它影响输出数值,但是并不和原始数据产生关联。在实际情况中,人们
常常混用权重和参数这两个术语。
需要注意的几点:
首先,一个单独的矩阵乘法 就高效地并行评估10个不同的分类器(每个分类器针对一个分类),其中每
个类的分类器就是W的一个行向量。
注意我们认为输入数据 是给定且不可改变的,但参数W和b是可控制改变的。我们的目标就是通过设置
这些参数,使得计算出来的分类分值情况和训练集中图像数据的真实类别标签相符。在接下来的课程中,我们
将详细介绍如何做到这一点,但是目前只需要直观地让正确分类的分值比错误分类的分值高即可。
该方法的一个优势是训练数据是用来学习到参数W和b的,一旦训练完成,训练数据就可以丢弃,留下学习到
的参数即可。这是因为一个测试图像可以简单地输入函数,并基于计算出的分类分值来进行分类。
最后,注意只需要做一个矩阵乘法和一个矩阵加法就能对一个测试数据分类,这比k-NN中将测试图像和所有
训练数据做比较的方法快多了。
预
告
:
卷
积
神
经网络
映
射
图
像像
素
值
到分
类
分
值
的
方
法
和
上
面
一
样
,
但
是映
射 就
要
复
杂
多
了
,
其
包
含
的
参
数
也
更
多
。
理
解
线
性
分
类
器
线性分类器计算图像中3个颜色通道中所有像素的值与权重的矩阵乘,从而得到分类分值。根据我们对权重设置的
值,对于图像中的某些位置的某些颜色,函数表现出喜好或者厌恶(根据每个权重的符号而定)。举个例子,可以
想象“船”分类就是被大量的蓝色所包围(对应的就是水)。那么“船”分类器在蓝色通道上的权重就有很多的正权重
(它们的出现提高了“船”分类的分值),而在绿色和红色通道上的权重为负的就比较多(它们的出现降低了“船”分类
的分值)。
————————————————————————————————————————
一个将图像映射到分类分值的例子。为了便于可视化,假设图像只有4个像素(都是黑白像素,这里不考虑RGB通
道),有3个分类(红色代表猫,绿色代表狗,蓝色代表船,注意,这里的红、绿和蓝3种颜色仅代表分类,和RGB
通道没有关系)。首先将图像像素拉伸为一个列向量,与W进行矩阵乘,然后得到各个分类的分值。需要注意的
是,这个W一点也不好:猫分类的分值非常低。从上图来看,算法倒是觉得这个图像是一只狗。
————————————————————————————————————————
将
图
像
看
做
高
维
度
的
点
:既然图像被伸展成为了一个高维度的列向量,那么我们可以把图像看做这个高维度空间中
的一个点(即每张图像是3072维空间中的一个点)。整个数据集就是一个点的集合,每个点都带有1个分类标签。
既然定义每个分类类别的分值是权重和图像的矩阵乘,那么每个分类类别的分数就是这个空间中的一个线性函数的
函数值。我们没办法可视化3072维空间中的线性函数,但假设把这些维度挤压到二维,那么就可以看看这些分类器
在做什么了:
——————————————————————————————————————————
图像空间的示意图。其中每个图像是一个点,有3个分类器。以红色的汽车分类器为例,红线表示空间中汽车分类分
数为0的点的集合,红色的箭头表示分值上升的方向。所有红线右边的点的分数值均为正,且线性升高。红线左边的
点分值为负,且线性降低。
—————————————————————————————————————————
从上面可以看到,W的每一行都是一个分类类别的分类器。对于这些数字的几何解释是:如果改变其中一行的数
字,会看见分类器在空间中对应的直线开始向着不同方向旋转。而偏差b,则允许分类器对应的直线平移。需要注
意的是,如果没有偏差,无论权重如何,在 时分类分值始终为0。这样所有分类器的线都不得不穿过原点。
将
线
性
分
类
器
看
做
模
板
匹
配
:关于权重W的另一个解释是
它
的每一行对应着一个分类的模板(有时候也叫作
原
型
)。一张图像对应不同分类的得分,是通过使用内积(也叫
点
积
)来比较图像和模板,然后找到和哪个模板最相
似。从这个角度来看,线性分类器就是在利用学习到的模板,针对图像做模板匹配。从另一个角度来看,可以认为
还是在高效地使用k-NN,不同的是我们没有使用所有的训练集的图像来比较,而是每个类别只用了一张图片(这张
图片是我们学习到的,而不是训练集中的某一张),而且我们会使用(负)内积来计算向量间的距离,而不是使用
L1或者L2距离。
————————————————————————————————————————
将课程进度快进一点。这里展示的是以CIFAR-10为训练集,学习结束后的权重的例子。注意,船的模板如期望的那
样有很多蓝色像素。如果图像是一艘船行驶在大海上,那么这个模板利用内积计算图像将给出很高的分数。
————————————————————————————————————————
可以看到马的模板看起来似乎是两个头的马,这是因为训练集中的马的图像中马头朝向各有左右造成的。线性分类
器将这两种情况融合到一起了。类似的,汽车的模板看起来也是将几个不同的模型融合到了一个模板中,并以此来
分辨不同方向不同颜色的汽车。这个模板上的车是红色的,这是因为CIFAR-10中训练集的车大多是红色的。线性分
类器对于不同颜色的车的分类能力是很弱的,但是后面可以看到神经网络是可以完成这一任务的。神经网络可以在
它的隐藏层中实现中间神经元来探测不同种类的车(比如绿色车头向左,蓝色车头向前等)。而下一层的神经元通
过计算不同的汽车探测器的权重和,将这些合并为一个更精确的汽车分类分值。
偏
差
和
权
重
的
合
并
技
巧
:在进一步学习前,要提一下这个经常使用的技巧。它能够将我们常用的参数 和 合二为
一。回忆一下,分类评分函数定义为:
剩余10页未读,继续阅读
资源评论
sunny_develop
- 粉丝: 123
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功