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

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