公式输入请参考:
在线Latex公式
课程PPT
Structured SVM和之前的一个SVM的课还不一样,之前的SVM是Structured SVM的一个特例。
前情回顾(略)
Separable case
也就是SVM里面提到过的,数据是线性可分的,也就是说存在一个权重向量
w
^
\widehat w
w
使得:
w
^
⋅
ϕ
(
x
1
,
y
^
1
)
≥
w
^
⋅
ϕ
(
x
1
,
y
)
+
δ
w
^
⋅
ϕ
(
x
2
,
y
^
2
)
≥
w
^
⋅
ϕ
(
x
2
,
y
)
+
δ
\widehat w\cdot \phi(x^1,\widehat y^1)\geq \widehat w\cdot \phi(x^1, y)+\delta\\ \widehat w\cdot \phi(x^2,\widehat y^2)\geq \widehat w\cdot \phi(x^2, y)+\delta
w
⋅ ϕ ( x 1 , y
1 ) ≥ w
⋅ ϕ ( x 1 , y ) + δ w
⋅ ϕ ( x 2 , y
2 ) ≥ w
⋅ ϕ ( x 2 , y ) + δ
Structured Perceptron
其实是上节提到过的,还没有证明的算法。这里贴过来(和上节不一样的是x,y的上标由r变成了n): 算法描述: 输入:训练集:
{
(
x
1
,
y
^
1
)
,
(
x
2
,
y
^
2
)
,
.
.
.
,
(
x
N
,
y
^
N
)
,
.
.
.
}
\{(x^1,\widehat y^1),(x^2,\widehat y^2),...,(x^N,\widehat y^N),...\}
{ ( x 1 , y
1 ) , ( x 2 , y
2 ) , . . . , ( x N , y
N ) , . . . } 输出:权重向量
w
w
w 伪代码(
w
w
w 存在是前提条件) Initialize
w
=
0
w =0
w = 0
d
o
do
d o For each pair of training example
(
x
n
,
y
^
n
(x^n,\widehat{y}^n
( x n , y
n 取一笔训练数据 Find the label
y
~
n
\tilde{y}^n
y ~ n maximizing
w
⋅
ϕ
(
x
n
,
y
)
w\cdot\phi(x^n,y)
w ⋅ ϕ ( x n , y )
y
~
n
=
a
r
g
m
a
x
y
∈
Y
w
⋅
ϕ
(
x
n
,
y
)
这
个
是
q
u
e
s
t
i
o
n
2
\tilde{y}^n=arg\underset{y\in Y}{max}\space w\cdot\phi(x^n,y)\quad这个是question \space2
y ~ n = a r g y ∈ Y ma x w ⋅ ϕ ( x n , y ) 这 个 是 q u e s t i o n 2 ,这个之前假设这个问题已经解决了 if
y
~
n
≠
y
^
n
\tilde{y}^n\neq\widehat{y}^n
y ~ n = y
n , update
w
w
w
w
→
w
+
ϕ
(
x
n
,
y
^
n
)
−
ϕ
(
x
n
,
y
~
n
)
w\to w+\phi(x^n,\widehat{y}^n)-\phi(x^n,\tilde{y}^n)
w → w + ϕ ( x n , y
n ) − ϕ ( x n , y ~ n )
u
n
t
i
l
w
i
s
n
o
t
u
p
d
a
t
e
d
→
until \space w \space is\space not\space updated \to
u n t i l w i s n o t u p d a t e d → We are done! 下面开始证明:
Warning of Math
前戏
在本节的假定中,数据是线性可分的,为了找到
w
^
\widehat w
w
,我们最多需要更新
(
R
δ
)
2
(\cfrac{R}{\delta})^2
( δ R ) 2 次 其中:
δ
\delta
δ 是margin,R是
ϕ
(
x
,
y
)
\phi(x,y)
ϕ ( x , y ) 与
ϕ
(
x
,
y
′
)
\phi(x,y')
ϕ ( x , y ′ ) 的最大距离。 注意:算法的迭代次数和y的个数无关。 证明开始: 每次看到一个错误(
y
~
n
≠
y
^
n
\tilde{y}^n\neq\widehat{y}^n
y ~ n = y
n )
w
w
w 就更新一次,所以更新的思路是:
w
0
=
0
→
w
1
→
w
2
→
⋯
→
w
k
→
w
k
+
1
→
⋯
w^0=0\to w^1\to w^2\to\cdots\to w^k\to w^{k+1}\to\cdots
w 0 = 0 → w 1 → w 2 → ⋯ → w k → w k + 1 → ⋯
w
k
=
w
k
−
1
+
ϕ
(
x
n
,
y
^
n
)
−
ϕ
(
x
n
,
y
~
n
)
(1)
w^k=w^{k-1}+\phi(x^n,\widehat{y}^n)-\phi(x^n,\tilde{y}^n)\tag1
w k = w k − 1 + ϕ ( x n , y
n ) − ϕ ( x n , y ~ n ) ( 1 ) 以上就是
w
k
w^k
w k 和
w
k
−
1
w^{k-1}
w k − 1 的关系。 当然不要忘记我们的前提条件: 数据是线性可分的,存在一个权重向量
w
^
\widehat w
w
使得: 对于所有训练数据
∀
n
\forall n
∀ n ,和所有数据对应的所有不正确的标签
∀
y
∈
Y
−
{
y
^
n
}
\forall y\in Y-\{\widehat y^n\}
∀ y ∈ Y − { y
n } :
w
^
⋅
ϕ
(
x
n
,
y
^
n
)
≥
w
^
⋅
ϕ
(
x
n
,
y
)
+
δ
\widehat w\cdot \phi(x^n,\widehat y^n)\geq \widehat w\cdot \phi(x^n, y)+\delta
w
⋅ ϕ ( x n , y
n ) ≥ w
⋅ ϕ ( x n , y ) + δ 对于
w
^
\widehat w
w
,我们不是一般性的假设其长度为1:
∣
∣
w
^
∣
∣
=
1
||\widehat w||=1
∣ ∣ w
∣ ∣ = 1 (因为向量总是可以做normalization,使得长度变成1,所以为了便于计算,就直接定为1好了。)
开证
记
ρ
k
\rho_k
ρ k 为
w
^
\widehat w
w
和
w
k
w^k
w k 的夹角,要证明:随着k的增加,这个夹角是越来越小的。即
c
o
s
ρ
k
cos \rho_k
c o s ρ k 是越来越大的。
c
o
s
ρ
k
=
w
^
∣
∣
w
^
∣
∣
⋅
w
k
∣
∣
w
k
∣
∣
cos \rho_k=\cfrac{\widehat w}{||\widehat w||}\cdot\cfrac{w^k}{||w^k||}
c o s ρ k = ∣ ∣ w
∣ ∣ w
⋅ ∣ ∣ w k ∣ ∣ w k 先看分子,是
w
^
\widehat w
w
和
w
k
w^k
w k 的点积,把前戏中的公式2带入:
w
^
⋅
w
k
=
w
^
⋅
(
w
k
−
1
+
ϕ
(
x
n
,
y
^
n
)
−
ϕ
(
x
n
,
y
~
n
)
)
=
w
^
⋅
w
k
−
1
+
w
^
⋅
ϕ
(
x
n
,
y
^
n
)
−
w
^
⋅
ϕ
(
x
n
,
y
~
n
)
(2)
\widehat w\cdot w^k=\widehat w\cdot(w^{k-1}+\phi(x^n,\widehat{y}^n)-\phi(x^n,\tilde{y}^n))\\ =\widehat w\cdot w^{k-1}+\widehat w\cdot\phi(x^n,\widehat{y}^n) -\widehat w\cdot \phi(x^n,\tilde{y}^n)\tag2
w
⋅ w k = w
⋅ ( w k − 1 + ϕ ( x n , y
n ) − ϕ ( x n , y ~ n ) ) = w
⋅ w k − 1 + w
⋅ ϕ ( x n , y
n ) − w
⋅ ϕ ( x n , y ~ n ) ( 2 ) 根据本节最开始给出的
δ
\delta
δ 的定义(也就是数据线性可分的假设)。
w
^
⋅
ϕ
(
x
1
,
y
^
1
)
≥
w
^
⋅
ϕ
(
x
1
,
y
)
+
δ
w
^
⋅
ϕ
(
x
2
,
y
^
2
)
≥
w
^
⋅
ϕ
(
x
2
,
y
)
+
δ
\widehat w\cdot \phi(x^1,\widehat y^1)\geq \widehat w\cdot \phi(x^1, y)+\delta\\ \widehat w\cdot \phi(x^2,\widehat y^2)\geq \widehat w\cdot \phi(x^2, y)+\delta
w
⋅ ϕ ( x 1 , y
1 ) ≥ w
⋅ ϕ ( x 1 , y ) + δ w
⋅ ϕ ( x 2 , y
2 ) ≥ w
⋅ ϕ ( x 2 , y ) + δ
公式(2)中的后面两项的差是大于等于
δ
\delta
δ 的
w
^
⋅
ϕ
(
x
n
,
y
^
n
)
−
w
^
⋅
ϕ
(
x
n
,
y
~
n
)
≥
δ
\widehat w\cdot\phi(x^n,\widehat{y}^n) -\widehat w\cdot \phi(x^n,\tilde{y}^n)\geq\delta
w
⋅ ϕ ( x n , y
n ) − w
⋅ ϕ ( x n , y ~ n ) ≥ δ 因此公式(2)可以写为:
w
^
⋅
w
k
≥
w
^
⋅
w
k
−
1
+
δ
(3)
\widehat w\cdot w^k\geq\widehat w\cdot w^{k-1}+\delta\tag3
w
⋅ w k ≥ w
⋅ w k − 1 + δ ( 3 ) 算法中
w
w
w 的初始值
w
0
=
0
w^0=0
w 0 = 0
w
^
⋅
w
1
≥
w
^
⋅
w
0
+
δ
→
w
^
⋅
w
1
≥
δ
\widehat w\cdot w^1\geq\widehat w\cdot w^0+\delta\to\widehat w\cdot w^1\geq\delta
w
⋅ w 1 ≥ w
⋅ w 0 + δ → w
⋅ w 1 ≥ δ 往下继续推:
w
^
⋅
w
2
≥
w
^
⋅
w
1
+
δ
→
w
^
⋅
w
2
≥
2
δ
\widehat w\cdot w^2\geq\widehat w\cdot w^1+\delta\to\widehat w\cdot w^2\geq2\delta
w
⋅ w 2 ≥ w
⋅ w 1 + δ → w
⋅ w 2 ≥ 2 δ 最后:
w
^
⋅
w
k
≥
k
δ
\widehat w\cdot w^k\geq k\delta
w
⋅ w k ≥ k δ 也就是说
c
o
s
ρ
k
cos \rho_k
c o s ρ k 的分子是随着k的增大而增大的,但是光分子变大并不能说明夹角变小,例如: 分子变大,很可能是造成向量的长度变长,这个时候的夹角并没有变化。 因此我们还要看
c
o
s
ρ
k
cos \rho_k
c o s ρ k 的分母,分母中,
∣
∣
w
^
∣
∣
=
1
||\widehat w||=1
∣ ∣ w
∣ ∣ = 1 ,所以只要考虑
∣
∣
w
k
∣
∣
||w^k||
∣ ∣ w k ∣ ∣ 就可以,如果
∣
∣
w
k
∣
∣
||w^k||
∣ ∣ w k ∣ ∣ 不变,且分子变大,那么夹角就能证明是变小的拉。根据公式(1)
∣
∣
w
k
∣
∣
2
=
∣
∣
w
k
−
1
+
ϕ
(
x
n
,
y
^
n
)
−
ϕ
(
x
n
,
y
~
n
)
∣
∣
2
=
∣
∣
w
k
−
1
∣
∣
2
+
∣
∣
ϕ
(
x
n
,
y
^
n
)
−
ϕ
(
x
n
,
y
~
n
)
∣
∣
2
+
2
w
k
−
1
⋅
(
ϕ
(
x
n
,
y
^
n
)
−
ϕ
(
x
n
,
y
~
n
)
)
(4)
||w^k||^2=||w^{k-1}+\phi(x^n,\widehat{y}^n)-\phi(x^n,\tilde{y}^n)||^2\\ =||w^{k-1}||^2+||\phi(x^n,\widehat{y}^n)-\phi(x^n,\tilde{y}^n)||^2+2w^{k-1}\cdot(\phi(x^n,\widehat{y}^n)-\phi(x^n,\tilde{y}^n))\tag4
∣ ∣ w k ∣ ∣ 2 = ∣ ∣ w k − 1 + ϕ ( x n , y
n ) − ϕ ( x n , y ~ n ) ∣ ∣ 2 = ∣ ∣ w k − 1 ∣ ∣ 2 + ∣ ∣ ϕ ( x n , y
n ) − ϕ ( x n , y ~ n ) ∣ ∣ 2 + 2 w k − 1 ⋅ ( ϕ ( x n , y
n ) − ϕ ( x n , y ~ n ) ) ( 4 ) 公式中:
∣
∣
ϕ
(
x
n
,
y
^
n
)
−
ϕ
(
x
n
,
y
~
n
)
∣
∣
2
>
0
||\phi(x^n,\widehat{y}^n)-\phi(x^n,\tilde{y}^n)||^2>0
∣ ∣ ϕ ( x n , y
n ) − ϕ ( x n , y ~ n ) ∣ ∣ 2 > 0 这个没啥疑问的,这个相当求距离,肯定大于0
2
w
k
−
1
⋅
(
ϕ
(
x
n
,
y
^
n
)
−
ϕ
(
x
n
,
y
~
n
)
)
<
0
2w^{k-1}\cdot(\phi(x^n,\widehat{y}^n)-\phi(x^n,\tilde{y}^n))<0
2 w k − 1 ⋅ ( ϕ ( x n , y
n ) − ϕ ( x n , y ~ n ) ) < 0 这里是因为算法中规定,只有
ϕ
(
x
n
,
y
~
n
)
\phi(x^n,\tilde{y}^n)
ϕ ( x n , y ~ n ) 比
ϕ
(
x
n
,
y
^
n
)
\phi(x^n,\widehat{y}^n)
ϕ ( x n , y
n ) 大才会有更新动作,这里既然是出于更新中,所以这项小于0。 假设两个特征
ϕ
(
x
n
,
y
~
n
)
\phi(x^n,\tilde{y}^n)
ϕ ( x n , y ~ n ) 和
ϕ
(
x
n
,
y
^
n
)
\phi(x^n,\widehat{y}^n)
ϕ ( x n , y
n ) 的最大距离是
R
R
R ,公式(4)可以写为:
∣
∣
w
k
∣
∣
2
≤
∣
∣
w
k
−
1
∣
∣
2
+
R
2
||w^k||^2\leq||w^{k-1}||^2+R^2
∣ ∣ w k ∣ ∣ 2 ≤ ∣ ∣ w k − 1 ∣ ∣ 2 + R 2 算法中
w
w
w 的初始值
w
0
=
0
w^0=0
w 0 = 0
∣
∣
w
1
∣
∣
2
≤
∣
∣
w
0
∣
∣
2
+
R
2
→
∣
∣
w
1
∣
∣
2
≤
R
2
||w^1||^2\leq||w^{0}||^2+R^2\to||w^1||^2\leq R^2
∣ ∣ w 1 ∣ ∣ 2 ≤ ∣ ∣ w 0 ∣ ∣ 2 + R 2 → ∣ ∣ w 1 ∣ ∣ 2 ≤ R 2 往下继续推:
∣
∣
w
2
∣
∣
2
≤
∣
∣
w
1
∣
∣
2
+
R
2
→
∣
∣
w
2
∣
∣
2
≤
2
R
2
||w^2||^2\leq||w^{1}||^2+R^2\to||w^2||^2\leq 2R^2
∣ ∣ w 2 ∣ ∣ 2 ≤ ∣ ∣ w 1 ∣ ∣ 2 + R 2 → ∣ ∣ w 2 ∣ ∣ 2 ≤ 2 R 2 最后:
∣
∣
w
k
∣
∣
2
≤
k
R
2
||w^k||^2\leq kR^2
∣ ∣ w k ∣ ∣ 2 ≤ k R 2 马上就好了,现在把我们算出来的写在一起:
c
o
s
ρ
k
=
w
^
∣
∣
w
^
∣
∣
⋅
w
k
∣
∣
w
k
∣
∣
w
^
⋅
w
k
≥
k
δ
∣
∣
w
k
∣
∣
2
≤
k
R
2
cos \rho_k=\cfrac{\widehat w}{||\widehat w||}\cdot\cfrac{w^k}{||w^k||}\quad\quad \widehat w\cdot w^k\geq k\delta \quad\quad ||w^k||^2\leq kR^2
c o s ρ k = ∣ ∣ w
∣ ∣ w
⋅ ∣ ∣ w k ∣ ∣ w k w
⋅ w k ≥ k δ ∣ ∣ w k ∣ ∣ 2 ≤ k R 2 很容易得到:
c
o
s
ρ
k
=
w
^
∣
∣
w
^
∣
∣
⋅
w
k
∣
∣
w
k
∣
∣
≥
k
δ
k
R
2
=
k
δ
R
cos \rho_k=\cfrac{\widehat w}{||\widehat w||}\cdot\cfrac{w^k}{||w^k||}\geq\cfrac{k\delta}{\sqrt{kR^2}}=\sqrt k\frac{\delta}{R}
c o s ρ k = ∣ ∣ w
∣ ∣ w
⋅ ∣ ∣ w k ∣ ∣ w k ≥ k R 2
k δ = k
R δ 由于
c
o
s
cos
c o s 的值是小于等于1的,从图上可以看出:
k
δ
R
≤
1
→
k
≤
(
R
δ
)
2
\sqrt k\frac{\delta}{R}\leq1\to k\leq(\cfrac{R}{\delta})^2
k
R δ ≤ 1 → k ≤ ( δ R ) 2 到这里证明结束,k的上限就是
(
R
δ
)
2
(\cfrac{R}{\delta})^2
( δ R ) 2 最后讨论一下如何使得训练变快:
讨论
How to make training fast?不行 想把训练变快就是要使得k变小,使k变小就是要分母变大,或者分子变小,为了让分母变大,我们把数据都乘以2,
δ
\delta
δ 就变大了,但是从图上可以看出来,分子R也变大了,所以这个方法是没有用的。 当然,在实操上面线性可分的数据基本上是不可能出现的,一般都是在理论上出现,因此下面我们来看线性不可分的情况。
Non-separable case
在数据(也就是
ϕ
(
x
,
y
)
\phi(x,y)
ϕ ( x , y ) )线性不可分的情况下,权重
w
w
w 仍然是可以有好坏之分的,我们可以用某些评估方法来对权重来甄别好坏,例如下图中,
w
′
w'
w ′ 比
w
′
′
w''
w ′ ′ 要好: 然后我们要做的是定义个衡量权重好坏的函数
Defining Cost Function
Define a cost
C
C
C to evaluate how bad a
w
w
w is, and then pick the
w
w
w minimizing the cost
C
C
C
C
C
C 是可以自己来定义的,老师给出一个定义: 关于
C
n
C_n
C n ,就是第n笔数据
x
n
x^n
x n 的cost,意思是:给定的
w
w
w ,在所有的
y
y
y 里面,找到使得
w
⋅
ϕ
(
x
n
,
y
)
w\cdot\phi(x^n,y)
w ⋅ ϕ ( x n , y ) 最大的值(就是上图中最上面那个),减去正确
y
^
n
\widehat y^n
y
n 的
w
⋅
ϕ
(
x
n
,
y
^
n
)
w\cdot\phi(x^n,\widehat y^n)
w ⋅ ϕ ( x n , y
n ) 的值。 把所有的cost累加起来就是
C
C
C 这里
C
n
C_n
C n 最小值是0; 为什么是减去正确
y
^
n
\widehat y^n
y
n 的
w
⋅
ϕ
(
x
n
,
y
^
n
)
w\cdot\phi(x^n,\widehat y^n)
w ⋅ ϕ ( x n , y
n ) 的值,因为之前上节课的假设中我们已经假定这个值我们会算,所以顺其自然的用这个值了,如果你要用最正确的前三个值也可以,但是你不会求这三个值,会很麻烦。
(Stochastic) Gradient Descent
虽然cost函数中有一个max操作,是不可导的,但是还是可以梯度下降的,例如之前激活函数ReLU虽然在0点不可导,还不是可以反向传播。 目标是:Find
w
w
w minimizing the cost
C
C
C
C
=
∑
n
=
1
N
C
n
C=\sum_{n=1}^NC^n
C = n = 1 ∑ N C n
C
n
=
a
r
g
m
a
x
y
[
w
⋅
ϕ
(
x
n
,
y
)
]
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
C^n=arg\underset{y}{max}[w\cdot\phi(x^n,y)]-w\cdot\phi(x^n,\widehat y^n)
C n = a r g y ma x [ w ⋅ ϕ ( x n , y ) ] − w ⋅ ϕ ( x n , y
n ) 要求
▽
C
n
\triangledown C^n
▽ C n ,需要注意的是:When w is different, the y can be different.(意思是当
w
w
w 不一样的时候,取得第一项最大值的
y
y
y 也不一样)下面看看
w
w
w (二维的向量)的图。 当
w
w
w 在最左边区域的时候
a
r
g
m
a
x
y
[
w
⋅
ϕ
(
x
n
,
y
)
]
arg\underset{y}{max}[w\cdot\phi(x^n,y)]
a r g y ma x [ w ⋅ ϕ ( x n , y ) ] 的取值是
y
′
y'
y ′ 当
w
w
w 在最中间区域的时候
a
r
g
m
a
x
y
[
w
⋅
ϕ
(
x
n
,
y
)
]
arg\underset{y}{max}[w\cdot\phi(x^n,y)]
a r g y ma x [ w ⋅ ϕ ( x n , y ) ] 的取值是
y
′
′
y''
y ′ ′ 当
w
w
w 在最右边区域的时候
a
r
g
m
a
x
y
[
w
⋅
ϕ
(
x
n
,
y
)
]
arg\underset{y}{max}[w\cdot\phi(x^n,y)]
a r g y ma x [ w ⋅ ϕ ( x n , y ) ] 的取值是
y
′
′
′
y'''
y ′ ′ ′ 因此在每个区域中的
C
n
C^n
C n 也可以很好算出来: 当
w
w
w 在最左边区域的时候
C
n
=
w
⋅
ϕ
(
x
n
,
y
′
)
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
C^n=w\cdot\phi(x^n,y')-w\cdot\phi(x^n,\widehat y^n)
C n = w ⋅ ϕ ( x n , y ′ ) − w ⋅ ϕ ( x n , y
n ) 当
w
w
w 在最中间区域的时候
C
n
=
w
⋅
ϕ
(
x
n
,
y
′
′
)
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
C^n=w\cdot\phi(x^n,y'')-w\cdot\phi(x^n,\widehat y^n)
C n = w ⋅ ϕ ( x n , y ′ ′ ) − w ⋅ ϕ ( x n , y
n ) 当
w
w
w 在最右边区域的时候
C
n
=
w
⋅
ϕ
(
x
n
,
y
′
′
′
)
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
C^n=w\cdot\phi(x^n,y''')-w\cdot\phi(x^n,\widehat y^n)
C n = w ⋅ ϕ ( x n , y ′ ′ ′ ) − w ⋅ ϕ ( x n , y
n ) 这三个区域中的边界部分不可以微分,但是在中间的区域都是可以微分的,因此,三个区域对
w
w
w 进行微分后求梯度
▽
C
n
\triangledown C^n
▽ C n 变成: 当
w
w
w 在最左边区域的时候
▽
C
n
=
ϕ
(
x
n
,
y
′
)
−
ϕ
(
x
n
,
y
^
n
)
\triangledown C^n=\phi(x^n,y')-\phi(x^n,\widehat y^n)
▽ C n = ϕ ( x n , y ′ ) − ϕ ( x n , y
n ) 当
w
w
w 在最中间区域的时候
▽
C
n
=
ϕ
(
x
n
,
y
′
′
)
−
ϕ
(
x
n
,
y
^
n
)
\triangledown C^n=\phi(x^n,y'')-\phi(x^n,\widehat y^n)
▽ C n = ϕ ( x n , y ′ ′ ) − ϕ ( x n , y
n ) 当
w
w
w 在最右边区域的时候
▽
C
n
=
ϕ
(
x
n
,
y
′
′
′
)
−
ϕ
(
x
n
,
y
^
n
)
\triangledown C^n=\phi(x^n,y''')-\phi(x^n,\widehat y^n)
▽ C n = ϕ ( x n , y ′ ′ ′ ) − ϕ ( x n , y
n ) 那么整个算法的流程如下图所示: 最后的到结果如果把学习率
η
=
1
\eta=1
η = 1 ,那么就变成了之前的 structured perceptron,减去错误加上正确的分类。
Considering Errors
看下Errors从何而来
先看看我们之前做的,实际上对于每个样本的计算,考虑的Errors都是一样的: 但是我们如果仔细看的话,会发现最下面那个其实和正确的答案已经差不多了,也就是说每个样本计算的时候Error是有所不一样的,把这些计算结果按Error进行排序(考虑错误的不同等级),就变成下面这样: 如此看来,我们希望我们找到的
w
w
w 是能够考虑Error的: 现在的问题就变成,如何考虑Error,或者说如何来衡量计算结果与正确结果之间的差距(difference)?
Defining Error Function
△
(
y
^
,
y
)
>
0
\triangle (\widehat y,y)>0
△ ( y
, y ) > 0 : difference between
y
^
\widehat y
y
and
y
y
y
A
(
y
)
A(y)
A ( y ) : area of bounding box
y
y
y
△
(
y
^
,
y
)
=
1
−
A
(
y
^
)
∩
A
(
y
)
A
(
y
^
)
∪
A
(
y
)
\triangle (\widehat y,y)=1-\cfrac{A(\widehat y)\cap A(y)}{A(\widehat y)\cup A(y)}
△ ( y
, y ) = 1 − A ( y
) ∪ A ( y ) A ( y
) ∩ A ( y ) 考虑了Error之后,Cost函数也要改写下
Another Cost Function
从原来的:取分数最高的那个
y
y
y 减去正确的
y
^
\widehat y
y
所得到的分数
C
n
=
m
a
x
y
[
w
⋅
ϕ
(
x
n
,
y
)
]
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
C^n=\underset{y}{max}[w\cdot\phi(x^n,y)]-w\cdot\phi(x^n,\widehat y^n)
C n = y ma x [ w ⋅ ϕ ( x n , y ) ] − w ⋅ ϕ ( x n , y
n ) 变成:取分数最高的那个
y
y
y 加上
Δ
\Delta
Δ ,再减去正确的
y
^
\widehat y
y
所得到的分数 说人话,注意看下面的图,由于
Δ
\Delta
Δ 的存在,使得黄色框框和红色框框不像的话,分数相差越远越好,反之,黄色框框和红色框框即使是分数没有拉开也没有关系。 换句人话,
C
n
C^n
C n 取最小值的条件是正确的
y
^
\widehat y
y
的得分不但要比其他的
y
y
y 要大,而且还要大过
Δ
\Delta
Δ 才行。
Δ
\Delta
Δ 也叫Margin
C
n
=
m
a
x
y
[
△
(
y
^
,
y
)
+
w
⋅
ϕ
(
x
n
,
y
)
]
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
C^n=\underset{y}{max}[\triangle (\widehat y,y)+w\cdot\phi(x^n,y)]-w\cdot\phi(x^n,\widehat y^n)
C n = y ma x [ △ ( y
, y ) + w ⋅ ϕ ( x n , y ) ] − w ⋅ ϕ ( x n , y
n ) 先看怎么来解考虑了
Δ
\Delta
Δ 的
C
n
C^n
C n 的梯度
Gradient Descent
为了和之前没有考虑Error的梯度求解区分开来,之前用的是
y
~
\tilde y
y ~ ,这里用
y
ˉ
\bar y
y ˉ ,具体过程如下: 在每一个iteration,选择一个训练数据
{
x
n
,
y
^
n
}
\{x^n,\widehat y^n\}
{ x n , y
n }
y
ˉ
n
=
a
r
g
m
a
x
y
[
△
(
y
^
,
y
)
+
w
⋅
ϕ
(
x
n
,
y
)
]
\bar y^n=arg\underset{y}{max}[\triangle (\widehat y,y)+w\cdot\phi(x^n,y)]
y ˉ n = a r g y ma x [ △ ( y
, y ) + w ⋅ ϕ ( x n , y ) ] 上式就是之前没有解决的Problem2,所以
△
(
y
^
,
y
)
\triangle (\widehat y,y)
△ ( y
, y ) 这个函数要选好,不然不好解决这个问题。
▽
C
n
(
w
)
=
ϕ
(
x
n
,
y
ˉ
n
)
−
ϕ
(
x
n
,
y
^
n
)
\triangledown C^n(w)=\phi(x^n,\bar y^n)-\phi(x^n,\widehat y^n)
▽ C n ( w ) = ϕ ( x n , y ˉ n ) − ϕ ( x n , y
n )
w
→
w
−
η
[
ϕ
(
x
n
,
y
ˉ
n
)
−
ϕ
(
x
n
,
y
^
n
)
]
w\to w-\eta[\phi(x^n,\bar y^n)-\phi(x^n,\widehat y^n)]
w → w − η [ ϕ ( x n , y ˉ n ) − ϕ ( x n , y
n ) ]
Another Viewpoint
Minimizing the new cost function is minimizing the upper bound of the errors on training set.这里降低训练数据集中的Error上限不一定会减小Cost,只是有可能变小。 用于测试输出的函数是这个,也就是用内积最大的那个
y
y
y 当做系统输出
y
~
\tilde y
y ~ :
y
~
=
a
r
g
m
a
x
y
w
⋅
ϕ
(
x
n
,
y
)
\tilde y=arg\underset{y}{max}w\cdot\phi(x^n,y)
y ~ = a r g y ma x w ⋅ ϕ ( x n , y ) 我们要找到一个
w
w
w ,使得系统输出的
y
~
\tilde y
y ~ 和正确答案的
y
^
\widehat y
y
的差别的累加
C
′
C'
C ′ 最小。写成:
C
′
=
∑
n
=
1
N
Δ
(
y
^
n
,
y
~
n
)
C'=\sum_{n=1}^N\Delta(\widehat y^n,\tilde y^n)
C ′ = n = 1 ∑ N Δ ( y
n , y ~ n ) We want to find
w
w
w minimizing
C
′
C'
C ′ (和最小化errors是一样样的) It is hard! Because
y
y
y can be any kind of objects,
Δ
(
⋅
,
⋅
)
\Delta(\cdot,\cdot)
Δ ( ⋅ , ⋅ ) can be any function… 换个思路,找到
C
′
C'
C ′ 的上界
C
C
C
C
′
=
∑
n
=
1
N
Δ
(
y
^
n
,
y
~
n
)
≤
C
=
∑
n
=
1
N
C
n
C'=\sum_{n=1}^N\Delta(\widehat y^n,\tilde y^n)\leq C=\sum_{n=1}^NC^n
C ′ = n = 1 ∑ N Δ ( y
n , y ~ n ) ≤ C = n = 1 ∑ N C n 现在要证明(从数学上证明上界这个事情):
Δ
(
y
^
n
,
y
~
n
)
≤
C
n
\Delta(\widehat y^n,\tilde y^n)\leq C^n
Δ ( y
n , y ~ n ) ≤ C n 开始: 由于:
[
w
⋅
ϕ
(
x
n
,
y
~
n
)
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
]
≥
0
[w\cdot\phi(x^n,\tilde y^n)-w\cdot\phi(x^n,\widehat y^n)]\geq0
[ w ⋅ ϕ ( x n , y ~ n ) − w ⋅ ϕ ( x n , y
n ) ] ≥ 0 所以:
Δ
(
y
^
n
,
y
~
n
)
≤
Δ
(
y
^
n
,
y
~
n
)
+
[
w
⋅
ϕ
(
x
n
,
y
~
n
)
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
]
\Delta(\widehat y^n,\tilde y^n)\leq\Delta(\widehat y^n,\tilde y^n)+[w\cdot\phi(x^n,\tilde y^n)-w\cdot\phi(x^n,\widehat y^n)]
Δ ( y
n , y ~ n ) ≤ Δ ( y
n , y ~ n ) + [ w ⋅ ϕ ( x n , y ~ n ) − w ⋅ ϕ ( x n , y
n ) ]
Δ
(
y
^
n
,
y
~
n
)
+
[
w
⋅
ϕ
(
x
n
,
y
~
n
)
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
]
=
[
Δ
(
y
^
n
,
y
~
n
)
+
w
⋅
ϕ
(
x
n
,
y
~
n
)
]
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
\Delta(\widehat y^n,\tilde y^n)+[w\cdot\phi(x^n,\tilde y^n)-w\cdot\phi(x^n,\widehat y^n)]=[\Delta(\widehat y^n,\tilde y^n)+w\cdot\phi(x^n,\tilde y^n)]-w\cdot\phi(x^n,\widehat y^n)
Δ ( y
n , y ~ n ) + [ w ⋅ ϕ ( x n , y ~ n ) − w ⋅ ϕ ( x n , y
n ) ] = [ Δ ( y
n , y ~ n ) + w ⋅ ϕ ( x n , y ~ n ) ] − w ⋅ ϕ ( x n , y
n ) 然后从
y
~
n
\tilde y^n
y ~ n 里面可以选出一个
y
y
y ,使得:
[
Δ
(
y
^
n
,
y
~
n
)
+
w
⋅
ϕ
(
x
n
,
y
~
n
)
]
≤
m
a
x
y
[
Δ
(
y
^
n
,
y
)
+
w
⋅
ϕ
(
x
n
,
y
)
]
[\Delta(\widehat y^n,\tilde y^n)+w\cdot\phi(x^n,\tilde y^n)]\leq \underset{y}{max}[\Delta(\widehat y^n, y)+w\cdot\phi(x^n,y)]
[ Δ ( y
n , y ~ n ) + w ⋅ ϕ ( x n , y ~ n ) ] ≤ y ma x [ Δ ( y
n , y ) + w ⋅ ϕ ( x n , y ) ] 因此整理后,可得:
Δ
(
y
^
n
,
y
~
n
)
≤
m
a
x
y
[
Δ
(
y
^
n
,
y
)
+
w
⋅
ϕ
(
x
n
,
y
)
]
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
=
C
n
\Delta(\widehat y^n,\tilde y^n)\leq \underset{y}{max}[\Delta(\widehat y^n, y)+w\cdot\phi(x^n,y)]-w\cdot\phi(x^n,\widehat y^n)=C^n
Δ ( y
n , y ~ n ) ≤ y ma x [ Δ ( y
n , y ) + w ⋅ ϕ ( x n , y ) ] − w ⋅ ϕ ( x n , y
n ) = C n
More Cost Functions
我们把上面的解决方案称为:Margin rescaling:
C
n
=
m
a
x
y
[
Δ
(
y
^
n
,
y
)
+
w
⋅
ϕ
(
x
n
,
y
)
]
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
C^n=\underset{y}{max}[\Delta(\widehat y^n, y)+w\cdot\phi(x^n,y)]-w\cdot\phi(x^n,\widehat y^n)
C n = y ma x [ Δ ( y
n , y ) + w ⋅ ϕ ( x n , y ) ] − w ⋅ ϕ ( x n , y
n ) 除了这种方法,还有别的方法,例如: Slack variable rescaling:
C
n
=
m
a
x
y
Δ
(
y
^
n
,
y
)
[
1
+
w
⋅
ϕ
(
x
n
,
y
)
]
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
]
C^n=\underset{y}{max}\Delta(\widehat y^n, y)[1+w\cdot\phi(x^n,y)]-w\cdot\phi(x^n,\widehat y^n)]
C n = y ma x Δ ( y
n , y ) [ 1 + w ⋅ ϕ ( x n , y ) ] − w ⋅ ϕ ( x n , y
n ) ] 这个方法的大概思想是:
y
y
y 与
y
^
\widehat y
y
的差距很大,
Δ
\Delta
Δ 也就很大,乘起来之后结果会把差距放大;反之,
y
y
y 与
y
^
\widehat y
y
的差距很小,
Δ
\Delta
Δ 也就很小,乘起来之后结果也会很小。 另外之前那种用的加法,有缺陷,没有考虑到
w
w
w 和
Δ
\Delta
Δ 的大小(因为
Δ
\Delta
Δ 自己定义的),例如一个是0.001,一个是1000,那么加法对这个权重上没有考虑清楚,用乘法的话就是自带normalization效果,所以这个方法有它的道理。
Regularization
Training data and testing data can have different distribution.
w
w
w close to zero can minimize the influence of mismatch. 因此原有的Cost函数变成: 其中
λ
\lambda
λ 是调整系数,当Cost函数变成下面式子后,具体的梯度下降算法伪代码和前面差不多: 在每一个iteration,选择一个训练数据
{
x
n
,
y
^
n
}
\{x^n,\widehat y^n\}
{ x n , y
n }
y
ˉ
=
a
r
g
m
a
x
y
[
△
(
y
^
,
y
)
+
w
⋅
ϕ
(
x
n
,
y
)
]
\bar y=arg\underset{y}{max}[\triangle (\widehat y,y)+w\cdot\phi(x^n,y)]
y ˉ = a r g y ma x [ △ ( y
, y ) + w ⋅ ϕ ( x n , y ) ]
▽
C
n
(
w
)
=
ϕ
(
x
n
,
y
ˉ
n
)
−
ϕ
(
x
n
,
y
^
n
)
+
w
\triangledown C^n(w)=\phi(x^n,\bar y^n)-\phi(x^n,\widehat y^n)+w
▽ C n ( w ) = ϕ ( x n , y ˉ n ) − ϕ ( x n , y
n ) + w 上式中的
w
w
w 是
1
2
∣
∣
w
∣
∣
2
\cfrac{1}{2}||w||^2
2 1 ∣ ∣ w ∣ ∣ 2 对
w
w
w 做偏导得到的结果。
w
→
w
−
η
[
ϕ
(
x
n
,
y
ˉ
n
)
−
ϕ
(
x
n
,
y
^
n
)
]
−
η
w
=
(
1
−
η
)
w
−
η
[
ϕ
(
x
n
,
y
ˉ
n
)
−
ϕ
(
x
n
,
y
^
n
)
]
w\to w-\eta[\phi(x^n,\bar y^n)-\phi(x^n,\widehat y^n)]-\eta w\\ =(1-\eta)w-\eta[\phi(x^n,\bar y^n)-\phi(x^n,\widehat y^n)]
w → w − η [ ϕ ( x n , y ˉ n ) − ϕ ( x n , y
n ) ] − η w = ( 1 − η ) w − η [ ϕ ( x n , y ˉ n ) − ϕ ( x n , y
n ) ] 前面这项就相当于DNN中的Weight Decay。
Structured SVM
把之前得到的结果写出来,然后看看Structured SVM是这么回事:
描述1 : Find
w
w
w minimizing
C
C
C
C
=
1
2
∣
∣
w
∣
∣
2
+
λ
∑
n
=
1
N
C
n
C=\cfrac{1}{2}||w||^2+\lambda\sum_{n=1}^NC^n
C = 2 1 ∣ ∣ w ∣ ∣ 2 + λ n = 1 ∑ N C n
C
n
=
m
a
x
y
[
Δ
(
y
^
n
,
y
)
+
w
⋅
ϕ
(
x
n
,
y
)
]
−
w
⋅
ϕ
(
x
n
,
y
^
n
)
C^n=\underset{y}{max}[\Delta(\widehat y^n, y)+w\cdot\phi(x^n,y)]-w\cdot\phi(x^n,\widehat y^n)
C n = y ma x [ Δ ( y
n , y ) + w ⋅ ϕ ( x n , y ) ] − w ⋅ ϕ ( x n , y
n )
移项:
C
n
+
w
⋅
ϕ
(
x
n
,
y
^
n
)
=
m
a
x
y
[
Δ
(
y
^
n
,
y
)
+
w
⋅
ϕ
(
x
n
,
y
)
]
(1)
C^n+w\cdot\phi(x^n,\widehat y^n)=\underset{y}{max}[\Delta(\widehat y^n, y)+w\cdot\phi(x^n,y)] \tag 1
C n + w ⋅ ϕ ( x n , y
n ) = y ma x [ Δ ( y
n , y ) + w ⋅ ϕ ( x n , y ) ] ( 1 )
说明 :
f
(
x
)
=
m
a
x
y
(
y
)
(a)
f(x)=\underset{y}{max}(y)\tag a
f ( x ) = y ma x ( y ) ( a ) 如果
y
=
{
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
}
y=\{1,2,3,4,5,6,7,8,9\}
y = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } ,那么
f
(
x
)
=
9
f(x)=9
f ( x ) = 9 如果我们直接写
f
(
x
)
≥
∀
y
(b)
f(x)\geq \forall y\tag b
f ( x ) ≥ ∀ y ( b ) 显然(a)和(b)不等价,因为在(b)中,
f
(
x
)
f(x)
f ( x ) 可以等于10,11,12,etc。 但是如果我们加上一个约束:
m
i
n
i
m
i
z
e
f
(
x
)
minimize\quad f(x)
m i n i m i z e f ( x ) 这个时候(a)和(b)就等价了
根据说明 ,我们的目标是minimizing
C
C
C ,因此公式(1)等价下面的式子:
f
o
r
∀
y
:
C
n
+
w
⋅
ϕ
(
x
n
,
y
^
n
)
≥
Δ
(
y
^
n
,
y
)
+
w
⋅
ϕ
(
x
n
,
y
)
for \quad\forall y:\\C^n+w\cdot\phi(x^n,\widehat y^n)\geq \Delta(\widehat y^n, y)+w\cdot\phi(x^n,y)
f o r ∀ y : C n + w ⋅ ϕ ( x n , y
n ) ≥ Δ ( y
n , y ) + w ⋅ ϕ ( x n , y ) 移项:
w
⋅
ϕ
(
x
n
,
y
^
n
)
−
w
⋅
ϕ
(
x
n
,
y
)
≥
Δ
(
y
^
n
,
y
)
−
C
n
w\cdot\phi(x^n,\widehat y^n)-w\cdot\phi(x^n,y)\geq \Delta(\widehat y^n, y)-C^n
w ⋅ ϕ ( x n , y
n ) − w ⋅ ϕ ( x n , y ) ≥ Δ ( y
n , y ) − C n 由上式可得,描述1等价于:
描述2 : Find
w
w
w minimizing
C
C
C
C
=
1
2
∣
∣
w
∣
∣
2
+
λ
∑
n
=
1
N
C
n
C=\cfrac{1}{2}||w||^2+\lambda\sum_{n=1}^NC^n
C = 2 1 ∣ ∣ w ∣ ∣ 2 + λ n = 1 ∑ N C n
f
o
r
∀
n
:
f
o
r
∀
y
:
w
⋅
ϕ
(
x
n
,
y
^
n
)
−
w
⋅
ϕ
(
x
n
,
y
)
≥
Δ
(
y
^
n
,
y
)
−
C
n
for \quad\forall n:\\for \quad\forall y:\\w\cdot\phi(x^n,\widehat y^n)-w\cdot\phi(x^n,y)\geq \Delta(\widehat y^n, y)-C^n
f o r ∀ n : f o r ∀ y : w ⋅ ϕ ( x n , y
n ) − w ⋅ ϕ ( x n , y ) ≥ Δ ( y
n , y ) − C n
到这里,通常是把
C
C
C 换成
ε
\varepsilon
ε (江湖人称slack variable,中文名:松弛因子),描述2等价于:
描述3 : Find
w
,
ε
1
,
⋯
,
ε
N
w,\varepsilon^1,\cdots,\varepsilon^N
w , ε 1 , ⋯ , ε N minimizing
C
C
C
C
=
1
2
∣
∣
w
∣
∣
2
+
λ
∑
n
=
1
N
ε
n
C=\cfrac{1}{2}||w||^2+\lambda\sum_{n=1}^N\varepsilon^n
C = 2 1 ∣ ∣ w ∣ ∣ 2 + λ n = 1 ∑ N ε n
f
o
r
∀
n
:
f
o
r
∀
y
:
w
⋅
ϕ
(
x
n
,
y
^
n
)
−
w
⋅
ϕ
(
x
n
,
y
)
≥
Δ
(
y
^
n
,
y
)
−
ε
n
(2)
for \quad\forall n:\\for \quad\forall y:\\w\cdot\phi(x^n,\widehat y^n)-w\cdot\phi(x^n,y)\geq \Delta(\widehat y^n, y)-\varepsilon^n\tag2
f o r ∀ n : f o r ∀ y : w ⋅ ϕ ( x n , y
n ) − w ⋅ ϕ ( x n , y ) ≥ Δ ( y
n , y ) − ε n ( 2 )
对于描述3中的公式2,如果
y
=
y
^
n
y=\widehat y^n
y = y
n 那么就有:
w
⋅
ϕ
(
x
n
,
y
^
n
)
−
w
⋅
ϕ
(
x
n
,
y
)
=
0
Δ
(
y
^
n
,
y
)
=
0
w\cdot\phi(x^n,\widehat y^n)-w\cdot\phi(x^n,y)=0\\ \Delta(\widehat y^n, y)=0
w ⋅ ϕ ( x n , y
n ) − w ⋅ ϕ ( x n , y ) = 0 Δ ( y
n , y ) = 0 剩下就是:
ε
n
≥
0
\varepsilon^n\geq0
ε n ≥ 0 描述3中的公式2就等价于:
F
o
r
∀
y
≠
y
^
n
:
w
⋅
ϕ
(
x
n
,
y
^
n
)
−
w
⋅
ϕ
(
x
n
,
y
)
≥
Δ
(
y
^
n
,
y
)
−
ε
n
,
ε
n
≥
0
For \space \forall y\neq\widehat y^n:\\w\cdot\phi(x^n,\widehat y^n)-w\cdot\phi(x^n,y)\geq \Delta(\widehat y^n, y)-\varepsilon^n,\varepsilon^n\geq0
F o r ∀ y = y
n : w ⋅ ϕ ( x n , y
n ) − w ⋅ ϕ ( x n , y ) ≥ Δ ( y
n , y ) − ε n , ε n ≥ 0 上面推导没看懂,老师贴心的给出了直观的解释:
Intuition Explanation
黄框与红框差距越大,它们之间的margin也就是
Δ
\Delta
Δ 也就越大,因此我们要找的参数
w
w
w 要满足下面的条件: 当然黄色的框框不止这两个,还有很多很多个,就是除了正确的红框之外的任意位置都可以有黄框,写成数学表达就是:
∀
y
≠
y
^
\forall y \neq \widehat y
∀ y = y
,所以上面的不等式也是有无穷多个。 这样我们就很难找到一个参数
w
w
w 使得所有的不等式都成立。 因此我们想办法把margin变小一点,不用
Δ
\Delta
Δ 来作为margin,而是用:
Δ
−
ε
\Delta-\varepsilon
Δ − ε 来作为margin(注意,使得margin变小是要减去一个正数才可以,否则减去负数就变大了。所以这里默认
ε
≥
0
\varepsilon\geq0
ε ≥ 0 ,如果
ε
≤
0
\varepsilon\leq0
ε ≤ 0 会是使得上面的不等式约束更加严格。): 上图中的绿色margin长度应该变小就更加逼真了。。。 由于
ε
\varepsilon
ε 的作用是放宽约束,所以起了一个名字叫松弛因子。我们当然不会希望约束放得太宽,否则margin就失去存在的意义了(例如:
ε
→
∞
\varepsilon\to\infty
ε → ∞ ,margin 就变成了负值,随便一个参数
w
w
w 就能满足条件),因此,我们还加上了一个条件就是
ε
\varepsilon
ε 要最小化。 就好比妹子想找高富帅,这个条件没法找到,她也不会找一个矮矬穷,会想办法找一个高富,高帅,富帅。 下面举例: 假设我们有两个training data 对于
x
1
x^1
x 1 ,满足下面的式子,其中红框就是
y
^
1
\widehat y^1
y
1 : 对于
x
2
x^2
x 2 ,满足下面的式子,其中红框就是
y
^
2
\widehat y^2
y
2 : 根据分析,我们还希望
ε
1
+
ε
2
\varepsilon^1+\varepsilon^2
ε 1 + ε 2 还要最小,最后还考虑正则项,就是我们之前的描述3 的内容了。 但是这个问题不好解,下面看咋弄。
Cutting Plane Algorithm for Structured SVM
问题的图形化描述
下图是参数
w
,
ε
1
,
.
.
.
,
ε
N
w,\varepsilon^1,...,\varepsilon^N
w , ε 1 , . . . , ε N 形成的图像,本来是高维的,这里用二维的平面来做个样例。 平面上的颜色代表了Cost
C
C
C 的值,右下角有一个绿点,那个就是还没有引入任何约束的时候的Cost
C
C
C 的最小值。 我们现在把之前推导出来的约束加上:
f
o
r
∀
n
:
f
o
r
∀
y
,
y
≠
y
^
:
w
⋅
ϕ
(
x
n
,
y
^
n
)
−
w
⋅
ϕ
(
x
n
,
y
)
≥
Δ
(
y
^
n
,
y
)
−
ε
n
,
ε
n
≥
0
for \quad\forall n:\\for \quad\forall y, y\neq\widehat y:\\w\cdot\phi(x^n,\widehat y^n)-w\cdot\phi(x^n,y)\geq \Delta(\widehat y^n, y)-\varepsilon^n,\varepsilon^n\geq0
f o r ∀ n : f o r ∀ y , y = y
: w ⋅ ϕ ( x n , y
n ) − w ⋅ ϕ ( x n , y ) ≥ Δ ( y
n , y ) − ε n , ε n ≥ 0 图像变成: 只有中间阴影部分是满足约束条件的,最小值也从右下角变成了上图中的位置。 中间是阴影形状是怎么来的呢?我们观察约束可以看到,虽然约束很多,但是很多约束实际上是冗余的,真正起到决定Cost最小值的是下图中的两条红线,其他约束去掉也不会影响结果: 既然不是所有约束都有用,我们就把无用的约束去掉,只留下有用的约束,并把这些有用的约束集合记为(英文名:Working set):
A
n
A^n
A n 则约束条件变成:
f
o
r
∀
n
:
f
o
r
y
∈
A
n
,
y
≠
y
^
:
w
⋅
[
ϕ
(
x
n
,
y
^
n
)
−
ϕ
(
x
n
,
y
)
]
≥
Δ
(
y
^
n
,
y
)
−
ε
n
,
ε
≥
0
for \quad\forall n:\\for \quad y\in A^n, y\neq\widehat y:\\w\cdot[\phi(x^n,\widehat y^n)-\phi(x^n,y)]\geq \Delta(\widehat y^n, y)-\varepsilon^n,\varepsilon\geq0
f o r ∀ n : f o r y ∈ A n , y = y
: w ⋅ [ ϕ ( x n , y
n ) − ϕ ( x n , y ) ] ≥ Δ ( y
n , y ) − ε n , ε ≥ 0 如果Working set比较小,那么Cost最小值就是有可能解出来的,下面来看如何确定Working set,用的是一个迭代的算法。
Cutting Plane Algorithm
Elements in working set
A
n
A^n
A n is selected iteratively. 对每一个example都初始化它的working set ,初始化
A
n
A^n
A n :
A
1
,
A
2
,
.
.
.
,
A
N
A^1,A^2,...,A^N
A 1 , A 2 , . . . , A N 根据初始化后的
A
n
A^n
A n ,解方程 根据
A
n
A^n
A n ,解出一个
w
w
w 后,用
w
w
w 去update
A
n
A^n
A n ,这个过程不断循环。这个流程和EM很像。
Quadratic Program (QP):凸优化的二次规划问题。
下面是图解这个算法如何运作的。 Initialize
A
n
=
n
u
l
l
A^n=null
A n = n u l l ,最开始是不考虑约束的。解出来就是蓝色星星那个点。 看看蓝色的点是没有办法满足哪些约束。例如下图中的红色约束: 虽然蓝点不满足很多约束,我们选择 the most violated one ,这个选择标准后面再解释(应该是按垂直距离),先假设找出这条: 我们把找出来的这个约束记为:
y
′
y'
y ′ ,然后把
y
′
y'
y ′ 加入到working set 中:
A
n
=
A
n
∪
{
y
′
}
A^n=A^n\cup \{y'\}
A n = A n ∪ { y ′ } 新的working set不再是空的了,里面有东西了,根据新的working set,我们重新算最小值: 然后再看这个蓝色星星不满足哪些约束: 我们把找出来的这个约束记为:
y
′
′
y''
y ′ ′ ,然后把
y
′
′
y''
y ′ ′ 加入到working set 中:
A
n
=
A
n
∪
{
y
′
′
}
=
{
y
′
,
y
′
′
}
A^n=A^n\cup \{y''\}=\{y',y''\}
A n = A n ∪ { y ′ ′ } = { y ′ , y ′ ′ } 下面又重复迭代,根据新的working set计算最小值 下面文字就不用写了。
Find the most violated one
上面挖了个坑,如何找到最小值相对应最不满足的约束条件是什么?现在来填: Given
w
′
w'
w ′ and
ε
′
\varepsilon′
ε ′ from working sets at hand, which constraint is the most violated one? 先把约束和不满足(违反)约束的数学形式写出来:
Constraint:
w
⋅
[
ϕ
(
x
,
y
^
)
−
ϕ
(
x
,
y
)
]
≥
Δ
(
y
^
,
y
)
−
ε
\text{Constraint:}\quad w\cdot[\phi(x,\widehat y)-\phi(x,y)]\geq \Delta(\widehat y, y)-\varepsilon
Constraint: w ⋅ [ ϕ ( x , y
) − ϕ ( x , y ) ] ≥ Δ ( y
, y ) − ε
Violate a Constraint:
w
′
⋅
[
ϕ
(
x
,
y
^
)
−
ϕ
(
x
,
y
)
]
<
Δ
(
y
^
,
y
)
−
ε
′
\text{Violate a Constraint:}\quad w'\cdot[\phi(x,\widehat y)-\phi(x,y)]< \Delta(\widehat y, y)-\varepsilon'
Violate a Constraint: w ′ ⋅ [ ϕ ( x , y
) − ϕ ( x , y ) ] < Δ ( y
, y ) − ε ′ 在给出不满足(违反)约束的程度评价标准(上式右边减左边):
Degree of Violation:
Δ
(
y
^
,
y
)
−
ε
′
−
w
′
⋅
[
ϕ
(
x
,
y
^
)
−
ϕ
(
x
,
y
)
]
\text{Degree of Violation:}\quad \Delta(\widehat y, y)-\varepsilon'-w'\cdot[\phi(x,\widehat y)-\phi(x,y)]
Degree of Violation: Δ ( y
, y ) − ε ′ − w ′ ⋅ [ ϕ ( x , y
) − ϕ ( x , y ) ] 由于
ε
′
\varepsilon'
ε ′ 和
ϕ
(
x
,
y
^
)
\phi(x,\widehat y)
ϕ ( x , y
) 是固定值,不影响评价标准,所以上面式子中的这两项可以去掉:
Δ
(
y
^
,
y
)
+
w
′
⋅
ϕ
(
x
,
y
)
\Delta(\widehat y, y)+w'\cdot\phi(x,y)
Δ ( y
, y ) + w ′ ⋅ ϕ ( x , y ) 有了评价标准后,最不满足的就是最大值那个拉:
The most violated one:
a
r
g
m
a
x
y
[
Δ
(
y
^
,
y
)
+
w
′
⋅
ϕ
(
x
,
y
)
]
\text{The most violated one:}\quad arg\underset{y}{max}[\Delta(\widehat y, y)+w'\cdot\phi(x,y)]
The most violated one: a r g y ma x [ Δ ( y
, y ) + w ′ ⋅ ϕ ( x , y ) ]
算法总结
Given training data:
{
(
x
1
,
y
^
1
)
,
(
x
2
,
y
^
2
)
,
.
.
.
,
(
x
N
,
y
^
N
)
}
\{(x^1,\widehat y^1),(x^2,\widehat y^2),...,(x^N,\widehat y^N)\}
{ ( x 1 , y
1 ) , ( x 2 , y
2 ) , . . . , ( x N , y
N ) } 对每一个training data都初始一个working set:
A
1
=
n
u
l
l
,
A
2
=
n
u
l
l
,
.
.
.
,
A
N
=
n
u
l
l
A^1=null,A^2=null,...,A^N=null
A 1 = n u l l , A 2 = n u l l , . . . , A N = n u l l 重复执行:
解决 QP with Working Set
A
1
,
A
2
,
.
.
.
,
A
N
A^1,A^2,...,A^N
A 1 , A 2 , . . . , A N ,并更新
w
w
w QP问题如下图: For each training data
(
x
n
,
y
^
n
)
(x^n,\widehat y^n)
( x n , y
n )
find the most violated constraints:
y
ˉ
n
=
a
r
g
m
a
x
y
[
Δ
(
y
^
n
,
y
)
+
w
′
⋅
ϕ
(
x
,
y
n
)
]
\text{find the most violated constraints: }\bar y^n=arg\underset{y}{max}[\Delta(\widehat y^n, y)+w'\cdot\phi(x,y^n)]
find the most violated constraints: y ˉ n = a r g y ma x [ Δ ( y
n , y ) + w ′ ⋅ ϕ ( x , y n ) ] 把找到的最难搞的约束更新到working set:
A
n
=
A
n
∪
y
ˉ
n
A^n=A^n\cup\bar y^n
A n = A n ∪ y ˉ n
Until
A
1
,
A
2
,
.
.
.
,
A
N
A^1,A^2,...,A^N
A 1 , A 2 , . . . , A N doesn’t change any more(停止循环的条件) Return
w
w
w
图例解释
A
1
=
n
u
l
l
,
A
2
=
n
u
l
l
A^1=null,A^2=null
A 1 = n u l l , A 2 = n u l l 上图的约束少写了:
ε
1
>
0
,
ε
2
>
0
\varepsilon^1>0,\varepsilon^2>0
ε 1 > 0 , ε 2 > 0 由于没有约束,上面那个式子很容易看出来,当
w
=
0
w=0
w = 0 的时候,得到最小值。 然后用
w
=
0
w=0
w = 0 去找the most violated的约束。 对于第一个training data来说
y
ˉ
1
=
a
r
g
m
a
x
y
[
Δ
(
y
^
1
,
y
)
+
0
⋅
ϕ
(
x
,
y
1
)
]
\bar y^1=arg\underset{y}{max}[\Delta(\widehat y^1, y)+0\cdot\phi(x,y^1)]
y ˉ 1 = a r g y ma x [ Δ ( y
1 , y ) + 0 ⋅ ϕ ( x , y 1 ) ] 下面给出六个黄框框 由于
w
=
0
w=0
w = 0 ,后面那个没有了 只剩下
Δ
\Delta
Δ ,这个玩意如果黄框不和红框重叠,值就会很大: 看到
Δ
\Delta
Δ 有三个一样的都最大,都是1,我们随便挑一个,右下角那个作为
y
ˉ
1
\bar y^1
y ˉ 1 同样去计算
y
2
y^2
y 2 对应的
y
ˉ
2
=
a
r
g
m
a
x
y
[
Δ
(
y
^
2
,
y
)
+
0
⋅
ϕ
(
x
,
y
2
)
]
\bar y^2=arg\underset{y}{max}[\Delta(\widehat y^2, y)+0\cdot\phi(x,y^2)]
y ˉ 2 = a r g y ma x [ Δ ( y
2 , y ) + 0 ⋅ ϕ ( x , y 2 ) ] 然后更新working set得到: 然后用新的working set解决下图QP问题(下图中的working set中有两个约束),计算得到
w
=
w
1
w=w^1
w = w 1 用
w
1
w^1
w 1 去找the most violated的约束。 对于第一个training data来说
y
ˉ
1
=
a
r
g
m
a
x
y
[
Δ
(
y
^
1
,
y
)
+
0
⋅
ϕ
(
x
,
y
1
)
]
\bar y^1=arg\underset{y}{max}[\Delta(\widehat y^1, y)+0\cdot\phi(x,y^1)]
y ˉ 1 = a r g y ma x [ Δ ( y
1 , y ) + 0 ⋅ ϕ ( x , y 1 ) ] 我们用右上角那个
y
ˉ
1
=
1.55
\bar y^1=1.55
y ˉ 1 = 1 . 5 5 的黄色框框作为the most violated的约束 当然对第二个training data也做同样的事情,然后更新working set: 然后用新的working set解决下图QP问题(下图中的working set中有四个约束),计算得到
w
=
w
2
w=w^2
w = w 2 这个过程不断迭代下去,直到
A
1
,
A
2
A^1,A^2
A 1 , A 2 不再变化为止。
这里有学生提问,老师又补充了一些知识,在Structured SVM的原版文章中,作者在更新working set上有一个条件,就是在the most violated的约束基础上还要加一个值,满足这个条件的约束才加入working set中,否则不加,这个值越大,整个算法的迭代次数就越少。
Multi-class and binary SVM
Multi-class SVM
•Problem 1: Evaluation If there are
K
K
K classes, then we have K weight vectors
{
w
1
,
w
2
,
.
.
.
,
w
K
}
\{w^1,w^2,...,w^K\}
{ w 1 , w 2 , . . . , w K }
y
y
y 的标签自然就是:
y
∈
{
1
,
2
,
.
.
.
,
k
,
.
.
.
,
K
}
y\in\{1,2,...,k,...,K\}
y ∈ { 1 , 2 , . . . , k , . . . , K }
F
(
x
,
y
)
=
w
y
⋅
x
→
F(x,y)=w^y\cdot\overrightarrow{x}
F ( x , y ) = w y ⋅ x
x
→
\overrightarrow{x}
x
:vector, representation of
x
x
x (
x
x
x 是要分类的对象,
x
→
\overrightarrow{x}
x
是这个对象的向量表示) 但是之前的
F
(
x
,
y
)
F(x,y)
F ( x , y ) 不是这样表示的,而是表示为:
F
(
x
,
y
)
=
w
⋅
ϕ
(
x
,
y
)
F(x,y)=w\cdot\phi(x,y)
F ( x , y ) = w ⋅ ϕ ( x , y ) 那现在我们来看看这两个式子是否等价,首先
w
w
w 可以写为向量的形式,而
ϕ
(
x
,
y
)
\phi(x,y)
ϕ ( x , y ) 可以表示为当
x
x
x 属于第k个分类的时候,我们就把
x
→
\overrightarrow{x}
x
放到
ϕ
(
x
,
y
)
\phi(x,y)
ϕ ( x , y ) 这个向量的第k个位置。所以实际上,这两个表示是等价的。
w
=
[
w
1
w
2
⋮
w
k
⋮
w
K
]
ϕ
(
x
,
y
)
=
[
0
0
⋮
x
→
⋮
0
]
w=\begin{bmatrix}w^1\\ w^2\\ \vdots\\ w^k\\ \vdots\\ w^K\end{bmatrix}\quad \phi(x,y)=\begin{bmatrix}0\\ 0\\ \vdots\\ \overrightarrow{x}\\ \vdots\\ 0\end{bmatrix}
w = ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ w 1 w 2 ⋮ w k ⋮ w K ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ ϕ ( x , y ) = ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ 0 0 ⋮ x
⋮ 0 ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ • Problem 2: Inference
F
(
x
,
y
)
=
w
y
⋅
x
→
F(x,y)=w^y\cdot\overrightarrow{x}
F ( x , y ) = w y ⋅ x
我们就是要穷举所有的
y
y
y 找到最大那个
y
^
\widehat y
y
y
^
=
a
r
g
m
a
x
y
∈
{
1
,
2
,
.
.
.
,
k
,
.
.
.
,
K
}
F
(
x
,
y
)
=
a
r
g
m
a
x
y
∈
{
1
,
2
,
.
.
.
,
k
,
.
.
.
,
K
}
w
y
⋅
x
→
\widehat y=arg\underset{y\in\{1,2,...,k,...,K\}}{max}F(x,y)=arg\underset{y\in\{1,2,...,k,...,K\}}{max}w^y\cdot\overrightarrow{x}
y
= a r g y ∈ { 1 , 2 , . . . , k , . . . , K } ma x F ( x , y ) = a r g y ∈ { 1 , 2 , . . . , k , . . . , K } ma x w y ⋅ x
The number of classes are usually small, so we can just enumerate them. 由于分类一般数量较小,所以直接硬算就可以。 • Problem 3: Training Find
w
,
ε
1
,
.
.
.
,
ε
N
w,\varepsilon^1,...,\varepsilon^N
w , ε 1 , . . . , ε N minimizing
C
C
C
C
=
1
2
∣
∣
w
∣
∣
2
+
λ
∑
n
=
1
N
ε
n
C=\cfrac{1}{2}||w||^2+\lambda\sum_{n=1}^N\varepsilon^n
C = 2 1 ∣ ∣ w ∣ ∣ 2 + λ n = 1 ∑ N ε n
F
o
r
∀
n
:
For\space\forall n:
F o r ∀ n :
F
o
r
∀
y
≠
y
^
n
:
\quad \quad For\space\forall y\ne\widehat y^n:
F o r ∀ y = y
n :
w
⋅
[
ϕ
(
x
n
,
y
^
n
)
−
ϕ
(
x
n
,
y
)
]
≥
Δ
(
y
^
n
,
y
)
−
ε
n
,
ε
n
≥
0
(3)
w\cdot[\phi(x^n,\widehat y^n)-\phi(x^n,y)]\geq \Delta(\widehat y^n, y)-\varepsilon^n,\varepsilon^n\geq0\tag3
w ⋅ [ ϕ ( x n , y
n ) − ϕ ( x n , y ) ] ≥ Δ ( y
n , y ) − ε n , ε n ≥ 0 ( 3 ) 有
N
N
N 笔训练数据,每一个数据有
K
K
K 个分类,只有一个分类是正确的,那么由
K
−
1
K-1
K − 1 个分类是错误的,所以我们的约束的数量就是
N
(
K
−
1
)
N(K-1)
N ( K − 1 ) 按老师的说法,这些个约束不多,直接算即可。 根据前面的定义,我们有:
w
⋅
ϕ
(
x
n
,
y
^
n
)
=
w
y
^
n
⋅
x
→
,
w
⋅
ϕ
(
x
n
,
y
)
=
w
y
⋅
x
→
(4)
w\cdot\phi(x^n,\widehat y^n)=w^{\widehat y^n}\cdot\overrightarrow{x},\quad w\cdot\phi(x^n,y)=w^y\cdot\overrightarrow{x}\tag4
w ⋅ ϕ ( x n , y
n ) = w y
n ⋅ x
, w ⋅ ϕ ( x n , y ) = w y ⋅ x
( 4 ) 把4带入3得:
w
y
^
n
⋅
x
→
−
w
y
⋅
x
→
≥
Δ
(
y
^
n
,
y
)
−
ε
n
,
ε
n
≥
0
w^{\widehat y^n}\cdot\overrightarrow{x}-w^y\cdot\overrightarrow{x}\geq \Delta(\widehat y^n, y)-\varepsilon^n,\varepsilon^n\geq0
w y
n ⋅ x
− w y ⋅ x
≥ Δ ( y
n , y ) − ε n , ε n ≥ 0 化简:
(
w
y
^
n
−
w
y
)
⋅
x
→
≥
Δ
(
y
^
n
,
y
)
−
ε
n
,
ε
n
≥
0
(w^{\widehat y^n}-w^y)\cdot\overrightarrow{x}\geq \Delta(\widehat y^n, y)-\varepsilon^n,\varepsilon^n\geq0
( w y
n − w y ) ⋅ x
≥ Δ ( y
n , y ) − ε n , ε n ≥ 0 上式中的
Δ
(
y
^
n
,
y
)
\Delta(\widehat y^n, y)
Δ ( y
n , y ) 按之前的说法是指正确分类和错误分类的差距,这个差距是我们可以自己定义的,例如下面:
y
∈
d
o
g
,
c
a
t
,
b
u
s
,
c
a
r
Δ
(
y
^
=
d
o
g
,
y
=
c
a
t
)
=
1
Δ
(
y
^
=
d
o
g
,
y
=
b
u
s
)
=
100
y\in dog,cat,bus,car\\ \Delta (\widehat y=dog,y=cat)=1\\ \Delta (\widehat y=dog,y=bus)=100
y ∈ d o g , c a t , b u s , c a r Δ ( y
= d o g , y = c a t ) = 1 Δ ( y
= d o g , y = b u s ) = 1 0 0 (defined as your wish)
Binary SVM
就是多分类中的K=2的场景,这个时候
y
∈
{
1
,
2
}
y\in\{1,2\}
y ∈ { 1 , 2 }
F
o
r
∀
y
≠
y
^
n
:
For\space\forall y\ne\widehat y^n:
F o r ∀ y = y
n :
(
w
y
^
n
−
w
y
)
⋅
x
→
≥
Δ
(
y
^
n
,
y
)
−
ε
n
,
ε
n
≥
0
(w^{\widehat y^n}-w^y)\cdot\overrightarrow{x}\geq \Delta(\widehat y^n, y)-\varepsilon^n,\varepsilon^n\geq0
( w y
n − w y ) ⋅ x
≥ Δ ( y
n , y ) − ε n , ε n ≥ 0 由于是二分类,我们可以定义当分类不正确的时候
Δ
(
y
^
n
,
y
)
=
1
\Delta(\widehat y^n, y)=1
Δ ( y
n , y ) = 1 当
y
=
1
y=1
y = 1 的时候:
(
w
1
−
w
2
)
⋅
x
→
≥
1
−
ε
n
(w^1-w^2)\cdot\overrightarrow{x}\geq 1-\varepsilon^n
( w 1 − w 2 ) ⋅ x
≥ 1 − ε n 当
y
=
2
y=2
y = 2 的时候:
(
w
2
−
w
1
)
⋅
x
→
≥
1
−
ε
n
(w^2-w^1)\cdot\overrightarrow{x}\geq 1-\varepsilon^n
( w 2 − w 1 ) ⋅ x
≥ 1 − ε n 记:
(
w
1
−
w
2
)
=
w
(w^1-w^2)=w
( w 1 − w 2 ) = w ,则: 当
y
=
1
y=1
y = 1 的时候:
w
⋅
x
→
≥
1
−
ε
n
w\cdot\overrightarrow{x}\geq 1-\varepsilon^n
w ⋅ x
≥ 1 − ε n 当
y
=
2
y=2
y = 2 的时候:
−
w
⋅
x
→
≥
1
−
ε
n
-w\cdot\overrightarrow{x}\geq 1-\varepsilon^n
− w ⋅ x
≥ 1 − ε n 这里就推出了二分类的SVM 的形式,感觉上面的
ε
n
\varepsilon^n
ε n 应该对应到相应的上标。
Beyond Structured SVM(open question)
Structured SVM有一个很大的缺陷,就是它是linear的(怪怪的,不是说有一个核的方法来做划分平面,来解决非线性划分方法吗),而且特征的定义(就是那个
ϕ
(
x
,
y
)
\phi(x,y)
ϕ ( x , y ) 函数)也对结果影响很大,因此可以用DNN来自动抽取特征: Ref: Hao Tang, Chao-hong Meng, Lin-shan Lee, “An initial attempt for phoneme recognition using Structured Support Vector Machine (SVM),” ICASSP, 2010 Shi-Xiong Zhang, Gales, M.J.F., “Structured SVMs for Automatic Speech Recognition,” in Audio, Speech, and Language Processing, IEEE Transactions on, vol.21, no.3, pp.544-555, March 2013 进一步发展,DNN和Structured SVM一起进行训练 Ref: Shi-Xiong Zhang, Chaojun Liu, Kaisheng Yao, and Yifan Gong, “DEEP NEURAL SUPPORT VECTOR MACHINES FOR SPEECH RECOGNITION”, Interspeech 2015 再进一步:
C
=
1
2
∣
∣
θ
∣
∣
2
+
1
2
∣
∣
θ
′
∣
∣
2
+
λ
∑
n
=
1
N
C
n
C=\cfrac{1}{2}||\theta||^2+\cfrac{1}{2}||\theta'||^2+\lambda\sum_{n=1}^NC^n
C = 2 1 ∣ ∣ θ ∣ ∣ 2 + 2 1 ∣ ∣ θ ′ ∣ ∣ 2 + λ n = 1 ∑ N C n
C
n
=
m
y
a
x
[
Δ
(
y
^
n
,
y
)
+
F
(
x
n
,
y
)
]
−
F
(
x
n
,
y
^
n
)
C^n= \underset{y}max{}[\Delta(\widehat y^n, y)+F(x^n,y)]-F(x^n,\widehat y^n)
C n = y m a x [ Δ ( y
n , y ) + F ( x n , y ) ] − F ( x n , y
n ) Ref: Yi-Hsiu Liao, Hung-yi Lee, Lin-shan Lee, “Towards Structured Deep Neural Network for Automatic Speech Recognition”, ASRU, 2015