李宏毅机器学习课程笔记8:Structured Learning - Linear Model、Structured SVM、Sequence Labeling



李宏毅机器学习课程笔记8:Structured Learning - Linear Model、Structured SVM、Sequence Labeling

这篇文章是学习本课程第22-24课所做的笔记和自己的理解。


Lecture 22: Structured Learning - Linear Model

Problem 1: Evaluation

上节课说到,Structured Learning的Unified Framework有三个问题:
这里写图片描述
如果F(x,y)” role=”presentation” style=”position: relative;”>F(x,y)F(x,y) 长成特定形式的话,那么Problem 3就不是问题。

这里写图片描述
这个“特定形式”的F(x,y)” role=”presentation” style=”position: relative;”>F(x,y)F(x,y) 一定要是线性的。
我们用一组特征ϕi(x,y)” role=”presentation” style=”position: relative;”>ϕi(x,y)ϕi(x,y) 的强度。
F(x,y)” role=”presentation” style=”position: relative;”>F(x,y)F(x,y) 的线性组合,权重系数可由训练数据学习得到。
这样,F(x,y)” role=”presentation” style=”position: relative;”>F(x,y)F(x,y) 就可写作两个向量之内积,此时Problem 3就不再是问题。

这里写图片描述
具体来讲,对Object Detection这个任务,x是image,y是bounding box,vector ϕ(x,y)” role=”presentation” style=”position: relative;”>ϕ(x,y)ϕ(x,y) 可按图中定义,这些特征都比较弱,可能无法检测出任务。image中state-of-art的方法是visual word,即图中所写的最后一个特征,意思是图像上画出的不同颜色的小方块代表不同的pattern,就像文章中的词汇一样,所以叫visual word。
feature是由人来找还是由model来抽呢?由于F(x,y)” role=”presentation” style=”position: relative;”>F(x,y)F(x,y) 只是linear function, 没法做很厉害的事情。所以要让performance好的话,要抽出很好的feature,人工的方法未必能找出很好的feature,所以在object detection上,state-of-art的方法是讲image作为CNN的输入,CNN的输出可以很好的代表bounding box中的东西。Google就是用DNN+Structured learning来做的Object Detection.

Problem 2: Inference

这里写图片描述
这里我们假设Problem 2已经解决了。

Problem 3: Training

这里写图片描述
训练时,给定训练数据,要找的是w” role=”presentation” style=”position: relative;”>ww 最匹配的。

这里写图片描述
举例来讲,以Object Detection为例,对红色圈圈代表对x1” role=”presentation” style=”position: relative;”>x1x1 与蓝色星星的内积。

这个问题没有想象中那么难,只要符合要求的w” role=”presentation” style=”position: relative;”>ww
这里写图片描述
说明:如果y~r≠y^r” role=”presentation” style=”position: relative;”>y~ry^ry~r≠y^r 不是要找的。这个算法与感知机算法本质相同。感知机是 Binary Classification 的方法, Binary Classification 是 Structured Learning 的特例。

下面形象地解释一下这个算法的过程:
这里写图片描述

可以证明,上述算法是会结束的,与蓝色点的数目没有关系。这个证明与感知机算法的收敛性证明[李航,Chapter 2.3.2] 是很类似的。

总结一下Structured Linear Model:
这里写图片描述

Lecture 23: Structured Learning - Structured SVM

本节课先简要回顾了Structured Learning的概念、Unified Framework以及要使用Unified Framework需解决的三个问题。并给出了两个开放问题:1、在Problem 1中如果F(x,y)” role=”presentation” style=”position: relative;”>F(x,y)F(x,y) 是非线性的会怎样?2、在Problem 2中如果Inference得到的不是精确解而是近似解会怎样?关于这两个问题的研究很少。
简单介绍了Problem 2中解决argmax问题的可能选项,对Object Detection, 有Branch and Bound algorithm, Selective Search; 对Sequence Labeling, 有Viterbi Algorithm. 采用哪种算法是与任务有关的,甚至在同一个任务中,ϕ(x,y)” role=”presentation” style=”position: relative;”>ϕ(x,y)ϕ(x,y) 定义不同都需要不同的算法来解决Problem 2。
以下假设Problem 2已解决,只关注Problem3.
本讲Outline:
这里写图片描述

Separable case

对上讲中的算法(Structured Perceptron)的收敛性做了证明,由于与感知机算法的收敛性证明[李航,Chapter 2.3.2] 很类似,这里不再贴图。本课程的slides在这里

Non-separable case

