线性分类器

RPChe_

即 Linear Classifier ,使用超平面来划分数据。

问题背景

  • 给定包含图像的训练集与测试集,请基于训练集中标注的分类结果对测试集中的图像进行分类。

算法描述

  • 我们仍然将图像转为向量,将训练集的大小记作 ,其中第 张图对应的向量记作 ,类别记作 。然后,我们考虑使用超平面进行不同类的划分。具体的,我们希望对于每一类都找到一个超平面,使其最好的区分了此类与其余的所有类别。如果我们使用矩阵的形式表示总共的 个超平面,那么可以写出如下的预测函数: 其中 是待决策的向量,而 的类别就是 计算出的得分最高的那一类。特别的,有些时候,为了方便起见,我们会将向量 吸收到 里面,并在 的尾部添加一个常数 ,称作 bias trick 。接下来,我们需要找到一个方式来度量我们选择的超平面的优劣。具体的,我们考虑设计一个损失函数(loss function) ,其度量了将 用于预测向量 的类别时,与答案 所产生的损失。那么基于测试集所得到的总损失就定义为: 为了防止过拟合,我们再加入一个正则化的要求,从而将总损失修改为: 其中 的某种正则化,这里就取 范数的平方了。然后我们考虑如何选择损失函数。一个常见的损失函数是 Multiclass SVM loss ,即:1 另一个正则化的选择则是使用交叉熵2。我们将 视作对 属于所有类别的概率的对数估计,所以我们要先对 ,再归一化,以得到概率估计。我们知道 的类别必然是 ,即真实的概率是 。然后我们再计算由 得到的概率估计与真实概率的交叉熵3,就得到了: 那么,定义好总损失以后,我们的问题就变成了: 从技术上求解这个优化问题即可。4

  1. 这里的 的第 维。这个东西和 Soft SVM 的标准形式其实还是有点区别的,共同点是都用了 hinge loss 。↩︎

  2. 截止我写这个东西的时候信息论还没上完,所以我要开始口胡了。↩︎

  3. 不清楚交叉熵有什么意义。↩︎

  4. 这是一个凸优化。↩︎

  • 标题: 线性分类器
  • 作者: RPChe_
  • 创建于 : 2025-03-06 00:00:00
  • 更新于 : 2025-03-06 23:01:09
  • 链接: https://rpche-6626.github.io/2025/03/06/DL/LC/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
线性分类器