机器学习概述(2)--生成模型和判别模型的区别

文章目录

  • 1.引入
    • 1.1.判别式模型
    • 1.2.生成式模型
  • 2.生成模型与判别模型

1.引入

在监督学习下,模型可以分为判别式模型与生成式模型。

先问个问题,根据经验,A批模型(神经网络模型、SVM、perceptron、LR、DT……)与B批模型(NB、LDA……),有啥区别不?(这个问题需要一些模型使用经验)应该是这样的:

  • A批模型是这么工作的,他们直接将数据的Y(或者label),根据所提供的features,学习,最后画出了一个明显或者比较明显的边界(具体怎么做到的?通过复杂的函数映射,或者决策叠加等等函数),这一点线性LR、线性SVM应该很明显吧。

  • B批模型是这么工作的,他们先从训练样本数据中,将所有的数据的分布情况摸透,然后最终确定一个分布,来作为我的所有的输入数据的分布,并且他是一个联合分布 P ( X , Y ) P(X,Y) P(X,Y)(注意包含所有的特征,包含所有的label)。然后我来了新的样本数据(inference),好,通过学习来的模型的联合分布 P ( X , Y ) P(X,Y) P(X,Y) ,再结合新样本给的X,通过条件概率就能出来 :
    P ( X ∣ Y ) = P ( X , Y ) P ( X ) P(X|Y)=\frac{P(X,Y)}{P(X)} P(XY)=P(X)P(X,Y)

1.1.判别式模型

那么A批模型对应了判别式模型。根据上面的两句话的区别,可以知道判别模型的特征了,所以有句话说:判别模型是直接对 P ( X ∣ Y ) P(X|Y) P(XY)建模,就是说,直接根据X特征来对Y建模训练。
具体地,我的训练过程是确定构件 模型里面“复杂映射关系”中的参数,完了再去inference一批新的sample。
所以判别式模型的特征总结如下:

  • P ( X , Y ) P(X,Y) P(X,Y)建模
  • 对所有的样本只构建一个模型,确认总体判别边界
  • 观测到输入什么特征,就预测最可能的label
  • 另外,判别式的优点是:对数据量要求没生成式的严格,速度也会快,小数据量下准确率也会好些。

1.2.生成式模型

同样,B批模型对应了生成式模型。并且需要注意的是,在模型训练中,我学习到的是X与Y的联合模型 P ( X , Y ) P(X,Y) P(X,Y) ,也就是说,我在训练阶段是只对 P ( X , Y ) P(X,Y) P(X,Y)建模,我需要确定维护这个联合概率分布的所有的信息参数。完了之后在inference再对新的sample计算 P ( X ∣ Y ) P(X|Y) P(XY) ,导出,但这已经不属于建模阶段了。
结合NB过一遍生成式模型的工作流程。学习阶段,建模 P ( X , Y ) = p ( X ∣ Y ) P ( Y ) P(X,Y)=p(X|Y)P(Y) P(X,Y)=p(XY)P(Y): (当然,NB具体流程去隔壁参考),然后 P ( X ∣ Y ) = P ( X , Y ) P ( X ) P(X|Y)=\frac{P(X,Y)}{P(X)} P(XY)=P(X)P(X,Y)
另外,LDA也是这样,只是他更过分,需要确定很多个概率分布,而且建模抽样都蛮复杂的。
所以生成式总结下有如下特点:

  • P ( X , Y ) P(X,Y) P(X,Y) 建模
  • 这里我们主要讲分类问题,所以是要对每个label( )都需要建模,最终选择最优概率的label为结果,所以没有什么判别边界。(对于序列标注问题,那只需要构件一个model)
  • 中间生成联合分布,并可生成采样数据。
  • 生成式模型的优点在于,所包含的信息非常齐全,我称之为“上帝信息”,所以不仅可以用来输入label,还可以干其他的事情。生成式模型关注结果是如何产生的。但是生成式模型需要非常充足的数据量以保证采样到了数据本来的面目,所以速度相比之下,慢。
    这一点明白后,后面讲到的HMM与CRF的区别也会非常清晰。
    最后identity the picture below:
    机器学习概述(2)--生成模型和判别模型的区别_第1张图片

2.生成模型与判别模型

监督学习方法可以分为生成方法(generative approach)和判别方法(discriminative approach),所学到的模型分为生成模型(generative model)和判别模型(discriminative model)。

生成方法:模型学习数据中的联合概率分布P(X,Y),然后求出条件概率分布区P(Y|X)作为预测的模型,表示给定了输入X如何输出Y的关系,即:

典型的生成模型有朴素贝叶斯和隐马尔科夫模型。

判别方法:模型学习数据中的决策函数f(X)或者条件概率P(X|Y)作为预测模型,给定输入X,应该预测什么样的输出Y。典型的判别模型有:k近邻法,决策树,logistic回归,SVM,adaboost,条件随机场。

生成方法的特点:生成方法可以还原出联合概率分布P(X,Y),而判别方法则不能,生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用。

判别方法的特点:判别方法直接学习的是条件概率P(Y|X)或决策函数f(X),直接面对预测,往往学习的准确率更高,由于直接学习P(Y|X)成f(X),可以对数据进行各种程度上的抽象,定义特征并使用特征,因此可以简化学习问息.

你可能感兴趣的:(机器学习,机器学习)