现实中很少有Separable case,因此要考虑Non-separable case。

这里写图片描述
就算数据是Non-separable 的,一些w” role=”presentation” style=”position: relative;”>ww 不会是负的。为什么不定义为前若干名得分之和减去正确的得分呢?因为在Problem 2中只假设了可以找到第一名的得分,取前若干名是自找麻烦。

用SGD找到最小化C的w” role=”presentation” style=”position: relative;”>ww 中的max() 呢?还是可以算的,想想maxout NN……
这里写图片描述
w” role=”presentation” style=”position: relative;”>ww 的导数。区域边界上是无法微分的,避开边界就可以微分了。
可以求出梯度就可以用SGD了,SGD过程如图所示,如果学习率设为1,就是Structured perceptron. (w减去错的feature, 加上对的feature)。

Considering Errors

这里写图片描述
现在要修改一下刚才的Cost function, 因为错误是有不同等级的,在training的时候应考虑到这一点。若y可接受,则w应使y的得分 w·ϕ(x,y)” role=”presentation” style=”position: relative;”>wϕ(x,y)w·ϕ(x,y) 表示,定义见图。

这里写图片描述
这样,衡量错误y的分数的标准就在刚才的基础 w·ϕ(xn,y)” role=”presentation” style=”position: relative;”>wϕ(xn,y)w·ϕ(xn,y) 的差异程度。
其精神在于,希望Δ” role=”presentation” style=”position: relative;”>ΔΔ 小的结果,得分与正确结果差较小。
或者可理解为y^n” role=”presentation” style=”position: relative;”>y^ny^n 最小。
在定义Δ” role=”presentation” style=”position: relative;”>ΔΔ 问题已经不是Problem 2了。
改变Cn” role=”presentation” style=”position: relative;”>CnCn 的过程与前面是类似的。

从另外一个观点解释新的cost function:
这里写图片描述
这个观点是说,新的cost function 是训练误差的upper bound,最小化upper bound不代表error一定会变小,但error有可能跟着变小。
C′” role=”presentation” style=”position: relative;”>CC′ 数量级不同时比Margin rescaling更合理一些。

Regularization

由于训练数据和测试数据有mismatch的问题,所以加上正则项让w” role=”presentation” style=”position: relative;”>ww 接近0 的话会鲁棒一些。
加上正则项之后,参数 w” role=”presentation” style=”position: relative;”>ww 的更新类似于DNN中的weight decay.
这里写图片描述

Structured SVM

这里写图片描述
回答图中Are they equivalent?的问题:
二者本不等价,但是加上“minimizing C”之后就等价了。

这里写图片描述
在问题的原来形式中,定好w” role=”presentation” style=”position: relative;”>ww 就直接决定了。
在问题变化后的形式中,将Cn” role=”presentation” style=”position: relative;”>CnCn 没有直接决定。
因此要将原来的叙述“Find w” role=”presentation” style=”position: relative;”>ww”。
简单的将y^n” role=”presentation” style=”position: relative;”>y^ny^n

对Structured SVM的一个直观解释:
这里写图片描述
由于施加约束的不等式太多,如果不加松弛因子的话,可能不存在同时满足这些不等式的w” role=”presentation” style=”position: relative;”>ww
因此要加入松弛因子,松弛因子显然是非负的(不然就不起“松弛”的作用了),但又希望它尽量小。
最后得到一个二次规划问题。
但是现在约束太多了……

Cutting Plane Algorithm for Structured SVM

这里写图片描述
先不管不等式约束,假设w” role=”presentation” style=”position: relative;”>ww 才是可以的。由于不等式约束很多,因此找出交集很难。Cutting Plane算法可帮助我们找出结果。

这里写图片描述
对每个example,很多个不等式约束给出了一个交集,在众多不等式约束中,只有很少的几个是起决定作用的,而其他约束是去掉之后不改变结果的。起决定作用的不等式约束所对应的y的集合,叫做working set, 每个example都有一个working set.
先初始化working set, 然后解二次规划问题(y∈working set),解得w” role=”presentation” style=”position: relative;”>ww 找出被违反最严重的不等式约束,将其对应的y添加到working set中. 按下图所示方法,找到被违反最严重的y。
这里写图片描述

所以,Cutting Plane Algorithm for Structured SVM的过程就是:
这里写图片描述

用例子形象的说明这一过程:
这里写图片描述
这里写图片描述
这里写图片描述

Multi-class and binary SVM

