Structured Learning和Structured SVM的学习(下)

http://bubblexc.com/y2011/547/

在上面的部分中,经验损失为0意味着我们得到了一个完全符合训练样本要求的discriminative function f,即 (xi,yi),f(xi)=yi 。然而,多数时候,我们无法得到满足前面式子中所有约束的可行解。因此,我们还是借鉴SVM 的思想,在优化问题中加入松弛变量,这样就使模型不必完全拟合训练集中的样本,从而得到下面的优化问题:

minw,ξ12||w||2+Cni=1nξ2s.t.i,yYyi:w,δψi(y)1ξi
可以将 ξi 理解为是对那些不能满足约束条件的y的惩罚。 但是,在这里,对于两个不满足约束条件的 y1,y2 ,我们对其进行了等量的惩罚,这显然是不合理的。正确的做法是,如果 Δ(y1,yi)>Δ(y2,yi) ,那么我们应该给予 y1 更大的惩罚。因此我们在进行惩罚时还应该考虑损失函数的影响,于是可以进一步得到下面的优化问题(具体推导过程参见文章所列参考资料):

minw,ξ12||w||2+Cni=1nξ2s.t.i,yYyi:w,δψi(y)Δ(yi,y)ξi
  • 求解方法

经过上面的分析,我们最终将求解discriminative function f的问题转化为一个类似svm中优化问题,只要解决这个优化问题,就能得到所需的f。但是,直接利用svm中求解的方法确是不可行的,因为上述优化问题中的约束条件实在是太多了。假设有n个训练样本,y可能的状态数为|Y|,那么总的约束个数为n*(|Y|-1);如果y的取值是连续的,那么便有无数个约束条件了。。。因此,尽管形式上与传统svm的优化问题相同,但在求解方法上我们却需要另辟蹊径。

实际上,在上述优化问题中,只有w和 ξ 是变量,假设w的维度为d,那么只需要根据n+d个约束就可以求得最优解,其它约束会自动被满足。因此,在求解过程中,我们希望找到一个所有约束条件的子集,使得满足这个子集中约束的解,也是在一定误差下的最优解,具体方法就是利用cutting plane training算法:对于一个训练样本 (xi,yi) ,我们为其维护一个约束条件的working set Si ,初始 Si 为空,然后迭代求解。在每一轮迭代中,我们根据的working set中的约束求出w的值,然后对于 (xi,yi) ,找出此时‘most violated constraint’,也就是求解下式:

y=argmaxyYH(y)H(y)=Δ(yi,y)δψi(y),w
H(y) 超过一定的阈值,则将 y 对应的约束加入到 Si 中,并且开始下一轮迭代。当working set不再变化时,算法结束,此时的w就是一定误差下的最优解。
  • 使用Structured SVM

SVM Struct是一个Structured SVM的编程框架,遵循这个框架我们利用Structured SVM解决自己的问题。在这个框架中,我们只需要实现三个模块:

  1. feature mapping,即 ψ(xi,yi)
  2. loss function,即 Δ(yi,y)
  3. 寻找‘most violated constraint’,也就是求解 y=argmaxyY(Δ(yi,y)δψi(y),w)

在这三个模块中,个人感觉最为困难的是选择feature mapping function ψ(xi,yi) 。在实际问题中,我们常常无法确定从何种角度来描述(x,y)的特征效果最好。我们可以通过kernelized来解决这个问题,即选择核函数k,

Missing open brace for superscript
这样,我们不需要明确的定义 ψ(xi,yi) 了,只需要选择一个能比较样本间相似程度的kernel就可以了,这个相对简单。但同时,由于没有明确指明 ψ(xi,yi) ,利用kernel在计算‘most violated constraint’时就会复杂一些。总之,有利有弊,还得根据自己的问题决定。
  • 相关资料
  1. Large Margin Methods for Structured and Interdependent Output Variables
  2. Structured Learning and Prediction in Computer Vision
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值