• 判别模型 判别模型的核心就是一个条件概率 P(y｜x)，代表了随机变量y在随机变量x的条件下的一个条件概率。这个概率分布在实际应用场景上联系了观察到的随机变量x和预测目标随机变量y，也就意味着可以通过观察到的x来...
判别模型
判别模型的核心就是一个条件概率 P(y｜x)，代表了随机变量y在随机变量x的条件下的一个条件概率。这个概率分布在实际应用场景上联系了观察到的随机变量x和预测目标随机变量y，也就意味着可以通过观察到的x来预测y的分布。这个模型的本质是不同标签对应的随机变量条件概率的差别。


展开全文  机器学习
• 生成模型和判别模型Intro 介绍 Recently I gave a presentation at work, where I explained how I solved some problem using Conditional Random Fields (CRF). And, since CRF was not so much known to my ...
生成模型和判别模型Intro 介绍
Recently I gave a presentation at work, where I explained how I solved some problem using Conditional Random Fields (CRF). And, since CRF was not so much known to my colleagues, I had a couple of slides devoted to the theory behind this algorithm. As I prepared the theory slides, I felt a duty to compare CRF with a conceptually similar algorithm, Hidden Markov Model (HMM). CRF is known to be a discriminative model and HMM is a generative model. I had to refresh my knowledge about this categorisation of supervised machine learning methods, especially generative models. Now I would like to share my understanding of the difference between generative and discriminative models in simple terms. 最近，我在工作中做了一个演讲，向我解释了如何使用条件随机场(CRF)解决一些问题。 而且，由于我的同事对CRF知之甚少，所以我有几张幻灯片专门讨论了该算法背后的理论。 在准备理论幻灯片时，我感到有责任将CRF与概念上类似的算法，即隐马尔可夫模型(HMM)进行比较 。 众所周知，CRF是一种判别模型，而HMM是一种生成模型。 我必须刷新有关监督式机器学习方法(尤其是生成模型)的分类的知识。 现在，我想简单地分享一下我对生成模型和区分模型之间差异的理解。
Generative models are a wide class of machine learning algorithms which make predictions by modelling joint distribution P(y, x). 生成模型是一类广泛的机器学习算法，它们通过对联合分布P(y，x)建模来进行预测。
Discriminative models are a class of supervised machine learning models which make predictions by estimating conditional probability P(y|x). 判别模型是一类监督的机器学习模型，通过估计条件概率P(y | x)进行预测。
In order to use a generative model, more unknowns should be solved: one has to estimate probability of each class and probability of observation given class. These probabilities are used to compute joint probability, and finally, joint probability can be used as a substitute for conditional probability to make predictions. 为了使用生成模型，应该解决更多的未知数：必须估计每个类别的概率和给定类别的观察概率。 这些概率用于计算联合概率，最后，联合概率可以用作条件概率的替代来进行预测。 Generative model has more steps than discriminative model in order to estimate conditional probability P(y|x)The discriminative model takes a shorter way: it simply estimates conditional probability directly. 判别模型采用了更短的方法：它只是直接估算条件概率。
There are many pros and cons to each of the models. I just note that generative model can be used to generate new samples, but it requires more data. Discriminative model often superior than generative model, given the same amount of data, but it does not know about dependencies between features, because it is irrelevant for prediction. Therefore discriminative model can not generate new samples. 每个模型都有很多优点和缺点。 我只是注意到生成模型可用于生成新样本，但是它需要更多数据。 在给定相同数据量的情况下，判别模型通常优于生成模型，但它不了解要素之间的依赖性，因为它与预测无关。 因此，判别模型无法生成新样本。
Now let’s take a closer look at the concept of generative models. 现在，让我们仔细看看生成模型的概念。
Generative model 生成模型
As I showed earlier, to make predictions, conditional distribution P(y|x) is enough. But since P(y|x) = P(y, x) / P(x), where P(x) is constant for the given x and all possible y, it is valid to use joint distribution P(y, x) to make predictions. 如我先前所示，要进行预测，条件分布 P(y | x) 就足够了。 但是由于 P(y | x)= P(y，x)/ P(x) ，其中 P(x) 对于给定 x 和 所有可能的 y 都是常数 ，因此使用联合分布 P(y，x) 是有效的 做出预测。 By modelling joint distribution P(y, x) is meant that for each pair (yᵢ, xᵢ) a probability P(yi, xi) is known (modelled). At the beginning it was a bit difficult for me to understand how it is even possible — the range of possible values of X might be enormous, so it’s gonna be unrealistic to suggest probabilities for each xi, leave alone pair (yi, xi). How is it supposed to be done? 通过对联合分布P(y，x)进行建模，意味着对于每一对( yᵢ，xᵢ) ，已知概率P(yi，xi) (已建模)。 刚开始时，我很难理解它的可能性-X的可能值范围可能很大，因此建议每个xi的概率，而对( yi ， xi)单独给出概率将是不现实的。 应该怎么做？
First. Bayes theorem! It breaks computation of joint probability P(y,x) into computation of two other types of probabilities: probability of class, P(y), and probability of observation given class, P(x|y). 第一。 贝叶斯定理！ 它将联合概率P(y，x)的计算分解为另外两种类型的概率的计算：类概率P(y)和给定类观察概率P(x | y)。
P(y, x) = P(y) * P(x|y) P(y，x)= P(y)* P(x | y)
What benefits does it give? This way it is at least easier to figure out probability P(y), because it can be estimated from the dataset by computing class frequencies. P(x|y) is trickier, because usually x is not just one feature, but a set of features: x = xi, …, xn, which might have dependencies between each other. 它有什么好处？ 这样，至少可以容易地找出概率P(y) ，因为可以通过计算类别频率从数据集中进行估计。 P(x | y)比较棘手，因为通常x不仅是一个特征，而且是一组特征： x = xi，…，xn ，它们之间可能存在依赖关系。
P(x|y) = П P(xi|y, x1, xi-1, xi+1, xn) P(x | y)=ПP(xi | y，x1，xi-1，xi + 1，xn)
Often the dependencies between the features are not known, especially when they appear in complex constellations (y, x1, xi-1, xi+1, xn). 通常，这些特征之间的依存关系是未知的，尤其是当它们出现在复杂的星座( y，x1，xi-1，xi + 1，xn)中时 。
So what should be done to estimate P(x|y)? For this, there is the following trick: 那么，应该怎么做才能估计P(x | y)呢？ 为此，有以下技巧：
Second. Make wild assumptions! Or just some assumptions which make estimation of P(x|y) tractable. Naive Bayes classifier can serve as a perfect example of a generative model with such assumption, which makes computation of P(x|y) easier. Namely, it has independence assumption between the features xi, …, xn. 第二。 做出疯狂的假设！ 或者只是使P(x | y)的估算变得容易的一些假设。 在这种假设下，朴素贝叶斯分类器可以用作生成模型的完美示例，这使得P(x | y)的计算更加容易。 即，它在特征xi，…，xn之间具有独立性假设。
P(x|y) = П P(xi|y) P(x | y)=ПP(xi | y)
With this relaxation, estimation of P(x|y) is tractable, because every P(xi|y) can be estimated either by finding frequencies of discrete feature xi independently from other features or using Gaussian distribution, if feature xi is continuous. 通过这种放宽， P(x | y)的估计是易于处理的，因为如果特征xi是连续的，则可以通过独立于其他特征找到离散特征xi的频率或使用高斯分布来估计每个P(xi | y) 。
Conclusion 结论
So now you can see that in order to use generative models one should be prepared to estimate two types of probabilities P(y) and P(x|y). At the same time, discriminative models estimate conditional probability P(y|x) directly, which often is more efficient because one does not estimate dependencies between features, as these relationships don’t necessarily contribute to the prediction of the target variable. 因此，现在您可以看到，为了使用生成模型，应该准备一个估计两种类型的概率P(y)和P(x | y)。 同时，判别模型直接估算条件概率P(y | x) ，这通常更为有效，因为人们不估算特征之间的依赖性，因为这些关系不一定有助于目标变量的预测。
翻译自: https://medium.com/@tanyadembelova/introduction-to-generative-and-discriminative-models-9c9ef152b9af生成模型和判别模型
展开全文  python 机器学习 tensorflow nlp 深度学习
• 生成模型 判别模型
机器学习的任务从本质上讲是从输入到输出的一个映射，该映射称之为模型，模型我们可以用决策函数$Y=f(X)$【或$P(Y|X)$】来表示。
在监督学习这些模型的过程中，依据得到决策函数（$P(Y|X)$）方式的不同，可以将模型分为生成模型和判别模型：
生成模型
生成模型是通过贝叶斯公式$P(Y|X)=\frac{P(X,Y)}{P(X)}$的方式来得到决策函数$P(Y|X)$的
典型的生成模型有：
朴素贝叶斯，隐马尔可夫
判别模型
判别模型是由数据直接学习决策函数$P(Y|X)$的【因此，博主认为不通过生成方式的都可以认为是判别模型】
典型的判别模型有：
k近邻，感知机，决策树，逻辑回归，最大熵模型，支持向量机，提升方法和条件随机场
才疏学浅，难免有错误和不当之处，欢迎留言交流批评指正!


