生成模型(generative model)

目录

我们从判决理论导出生成模型(generative model)是机器学习中经常用到的一种模型。

1 判决理论

假设我们有一个训练集合(由输入x和对应的输出t组成),我们的目标是对于给定新的输入x,预测其输出t。对于回归问题t是连续的,对于分类问题t是离散的。如果我们能够得到p(x,t)的联合分布就好了,因为这个联合分布包含了关于x这个随机变量的所有不确定度的描述。从一个训练集合中确定p(x,t)的过程叫做推断(inference)。这个过程难度相当大,尤其当x的维度非常高时。在实际问题中,我们经常要对t做预测,或者基于对t的理解或者预测采取某种动作。这个过程叫做判决(decision)。

以癌症诊断为例,假设我们希望从X光片中预测癌症。输入x就是X光片,输出t代表是否有癌症。显然这是一个分类问题。我们用C1代表有癌,用C2代表无癌。我们也可以用t=0代表有癌,用t=1代表无癌。推断问题涉及到p(x,t)的确定,p(x,t)告诉我们关于是否致癌的所有信息,我们希望根据p(x,t)来给出尽可能准确的诊断信息,或者根据p(x,t)来执行损失最小的行为。

使用贝叶斯准则,给定一个新的X光片时,我们需要知道这个病人是否得癌的概率:

p(Ck|x)=p(x|Ck)p(Ck)p(x)

注意上式中的任何量都可以从p(x,Ck)中导出。p(Ck)代表Ck的先验概率,p(Ck|x)代表后验概率。如果我们的目标是最小化判错概率,那么我们需要较高后验概率的Ck判为结果。这种判决需要把输入划分成某几个区域Rk,正确的做法是所有位于Rk的判给Ck。因此出错的概率为:

p(error)=p(xR1,C2)+p(xR2,C1)=R1p(x,C2)dx+R2p(x,C1)dx

稍微有点通信原理基础的同学都晓得这一点和AWGN信道下BPSK信道的接收是一样的。其中判决门限的决定也是一门学问,我们这里是尽可能的使判错的概率降低。但是对于实际的场景可没有那么简单,实际生活中往往要设定某一个损失函数(loss function)使得这个损失函数最小。

2 三种模型

在上一节,我们把分类问题分成两个步骤:1. inference。 这个过程中我们使用训练数据学习了p(Ck|x);2. decision。在这个过程中我们实用后验概率来做出最优的决定。这个解决办法采用的模型叫做生成模型(generative model) 另外的可能的解决方法是把这两步合二为一:直接学习一个把x映射为Ck的函数,这个模型叫做差分模型(discriminant model).

实际上我们有三种解决问题的模型,按照复杂度从高到低来讲,是:

  1. 首先解决inference问题找出p(x|Ck)条件概率密度,然后找出p(Ck),然后使用贝叶斯公式求出p(Ck|x)。这种模型叫做生成模型,之所以这么命名是因为这个模型对于以后的输入都可以产生比较好的输出。
  2. 首先解决p(Ck|x),然后使用判决理论将x赋值为Ck中的一个。这个模型叫做差分模型。
  3. 找到一个差分函数f(x)x映射为Ck中的一种。在这个模型中概率没有扮演任何角色。