深度学习笔记——理论与推导之Structured Learning【Structured Linear Model】(六)

Structured Learning

Sturctured Learning 引入

  1. 定义:
    • X,Y 都是有结构的对象(objects with structures)
    • Object:例如sequence,list,tree,bounding box等
    • 函数:
      这里写图片描述
  2. 应用场景:
    • 语音识别:Speech signal(sequence)—>text(sequence)
    • 翻译:Mandarin sentence(sequence)—>English sentence(sequence)
    • 句法分析:sentence—>parsing tree(tree structure)
    • 目标检测:Image—> bounding box
    • 全文总结:long document—>summary(short paragraph)
    • 检索:keyword—>search result(a list of webpage)
  3. 统一框架(两个步骤,三个问题):

    • 步骤:

      • 步骤1:Training:
        这里写图片描述
        F(x,y):是用来估算x和y的匹配程度的。
      • 步骤2:Inference(Testing)
        给定一个对象x,遍历y,找到一个y使得F(x,y)最大,并将这个最大值对应的y输出。
        这里写图片描述
    • 最终的Framework就是:
      这里写图片描述

    • Framework在几个应用场景中的使用:
      1. 目标检测:
        • 描述:通过bounding box强调某一物体在图片中的具体位置
        • 例如:
          这里写图片描述
        • Framework:
          • 步骤1:Training
            这里写图片描述
            这里的X是一个image,Y是一个bounding box,F(x,y)用来计算x和y的匹配程度。
          • 步骤2:Inference(Testing):
            输入的x是一幅图像,枚举所有可能的bounding box y(假设这幅图为n*m,那么bounding box y的可能就有n * (n-1)/2+[m * (m-1)/2]个),最终,我们要找出F(x,y)最大的那幅图(x,y):
            这里写图片描述
      2. 全文总结:
        • 描述:给定一个长document,在document中选择几个句子,并把句子串起来
        • 例如:
          这里写图片描述
        • Framework:
          • 步骤:
            这里写图片描述
            输入的X是一个document,Y是一个几个sentence(也就是一个小短文),F(x,y)表示X和Y的匹配度。
      3. 检索:
        • 描述:输入的X是一个关键词Q,系统会返回一系列网页Y
        • 例如:
          这里写图片描述
        • Framework:
          系统穷举所有网页的排序(下面的d103之类的是网页编号),每一个排序都计算F(x,y)
          这里写图片描述
    • Unified Framework的理解:
      • Training:Find a function F可以看成是评估P(x,y)
      • Test:Inference即求出P(x,y)的最大值。
        这里写图片描述
        那么我们是否可以将F(x,y)与P(x,y)等同起来呢?对于使用概率进行描述,这里存在一些缺点:a) 概率并不能解释所有东西;b) 0~1可能会构成很多阻碍。
        这里写图片描述
    • Framework同样适用于DNN:
      这里写图片描述
      Training:我们的输入是一个x,在经过DNN后输出N(x),这时候我们将y和N(x)进行对比,并且我们把||y-N(x)||^2定义为cost function。
      Inference:这里我们只需要最小化cost function即可,也就是求-||y-N(x)||^2的最大值。
    • 三个问题:
      • Evaluation:F(x,y)长什么样?怎么样的F(x,y)能计算object x和object y的相容程度呢?是线性还是非线性呢(Graphical model)
      • Inference:如何找到argmaxF(x,y)呢?穷举所有的y,这时如果y的值很大,怎么办呢?
      • Training:给定training data,如何找到F(x,y),正确的pair得到的F(x,y)要大于其他的pair的F(x,y)。
        这里写图片描述

Structured Linear Model

学习这个模型就是在学习上面的两个步骤,要学习上面的两个步骤,就需要求解下面这三个问题:
这里写图片描述

问题1:这个Specific form长什么样呢?

这里写图片描述
对于上图的解释:给定一个(x,y),求出对于每一个特征,(x,y)的特征强度Φ(x,y),Φ1(x,y)表示的就是(x,y)对于特征1的特征强度。w是可以从数据中learn出来的。

Φ(x,y)【即定义x和y的关系】
  • 对于Object Detection:
    这里写图片描述
    抽取特征部分,我们可以使用DNN等:
    这里写图片描述
  • 对于Summarization:
    这里写图片描述
  • 对于Retrieval:
    这里写图片描述

问题2:如何解决argmax这个问题?

这里写图片描述
假设这个问题已经被解决了。

问题3:找到一个F(x,y),其实就是找到准确的w

  • 我们找到,要找到一个F(x,y),实际上就是找到一个合适的w,使得对于所有的training data,正确的(x,y)所求得的F(x,y)的值会大于其他的F(x,y)所求得的值。
    这里写图片描述
w在F(x,y)中所起的作用
  • 对于Object Detection:
    这里写图片描述
    由于y值可能有很多,那么如何找到一个w使得它满足上述条件呢?
w update的演算法
  • w update的算法:
    这里写图片描述
    首先初始化w = 0,这时候可以计算出一个y,如果计算的y和真实的y不一样,这时候就需要更新w。
  • Example:
    下面有两组x值,抽取一个x1,穷举所有的y与w做运算,找到一个能让F(x1,y)最大的y值。我们发现计算出的y值和真实y值不一样,接下来我们需要更新w。
    这里写图片描述
    接下来,我们再选一个x2,穷举所有的y结合之前的w计算出一个y,我们发现计算出来的y和真实的y还是不一样,所以继续对w做更新操作。
    这里写图片描述
    再下来,我们取x1,穷举所有的y结合之前算出来的一个y,我们发现计算出来的y和真实的y是英语的,所以这个w对于x1是成立的,对x2做相同的工作,发现计算的y值和真实的y值是一致的,所以这时候我们就不再更新w值了。
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/sysstc/article/details/76214579
今日推荐