您的位置:首页 > 其它

CS231n第二课:线性分类器学习记录

2016-09-04 21:55 232 查看
结合视频第二集和笔记:https://zhuanlan.zhihu.com/p/20918580?refer=intelligentunit

线性分类器(Linear classifier)



加深理解

线性分类器计算图像中3个颜色通道中所有像素的值与权重的矩阵乘,从而得到分类分值。根据我们对权重设置的值,对于图像中的某些位置的某些颜色,函数表现出喜好或者厌恶(根据每个权重的符号而定)。



这里假设了猫的图像就只有四个像素。

将图像看做高维度的点:既然图像被伸展成为了一个高维度的列向量,那么我们可以把图像看做这个高维度空间中的一个点(即每张图像是3072维空间中的一个点,因为是32*32*3大小的图片)。整个数据集就是一个点的集合,每个点都带有1个分类标签。

既然定义每个分类类别的分值是权重和图像的矩阵乘,那么每个分类类别的分数就是这个空间中的一个线性函数的函数值。我们没办法可视化3072维空间中的线性函数,但假设把这些维度挤压到二维,那么就可以看看这些分类器在做什么了:



将线性分类器看做模板匹配:关于权重W的另一个解释是它的每一行对应着一个分类的模板(有时候也叫作原型)。一张图像对应不同分类的得分,是通过使用内积(也叫点积)来比较图像和模板,然后找到和哪个模板最相似。从这个角度来看,线性分类器就是在利用学习到的模板,针对图像做模板匹配。从另一个角度来看,可以认为还是在高效地使用k-NN,不同的是我们没有使用所有的训练集的图像来比较,而是每个类别只用了一张图片(这张图片是我们学习到的,而不是训练集中的某一张),而且我们会使用(负)内积来计算向量间的距离,而不是使用L1或者L2距离。



偏差和权重的合并技巧



数据预处理(Part 3 部分会讲一下为什么需要预处理)

在机器学习里,规范化/归一化(Normalization)输入特征(这里指像素值[0,255])是非常常见且必要的,特别是对于各维度幅度变化非常大的数据集。但对于图像而言,一般只要去均值(mean subtraction)即可(因为图像每一维的像素值都在[0,255]之间),即计算出训练集图像的均值图像,然后每张图像(包括训练集、验证集和测试集)减去均值图像(一般不需要归一化和白化)。在numpy中此过程可以表示为: X -= np.mean(X, axis=0)。

损失函数 Loss function

我们将使用损失函数(Loss Function)(有时也叫代价函数Cost Function或目标函数Objective)来衡量我们对结果的不满意程度。直观地讲,当评分函数输出结果与真实结果之间差异越大,损失函数输出越大,反之越小。

多类支持向量机损失 Multiclass Support Vector Machine Loss

SVM loss : 对于每一张图像样本,正确分类的得分应该比错误分类的得分至少高Δ(Δ的取值在实际中一般为1,不将Δ作为参数是因为它的变化可以转换为W的变化,所以只要训练W就行了)。



多类SVM“想要”正确类别的分类分数比其他不正确分类类别的分数要高,而且至少高出delta的边界值。如果其他分类分数进入了红色的区域,甚至更高,那么就开始计算损失。如果没有这些情况,损失值为0。我们的目标是找到一些权重,它们既能够让训练集中的数据样例满足这些限制,也能让总的损失值尽可能地低。



我们面对的是线性评分函数(

),所以我们可以将损失函数的公式稍微改写一下:





正则化





引入正则化惩罚还带来很多良好的性质,其中最好的性质就是对大数值权重进行惩罚,可以提升其泛化能力,因为这就意味着没有哪个维度能够独自对于整体分值有过大的影响。

设置Delta:你可能注意到上面的内容对超参数

及其设置是一笔带过,那么它应该被设置成什么值?需要通过交叉验证来求得吗?现在看来,该超参数

在绝大多数情况下设1.0都是安全的。超参数



看起来是两个不同的超参数,但实际上他们一起控制同一个权衡:即损失函数中的数据损失和正则化损失之间的权衡。

Softmax分类器

Softmax是二值Logistic回归在多分类问题上的推广。

这里函数f保持不变,将折叶损失(Hinge loss)替换成交叉熵损失函数(cross-entropy loss),其损失函数表达式如下(log(e) =1):


或者


其中,函数

称为softmax函数。可以看出softmax函数的输出实际上是输入样本xi在K个类别上的概率分布,而上式是概率分布的交叉熵(不是相对熵,虽然看上去好像是相对熵,下面我会稍微修改一下Li,还原它的本来面目;交叉熵可以看做熵与相对熵之和)。

先引入一下信息论里的交叉熵公式:

;其中p表示真实分布,q表示拟合分布。下面我们来修改下Li:











Softmax损失函数的推导:



SVM与Softmax的区别

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: