3 损失函数和优化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fffupeng/article/details/72903717

为了描述之前建立的线性分类器的分类效果,我们引入的损失函数,顾名思义,损失函数越大误差也就越大。

在下图的任务中,将测试图片猫、车和青蛙输入网络,输出了一系列的数值,如下表。

clipboard

很显然我们希望图片对应的分类数值越高越好,例如猫的图片对应cat,但是数值只有3.2,还不如对应的car的数值,所以该线性分类器会将猫这张图片分类为car。

下面引入svm loss函数:

clipboard

其中Sj和Syi分别对应错误分类的值和正确分类的值,猫这张图片的loss为:

max(0,5.1-3.2+1)+max(0,-1.7-3.2+1) = 2.9

同理计算出其他两个图片的loss值。

clipboard

比较loss,可以发现分类结果越离谱的loss越大。

但是即使相同的loss,W的存在并不是唯一的。例如将W x 2,对于车图片的loss并没有改变,还是0,计算如下图。

clipboard

为了固定w使其存在唯一的解,引入了权重正则化。如下图:

clipboard

常见的L1和L2正则化,下图中w1和w2实现相同的计算结果,但是w2是加上L2正则化后的结果,可以看出w1仅仅使用了一维空间,W2数据分布在四个空间中。所以L2正则化迫使权重利用整个空间,利用更多的维度。

clipboard

softmax分类器:

clipboard

与其搭配使用的常是对数似然损失:-log

clipboard[1]

e的指数次方实现了将f(x,w)输出 > 0,其次除以总和,得到了类似于概率的值。

现在我们已经有数据集,线性分类器f(x;w),和loss函数(多种),接下来要做的就是如何调整w,使得loss变小。

方法1:随机搜索。。。。

方法二:沿着下降方向

clipboard[2]

方法3:梯度下降,可以将loss看作是w的函数,那么对w进行微分不就得到了下降方向么。

clipboard[3]

但是使用单一数据计算loss梯度下降,存在偶然性,计算的梯度并不一定是整体下降的方向。

如果使用整体训练集的梯度方向,计算量有太大。

所以存在mini batch 梯度下降,用小批量的数据去近似整体的训练集的loss,相比单一的数据效果好很多。

展开阅读全文

没有更多推荐了,返回首页