李宏毅机器学习系列-结构化学习介绍

李宏毅机器学习系列-结构化学习介绍

  • 结构化学习是什么
  • 统一框架
  • 物体检测的例子
  • 文章总结的例子
  • 网页搜索的例子
  • 换个概率的角度理解这个框架
  • 框架遇到的问题
  • 与DNN的联系
  • 总结

结构化学习是什么

简单来说,就是找一个函数,输入一个X,输出一个Y,但是X,Y的结构是不一样的。比如结构可以是序列,列表,树,边界框等等。我们以前学的DNN,输入都是向量,输出也是向量:
李宏毅机器学习系列-结构化学习介绍_第1张图片
来看看一些例子:
说语音识别和机器翻译:输入的是一个序列,输出也是一个序列。
句法分析:输入是句子,输出是分析树。
物体检测:输入是图片,输出是一个边界框坐标。
文档总结:输入是文档,输出是一段句子。
网页搜索:输入是关键词,输出是一个list的结果。
李宏毅机器学习系列-结构化学习介绍_第2张图片

统一框架

那这个东西怎么做呢,其实是有一个比较统一的框架,训练的时候我们要找一个函数F,输入是X,Y,输出是一个值,表示他们有多匹配。测试的时候我们穷举所有的y,找到使得这个函数的值最大的,即是我们要的最好的结果。看上去好像很抽象啊,其实你可以想象成输入和输出是成对出现的,他们之间是有关系的。比如你去买衣服,你之前的衣服跟你是匹配的,也就是符合F,那你现在要选了一件新衣服,肯定是你最满意的,可以认为是跟你最匹配的,否则你也不买,这个匹配关系就是F:
李宏毅机器学习系列-结构化学习介绍_第3张图片

物体检测的例子

举个实际的例子,我们需要用一个框来表示出物体的位置,输入的就是图片,输出的是一个边界框坐标,我们要检测凉宫春日的位置:
李宏毅机器学习系列-结构化学习介绍_第4张图片
来看看具体是怎么做的,输入是一张图片,输出一个边界框坐标,然后把他们当输入放进F里,希望他输出的值越大越好,也就是框跟图最匹配的情况,那这个输出就是我们要的,其实他跟深度学习原理是一样的,都是为了找到最好的输出,可以把损失函数看做这里的匹配函数F,只是含义更加具体了,要的就是损失最小最匹配,或许可以把深度学习看成结构化学习的一种特殊情况吧:
李宏毅机器学习系列-结构化学习介绍_第5张图片
然后进行训练,我们让F给匹配的图高分,不匹配的低分,感觉有点像GAN的鉴别器啊,比如框在不同的位置得分不一样:
李宏毅机器学习系列-结构化学习介绍_第6张图片
李宏毅机器学习系列-结构化学习介绍_第7张图片
测试的时候我们输入没看过的图片,然后他给出了很多框和对应的分数,我们穷举所有的情况,找出最大的分数对应的框就是最匹配的那个:
李宏毅机器学习系列-结构化学习介绍_第8张图片

文章总结的例子

同样我们可以做文章的总结,输入是文章的词组成的序列,输出也是一个序列,只是更短:
李宏毅机器学习系列-结构化学习介绍_第9张图片
然后训练的时候,我们把正确的输入和输出作为一对,给高分,错误的给低分:
李宏毅机器学习系列-结构化学习介绍_第10张图片
测试的时候穷举所有的总结情况,看哪个分数最高:
李宏毅机器学习系列-结构化学习介绍_第11张图片

网页搜索的例子

网页搜索也一样,只是输出是一列表,就不多说了:
李宏毅机器学习系列-结构化学习介绍_第12张图片
李宏毅机器学习系列-结构化学习介绍_第13张图片

换个概率的角度理解这个框架

刚才说了这个框架有点抽象,那我们换个角度来理解。我们可以把训练的过程理解为去估计X,Y一起出现的概率有多大,测试的时候就找出x出现的前提下,y出现的概率,看看哪个y的概率最大,就是哪个最有可能一起出现,其实跟F的原理一样的,就是两个输入的匹配程度越大越好:
李宏毅机器学习系列-结构化学习介绍_第14张图片
应该率理解的好处就是方便理解,坏处就是被限定在0到1之内了,而且有些东西用概率来解释比较难。同时期的还有其他的一些模型,原理差不多,比如能量模型,有兴趣的可以看看:
李宏毅机器学习系列-结构化学习介绍_第15张图片

框架遇到的问题

我们要用这个框架来做的话,还有一些问题要解决:
李宏毅机器学习系列-结构化学习介绍_第16张图片
首先第一个问题就是,我们怎么衡量F所谓的匹配度,也就是F是什么,物体检测,文章总结,网页搜索可能需要的F是不一样的:
李宏毅机器学习系列-结构化学习介绍_第17张图片
第二个问题,测试的时候怎么求最匹配呢,我们所求的y的空间可能是很大的,用穷举法,做的到么:
李宏毅机器学习系列-结构化学习介绍_第18张图片
第三个问题就是,训练的时候要区分哪些F的结果是好的,哪些是不好的,这个过程是可以实现的么:
李宏毅机器学习系列-结构化学习介绍_第19张图片
这三个问题就像成为游戏王的障碍:
李宏毅机器学习系列-结构化学习介绍_第20张图片

与DNN的联系

最开始的时候已经有说到深度学习神经网络可能是结构化学习的特殊情况,下面举个手写数字识别的例子,首先我们看训练,我们的x就是图片,y就是分类,如果我们用交叉熵来定义损失函数的话,就是衡量图片和输出之间的匹配度,交叉熵越小,是越匹配的。也就是可以看成输入的图片和输出匹配程度跟交叉熵有关,又因为结构化学习的F就是衡量匹配程度的,所以F可以就是交叉熵的负数,因为F要越大越好,交叉熵刚好相反:
李宏毅机器学习系列-结构化学习介绍_第21张图片
然后我们看测试的时候,我们是穷举所有的y与x匹配,softmax就是穷举的方法,找最匹配的那个,也就是交叉熵最小的,所以这个时候我们F的意义就是交叉熵最小:
李宏毅机器学习系列-结构化学习介绍_第22张图片

总结

本篇主要介绍了结构性化学习,感觉是深度学习更加抽象的高层,主要提出了一种统一框架,虽然抽象,但是也是好理解的,还举了一些例子帮助理解,最后提出了框架中的三个问题,只要三个问题有接,那这个就是可以做的。附思维导图:
李宏毅机器学习系列-结构化学习介绍_第23张图片
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵,图片来自李宏毅课件,侵删。

你可能感兴趣的:(机器学习,李宏毅机器学习,深度学习,结构化学习,机器学习,深度学习,人工智能)