SVM分类器中损失函数梯度求法及理解

一、损失函数的计算公式:

                                            

           s(j)表示该类别错误分类为其他类别的估计分数。s(y(i))表示该类别正确的估值分数。这是基础的概念。

           上式还可以进一步表示为矩阵向量相乘的形式:

                                                

            其中w(j)表示权重矩阵中的每一个列向量,而每一个x(i)则代表着每个被抽成列向量的二维图片矩阵(应该是这个样子理解的,但是这个写法可能会看晕。)


二、求损失函数关于权重矩阵的梯度:

            梯度求导相对于softmax(另一种线性分类器)就简单了很多,没有复杂的指数求导,我们发现对于w来说,还是一共有w(j)和w(y(i))两个参数,分别对其求导,其中max函数在括号里面小于0的时候,梯度肯定等于0(因为此时w的变化对最后损失函数的大小是没有丝毫的影响的)。接下来就是看大于0的时候,如下,很简单易懂。

            SVM分类器中损失函数梯度求法及理解_第1张图片

        图是俺扣的别人的,出处见水印,稍后有链接。但是就我自己思考的话,这些公式是有问题的,这个应该换成偏w(j)应该是。前面括号是条件。

            另外一张抠图:

            SVM分类器中损失函数梯度求法及理解_第2张图片


三、梯度计算的代码实现:

                SVM分类器中损失函数梯度求法及理解_第3张图片

                这里需要一次从公式到具体数值计算的跳跃,对于像我这样的初学者来说还是比较费脑子去理解的。因为loss对于w(j)的梯度就是x(i),故x(i)的值便是w(j)的梯度。


参考链接:https://blog.csdn.net/silent_crown/article/details/78109461

                  https://blog.csdn.net/lanchunhui/article/details/70991228

你可能感兴趣的:(SVM分类器中损失函数梯度求法及理解)