生成学习算法 Generative Learning Algorithm
我们之前介绍的分类算法和回归算法,本质上讲是通过函数映射,将输入转化为输出。回归问题是用于解决输出为连续值的问题,分类问题是用于解决输出为离散值的问题,这些称之为分类学习算法。在生成学习算法中,我们采用另一种思路来解决分类问题。
假设我们要进行二分类,生成学习方法通过训练集构建出两个类的概率分布,即计算出在这个分类结果的情况下输入的分布p(x|y),但考虑到我们要将模型应用到测试集,在测试集中,给定输入,我们需要给出对数个输入的分类,即p(y|x)。为了将上述两个概率联系在一起,我们使用贝叶斯公式:
有上式我们可以看出,p(x)和p(y)对我们来说还是未知量。但一般情况而言,分类结果y出现的概率可以事先计算出来(或设定出来),而输入x的概率可理解为训练集的个数m的倒数,即是一样的。当我们使用生成学习算法时,我们希望可以使p(y|x)最大,正如分类学习算法所希望的那样。
由于我们认为输入x发生的概率是相同的,因此可以再推导中消去。同样,如果各个分类结果的概率也是相同的,那我们也可将p(y)这一项消去,公式变为
argmax p(y|x) = argmax p(x|y)
高斯分类分析法 Gaussian Discriminant Analysis
在生成学习算法中我们需要对分布进行建模,一个常用的建模便是认为p(x|y)属于高斯分布。
多元高斯分布 Multivariate Normal Distribution
我们将常见的一维高斯分布推广到高维,则均值由标量变为了一个向量,称为均值向量mean vector;方差也由标量变为了一个矩阵,称为方差矩阵covariance matrix,此时一个高维高斯分布可写为如下形式