Structured Learning和Structured SVM的学习(上)

以前就听说过Structured Learning,但只知道其大体的概念。听师兄说现在用的挺多的,于是前一段时间断断续续的看了有关这方面的一些资料,在此总结一下。

在利用机器学习方法建模时,我们往往是寻找一个映射函数 f:X -> Y,将输入X 映射为输出Y。输入X的形式是多种多样的,但在“常规”的机器学习方法中,输出Y是一个number或者一个label,比如分类、回归、分布密度估计的各种方法。而Structured Learning中,Y不再局限在一个number,而可以是complex structured object,比如说是一副image,一个image region,一个label sequence,或是parse tree 等等。个人感觉,structured learning使我们能更加直接的解决问题,它提供了一种框架是我们能直接得到具体问题中想要的输出。理论上,感觉你可以把任何输出都作为一种结构。

在Structrued Learning中,主要涉及两个任务:Inference Task和Learning Task。Learning Task 就是根据训练集合 (x1,y1),(x2,y2),...,(xn,yn) ,学习一个模型,这其中,模型往往是一个参数化模型,因此Learing的过程就是确定参数的过程。Inference Task就是在训练好模型后,根据给定的输入X,预测一个最佳的输出Y。Structured Learning 具有多种方法,其中很重要的一类方法是基于概率图模型的方法,尤其是无向图模型,将structured learning的问题转换为图模型中的基本问题。还有一类方法就是Large Margin Method for Structured Learning,也就是structured svm,是传统svm方法的一种扩展,现在structured svm 已经有了比较成熟的算法实现框架。下面谈一下对structured svm 的一些理解。

  • 损失函数与经验损失最小化

在structured svm中,我们的目标寻找一个discriminant function  F:X×YR 。在discriminant function确定后,给定一个输入值x,选择能最大化F的值Y作为输出,即hypotheses f为如下形式:

 

f(x;w)=argmaxyYF(x,y;w)
其中,w表示一个参数向量。可以把F理解为一个度量(x,y)兼容程度或者花费大小的函数(实际上,在基于图模型的CRF方法中,F(x,y;w)=p(y|x;w))。同时,我们进一步将F表示为: F(x,y;w)=w,ψ(x,y)  ,将 ψ(x,y) 理解为是输入输出对的特征表示,其具体形式依赖于具体的问题。

 

为了量化预测的准确性,我们还需要定义一个损失函数(loss function) Δ:Y×YR 。损失函数满足:当 时, ;当 时, 。给定一组训练集S,f(x;w)的性能可以通过经验损失函数来度量

 

RΔS=1ni=1nΔ(yi,f(xi))
不同的f(x;w)对应着不同的经验损失,我们的目标是使经验损失越小越好。

 

  • 经验损失为零的情况

首先,考虑存在函数f,使得经验损失为零的情况。这种情况出现时,说明满足以下非线性限制

 

i{1,...,n}:maxyYyi{w,ψ(xi,y)}w,ψ(xi,yi)
可以将上面的n个非线性限制转换为n|Y|-1个线性限制,即

 

i{1,...,n},yYyi:w,δψi(y)0
其中, δψi(y)ψ(xi,yi)ψ(xi,y)

 

假设这些限制是可解的,那么一般情况下,可行解 w 不唯一(可能解得多个解,并且w也可以放缩)。为了得到唯一的解,我们选择能使separation margin(最小的 w,δψi(y) )最大的w,并且限制w的长度。即可以表示为如下优化问题:

 

<</span>br/>maxr,w:||w||=1r<</span>br/>s.t.i{1,...,n},yYyi:w,δψi(y)r<</span>br/>
到此为止,这个优化问题已经是SVM中优化问题的形式了,因此可以进一步地转换为一个凸二次优化问题的形式:

 

<</span>br/>minw12||w||2<</span>br/>s.t.i,yYyi:w,δψi(y)1<</span>br/>

 

至此,我们就可以求解这个优化问题,解得 w ,找到最后的 f(x;w) 了。但是,现在还存在着两个问题:第一,满足约束的可行解可能不存在,就是说无法找到完全满足训练集中的样例,使经验损失为零的模型。第二,这上述优化问题中,约束条件的个数太多了(n|Y|-n个)!即使可行解存在,我们也需要找到一种代价合理的方法来求解。关于这两个,还是规整下记录到下一篇里吧。

你可能感兴趣的:(Structured Learning和Structured SVM的学习(上))