展开全文  机器学习 人工智能 生成模型
• ## 生成模型与判别模型

万次阅读 多人点赞 2012-11-17 23:24:42
生成模型与判别模型 zouxy09@qq.com http://blog.csdn.net/zouxy09  一直在看论文的过程中遇到这个问题，折腾了不少时间，然后是下面的一点理解，不知道正确否。若有错误，还望各位前辈不吝指正，以免小弟一错再...
生成模型与判别模型
zouxy09@qq.com
http://blog.csdn.net/zouxy09
一直在看论文的过程中遇到这个问题，折腾了不少时间，然后是下面的一点理解，不知道正确否。若有错误，还望各位前辈不吝指正，以免小弟一错再错。在此谢过。

一、决策函数Y=f(X)或者条件概率分布P(Y|X)
监督学习的任务就是从数据中学习一个模型（也叫分类器），应用这一模型，对给定的输入X预测相应的输出Y。这个模型的一般形式为决策函数Y=f(X)或者条件概率分布P(Y|X)。
决策函数Y=f(X)：你输入一个X，它就输出一个Y，这个Y与一个阈值比较，根据比较结果判定X属于哪个类别。例如两类（w1和w2）分类问题，如果Y大于阈值，X就属于类w1，如果小于阈值就属于类w2。这样就得到了该X对应的类别了。
条件概率分布P(Y|X)：你输入一个X，它通过比较它属于所有类的概率，然后输出概率最大的那个作为该X对应的类别。例如：如果P(w1|X)大于P(w2|X)，那么我们就认为X是属于w1类的。
所以上面两个模型都可以实现对给定的输入X预测相应的输出Y的功能。实际上通过条件概率分布P(Y|X)进行预测也是隐含着表达成决策函数Y=f(X)的形式的。例如也是两类w1和w2，那么我们求得了P(w1|X)和P(w2|X)，那么实际上判别函数就可以表示为Y=
P(w1|X)/P(w2|X)，如果Y大于1或者某个阈值，那么X就属于类w1，如果小于阈值就属于类w2。而同样，很神奇的一件事是，实际上决策函数Y=f(X)也是隐含着使用P(Y|X)的。因为一般决策函数Y=f(X)是通过学习算法使你的预测和训练数据之间的误差平方最小化，而贝叶斯告诉我们，虽然它没有显式的运用贝叶斯或者以某种形式计算概率，但它实际上也是在隐含的输出极大似然假设（MAP假设）。也就是说学习器的任务是在所有假设模型有相等的先验概率条件下，输出极大似然假设。
所以呢，分类器的设计就是在给定训练数据的基础上估计其概率模型P(Y|X)。如果可以估计出来，那么就可以分类了。但是一般来说，概率模型是比较难估计的。给一堆数给你，特别是数不多的时候，你一般很难找到这些数满足什么规律吧。那能否不依赖概率模型直接设计分类器呢？事实上，分类器就是一个决策函数（或决策面），如果能够从要解决的问题和训练样本出发直接求出判别函数，就不用估计概率模型了，这就是决策函数Y=f(X)的伟大使命了。例如支持向量机，我已经知道它的决策函数（分类面）是线性的了，也就是可以表示成Y=f(X)=WX+b的形式，那么我们通过训练样本来学习得到W和b的值就可以得到Y=f(X)了。还有一种更直接的分类方法，它不用事先设计分类器，而是只确定分类原则，根据已知样本（训练样本）直接对未知样本进行分类。包括近邻法，它不会在进行具体的预测之前求出概率模型P(Y|X)或者决策函数Y=f(X)，而是在真正预测的时候，将X与训练数据的各类的Xi比较，和哪些比较相似，就判断它X也属于Xi对应的类。
实际上，说了那么多，也不知道自己表达清楚了没有。那我们是谈生成模型和判别模型，上面到底啰嗦了那么多到底有啥阴谋啊？呵呵，往下说就知道了。

