参数化方法主要有两部分:
评分函数(score function):将原始数据(如图像数据)映射为类别分数向量;
损失函数(loss function):量化预测分数与真实标签值之间的差距。
整个过程可以视为一个最优化问题,通过持续更新评分函数中的参数值来使得损失函数最小化。
上一节介绍了一种简单的参数化方法——线性分类器,给出了它的评分函数,这一节主要介绍两种常用的损失函数及最优化的思想。
1.多分类支持向量机损失函数
2.Softmax分类器
3.优化
假设以CIFAR-10为训练集,训练一个线性分类器,在训练过程中某时刻评分函数的若干结果如下图所示:
第一幅图像是猫,而类别为猫的标签得分并不是最高的,分类错误,有三个类别的得分比它高;第二幅图像是汽车,类别为汽车的标签得分最高,分类正确;第三幅图像是青蛙,而类别为青蛙的标签得分极低,排倒数第二,分类错误。
那么,我们应该如何评价评分函数在整个训练数据集上的表现呢?答案就是定义一个损失函数,用来量化评分函数的预测得分与真实值间的差距。
1.多分类支持向量机损失函数(Multiclass SVM loss)
假设有样本 (xi,yi) ,其中 xi 是图像数据, yi 是所属类别标签值,利用线性分类器分类,评分为 s=f(xi,W) 。
现在定义SVM损失函数如下:
Li=∑j≠yimax(0,sj−syi+1)
其中 i 表示样本索引,
那么,什么时候损失函数的值最小呢?当 sj−syi+1 项小于0时,即 sj>syi+1 或 sj−syi>1 。
可以看出,为了使得SVM损失函数最小化,不仅要求所属类别标签得分高于其他类别,还要高出一定的安全间隔(safety margin),也就是式中的1。
整个训练集损失定义为所有训练样本损失的均值,即所有样本损失总和除以样本数量:
L=1N∑Ni=1Li
举例说明SVM损失函数是如何工作的,假设训练集中三幅图像,分别在三个类别标签上的得分如下:
第一幅图像的SVM损失:
L1=max(0,5.1−3.2+1)+max(0,−1.7−3.2+1)=2.9
第一幅图像是猫,