title: 8. 生成学习算法的概念 date: 2018-06-29 12:40:00 categories: 生成学习算法 tags: [生成学习算法, 高斯判别算法] mathjax: true


生成学习算法,英文为Generative Learning Algorithm

我们之前看到的都是判别学习算法(Discriminative Learning Algorithm)。判别学习算法可以分成两种:

  1. 学得$p(y|x)$,比如之前的线性模型
  2. 学得一个假设$h_\theta (x) = \lbrace 0, 1 \rbrace$,比如二分类问题

上面都是根据特征$x$,来对输出$y$进行建模,也许$y$是一个连续的值,也可能是离散的,比如类别。

那么,生成学习算法(Generative Learning Algorithm)刚好跟判别学习算法(Discriminative Learning Algorithm)相反,其用输出$y$对$x$进行建模,也就是:学得$p(x|y)$

详细解释

对于一个二分类或多分类问题,生成学习算法,在给定样本所述的类别的条件下,会对其样本特征建立一个概率模型。举例而言,在给定癌症是良性或者是恶性的条件下,生成模型会对该癌症的特征的概率分布进行建模。

根据朴素贝叶斯, $$ p(y=1|x)=\frac{p(x|y=1) p(y=1)}{p(x)} $$ 因为给定了$x$,所以$p(x)$可以视作1,也即 $$ p(y=1|x)=p(x|y=1) p(y=1) $$

高斯判别算法

Gaussian Discriminant Algorithm

对特征满足高斯分布的二分类问题进行建模。

假设$x \in \Bbb R^n$,且$p(x|y)$满足高斯分布,因为$x$往往是一个特征向量,故而这里的高斯分布是一个多元高斯分布(multivariate Gaussian)

多元高斯分布,$z \sim N(\mu, \Sigma)$。 $$ p(z)=\frac{1}{\sqrt{(2\pi)n|\Sigma|}}exp(-\frac{1}{2}(z-\mu)T\Sigma^{-1}(z-\mu)) $$ $z$是一个$n$维向量,$\mu$则是均值向量,$\Sigma$是协方差矩阵:$E[(z-\mu)(z-\mu)^T]$。

对于一个二分类判别问题,正则响应函数为$\phi$,那么 $$ p(y)=\phiy(1-\phi){1-y} $$ 且 $$ p(x|y=0) \sim N(\mu_0, \Sigma) \
p(x|y=1) \sim N(\mu_1, \Sigma) $$ (这里假设了,对于$y=0$和$y=1$,是两个不同均值,但协方差矩阵相同的多元高斯分布,所以这也是该模型的限制之一)

我们写出对数似然函数: $$ \begin{align} l(\phi, \mu_0, \mu_1, \Sigma) &= log\prod_{i=1}mp(x{(i)}, (y{(i)})) \
&= log\prod_{i=1}mp(x{(i)}| (y{(i)}))p(y^{(i)}) \end{align} $$

对比一下之前二分类问题中的对数似然估计函数: $$ l(\theta) = \sum_{i=1}mlog(P(y{(i)}|x{(i)};\theta)) $$ 这里,我们使用了联合概率(joint likelihood): $p(x{(i)}, (y{(i)}))$,而在之前的判别模型里,我们用的是条件概率(conditional likelihood): $P(y{(i)}|x^{(i)};\theta)$。因为,在判别模型中,特征$x$是给定的,所以用条件概率来进行极大似然估计;而在生成模型中,特征$x$不给定,所以需要用联合概率来进行极大似然估计。

然后,我们进行极大似然估计,得到: $$ \phi=\frac{1}{m}\sum_{i=1}my{(i)}=\frac{1}{m}\sum_{i=1}m 1\lbrace y{(i)} = 1 \rbrace $$ 也就是分类标签为1的训练样本的比例。

再看$\mu_0, \mu_1$: $$ \mu_0=\underbrace{\sum_{i=1}m 1\lbrace y{(i)} = 0 \rbrace \cdot x{(i)}}{(1)} /\underbrace{ \sum{i=1}m 1\lbrace y{(i)} = 0 \rbrace}{(2)} \
\mu_1=\sum
{i=1}m 1\lbrace y{(i)} = 1 \rbrace \cdot x{(i)} / \sum_{i=1}m 1\lbrace y{(i)} = 1 \rbrace $$ 式(1)表达了分类为0的样本中,特征$x$的和;式(2)表达了分类为0的样本个数;故而$\mu_0$表达了样本中,分类为0的样本的特征的均值。同理得到$\mu_1$。

我们再次回顾上面的高斯判别算法,事实上,高斯判别算法,假设了特征$x$满足了多元高斯分布,利用极大似然估计,对不同类别的特征$x$的分布进行了建模。

下节课我们将会探讨其他的关于生成学习算法的案例。


书籍推荐