X表示特征,y表示预测变量
判别模型:对p(y|x,θ)进行建模,求的是p(y|x,θ)的条件概率。
对于线性回归,或者因变量是连续型变量,假设满足高斯分布模型,目标/损失函数的定义有2种方法:
- 求给定样本最小化误差的平方和,即最小化二乘法,可通过求矩阵的逆来得到θ,但矩阵不一定是可逆的,而且计算量大,一般考虑用梯度下降法或者牛顿法迭代计算,
- 给定样本的最大似然。
2种方法殊途同归,可以将最大似然理解为是对最小化二乘法的概率解释。
对于分类算法,比如逻辑回归模型,因变量y满足伯努利分布,目标是求出P(y=1|x;θ),P(y=0|x,θ)=1-P(y=1|x;θ),使用最大似然算法进行建模,但用的是梯度上升法算法/牛顿法迭代计算。
常见的判别模型有线性回归、对数回归、线性判别分析、支持向量机、boosting、条件随机场、神经网络等。
生成学习:对P(x|y)和p(y)进行建模。即在给定了样本所属的类的条件下,对样本特征建立概率模型。根据贝叶斯公式,
我们关注的是y的离散值结果中哪个概率大,并不关心具体的概率,上式改写为:
p(x|y)称为后验概率,p(y)称为先验概率。
由P(x,y)=p(x|y)*p(y),因此有时称判别模型求的是条件概率,生成模型求的是联合概率。
常见的生成学习模型有隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等。
判别模型和生成模型的对比
(1)训练时,二者优化准则不同
(2)对于观察序列的处理不同
(3)训练复杂度不同
(4)是否支持无指导训练