到目前为止,我们讨论的学习算法都是直接对 p(y∣x;θ) 建模,即对于给定的x,y的条件分布,例如之前提到的逻辑回归。这里我们将讨论一种不同类型的学习算法。
学习算法可以分为两种,一种是尝试去直接学习得到 p(y∣x) (例如逻辑回归),或者尝试去学习直接将输入映射到0或1的方法(例如感知器算法),这种算法被称为判别学习算法;而另外一种学习算法被称为生成学习算法,这种算法会尝试对 p(x∣y) (以及 p(y) )建模。
当我们为
p(y)
(被称为class priors) 和
p(x∣y)
建模后,我们的算法会使用贝叶斯定理来计算给定x后y的后验概率:
这里,分母可以通过
p(x)=p(x∣y=1)p(y=1)+p(x∣y=0)p(y=0)
来得到,注意到对于分类问题,我们需要对每种y的情况分别进行建模。当有一个新的x时,计算每个y的后验概率,并取概率最大的那个y。而由于只需要比较大小,
p(x)
对于大家都是一样的,所以可以忽略分母,得到下式:
高斯判别分析
我们学习的第一个生成学习算法叫高斯判别分析,在这个模型中,我们会假设 p(x∣y) 属于多元正态分布,在介绍GDA之前,首先简单介绍一下多元正态分布的属性。
多元正态分布
多元正态分布是在n维空间中的,其参数有:
均值向量:
μ∈ℝn
协方差矩阵:
Σ∈ℝn×n
,
Σ≥0
对称且为半正定(所有特征值均不小于零)。
分布记作
(μ,Σ)
,概率密度公式为:
上述等式中, |Σ| 表示 Σ 的行列式。
对于一个属于多元正态分布 (μ,Σ) 的随机变量 X ,根据期望与方差的计算公式可以得到:
下面给出一些正态(高斯)分布的密概率度图像(二元):
左边的图显示的分布均值为0(
2×1
的向量),协方差矩阵为
I
(
让我们来看看更多的例子。
上图表示的分布均值均为0,对应的协方差矩阵为:
左边的图就是标准正态分布,而可以看到随着非对角线上数值的增大,分布在45度方向上压缩的幅度越大。通过下面的轮廓图可以更清楚地展现这个特点。
下面是最后一组例子(改变 Σ 的值)
上图对应的协方差为:
从左图和中图可以看到,随着元素值的减小(绝对值变大),分布在相反的方向上“压缩”得越明显。最后,右图中我们改变了对角线上的元素值,分布变得更趋近于椭圆。
在最后一组例子中,令 Σ=I ,通过改变 μ ,我们可以移动分布的中心(均值)。
总而言之,多元正态分布与正态分布一样是钟型的曲线,参数 μ 会影响分布的位置(平移),而 Σ 会影响分布的形状。
高斯判别分析模型
对于一个分类问题,输入变量 x 是连续随机变量,我们可以使用高斯判别分析(GDA)模型,对
p(x∣y)
使用多元正态分布建模,模型如下:
其分布如下:
这里模型的参数包括 ϕ,Σ,μ0,μ1 ,注意两个分布共享同一个协方差矩阵。数据的对数似然函数如下:
通过最大化 ℓ ,得到参数的极大似然估计为:
用图形来表示,该算法可以表示为下图:
图中展示的是训练集,求得的高斯分布以及拟合至数据中,将数据分为了两类,注意两个高斯分布的形状与方向相同,因为它们共享同一个协方差矩阵,但是它们的均值不同。此外图中的直线表示决策边界: p(y=1|x)=0.5 ,在该边界的一侧,我们预测 y=1 是最可能的输出,在另一侧,则预测 y=0。
讨论:高斯判别分析与逻辑回归
高斯判别分析与逻辑回归之间有着有趣的关系。如果我们将 p(y=1∣x;ϕ,μ0,μ1,Σ) 表示为 x 的函数,可以得到:
这与逻辑回归的形式完全相同。但一般来说,对于相同的数据集两种算法会给出不同的边界,究竟哪一个更好呢?
如果 p(x∣y) 属于多元高斯分布(共享 Σ ),那么 p(y∣x) 一定是逻辑函数。但是反之则不成立。这一结论表明高斯判别分析相较于逻辑回归提出了更强 的假设。如果这些假设都是正确的,那么高斯判别分析得到的结果会更好,是更好的模型。特别地,当 p(x∣y) 属于多元高斯分布(共享 Σ ),GDA是渐近有效的。这说明在数据量比较有限的情况下,没有算法能比GDA的表现更好。因此,在这种情况下,GDA相比逻辑回归是一个更好的算法,即使对于较少的训练集,也可以取得更好的效果。
相反,因为进行了更弱的假设,所以逻辑回归有更好的鲁棒性,对于错误的模型假设不那么敏感。有很多不同的假设会导致 p(y∣x) 是逻辑函数的形式,比如泊松分布。但是如果我们对于这样的数据使用 GDA,那么结果会变得不可预测。
总结:GDA进行了更强的模型假设并且数据有效性更高(需要更少的数据来学习),但其前提条件是模型假设正确或近似正确。 逻辑回归进行较弱的假设,对于模型假设偏离的鲁棒性更好。特别地,如果数据集实际上不是高斯分布,那么在数据有限的情况下,逻辑回归一般会表现得比GDA更好。因此,实际中使用逻辑回归的情况比GDA多得多。