文章目录
公式输入请参考: 在线Latex公式
课程PPT
Structured Linear Model
上节课说Structured Learning面临着三个问题,如果在问题一中能把 F ( x , y ) F(x,y) F(x,y)的形式定下来,问题三就能解决了,因此一个个的来看:
Problem 1
·Evaluation:What does
F
(
x
,
y
)
F(x,y)
F(x,y) look like?
给定一对X,Y,用一组特征(Characteristics)来描述这一对X,Y,这里的
ϕ
1
,
ϕ
2
,
ϕ
3
,
.
.
.
.
\phi_1,\phi_2,\phi_3,....
ϕ1,ϕ2,ϕ3,....都是一个标量scalar,表明,对于
x
,
y
x,y
x,y的Character1的强度的值是
ϕ
1
(
x
,
y
)
\phi_1(x,y)
ϕ1(x,y),同样的Character2的强度的值是
ϕ
2
(
x
,
y
)
\phi_2(x,y)
ϕ2(x,y)
则
F
(
x
,
y
)
F(x,y)
F(x,y) 的方程可以写成:
F
(
x
,
y
)
=
w
1
⋅
ϕ
1
(
x
,
y
)
+
w
2
⋅
ϕ
2
(
x
,
y
)
+
w
3
⋅
ϕ
3
(
x
,
y
)
⋯
F(x,y)=w_1\cdot\phi_1(x,y)+w_2\cdot\phi_2(x,y)+w_3\cdot\phi_3(x,y)\cdots
F(x,y)=w1⋅ϕ1(x,y)+w2⋅ϕ2(x,y)+w3⋅ϕ3(x,y)⋯
找到特征之后,就可以把
w
1
,
w
2
,
w
3
,
.
.
.
w_1,w_2,w_3,...
w1,w2,w3,...看做是参数,然后就从数据中可以学习得到。
写成向量的形式:
F
(
x
,
y
)
=
[
w
1
w
2
w
3
⋮
]
⋅
[
ϕ
1
(
x
,
y
)
ϕ
2
(
x
,
y
)
ϕ
3
(
x
,
y
)
⋮
]
F(x,y)=\begin{bmatrix} w_1\\ w_2\\ w_3\\ \vdots\end{bmatrix}\cdot\begin{bmatrix} \phi_1(x,y)\\ \phi_2(x,y)\\ \phi_3(x,y)\\ \vdots\end{bmatrix}
F(x,y)=⎣⎢⎢⎢⎡w1w2w3⋮⎦⎥⎥⎥⎤⋅⎣⎢⎢⎢⎡ϕ1(x,y)ϕ2(x,y)ϕ3(x,y)⋮⎦⎥⎥⎥⎤
把两个向量分别看成是:
w
w
w和
ϕ
(
x
,
y
)
\phi(x,y)
ϕ(x,y)
F
(
x
,
y
)
=
w
⋅
ϕ
(
x
,
y
)
F(x,y)=w\cdot\phi(x,y)
F(x,y)=w⋅ϕ(x,y)
有了具体的方程,那么问题三就很好解决了,下面来看具体的例子:
Example: Object Detection
定义一个特征(这里老师又改口叫feature,都一样)
ϕ
\phi
ϕ,然后把输入的图片x,和输出的框框y带入
ϕ
\phi
ϕ进行计算。
特征的定义可以自己乱来,例如:
这里的
ϕ
\phi
ϕ是Linear的,所以比较弱,可以用CNN来自动提取特征,下面就是对黄色框框使用CNN提取特征的示意图:
Example: Summarization
Example: Retrieval
Problem 2
·Inference:How to solve the “arg max” problem
y
~
=
a
r
g
m
a
x
y
∈
Y
F
(
x
,
y
)
\tilde y=arg\underset{y\in Y}{max}F(x,y)
y~=argy∈YmaxF(x,y)
换成新的表达:
F
(
x
,
y
)
=
w
⋅
ϕ
(
x
,
y
)
→
y
=
a
r
g
m
a
x
y
∈
Y
w
⋅
ϕ
(
x
,
y
)
F(x,y)=w\cdot\phi(x,y)\rightarrow y=arg\underset{y\in Y}{max}\space w\cdot\phi(x,y)
F(x,y)=w⋅ϕ(x,y)→y=argy∈Ymax w⋅ϕ(x,y)
这个问题先留着,假设这个问题已经解决,直接看第三个问题
Problem 3
Training: Given training data, how to find
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
1
,
y
^
1
)
,
(
x
2
,
y
^
2
)
,
.
.
.
,
(
x
r
,
y
^
r
)
,
.
.
.
}
\{(x^1,\widehat y^1),(x^2,\widehat y^2),...,(x^r,\widehat y^r),...\}
{(x1,y
1),(x2,y
2),...,(xr,y
r),...}
我们要找到
w
w
w,使其满足:
∀
x
r
(All training examples)
∀
y
∈
Y
−
{
y
^
r
}
(All incorrect label for r-th example)
w
⋅
ϕ
(
x
r
,
y
^
r
)
>
w
⋅
ϕ
(
x
r
,
y
)
\forall x^r \text{(All training examples)}\\ \forall y\in Y-\{\widehat{y}^r\}\text{(All incorrect label for r-th example)}\\ w\cdot\phi(x^r,\widehat{y}^r)>w\cdot\phi(x^r,y)
∀xr(All training examples)∀y∈Y−{y
r}(All incorrect label for r-th example)w⋅ϕ(xr,y
r)>w⋅ϕ(xr,y)
讲人话就是对于所有的训练集数据
x
r
x^r
xr,以及所有正确的标记
y
^
r
\widehat{y}^r
y
r和其他标记
y
r
y^r
yr,都有上面的那个不等式成立,不等式的意思是x和正确标记的要通过和权重内积计算(不等式左边)比其他所有的x和非正确标记通过和权重的内积计算的值(不等式右边)要大。这个不等式就是对权重
w
w
w的要求。
还是举一个目标检测的例子
x
1
x^1
x1是图片,
y
^
1
\widehat{y}^1
y
1是图片中目标人物应该对应的红色框框
如果用红点来表示
ϕ
(
x
1
,
y
^
1
)
\phi(x^1,\widehat{y}^1)
ϕ(x1,y
1),蓝色点表示
ϕ
(
x
1
,
y
)
\phi(x^1,y)
ϕ(x1,y)
可视化后(实际上特征维度肯定不止二维):
红色的点只有一个,蓝色点有很多个。
再看另外一对数据对
然后找到一个
w
w
w,使得红色星星到
w
w
w直线的距离比蓝色星星的距离要大(这个也是内积的几何意义)
下图中不但表明了大,还表明大了
δ
\delta
δ
当然点和点比较,星星和星星进行比较。上图用数学表示:
w
⋅
ϕ
(
x
2
,
y
^
2
)
>
w
⋅
ϕ
(
x
2
,
y
)
w\cdot\phi(x^2,\widehat{y}^2)>w\cdot\phi(x^2,y)
w⋅ϕ(x2,y
2)>w⋅ϕ(x2,y)
接下来就是要看如何求
w
w
w
Solution of Problem 3
算法描述:
输入:训练集:
{
(
x
1
,
y
^
1
)
,
(
x
2
,
y
^
2
)
,
.
.
.
,
(
x
r
,
y
^
r
)
,
.
.
.
}
\{(x^1,\widehat y^1),(x^2,\widehat y^2),...,(x^r,\widehat y^r),...\}
{(x1,y
1),(x2,y
2),...,(xr,y
r),...}
输出:权重向量
w
w
w
伪代码(
w
w
w存在是前提条件)
Initialize
w
=
0
w =0
w=0
d
o
do
do
For each pair of training example
(
x
r
,
y
^
r
)
(x^r,\widehat{y}^r)
(xr,y
r)取一笔训练数据
Find the label
y
~
r
\tilde{y}^r
y~r maximizing
w
⋅
ϕ
(
x
r
,
y
)
w\cdot\phi(x^r,y)
w⋅ϕ(xr,y)
y
~
r
=
a
r
g
m
a
x
y
∈
Y
w
⋅
ϕ
(
x
r
,
y
)
这
个
是
q
u
e
s
t
i
o
n
2
\tilde{y}^r=arg\underset{y\in Y}{max}\space w\cdot\phi(x^r,y)\quad这个是question \space2
y~r=argy∈Ymax w⋅ϕ(xr,y)这个是question 2,这个之前假设这个问题已经解决了
if
y
~
r
≠
y
^
r
\tilde{y}^r\neq\widehat{y}^r
y~r=y
r, update
w
w
w
w
→
w
+
ϕ
(
x
r
,
y
^
r
)
−
ϕ
(
x
r
,
y
~
r
)
w\to w+\phi(x^r,\widehat{y}^r)-\phi(x^r,\tilde{y}^r)
w→w+ϕ(xr,y
r)−ϕ(xr,y~r)
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
until w is not updated→ We are done!
整个套路和感知机perceptron好像。证明的过程也好像。(后来才知道这个算法的名字就叫structured perceptron)
接下来老师用之前的点和星星的例子来说明算法的流程,直接截图,很简单,不讲解了
第一个循环由于
w
w
w的初始化值为0,所以随意找一个y就可以更新
w
w
w的值
ϕ
(
x
r
,
y
^
r
)
−
ϕ
(
x
r
,
y
~
r
)
\phi(x^r,\widehat{y}^r)-\phi(x^r,\tilde{y}^r)
ϕ(xr,y
r)−ϕ(xr,y~r)的值就是上图中的黑色小箭头。
第二次循环:
ϕ
(
x
r
,
y
^
r
)
−
ϕ
(
x
r
,
y
~
r
)
\phi(x^r,\widehat{y}^r)-\phi(x^r,\tilde{y}^r)
ϕ(xr,y
r)−ϕ(xr,y~r)的值就是上图中的绿色小箭头(蓝色星星到红色星星)。
然后
w
w
w更新后的w就是长的黑色箭头
第三次循环
这里就由于达到条件,所以循环终止,我自己也有点看不懂,先留着。
后面还有数学证明