这里写图片描述
这里写图片描述
x→” role=”presentation” style=”position: relative;”>x⃗ x→ 的第y个位置。

Beyond Structured SVM (open question)

Structured SVM是linear的,要让它表现很好的话需要把feature定得很好,这对人来讲较难。
这里写图片描述
这里写图片描述
这里写图片描述

Lecture 24: Structured Learning - Sequence Labeling

本讲介绍Structured Learning的一个具体问题, Sequence Labeling 。 Sequence Labeling 的输入输出都是序列,这里先假设两个序列的长度相等。RNN可以完成 Sequence Labeling 的任务,但是也有一些基于Structured Learning的方法。本讲以词性标注(POS tagging)作为Structured Learning的例子来说明问题。
本讲Outline:
这里写图片描述

Hidden Markov Model (HMM)

这里写图片描述
HMM假设经过如下两个步骤产生句子:根据语法,产生词性序列;根据词性序列和词典,产生句子。
语法表现为马尔科夫链的形式,可得产生词性序列的概率。从各词性集合中采样得到句子,相应的得到在给定词性序列的条件下,产生句子的条件概率。

对这两个步骤给出数学上的一般化的表达:
这里写图片描述

公式中的概率是用统计的方法得到的,而在台大数位语音处理课程中,HMM中的概率是用EM算法求的,这是因为在语音识别中有隐变量。

这里写图片描述
要做POS Tagging, 就是要根据观察到的句子x” role=”presentation” style=”position: relative;”>xx 太多了,幸好有Viterbi算法!

这里写图片描述
HMM也是Structured Learning的一种方法,所以也要回答三个问题。

这里写图片描述
HMM存在着如下问题:
假设训练数据为(x,y^)” role=”presentation” style=”position: relative;”>(x,y^)(x,y^) (HMM会“脑补”它没看过的东西)。不过这也不尽然是缺点,在训练数据较少时“脑补”可能是有好处的。
之所以HMM会脑补,是因为在HMM中假设transition probability和emission probability是独立的。
要想解决脑补问题,可以使用更复杂的模型(假设两个概率之间不是独立的)来模拟两个序列之间的概率。但模型太复杂、参数太多会有过拟合的问题。
而CRF用与HMM相同的模型(假设transition probability和emission probability是独立的),却可以解决“脑补”问题。

Conditional Random Field (CRF)

这里写图片描述
CRF不在意P(x,y)” role=”presentation” style=”position: relative;”>P(x,y)P(x,y) .

CRF与HMM的model其实是一样的,只是在training的时候不同。
这里写图片描述
这里写图片描述
这里写图片描述

这样,得到P(x,y)=exp(w·ϕ(x,y))” role=”presentation” style=”position: relative;”>P(x,y)=exp(wϕ(x,y))P(x,y)=exp(w·ϕ(x,y)).
这里写图片描述

CRF里的feature vector ϕ(x,y)” role=”presentation” style=”position: relative;”>ϕ(x,y)ϕ(x,y) 长成什么样子呢?它是由两部分拼成的一个高维向量。
这里写图片描述