二、生成方法和判别方法
监督学习方法又分生成方法（Generative approach）和判别方法（Discriminative approach），所学到的模型分别称为生成模型（Generative Model）和判别模型（Discriminative Model）。咱们先谈判别方法，因为它和前面说的都差不多，比较容易明白。
判别方法：由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型，即判别模型。基本思想是有限样本条件下建立判别函数，不考虑样本的产生模型，直接研究预测模型。典型的判别模型包括k近邻，感知级，决策树，支持向量机等。
生成方法：由数据学习联合概率密度分布P(X,Y)，然后求出条件概率分布P(Y|X)作为预测的模型，即生成模型：P(Y|X)=
P(X,Y)/ P(X)。基本思想是首先建立样本的联合概率概率密度模型P(X,Y)，然后再得到后验概率P(Y|X)，再利用它进行分类，就像上面说的那样。注意了哦，这里是先求出P(X,Y)才得到P(Y|X)的，然后这个过程还得先求出P(X)。P(X)就是你的训练数据的概率分布。哎，刚才说了，需要你的数据样本非常多的时候，你得到的P(X)才能很好的描述你数据真正的分布。例如你投硬币，你试了100次，得到正面的次数和你的试验次数的比可能是3/10，然后你直觉告诉你，可能不对，然后你再试了500次，哎，这次正面的次数和你的试验次数的比可能就变成4/10，这时候你半信半疑，不相信上帝还有一个手，所以你再试200000次，这时候正面的次数和你的试验次数的比（就可以当成是正面的概率了）就变成5/10了。这时候，你就觉得很靠谱了，觉得自己就是那个上帝了。呵呵，真啰嗦，还差点离题了。
还有一个问题就是，在机器学习领域有个约定俗成的说法是：不要去学那些对这个任务没用的东西。例如，对于一个分类任务：对一个给定的输入x，将它划分到一个类y中。那么，如果我们用生成模型：p(x,y)=p(y|x).p(x)
那么，我们就需要去对p(x)建模，但这增加了我们的工作量，这让我们很不爽（除了上面说的那个估计得到P(X)可能不太准确外）。实际上，因为数据的稀疏性，导致我们都是被强迫地使用弱独立性假设去对p(x)建模的，所以就产生了局限性。所以我们更趋向于直观的使用判别模型去分类。
这样的方法之所以称为生成方法，是因为模型表示了给定输入X产生输出Y的生成关系。用于随机生成的观察值建模，特别是在给定某些隐藏参数情况下。典型的生成模型有：朴素贝叶斯和隐马尔科夫模型等。

