Structured Learning(上)

Introduction

结构化学习属于机器学习,但不属于深度学习。

在学习深度学习后我们一直接触的概念都是回归,分类之类的,很少接触到结构化学习的概念,为了更好得学习,我们在这补充学习Structured Learning。相比于之前学习的回归,输出一个标量或者预测,输出一个向量,结构化学习的输出更加复杂,可以是图像,可以是语句,可以是树结构,等等。

file

结构化学习有一个统一的框架。它的思路是在训练时找到一个F使F(X,Y)的值最大(输入输出最匹配),然后在测试时,会枚举所有情况代入计算,输出匹配度最高的。

file

它可以被用来图片的特征识别,如下。

file

其中输入X是一张图片,输出Y是它识别出来指定特征的框框位置。

我们要找到一个F,使F(X,Y)最大。

在测试时,枚举出所有可能的框框,输出能使F最大的那个。

file

file

其他应用,类似有特定关系文本摘录:

file

file

还有搜索信息的匹配:

file

file

怎么样能方便我们更加理解这个框架?

我们进行结构化学习的目的就是获得我们想要的,即与期望结果最近的。这可以从条件概率下手,P(y|x)就是在我们进行输入之后得到指定输出的概率,经过化简我们只需要求P(x,y),即要求P(x,y)最大,所以我们可以找一个F使F(x,y)最大,这是等效的。

file

那为什么不直接用概率呢?

因为概率毕竟只是一个0-1的数,不能适应所有情况,且把所有的值约束在0和1之间也是没有必要的。

file

有了这个学习框架,我们就会迎来3个与之相关的问题。

file

Problem1:这个F长什么样?

file

Problem2:我们怎么求最大值?

file

Problem3:给我们训练数据,我们怎么把F计算出来?

file

file

其实这三个问题也是机器学习普遍要解决的三个问题,就像在语音辨识里面就有类似的三个问题待解决。

file

联系一下深度学习,发现原理还是差不多的。DNN,是输入数据后经过处理输出,损失函数使用交叉熵,进而更新参数达成训练。结构化学习只是换成了求匹配度最高,可能训练方式不一样,但是思路基本一致。

file

Linear Model

关于第一个问题,为什么是线性模型呢?

输入和输出会进行多组特征匹配,然后这个F就由这些特征匹配度进行加权求和得到。所以究其本质还是一个线性模型。

file

当然这些特征可能是任意的有很多组,是机器识别的。

file

在这个特征识别中就有用到CNN。毕竟CNN就是专门干这个的。

file

问题二:怎么计算这个最大值?

这个我们先假设我们能算出来,直接跳到问题三。

file

问题三:我们如何得到这个F?

整体思路是:找到一个F,使任一训练数据的输入输出代入得到的值,比代入自身输入部分与其余任何可能的输出得到的值都大。

file

以下面这个凉宫春日识别为例,就是保证框框圈住凉宫春日对应的值最大。

file

file

file

真的有算法能够做到么?

如下:

就是定义初始参数w,然后一张图一张图的训练,先拿一张图,如果能使F最大的y不是真实的y,就采用图示规则更新w,待w不再改变时就训练完毕。

中间我们又遇到了问题二,还是先不管。

file

算法具体演示如下:

file

file

file

file

最后我们要进行验证,这个下一节讲SVM再说。

file