QxRed » 日志 » Max Margin Markov Networks for sequence labeling SMO算法
Max Margin Markov Networks for sequence labeling SMO算法
风暴红QxRed 发表于 2008-01-03 17:26:08
SMO algorithm for Max Margin Markov Networks
参考文献:
Maximum Margin Markov Networks for XML Tag Relabelling
LEARNING STRUCTURED PREDICTION MODELS: A LARGE MARGIN APPROACH
定理1:p(X,Y)=\Pi_C φ(C)/\Pi_S ψ(S),其中C为图X,Y的最大clique,φ(C)为其边际概率,S为separtor,ψ(S)=\sum_{S\in C}φ(C)即separator的边际概率
以长度为3的1阶CRF abc为例:
φ(ab) φ(bc)/ψ(b)
[\sum_C(A B C AB BC)/Z][\sum_A(A B C AB BC)/Z]
=-----------------------------------------------
\sum_{A,C}(A B C AB BC)/Z
(A B AB)\sum_C(C BC) (B C BC)\sum_A(A AB)
=-----------------------------------------------
B \sum_{A,C}(A B C AB BC) Z
(A B C AB BC) \sum_C(C BC)\sum_A(A AB)
=------------------------------------------------
Z \sum_{A,C}(A B C AB BC)
=(A B C AB BC)/Z
=p(abc)
A=exp{λ'f(a)},其余类似,Z=\sum_{A,B,C}(A B C AB BC)
有了这个定理,就可以从μ得到a了
M3N的对偶问题:
min_a 1/2 C||\sum_{X,Y} a_X(Y)Δf(X,Y)||_2^2 - \sum_{X,Y} a_X(Y) Δt(X,Y)
s.t. \sum_Y a_X(Y) = 1
a_X(Y)>=0, \forall X,Y (2)
这里的a_X(Y)相当于原理(2)中的a_X(Y)/C
compact形式:
min_μ 1/2 \sum_{X,X`}\sum_{i,j,Y_{i-1},Y_i,Y`_{j-1},Y`_j} K(X,X`Y_{i-1},Y_i,Y`_{j-1},Y`_j)μ_{Y_{i-1},Y_i} μ_{Y`_{j-1},Y`_j} - \sum_X \sum_{i,Y_i} μ_{Y_i} Δt(X,Y_i)]
s.t. \sum_Y μ_{Y_{i-1},Y_i}=μ_{Y_i}
\sum_{Y_i}μ_{Y_i}=C
\sum_Y μ_{Y_{i-1},Y_i}>=0 (3)
直接对(3)用SMO是不行的,μ要满足边际概率的约束。比如上面的3个节点的链的例子中,如果有2个类,考虑ab,bc的边际概率:
μ_{ab=(1,1)}=1,μ_{ab=(1,2)}=μ_{ab=(2,1)}=μ_{ab=(2,2)}=0
此时所有过b=2的Y的概率之和=0,所以μ_{bc=(2,1)}+μ_{bc=(2,2)}=0
因此,μ之间是相互作用的,而不是独立的。
回顾一下M3N的原问题:
min_{w,ξ} 1/2 w'w + C \sum_X ξ_X
s.t. w'Δf(X,Y)>=Δt(X,Y)-ξ_X, \forall X,Y (1)
优化过程分4块
1) μ -> a,通过定理1可以完成该过程
2) working set selection,找到需要优化的a_X(Y),a_X(Y`)
3) 优化a_X(Y),a_X(Y`)
4) projection: a_X(Y),a_X(Y`) -> μ
整个求解有两个2个子问题:
问题1:已知需要优化的a_X(Y`),a_X(Y``),如何优化?相当与上面的3)
问题2:如何选择a_X以及如何选择a_X(Y`),a_X(Y``)?相当于上面的2)
现在假设选择了a_X进行优化,假设优化后a`_X=a_X+λ,
由于a`_X>=0 \sum_Y a`_X(Y)=\sum_Y a_X(Y)=1
所以
a_X+λ>=0
λ'e=0
这样把(2)表示成λ的二次函数,并去掉常数项
min_λ -\sum_Y λ(Y)(w'f(X,Y)+Δt(X,Y))+1/2 C||\sum_Y λ(Y) f(X,Y)||_2^2
s.t. λ'e=0
a_X+λ>=0
现在假设需要优化的是λ(Y`),λ(Y``),把上式表示成λ(Y`),λ(Y``),并去掉常数项
min_{λ(Y`),λ(Y``)} -λ(Y`)v(X,Y`)-λ(Y``)v(X,Y``)+1/2 C||λ(Y`)f(X,Y`)+λ(Y``)f(X,Y``)||_2^2
s.t. λ(Y`)+λ(Y``)=0
a_X(Y`)+λ(Y`)>=0
a_X(Y``)+λ(Y``)>=0
其中v(X,Y)=w'f(X,Y)+Δt(X,Y),记δ=λ(Y`)=λ(Y``)则上式变为:
min_δ 1/2 C||f(X,Y`)-f(X,Y``)||_2^2 δ^2 - [v(X,Y`)-v(X,Y``)]δ
s.t. -a_X(Y`)<=δ<=a_X(Y``)
这样就得到
δ*=[v(X,Y`)-v(X,Y``)]/[C ||f(X,Y`)-f(X,Y``)||_2^2] (4)
如果δ*超出了[-a_X(Y`),a_X(Y``)]的界限,则取在边界上:
δ`=max{-a_X(Y`),min{a_X(Y``),δ*}} (5)
接下来看如何选择a_X
(1)的KKT条件:
w=C\sum_X \sum_Y a_X(Y)Δf(X,Y)
a_X(Y)>=0
\sum_Y a_X(Y)=1
a_X(Y)[Δt(X,Y)-ξ_X-w'Δf(X,Y)]=0
ξ_X>=Δt(X,Y)-w'Δf(X,Y) \forall Y
由最后一个条件
ξ_X>=max_Y`{Δt(X,Y`)-w'Δf(X,Y`)}
如果ξ_X>max_Y{Δt(X,Y)-w'Δf(X,Y)},那么Δt(X,Y)-ξ_X-w'Δf(X,Y)!=0 \forall Y
由倒数第2个条件,a_X(Y)=0 \forall Y,但这又与\sum_Y a_X(Y)=1矛盾。
所以ξ_X=max_Y`{Δt(X,Y`)-w'Δf(X,Y`)}
a) a_X(Y)=0
此时,由
ξ_X>=Δt(X,Y)-w'Δf(X,Y)
=>max_Y`{Δt(X,Y`)-w'Δf(X,Y`)}>=Δt(X,Y)-w'Δf(X,Y)
=>max_Y`{w'f(X,Y`)+Δt(X,Y`)}>=w'Δf(X,Y)+Δt(X,Y)
b) a_X(Y)>0
此时由a_X(Y)[Δt(X,Y)-ξ_X-w'Δf(X,Y)]=0
=>ξ_X=Δt(X,Y)-w'Δf(X,Y)
=>Δt(X,Y)-w'Δf(X,Y)=max_Y`{Δt(X,Y`)-w'Δf(X,Y`)}
=>max_Y`{w'f(X,Y`)+Δt(X,Y`)}=w'Δf(X,Y)+Δt(X,Y)
记v(X,Y)=w'f(X,Y)+Δt(X,Y),v(X,!Y)=max_{Y`!=Y}{w'f(X,Y`)+Δt(X,Y`)}
这样
a)=> a_X(Y)=0 => v(X,Y)<=v(X,!Y)
b)=> a_X(Y)>0 => v(X,Y)>=v(X,!Y)
因此,对于每个X检测其上所有Y,如果不满足a)或者b)则取出X进行优化。但是Y有指数个,直接检测不可能。为此引入如下调整:
记
a_X(Y_T)=max_{Y`~Y_T}{a_X(Y`)}
v(X,Y_T)=max_{Y`~Y_T}{v(X,Y`)}
v(X,!Y_T)=max_{Y`!~Y_T}{v(X,Y`)}
T是(X,Y)中的一个clique
引入如下判别条件:
c) a_X(Y_T)=0 => v(X,Y_T)<=v(X,!Y_T)
d) a_X(Y_T)>0 => v(X,Y_T)>=v(X,!Y_T)
定理(Ben Taskar):
a),b) 和 c) d)等价
其中a_X(Y_T),v(X,Y_T),v(X,!Y_T)可以通过viterbi求得
因此对于每个X,对于其上的所有可能的Y_T(一共是k*k*l个),用viterbi求出a_X(Y_T),v(X,Y_T),v(X,!Y_T),并用c), d)判别,如果不符合,则取出优化
选出X,Y`后,还需要选择Y``
i)如果 a_X(Y_T)=0 , v(X,Y_T)>v(X,!Y_T)
此时违反了c).c)和a)等价,假设Y`=max_{Y~Y_T}{a_X(Y)}. 则a_X(Y`)=0,表明f(X,Y`)不是一个support vector,但v(X,Y`)>v(X,!Y`),即w'f(X,Y`)+Δt(X,Y`)>w'f(X,Y!=Y')+Δt(X,Y!=Y`) <=> Δt(X,Y`)-Δw'f(X,Y`)>Δt(X,Y!=Y`)-Δw'f(X,Y!=Y`) => Δt(X,Y`)-Δw'f(X,Y`)=ξ_X
这说明X,Y`是一个独一无二的support vector, a_X(Y`)应该为正(否则所有的a_X(Y)=0)。此时需要从别的a_X(Y)上移一些权重过来。因为\sum_Y a_X(Y)=1所以必定有a_X(Y)>0。因为a_X(Y`)=max_{Y~Y_T}{a_X(Y)},所以从其他a_X(Y_T`)中选择权重最大的那一个Y``=argmax_{Y~Y_T`,T`!=T}{a_X(Y)}
Y`=max_{Y~Y_T}{a_X(Y)}=>v(X,Y)>v_(X,!Y_T) ???
ii)如果 a_X(Y_T)>0 , v(X,Y_T)<v(X,!Y_T)
假设Y`=max_{Y~Y_T}{a_X(Y)}。a_X(Y`)>0表明f(X,Y)是一个support vector,但v(X,Y_T)<v(X,!Y_T) => Δt(X,Y`)-Δw'f(X,Y`)<ξ_X
所以X,Y`不应该是一个support vector,因此a_X(Y`)需要减小,根据(4),所要找的Y``要满足v(X,Y``)>v(X,Y`)。而这个Y``一定存在,因为v(X,Y`)<v(X,!Y`)。由于v(X,Y_T)=v(X,Y`)=max_{Y~Y_T}{v(X,Y)},这样的Y``必须在!Y_T中找:Y``=argmax_{Y~Y_T`,T`!=T}{v(X,Y)}
总体流程如下:
1. 初始化: μ(X,Y_{i-1},Y_i)= (Y_{i-1},Y_i)==(t(X_{i-1}),t(X_i))
2. Set violation = 0
3. For each X
4. For each Y_T in X
5. calculate a_X(Y_T),v(X,Y_T),v(X,!Y_T) using viterbi algorithm
6. if a_X(Y_T)=0 && v(X,Y_T)>v(X,!Y_T)
7. violation = 1, Y_T`=Y_T, Y`=max_{Y~Y_T}{v(X,Y)}
8. break
9. else if a_X(Y_T)>0 && v(X,Y_T)<v(X,!Y_T)
10. violation = 2, Y_T`=Y_T, Y`=max_{Y~Y_T}{a_X(Y)}
11. break
12. end
13. if violation > 0
14. break
15.end
16.if violation > 0
17. For each Y_T != Y_T`
18. if violation == 1 && a_X(Y_T)>0
19. Y``= max_{Y~Y_T}{a_X(Y)}, break
20. if violation == 2 && v_(X,Y_T)>v_(X,Y_T`)
21. Y``= max_{Y~Y_T}{v(X,Y)}, break
22. end
23. δ`=optimize(a_X(Y`),a_X(Y``)) using (5)
24. For each Y_{i-1},Y_i on Y`
25. μ`(X,Y_{i-1},Y_i)=μ(X,Y_{i-1},Y_i)+δ`
26. For each Y_{i-1},Y_i on Y``
27. μ`(X,Y_{i-1},Y_i)=μ(X,Y_{i-1},Y_i)-δ`
28. goto 3
29.end
30.return μ
最新评论
-
2008-01-03 22:57:50 匿名 222.66.*.*
大牛顺便看看semi-supervised SVM吧
O. Chapelle, V. Vapnik and J. Weston, Transductive Inference for Estimating Values of Functions, Neural Information Processing Systems Conference, 1999
T. De Bie and N. Cristianini, Convex Methods for Transduction, Advances in Neural Information Processing Systems 16, MIT Press, Cambridge, MA, 2004. -
2008-01-04 16:57:17 匿名 24.7.*.*
SDP,...我现在的水平还没有达到这种程度,等convex看完后,也许可以看懂。。。
-
2008-01-05 00:37:36
大牛可以看懂那个问题怎么松弛了下限制之后成了个SDP问题~~
