Linear classification: Support Vector Machine, Softmax
文章目录
1.Linear Classification-线性分类概述
线性分类主要由两部分组成,评分函数(score function)和损失函数(loss function)。其中 评分函数(score function) 是原始图像数据(raw data)到类别分值(class score)的映射;而 损失函数(loss function) 是用来量化预测分类标签的得分与真实标签之间的一致性。所有的NN和CNN问题实际上都是围绕这两个function进行的。
2.score function-评分函数
评分函数将图像的像素值映射为各个分类类别的得分,得分高低代表图像属于该类别的可能性高低。下面将举例说明(以CIFAR-10为例):
假设我们有N(5000)个图像样例,每个图像维度为D(32323=3072),有K(10)个分类,定义评分函数为 $f=R^D\rarr R^K $ 表示原始图像像素到分类分值的映射。
线性分类器
提到 评分函数 我们最先想到的就是linear function。
f ( x i , W , b ) = W x i + b f(x_i,W,b)=Wx_i+b f(xi,W,b)=Wxi+b
在这个式子中每个图像数据被处理成长度为D的列向量,故 X i X_i Xi大小为[D X 1].
其中大小为[K x D]的矩阵 W W W和大小为[K x 1]的列向量 b b b为该函数的参数(parameters) .参数 W W W被称为权重(weights)。 b b b被称为偏差向量(bias vector),它影响输出数值,但是并不和原始数据 x i x_i xi产生关联。
W x i + b Wx_i+b Wxi+b=(1,3072)* (3072,10)+(1,10)=(1,10)+(1,10)=(1,10)表示 x i x_i xi分别属于10个类别下的得分。
偏差和权重的合并技巧
分类评分函数定义为$ f(x_i,W,b)=Wx_i+b$ ,分开处理 W W W和 b b b比较麻烦,一般常用的方法是把两个参数放到同一个矩阵中,同时 x i x_i xi向量就要增加一个维度,这个维度的数值是常量1,即默认的偏差维度。此时新公式简化为: f ( x i , W ) = W x i f(x_i,W)=Wx_i f(xi,W)=Wxi.
以CIFAR-10为例, x i x_i xi 变为[3073x1], W W W变为[10x3073]
图像数据预处理
对输入特征做归一化(normalization)处理,所有数据都减去均值使得数据中心化,再让数值分布区间变为[-1,1]。零均值的中心化的重要性在梯度下降中体现。
2.损失函数
我们将使用损失函数(Loss Function)来衡量我们对结果的不满意程度。直观地讲,当评分函数输出结果与真实结果之间差异越大,损失函数输出越大,反之越小。
多类SVM
损失函数的具体形式多种多样。首先,介绍常用的多类支持向量机(SVM)损失函数。SVM的损失函数想要SVM在正确分类上的得分始终比不正确分类上的得分高出一个边界值 Δ \Delta Δ。
设第 i i i个数据,包含图像 x i x_i xi的像素和代表正确类别的标签 y i y_i yi.评分函数 f ( x i , W ) f(x_i,W) f(xi,W)得到不同分类类别的分值,分值记作 s s s。则 x i x_i xi对应第 j j j个类别的得分为 $s_j=f(x_i,W) _ j . 针 对 第 .针对第 .针对第i$个数据的多类SVM的损失函数定义如下:
L i = ∑ j ̸ = y i max ( 0 , s j − s y i + Δ ) L_i=\displaystyle\sum_{j\not=y_i}\max(0,s_j-s_{y_i}+\Delta) Li=j̸=yi∑max(0,sj−syi+Δ)
补充说明 : max ( 0 , − ) \max(0,-) max(0,−) 函数,常被称为折叶损失(hinge loss)
Regularization-正则化
为了使得W的系数尽量小,模型尽量趋向简单,从而避免overfitting问题。我们向损失函数增加一个正则化惩罚 R ( W ) R(W) R(W),常用的正则化惩罚是L2