您的位置:首页 > 其它

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

2017-05-21 18:29 344 查看
这篇博客是为了自己方便回忆知识点做的一些记录和整理,参考资料是知乎专栏的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分类器将这些数值看作是每个分类没有归一化的对数概率,鼓励正确分类的归一化的对数概率变高,其余的遍地。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  深度学习入门