深度学习入门笔记--图像线性分类

这篇博客是为了自己方便回忆知识点做的一些记录和整理,参考资料是知乎专栏的CS231N课程笔记翻译

想看详细版请点链接:

https://zhuanlan.zhihu.com/p/21930884?refer=intelligentunit%20%E8%BF%99%E4%B8%AA%E6%98%AFCS231n%E7%9A%84%E7%BF%BB%E8%AF%91%E7%AC%94%E8%AE%B0



计算机识别图像的困难与挑战

  • 视角变化(Viewpoint variation)
  • 大小变化(Scale variation)
  • 形变(Deformation)
  • 遮挡(Occlusion)
  • 光照条件(Illumination conditions)
  • 背景干扰(Background clutter)
  • 类内差异(Intra-class variation)

图像分类流程

输入->学习->评价


从图像到标签分值的参数化映射

该方法的第一部分就是定义一个评分函数,这个函数将图像的像素值映射为各个分类类别的得分,得分高低代表图像属于该类别可能性的高低。

线性分类器

深度学习入门笔记--图像线性分类

其中W被称为权重(weights),b被称为偏差向量(bias vector)


深度学习入门笔记--图像线性分类


上面举的例子的分类结果显然不好,分类器输出狗的概率最高,但实际上这是一只猫。

将线性分类器看做模板匹配

关于权重W的另一个解释是它的每一行对应着一个分类的模板。从这个角度看,线性分类器就是再利用学习到的模板针对图像做模板匹配。

偏差和权重的合并技巧

将偏差值b也放入到W的参数矩阵中

深度学习入门笔记--图像线性分类

变为

深度学习入门笔记--图像线性分类

变换方法如图示

深度学习入门笔记--图像线性分类

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

第i个数据中包含图像深度学习入门笔记--图像线性分类的像素和代表正确类别的标签深度学习入门笔记--图像线性分类。评分函数输入像素数据,然后通过公式深度学习入门笔记--图像线性分类来计算不同分类类别的分值。这里我们将分值简写为s。针对第j个类别的得分就是第j个元素:深度学习入门笔记--图像线性分类。针对第i个数据SVM的损失函数定义如下:

深度学习入门笔记--图像线性分类

深度学习入门笔记--图像线性分类通常被称为折叶损失,有时候会听到人们使用平方折叶损失SVM,它使用的是深度学习入门笔记--图像线性分类,将更加强烈地惩罚过界地边界值。

深度学习入门笔记--图像线性分类

多类SVM想要正确类别的分类分数比其他不正确分类类别的分数要高,而且至少高出delta的边界值。如果其他分类分数进入了红色的区域,甚至更高,那么就开始计算损失。如果没有这些情况,损失值为0.

正则化(Regularization):

有可能存在多种参数组合能使分类效果达到最佳,比如,给参数整体乘上一个常数。

为了解决这个问题,我们要给某些特定的权重W添加一些偏好,其他的权重则不添加。方法是向损失函数增加一个正则化惩罚(regularization penalty)。

常用的正则化惩罚是L2范式

深度学习入门笔记--图像线性分类

这样我们得到了完整的多类SVM损失函数

深度学习入门笔记--图像线性分类


完整展开公式如下:

深度学习入门笔记--图像线性分类

其中超参数深度学习入门笔记--图像线性分类的值无法简单确定,需要通过交叉验证来获取。

实际考虑

设置Delta

深度学习入门笔记--图像线性分类大多数情况下都被设为1 。detla和lambda一起控制同一个权衡:损失函数中的数据损失和正则化损失之间的权衡。


Softmax分类器

SVM将输出深度学习入门笔记--图像线性分类作为每个分类的评分(因为无法定标,所以难以直接解释)。与SVM不同,Softmax的输出(归一化的分类概率)更加直观,并且从概率上可以解释,这一点后文会讨论。在Softmax分类器中,函数映射深度学习入门笔记--图像线性分类保持不变,但将这些评分值视为每个分类的未归一化的对数概率,并将折叶损失(hinge loss)替换为交叉熵损失(cross-entropy loss)。公式如下:

深度学习入门笔记--图像线性分类或等价的深度学习入门笔记--图像线性分类


上式中,使用深度学习入门笔记--图像线性分类来表示分类评分向量深度学习入门笔记--图像线性分类中的第j个元素,和之前一样,整个数据集的损失值是数据集中所有样本数据的损失值深度学习入门笔记--图像线性分类的均值。

其中函数深度学习入门笔记--图像线性分类被称作softmax函数。


信息论视角:

在“真实”分布p和估计分布q之间的交叉熵定义如下:
深度学习入门笔记--图像线性分类

因此,Softmax分类器所做的就是最小化在估计分类概率(就是上面的深度学习入门笔记--图像线性分类)和“真实”分布之间的交叉熵。


SVM和Softmax的比较

深度学习入门笔记--图像线性分类


针对一个数据点,SVM和Softmax分类器的不同处理方式的例子。两个分类器都计算了同样的分值向量f(本节中是通过矩阵乘来实现)。不同之处在于对f中分值的解释。

SVM分类器将他们看作是分类评分,它的损失函数鼓励正确的分类。

Softmax分类器将这些数值看作是每个分类没有归一化的对数概率,鼓励正确分类的归一化的对数概率变高,其余的遍地。