概述
在上一节的线性回归的例子中,我们通过一定的矩阵运算获得了每张图像的最终得分(如下图),可以看到,这些得分有些是比较好的预测,有些是比较差的预测,那么,具体如何定义“好”与“差”呢?这就需要引入“损失函数”的相关概念了。
损失函数
关于损失函数的精准定义可以在维基百科或者百度百科里查到,但是这种定义不太容易理解,这里我用一种比较通俗的说法来介绍损失函数:损失函数就是可以准确的告诉我们,分类器是好是坏的一类函数。
这里我们继续使用上面图中的例子来讲解损失函数。首先,给定一组样例
(xi,yi),i=1...N
。其中xi代表图像,yi代表图像对应的标签。则可以给出关于这组样例的一个简单的损失函数定义:
L=1N∑NiLi(f(xi,W),yi)
。
为了更好的理解损失函数,在这里我们给出多分类器SVM的损失函数形式:
将上式中的 syi 作为横轴,损失程度作为纵轴,则可以得到下面的损失图像:
从上面的图像我们可以看出,当正确类别的得分比其他类别的得分高出一定范围时(这里是大于1),那么该预测结果的损失程度就是0,而如果正确类别的得分比其他类别的得分低时,那么损失程度就与分值差呈线性相关。
下面,我们可以分别计算这三幅图像在当前分类器中的损失函数的值,来看看当前分类器是好是坏。
至此,我们得到了三幅图像各自的损失函数值,然后,我们对损失函数值求平均,就可以得到当前分类器的损失值,如下所示,损失值为5.27。
这里有一个问题需要注意,即使我们求得了一个矩阵W,使得损失函数的值是0(实际中不太可能为0),那么这个W是否是唯一的呢?答案是”不唯一。举个很简单了例子,如果W使得损失函数为0,那么2W肯定也可以使得损失函数为0。
另外,如果有多个损失函数都在训练数据上有较低的损失,那么我们应该优先选择计算过程较简单的损失函数,这是因为,越是复杂的函数,它的约束也就越多,对新数据的要求也就越多,那么就越不容易对新数据做好良好的预测,如下图所示,图中曲线是较为复杂的模型,而直线是较为简单的模型,很明显我们应该选择直线而不是曲线。
最后
以上就是无限小懒猪为你收集整理的深度学习与计算机视觉[CS231N] 学习笔记(3.1):损失函数(Loss Function)的全部内容,希望文章能够帮你解决深度学习与计算机视觉[CS231N] 学习笔记(3.1):损失函数(Loss Function)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复