三、生成模型和判别模型的优缺点
在监督学习中，两种方法各有优缺点，适合于不同条件的学习问题。
生成方法的特点：上面说到，生成方法学习联合概率密度分布P(X,Y)，所以就可以从统计的角度表示数据的分布情况，能够反映同类数据本身的相似度。但它不关心到底划分各类的那个分类边界在哪。生成方法可以还原出联合概率分布P(Y|X)，而判别方法不能。生成方法的学习收敛速度更快，即当样本容量增加的时候，学到的模型可以更快的收敛于真实模型，当存在隐变量时，仍可以用生成方法学习。此时判别方法就不能用。
判别方法的特点：判别方法直接学习的是决策函数Y=f(X)或者条件概率分布P(Y|X)。不能反映训练数据本身的特性。但它寻找不同类别之间的最优分类面，反映的是异类数据之间的差异。直接面对预测，往往学习的准确率更高。由于直接学习P(Y|X)或P(X)，可以对数据进行各种程度上的抽象、定义特征并使用特征，因此可以简化学习问题。

四、生成模型和判别模型的联系
由生成模型可以得到判别模型，但由判别模型得不到生成模型。

五、再形象点可以吗
例如我们有一个输入数据x，然后我们想将它分类为标签y。（迎面走过来一个人，你告诉我这个是男的还是女的）
生成模型学习联合概率分布p(x,y)，而判别模型学习条件概率分布p(y|x)。
下面是个简单的例子：
例如我们有以下(x,y)形式的数据：(1,0), (1,0), (2,0), (2, 1)
那么p(x,y)是：
y=0   y=1
-----------
x=1 | 1/2   0
x=2 | 1/4   1/4
而p(y|x) 是：
y=0   y=1
-----------
x=1| 1     0
x=2| 1/2   1/2
我们为了将一个样本x分类到一个类y，最自然的做法就是条件概率分布p(y|x)，这就是为什么我们对其直接求p(y|x)方法叫做判别算法。而生成算法求p(x,y)，而p(x,y)可以通过贝叶斯方法转化为p(y|x)，然后再用其分类。但是p(x,y)还有其他作用，例如，你可以用它去生成(x,y)对。

