SVM_LOSS梯度推导

首先给出损失函数的定义:

其中符号定义:

其中Xi是某一样本输入,为行向量;Wj为权值矩阵中的某一列;Yi为Xi标签值,这里也代表所在向量的索引值。

我们将Li展开后可以得到其具体表达式为:

上式每一行前后表示意义为:

现在我们把损失函数对权值矩阵求导展开得到:

为了叙述清晰,这里我们忽略max(0,...)函数,它对权重求导的影响即将小于零位置导数置0即可,结合上述两式,可以得到求导值:

也就是:

其中Xi前面的部分主要是考虑到max(0,...)的影响,计算式小于0时,该位置置0;

下面计算dLi/dwyi1,含有wyi1的部分如下所示:

需要指出的是如果考虑到max(0,...)的影响,个数一般小于C。同样的,对于Wyi2...求导结果类似:

cs231n - assignment1 - linear-svm代码实现为:

for i in range(num_train):

    scores = X[i].dot(W)

    correct_class_score = scores[y[i]]

    for j in range(num_classes):

        if j == y[i]:

            continue

        margin = scores[j] - correct_class_score + 1 # note delta = 1

        if margin > 0:

            loss += margin

            dW[:,j] += X[i].T

            dW[:,y[i]] += -X[i].T


参考:Vectorized Implementation of SVM Loss and Gradient Update

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 机器学习是做NLP和计算机视觉这类应用算法的基础,虽然现在深度学习模型大行其道,但是懂一些传统算法的原理和它们之间...
    在河之简阅读 20,784评论 4 65
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 9,191评论 0 2
  • 【概述】 SVM训练分类器的方法是寻找到超平面,使正负样本在超平面的两侧(分类正确性即“分得开”),且样本到超平面...
    sealaes阅读 13,852评论 0 7
  • 恰逢春日,万物复苏,花草树木有有欣欣向荣之相,余见之甚喜,欲作一诗以表欢喜之情。 恰闻得火车站旁卖糖炒栗子的商家的...
    择若阅读 1,603评论 0 1
  • 我以我的体重发誓,从前我绝对是个素食主义者,虽然也能吃一点肉,但是也就只能是一点瘦肉,大油大荤的东西看看就...
    酒醉花颜阅读 3,199评论 5 4

友情链接更多精彩内容