[CS231n]2·Linear Classification

CS231n Convolutional Neural Networks for Visual Recognition

https://www.bilibili.com/video/BV1nJ411z7fe

Linear Classifier

设数据集为 ,其中 .

定义 score function: ,即输入一个由图片像素构成的 维向量,输出这个图片属于各个类别的 score. 我们认为 score 越高,图片越可能属于这个类别。

对于 linear classifier 来说,它的 score function 很简单: 其中, 是参数,分别称作 weights 和 bias. 显然,这里 .

如果单独看第 类的得分,为 的第 行与 的内积加上 的第 个元素。可以发现类别之间的得分相互独立,写成矩阵只是为了方便而已。


为了理解 linear classifier,注意 是一个 中的超平面,法向量为 ,截距为 . 输入的 在超平面上对应位置的“高度”越高,就越可能属于这一超平面代表的那一类。下面是 的一个例子,线条表示超平面与 的交线,沿着箭头方向走, 变大。


是我们要训练的参数,为了训练它们,我们需要定义 Loss function. 这样训练 就是最小化 Loss function 的过程,机器学习问题最终归结为一个优化问题。


Multiclass SVM

一种 loss function 是 Multiclass SVM Loss. 对于数据 来说,其 loss function 定义为: 其中, 表示 在第 类上的得分,即 .

对这个 loss function 的理解是,如果正确分类的得分 比错误分类的得分 还高一个 ,那么损失就是 ;否则,损失是 多出的部分。由于这个函数的图像形状像铰链(合叶),所以这种 loss function 也称作 hinge loss.


在机器学习中学过的正则化也要用上,若使用 ,则 Multiclass SVM Loss 的完整形式是: 值得注意的是,上式中的 并不是需要调节的 hyperparameter,取 即可。这是因为 的整体放缩可以在不改变 的大小关系的条件下改变它们的差值,所以 取值并不影响结果。


Softmax classifier

Softmax classifier 是 binary Logistic Regression classifier 在多分类上的扩展,不同于 multiclass SVM loss,softmax classifier 的输出有一个概率的解释。

对于第 个数据,设 表示它在第 类上的得分,则 softmax classifier 视之为尚未标准化的对数概率,并采取 cross-entropy loss 作为 loss function: 其中,函数 称作 softmax function.

和之前一样,总的 loss function 定义为各 的平均值加上正则化项。


从信息论角度理解,设真实概率分布为 ,估计概率分布为 ,则定义 cross-entropy 为: 在图像分类问题中,我们估计的各个分类上的概率分布为 ,而真实分布为 (即正确的分类为 ,其余为 )。Softmax classifier 最小化的就是 .


从概率论角度理解, 可以解释为参数为 时,输入为 的条件下输出为 的概率。于是最小化 等价于实施极大似然估计(Maximum Likelihood Estimation)。


值得注意的是,在编写代码时, 可能太大以至于计算精度较低,但是注意到: 所以我们可以取 来解决这个问题。


SVM vs. Softmax

它们的实际效果往往差不多。


[CS231n]2·Linear Classification
https://xyfjason.github.io/blog-main/2021/02/22/CS231n-2·Linear-Classification/
作者
xyfJASON
发布于
2021年2月22日
许可协议