生成学习算法概述

来源:互联网 发布:凯旋软件 编辑:程序博客网 时间:2024/05/01 03:46

生成学习算法

在线性回归和Logistic回归这种类型的学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布,举个例子,logistc回归建立了模型p(y|x;θ)作为hθ(x)=g(θTx)的输出结果,这里的g表示sigmoid函数,这里不再赘述该函数的具体表达形式,忘了的同学可以自行goole之。在本文中我们来探讨一种与前文所讲的模型相反的学习算法。

考虑这样一类分类问题,我们想要基于动物的某些特征来分辨大象(y=1)和狗(y=0),给定一个训练数据集,类似Logistic或者感知器这样的算法会去尝试寻找一条“直线”,即找到一个决策边界来把大象和狗分开,之后为了检测一个新来的动物(动物)是大象还是狗,只需要检查该样本点通过模型运算后落在决策边界的哪一边然后根据这个判断该动物是狗还是大象。

考虑用不同的方法来解决这个问题,首先,我们观察大象,然后建立一个大象长什么样子的模型,之后,我们观察狗,同样建立一个狗长什么样子的模型,最后,为了判断一个新来的动物是狗还是大象,我们将这个动物与大象模型进行匹配,再与狗模型进行匹配,看看这个新的动物更像狗还是更像大象从而判断这个动物到底是什么。

让我们来对上述描述的两种算法做一个系统的描述,第一种算法尝试直接学习p(y|x)(例如logistic回归)或者说算法尝试找出输入数据空间X到集合{0,1}的映射(例如感知器算法)。这种算法叫做判别学习算法,下面,我们要探讨的算法把模型变为了p(x|y),这种算法叫做生成学习算法,举个栗子,如果y指示的是一个样本是狗(0)还是大象(1),那么p(x|y=0)描述了狗的特征的概率分布,p(x|y=1)描述了大象的特征的概率分布。具体如何拟合,后面会给出详细的方法。

注意,无论哪一种算法,我们寻求的都是在给定数据集上使得条件概率最大参数,即极大似然估计的原理

在拟合得到了p(y)p(x|y)后,我们的算法可以利用贝叶斯公式推导出给定特征x后判定标签y的概率分布。

p(y|x)=p(x|y)p(y)p(x)

在上面的公式中分母可以通过全概率公式进行计算

p(x)=p(x|y=1)p(y=1)+p(x|y=0)p(y=0)

利用这个公式我们用已知的量p(x|y)p(y)来计算p(x),实际上,如果我们计算p(y|x)只是为了做出预测,那么我们不需要计算出分母的具体数值,因为

arg maxyp(y|x)=arg maxyp(x|y)p(y)p(x)=arg maxyp(x|y)p(y)

输入特征变量是独立的 ,所以如果只是为了对比y=0或者y=1两种情况的概率大小从而进行预测没有必要计算出p(x)的具体数值

0 0