机器学习 --- 监督学习 - 生成模型VS判别模型

机器学习 - 监督学习 - 生成模型VS判别模型

判别模型

  • 概念
    • 判别模型就是直接学习条件概率分布P(y|x)
    • 判别模型不关心数据是怎么生成的,它只关心信号之间的差别,然后用差别来简单对给定的一个信号进行分类。
  • 基本思想
    • 有限样本==》判别函数 = 预测模型==》预测
    • 判别方法直接学习的是决策函数Y=f(X)或者条件概率分布P(Y|X)
  • 算法
    • 逻辑回归
    • 决策树
    • 支持向量机(SVM)
    • 条件随机场(CRF)
    • 最近邻
    • 一般的神经网络
  • 应用
    • Image and document classification
    • Biosequence analysis
    • Time series prediction
  • 优点
    • 直接面对预测,往往学习的准确率更高。
      • 分类边界更灵活,比使用纯概率方法或生产模型得到的更高级;
      • 能清晰的分辨出多类或某一类与其他类之间的差异特征;
    • 在聚类、视角变化、部分遮挡、尺度改变等方面效果较好;
    • 适用于较多类别的识别;
    • 由于直接学习P(Y|X)或P(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。
  • 缺点
    • 不能反映训练数据本身的特性。但它寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。
    • 缺少生成模型的优点,即先验结构的不确定性;
    • 黑盒操作,即变量间的关系不清楚,不可视。

生成模型

  • 概念
    • 生成模型就是要学习x和y的联合概率分布P(x,y),然后根据贝叶斯公式来求得条件概率P(y|x),预测条件概率最大的y。p(y|x) = p(x,y)/p(x)
    • 生成算法尝试去找到底这个数据是怎么生成的(产生的),然后再对一个信号进行分类。基于你的生成假设,那么那个类别最有可能产生这个信号,这个信号就属于那个类别。
  • 基本思想
    • 无穷样本==》概率密度模型 = 产生模型==》预测
    • 需要去对p(x)建模
  • 算法
    • 隐马尔科夫模型
    • 朴素贝叶斯
    • Markov random fields
    • Bayesian networks
    • Mixtures of Gaussians
  • 应用
    • 传统基于规则的或布尔逻辑系统正被统计方法所代替
    • 医学诊断
  • 优点
    • 实际上带的信息要比判别模型丰富;
    • 研究单类问题比判别模型灵活性强;
    • 生成方法可以还原出联合概率分布P(Y|X),而判别方法不能。
    • 生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快的收敛于真实模型
    • 当存在隐变量时,仍可以用生成方法学习。此时判别方法就不能用
  • 缺点
    • 容易会产生错误分类;
    • 学习和计算过程比较复杂。

两者的对比

  • 由生成模型可以得到判别模型,但由判别模型得不到生成模型。
  • 本质区别
    • discriminative model 估计的是条件概率分布(conditional distribution)p(class|context)
    • generative model 估计的是联合概率分布(joint probability distribution)p()
  • 训练时,二者优化准则不同
    • 生成模型优化训练数据的联合分布概率;
    • 判别模型优化训练数据的条件分布概率,判别模型与序列标记问题有较好的对应性。
  • 对于观察序列的处理不同
    • 生成模型中,观察序列作为模型的一部分;
    • 判别模型中,观察序列只作为条件,因此可以针对观察序列设计灵活的特征。
  • 训练复杂度不同
    • 判别模型训练复杂度较高。
  • 是否支持无指导训练
    • 生成模型支持无指导训练。

案例

  • 例子1
    • 描述
      • 四个形式为(x,y)的样本。(1,0), (1,0), (2,0), (2, 1)
    • 生成模型
      • P(x=1,y=0) = 1/2
      • P(x=1,y=1) = 0
      • 我们发现P(x=1,y=0)的概率要比P(x=1,y=1)的概率大,所以,我们判断:x=1时,y=0。
    • 判别模型
      • P(y=0|x=1) = 1
      • P(y=1|x=1) = 0
      • 同样,P(y=0|x=1)要比P(y=1|x=1)大,所以,我们判断:x=1时,y=0。
  • 例子2
    • 描述
      • 再假如你的任务是识别一个语音属于哪种语言。例如对面一个人走过来,和你说了一句话,你需要识别出她说的到底是汉语、英语还是法语等
    • 生成模型
      • 学习每一种语言,你花了大量精力把汉语、英语和法语等都学会了,我指的学会是你知道什么样的语音对应什么样的语言。然后再有人过来对你哄,你就可以知道他说的是什么语音
    • 判别模型
      • 不去学习每一种语言,你只学习这些语言模型之间的差别,然后再分类。意思是指我学会了汉语和英语等语言的发音是有差别的,我学会这种差别就好了。
  • 例子3
    • 描述
      • 跟踪算法一般来说可以分为两类:基于外观模型的生成模型或者基于外观模型的判别模型。
    • 生成模型
      • 一般是学习一个代表目标的模型,然后通过它去搜索图像区域,然后最小化重构误差。类似于生成模型描述一个目标,然后就是模式匹配了,在图像中找到和这个模型最匹配的区域,就是目标了。
    • 判别模型
      • 将跟踪问题看成一个二分类问题,然后找到目标和背景的决策边界。它不管目标是怎么描述的,那只要知道目标和背景的差别在哪,然后你给一个图像,它看它处于边界的那一边,就归为哪一类。

你可能感兴趣的:(#,机器学习,机器学习,人工智能,生成模型)