CRF的training
这里写图片描述
根据训练数据,定义目标函数(给定xn” role=”presentation” style=”position: relative;”>xnxn 的概率(不会“脑补”)。由于要最大化目标函数,所以采用的是梯度上升。

这里写图片描述
经过数学计算,每一笔(xn,y^n)” role=”presentation” style=”position: relative;”>(xn,y^n)(xn,y^n) 有关,第二项可用Viterbi算法来解。这两项之间有trade-off的关系。
得到随机梯度上升的参数更新公式,求出w” role=”presentation” style=”position: relative;”>ww,进而就可以做Inference了。

CRF的Inference
这里写图片描述

CRF v.s. HMM
这里写图片描述
HMM给出的结果V直接是从统计来的,而CRF完全不care这些统计数据(N接V几次,从V产生c几次),CRF只是调参数使正确的(x,y) pair的分数高,可能调来调去就会把P(a|V)” role=”presentation” style=”position: relative;”>P(a|V)P(a|V) 从0.5调成0.1,这样在Inference时得到的结果是D。

这里写图片描述
在提出CRF的论文里的实验:数据由mixed-order HMM产生,看HMM和CRF哪个对数据fit得更好。右图横轴表示HMM的错误率,纵轴表示CRF的错误率。在α>0.5” role=”presentation” style=”position: relative;”>α0.5α>0.5 时(data的产生方式与HMM、CRF的假设都很不合的时候),CRF表现更好,因为这时HMM只会按照概率,而CRF会调整参数fit数据。

Summary
CRF也是Structured Learning的一种方法,它也解决了三个问题。
这里写图片描述

Structured Perceptron/SVM

这部分讲Structured Perceptron/SVM 怎么用在Sequence Labeling上面。
Structured Perceptron是Structured Learning的一种方法,它也解决了三个问题。
这里写图片描述

在Sequence Labeling上,Structured Perceptron与CRF十分相似,只是在training的时候有一点区别:
这里写图片描述

Structured SVM的Problem 1,2 都与Structured Perceptron相同,在training时加上了margin的概念和error的概念。
这里写图片描述

Towards Deep Learning

为什么不用RNN?
这里写图片描述
Sequence Labeling的问题,可以用RNN或LSTM来解,也可以用HMM, CRF, Structured Perceptron/SVM 来解,用哪个比较好呢?
RNN, LSTM有一个缺点是,如果用单方向的RNN, LSTM,那么在做决定时并没有看完整个sequence,即在产生时刻t的output时只考虑了时刻1~t的input, 没有考虑时刻t之后的input。而HMM, CRF, Structured Perceptron/SVM 在做Inference的时候,用的是Viterbi算法,看过了整个sequence。那么用双方向的RNN, LSTM会怎样呢?不知道,没看到相关文献。
HMM, CRF, Structured Perceptron/SVM 的另一个有点是,可以明确地考虑output sequence中的label dependency(label与label之间的关系)。假设知道在output sequence中某些元素是不可能出现的,那么可以把这件事塞到Viterbi算法里面去(穷举所有sequence时只穷举符合constrain的sequence)。如果RNN, LSTM有足够多的训练数据的话,或许也可以把label dependency学进来。明确的约束或许要胜过学到的。
RNN, LSTM的另一个问题是,它的cost 和 error 不见得是有关系的。而HMM, CRF, Structured Perceptron/SVM 的 cost 是 error 的 upper bound,cost减小的时候error很可能也会跟着减小,train的时候更安心。
不过,RNN, LSTM的无可比拟的优点是,它可以Deep。
综合来看,RNN, LSTM要胜过HMM, CRF, Structured Perceptron/SVM。

这里写图片描述
不过,我们可以将RNN, LSTM与 HMM, CRF, Structured Perceptron/SVM 结合起来:model的底层是RNN, LSTM(deep),后面接HMM, CRF, Structured Perceptron/SVM (明确描述label dependency, cost 是 error 的upper bound)

结合的例子:
这里写图片描述

右图中RNN的output作为ϕ(x,y)” role=”presentation” style=”position: relative;”>ϕ(x,y)ϕ(x,y) 和RNN中的参数可以一起train。

Concluding Remarks
这里写图片描述

GAN与Structured SVM
GAN中的Discriminator可以看作是Evaluation Function,
GAN中的Generator可看作在解Inference问题,
怎么训练GAN,就是Problem 3的solution。
GAN的训练与Structured SVM的训练有异曲同工之妙:Structured SVM的训练中每次要找出最competitive的那些example,希望正确的example的Evaluation Function的分数大过competitive example, 然后update model,重新选择competitive example……GAN的训练类似,正确的example (Real x)让Evaluation Function (Discriminator) 最大,然后用Generator得出最competitive的x,再去训练Discriminator(对Real x给较大的值,对Generated x给较小的值),……
这里写图片描述


李宏毅机器学习课程笔记

李宏毅机器学习课程笔记1:Regression、Error、Gradient Descent
李宏毅机器学习课程笔记2:Classification、Logistic Regression、Brief Introduction of Deep Learning
李宏毅机器学习课程笔记3:Backpropagation、”Hello world” of Deep Learning、Tips for Training DNN
李宏毅机器学习课程笔记4:CNN、Why Deep、Semi-supervised
李宏毅机器学习课程笔记5:Unsupervised Learning - Linear Methods、Word Embedding、Neighbor Embedding
李宏毅机器学习课程笔记6:Unsupervised Learning - Auto-encoder、PixelRNN、VAE、GAN
李宏毅机器学习课程笔记7:Transfer Learning、SVM、Structured Learning - Introduction
李宏毅机器学习课程笔记8:Structured Learning - Linear Model、Structured SVM、Sequence Labeling
李宏毅机器学习课程笔记9:Recurrent Neural Network
李宏毅机器学习课程笔记10:Ensemble、Deep Reinforcement Learning

文章出处:https://blog.csdn.net/xzy_thu/article/details/74560814

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值