返回信息流话说,为啥svm不用sgd方式求解呢,而要用求解二次规划的方法求解呢,sgd应该要快很多呀,而且有很多改进版本,又还可以做增量的训练,libsvm这类用二次规划思想的应该做不了增量训练吧,那为什么还要用libsvm呢,数据量很大时,速度要比sgd慢很多吧。
是因为核函数的原因吗?求大神详解。谢谢~[ema23]
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #20800同步于 2016/8/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
[问题]关于svm的求解问题
decayed
2016/8/17镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
梯度下降一类的优化方法是针对无约束的凸优化问题,SVM的目标函数里有条件约束。
【 在 decayed 的大作中提到: 】
: 话说,为啥svm不用sgd方式求解呢,而要用求解二次规划的方法求解呢,sgd应该要快很多呀,而且有很多改进版本,又还可以做增量的训练,libsvm这类用二次规划思想的应该做不了增量训练吧,那为什么还要用libsvm呢,数据量很大时,速度要比sgd慢很多吧。
: 是因为核函数的原因吗?求大神详解。谢谢~
谢谢~ ,如果将损失函数定义为hinge loss的话,好像也没有约束啊,只有在用二次规划思想解的时候才有约束吧
【 在 LJ10211289 的大作中提到: 】
: 梯度下降一类的优化方法是针对无约束的凸优化问题,SVM的目标函数里有条件约束。
hinge loss 里面的 1-yi(wi+b)>=0,这不是限制吗?当然可能也有别的解释为什么没用SGD,这里说的是我个人的想法哈
【 在 decayed 的大作中提到: 】
: 谢谢~ ,如果将损失函数定义为hinge loss的话,好像也没有约束啊,只有在用二次规划思想解的时候才有约束吧
对的~但hinge loss一般写成max(0,sj-si+1)),这样就可以直接用梯度下降做了,没有限制,这是我的理解哈,不知道对不对~(si=wi*xi+b)
【 在 LJ10211289 的大作中提到: 】
: hinge loss 里面的 1-yi(wi+b)>=0,这不是限制吗?当然可能也有别的解释为什么没用SGD,这里说的是我个人的想法哈
那按照你的思路,先把这个max函数的对各个变量的偏层数求出来吧:)
【 在 decayed 的大作中提到: 】
: 对的~但hinge loss一般写成max(0,sj-si+1)),这样就可以直接用梯度下降做了,没有限制,这是我的理解哈,不知道对不对~(si=wi*xi+b)
这个我求过了,用python numpy做的话更方便, stanford cs231n的pset1中就是用的sgd解的svm,所以我才有这个疑惑。感觉是不是因为核函数的原因,所以sgd不适合。如果是线性的话sgd应该没问题吧
【 在 LJ10211289 的大作中提到: 】
: 那按照你的思路,先把这个max函数的对各个变量的偏层数求出来吧:)