再假如你的任务是识别一个语音属于哪种语言。例如对面一个人走过来，和你说了一句话，你需要识别出她说的到底是汉语、英语还是法语等。那么你可以有两种方法达到这个目的：
1、学习每一种语言，你花了大量精力把汉语、英语和法语等都学会了，我指的学会是你知道什么样的语音对应什么样的语言。然后再有人过来对你哄，你就可以知道他说的是什么语音，你就可以骂他是“米国人还是小日本了”。（呵呵，切勿将政治掺杂在技术里面）
2、不去学习每一种语言，你只学习这些语言模型之间的差别，然后再分类。意思是指我学会了汉语和英语等语言的发音是有差别的，我学会这种差别就好了。
那么第一种方法就是生成方法，第二种方法是判别方法。

生成算法尝试去找到底这个数据是怎么生成的（产生的），然后再对一个信号进行分类。基于你的生成假设，那么那个类别最有可能产生这个信号，这个信号就属于那个类别。判别模型不关心数据是怎么生成的，它只关心信号之间的差别，然后用差别来简单对给定的一个信号进行分类。

六、对于跟踪算法
跟踪算法一般来说可以分为两类：基于外观模型的生成模型或者基于外观模型的判别模型。
生成模型：一般是学习一个代表目标的模型，然后通过它去搜索图像区域，然后最小化重构误差。类似于生成模型描述一个目标，然后就是模式匹配了，在图像中找到和这个模型最匹配的区域，就是目标了。
判别模型：将跟踪问题看成一个二分类问题，然后找到目标和背景的决策边界。它不管目标是怎么描述的，那只要知道目标和背景的差别在哪，然后你给一个图像，它看它处于边界的那一边，就归为哪一类。


展开全文 • 监督学习方法又分生成方法（Generative approach）和判别方法...判别模型：由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型，即判别模型。基本思想是有限样本条件下建立判别函数，不考虑样本的...
• 区别：监督学习模型可分为生成模型与判别模型 优缺点 常见模型 区别：监督学习模型可分为生成模型与判别模型 判别模型直接学习决策函数或者条件概率分布 直观来说，判别模型学习的是类别之间的最优分隔面...
• 参考： 统计方法分析-李航 前言   机器学习的任务一般就是学习一个模型，生成一个模型。对给定的输入预测相应的输出，这个模型的一般形式为决策函数 ： Y = f(X),...一、判别模型 1.1、概念 二、生成模型 ...
• 监督学习方法可以分为生成方法和判别方法，所学习得到的模型分别为生成模型和判别模型。 生成模型定义 生成方法由数据学习联合概率分布P(X,Y)，然后求出条件概率分布P(Y|X)作为预测的模型，即生成模型： 典型... 机器学习
• 概念 生成模型（Generative Modeling）： 学习时先得到 P(x,y)，继而得到 P(y|x)。预测时应用最大后验概率法（MAP）得到预测类别 y。...他们之间有一种联系，生成模型可以得到判别模型，而判别模型不能...  ...