(4) 线性分类 Linear Classification (b) : Logistic 回归,判别式与生成式模型,广义线性模型 - PRML && CS229

———— 满目山河空念远,落花风雨更伤春,不如怜取眼前人。

Logistic 回归

上一篇文章讨论了几种线性判别函数,这些判别函数都是将分类的推断及决策合而为一的,如果分成两个阶段讨论,针对决策,很自然联想使用概率表示分类的可能性,所以我们可以将分类结果映射到区间 [公式] 上再决策。在原始输入空间中有很多已知类型的数据点,我们需要建立合适的模型对这些点进行区分。最简单的情况就是这些数据点是线性可分的,利用上一章的线性判别函数就能区分,但是在一些复杂空间,类条件概率密度 [公式] 有相当大的重叠,也就是对于某些数据点不能简单粗暴的认为属于或不属于某一类,我们需要一种更加细致定量的概率方法来表示,所以才引入对后验概率的建模。在此引入逻辑回归 (logistic regression) ,将输出映射至 [公式] 的概率空间上,logistic 函数一般形式如下,后续讨论会发现 logistic 回归一些特性很有助于我们分析分类问题。

[公式]

1. 判别式模型 Logistic 回归

我们平常所熟知的利用 logistic 回归做分类一般都是判别式模型。上文已经讨论过,判别式模型就是根据直接对后验概率 [公式] 精确建模,这种方法很直观,准确率高,可直接学习求得参数,简化学习。

在线性回归一节中提到,对输入向量做非线性变换可以提取出某些高级特征,所以我们可以引入一些非线性函数做分类。⾮线性变换不会消除数据类型重叠,甚至会增加重叠的程度,但恰当地选择⾮线性变换能够让后验概率的建模过程更简单。在此选择 logistic sigmoid 函数,下图给出了这个函数的图像。“sigmoid” 的意思是 “S形”。这种函数有时被称为“挤压函数”,因为它把整个实数轴映射到了⼀个有限的区间中

图片来自 CS229 lecture 3 讲义。

它满⾜下⾯的对称性

[公式]

1.1 最大似然参数估计

我们现在使⽤最⼤似然⽅法来确定 logistic 回归模型的参数。为了完成这⼀点,我们要使⽤ logistic sigmoid 函数的导数,它可以很⽅便地使⽤sigmoid函数本⾝表示如下:

[公式]

先考虑最简单的二分类情形,我们定义输入 [公式] 在类 [公式] 上的后验概率为

[公式]

那么 [公式] ,此时整体分布恰好是一个伯努利分布 (Bernoulli distribution)。将上式合并,取类别标签 [公式] 分别对应 [公式] ,那么 [公式] 。更一般地,对于⼀个数据集 [公式] ,包含 [公式] 个相互独立的输入数据 [公式] 和标签 [公式] ,其中 [公式]  [公式] ,此时似然函数可以写成

[公式]

与之前⼀样,我们可以通过取似然函数负对数的⽅式,定义⼀个误差函数,由此引入交叉熵 (cross-entropy) 误差函数,形式为

[公式]

两侧取误差函数关于 [公式] 的梯度,结合公式 (3) 将涉及到 logistic sigmoid 的导数的因⼦消去,我们有

[公式]

可见数据点 [公式] 对梯度的贡献为⽬标值和模型预测值之间的误差 [公式] 与输入向量 [公式] 相乘,这种函数形式与线性回归模型中的平⽅和误差函数的梯度形式完全相同。

最⼤似然法对于线性可分的数据集会产⽣严重的过拟合现象,这是由于最⼤似然解出现在超平⾯对应于 [公式] 一阶导数最大的情况,由于线性可分的数据集具有如下性质:

[公式]

等价于 [公式] ,最⼤似然解把数据集分成两类,一阶导为零等价于 [公式]  [公式] 趋向于⽆穷⼤。这种情况下,logistic sigmoid 函数在特征空间中变得⾮常陡峭,对应于⼀个跳变的阶梯函数,使得每⼀个来⾃类别 [公式] 的训练数据都被赋予⼀个后验概率 [公式] 。最⼤似然法⽆法区分某个解优于另⼀个解,并且在实际应⽤中哪个解被找到将会依赖于优化算法的选择和参数的初始化(大多数模型都这样)。即使训练数据远大于参数数量,只要数据线性可分,这个问题就会出现。可以通过引⼊类先验概率,然后寻找 [公式] 的最大后验解,或者给误差函数增加⼀个正则化项, 这种奇异性就可以被避免。

1.2 牛顿法-迭代重加权最⼩平⽅

在线性回归第二篇文章中曾讨论了利用误差函数二阶导更新梯度的牛顿法 (Newton-Raphson)。线性回归的最小平方误差函数是关于参数 [公式] 的二次凸函数,最大似然解具有解析解,对应于在牛顿法中误差函数是一个正定二次函数,应用一次就能跳到最小值点;logistic 回归模型的误差函数中不具备解析解,但它是一个凸函数仍可以局部近似成正定二次函数,因此也存在唯一最小值。牛顿法对权值的更新形式为

[公式]

其中 [公式] 是一个 Hessian 矩阵,它的元素由 [公式] 关于 [公式] 的二阶导构成。将牛顿法应用到交叉熵误差函数上,误差函数的梯度和 Hessian 矩阵为

[公式]

[公式] 由公式 (3) 所得,仔细观察会发现,如果把误差函数换成最小平方误差,Hessian 矩阵就可以消掉 [公式] ,代入公式 (9),就可以得出最小平方误差的解析解形式,对应于第三篇文章解析法的基函数取 [公式] ,所以解析法和牛顿法在二次凸函数上的应用原理是相同的。再回到交叉熵函数,我们引入一个 [公式] 对角矩阵 [公式] ,元素为 [公式] ,看到 Hessian 矩阵不再是常量,⽽是通过权矩阵 [公式] 仍含有 [公式] ,对应于误差函数不是⼆次函 数的事实。

由于 [公式] ,因此对于任意向量 [公式] 都有 [公式] ,因此 Hessian 矩阵 [公式] 是正定的,误差函数是 [公式] 的⼀个凸函数,从⽽有唯⼀的最⼩值。这样 logistic 回归模型更新公式就如下

[公式]

由于权矩阵 [公式] 不是常量,⽽是依赖于参数向量 [公式] , 因此我们必须迭代地应⽤牛顿法的解,每次使⽤新的权向量 [公式] 计算⼀个修正的权矩阵 [公式] ,这个算法也被称为迭代重加权最⼩平⽅ (iterative reweighted least squares)。logistic 回归模型 [公式] 的均值和⽅差分别为

[公式]

[公式] 时, [公式] ,所以对角矩阵 [公式] 也可以看成⽅差。我们可以把迭代重加权最⼩平⽅看成变量空间 [公式] 的线性问题的解。这样, [公式] 的第 [公式] 个元素 [公式] 就可以简单看成这个空间中的有效⽬标值。这里引入 logistic sigmoid 的反函数

[公式]

[公式] 可以通过对当前操作点 [公式] 附近的 logistic sigmoid 函数的局部线性近似的⽅式得到。

[公式]

2. 生成式模型 Logistic 回归

现在讨论分类问题的概率生成式模型,生成式模型对类条件概率密度 [公式] 和类先验概率 [公式] 建模,然后通过贝叶斯定理计算后验概率 [公式] 。不难看出,生成模型只需进行统计技术来获得模型,且对噪声有更好的鲁棒性;但由于需要人为设定先验分布,因此生成模型准确率并不高。

同样先只考虑二分类情形,我们直接应用贝叶斯定理对类别 [公式] 的后验概率建模

[公式]

其中定义了 [公式] 。虽然我们只是把后验概率写成了⼀个等价的形式,引入logistic sigmoid 函数似乎没有意义,然⽽,假设 [公式] 的函数形式相当简单,如上一节判别式模型所讲,考虑 [公式]  [公式] 的线性函数的情形,这种情况下,后验概率由⼀个通⽤的线性模型确定,下文会予以证明。对于 [公式] 的情形,有

[公式]

其中 [公式] ,上式也被称为归⼀化指数 (normalized exponential),可以被当做 logistic sigmoid 函数对于多类情况的推⼴,也就是我们很熟悉的 Softmax 函数,因为它表示 “max” 函数的⼀个平滑版本,因为如果对所有的 [公式] 都有 [公式] ,那么 [公式]  [公式] 

假设类条件概率密度是⾼斯分布,然后求解后验概率。这种生成式算法在 CS229 中也称作高斯判别模型 (Gaussian discriminative model)。⾸先,我们假定所有类别的协⽅差矩阵相同,这样类别 [公式] 的类条件概率为

[公式]

考虑二分类情形,我们直接将上述类条件概率密度代入 [公式] ,假设类概率的协⽅差矩阵相同,可消除⾼斯概率密度的指数项中 [公式] 的⼆次型。最后可以将公式化简为 [公式] ,其中

[公式]

从⽽得到了参数为 [公式] 的线性函数的 logistic sigmoid 函数,最终求得的决策边界对应于后验概率 [公式] 为常数的决策⾯,因此由 [公式] 的线性函数给出,从⽽决策边界在输⼊空间是线性的。先验概率密度只出现在偏置参数 [公式] 中,因此先验的改变的效果是平移决策边界,即平移后验概率中的常数轮廓线。

下图给出了⼆维输⼊空间 [公式] 的结果,左图给出了两个类别的类条件概率密度,分别⽤红⾊和蓝⾊表示。右图给出了对应后验概率分布 [公式] ,它由 x 的线性函数的 logistic sigmoid 函数给出。右图的曲⾯的颜⾊中,红⾊所占的⽐例由 [公式] 给出,蓝⾊所占的⽐例由 [公式] 给出。

图片来自 Bishop PRML. Figure 4.10.

2.1 最大似然参数估计

⼀旦我们具体化了类条件概率密度 [公式] 的参数化函数形式,我们就能够使⽤最⼤似然法确定参数的值,以及先验类概率 [公式] 。这需要数据集由观测 [公式] 以及对应的类别标签组成。

依然只考虑二分类的情形,每个类别都有⼀个⾼斯类条件概率密度,且协⽅差矩阵相同。给定包含 [公式] 个数据点的数据集 [公式] 。取类别标签 [公式] 分别对应 [公式]。我们把先验概率记作 [公式] ,从而 [公式] 。对于⼀个来⾃类别 [公式] 的数据点 [公式] ,有

[公式]

于是似然函数为

[公式]

仍然最大化负对数似然函数,依次对四个参数 [公式] 求偏导,先考虑关于 [公式] 的最大化,对数似然函数与 [公式] 相关的项为 [公式] ,令其关于 [公式] 的导数等于零,整理可得

[公式]

其中 [公式] 分别表示类别 [公式] 的数据点总数,因此, [公式] 的最⼤似然估计就是类别 [公式] 的点所占的⽐例,这与我们预期的相同。

接着考虑关于 [公式] 的最⼤化。与之前⼀样,我们把对数似然函数中与 [公式] 相关的量挑出来,即 [公式] ,令其关于 [公式] 的导数等于零,整理可得

[公式]

这就是属于类别 [公式] 的输⼊向量 [公式] 的均值。通过类似的推导,对应 [公式] 的结果为

[公式]

最后,考虑协⽅差矩阵 [公式] 的最⼤似然解,选出与 [公式] 相关的项 [公式] ,使⽤⾼斯分布的最⼤似然解的标准结果可得 [公式] ,其中

[公式]

它表示对⼀个与两类都有关系的协⽅差矩阵求加权平均。拟合类⾼斯分布的⽅法对于离群点并不鲁棒,因为⾼斯的最⼤似然估计是不鲁棒的。

2.2 生成式模型与判别式模型

对于一般的线性判别模型,如果输入向量 [公式] 具有 [公式] 维特征,那么这个模型有 [公式] 个可调节参数。对于上述二分类的生成式模型,如果我们使⽤最⼤似然⽅法调节⾼斯类条件概率密度,那么我们有 [公式] 个参数来描述均值, 以及 [公式] 个参数来描述协⽅差矩阵,仍然假设协⽅差矩阵相同,算上类先验,参数总数量为 [公式] ,这随着 [公式] 的增长以⼆次的⽅式增长。这和判别式模型对于参数数量 [公式] 的线性依赖不同,对于大的 [公式] 值,生成式模型参数量通常很大。可以看出,生成式模型相比判别式模型,建模更加复杂,使用也比较受限。

通过公式 (17) 我们已经发现,逻辑回归的判别式模型和生成式模型有着相同的形式,但对于相同的数据集两种算法会给出不同的边界,有一个结论是:如果 [公式] 属于多元高斯分布且共享协方差矩阵 [公式] ,那么 [公式] 一定是逻辑函数,反之不成立。在这些假设都正确的前提下,生成式模型效果往往更好,特别是对于较少的训练集,也可以取得更好的效果。相反,判别式模型由于假设相对简单,主要靠大量数据集训练,因此对于错误的模型假设不那么敏感。

扩展:广义线性模型 (Generalized Linear Model)

前面所介绍的线性模型实际上都是一个模型族的特例,这个模型族被称为广义线性模型 (generalized linear model) ,首先需要介绍相关的指数族分布。

1. 指数族分布 (The Exponential Family)

前文中,我们使用最大似然法估计线性回归和线性分类模型参数时,都需要表示出目标值或向量的概率分布来建模,其中线性回归符合正态分布 [公式] , logistic 回归对应伯努利分布 [公式] ,大部分概率分布(⾼斯混合分布除外)都是⼀⼤类被称为指数族 (exponential family) 概率分布的具体例⼦,它们有许多共同的性质。参数为 [公式] 的变量 [公式] 指数族分布可定义为具有下⾯形式的概率分布的集合(此处采用 Bishop PRML 中的写法,与 CS229 讲义中表示方法略有不同)

[公式]

其中 [公式] 是输入向量(或标量亦可), [公式] 被称为概率分布的⾃然参数 (natural parameters), [公式] 是关于 [公式] 的某个函数,被称为充分统计量 (sufficient statistic),一般情况下我们仍取 [公式] 。函数 [公式] 可以被看成系数,它确保了概率分布的归⼀化,满⾜

[公式]

下面我们来证明一下前文涉及的概率分布属于指数族分布。

1.1 伯努利分布

伯努利分布可以表示成

[公式]

可以看出 [公式] ,反之 [公式] ,正好是 logistic sigmoid 函数。使用公式 (28) 的标准型就可将伯努利分布写成下面的形式

[公式]

其中利用了 logistic sigmoid 的对称性 [公式] ,并有 [公式]  [公式]  [公式] 

1.2 多项分布

接下来考虑单⼀观测 [公式] 的多项式分布,形式为

[公式]

 [公式] ,我们有

[公式]

需要注意参数 [公式] 不是相互独⽴的,因为要满⾜以下限制

[公式]

因此给定任意 [公式] 个参数 [公式] ,剩下参数就固定了。一般情况下去掉这个限制⽐较⽅便。如果考虑此限制,我们就只⽤ [公式] 个参数来表示这个分布。使⽤公式 (34) 的关系,把 [公式] ⽤剩余的 [公式] 表示,其中 [公式] ,这样就只剩下了 [公式] 个参数。剩余的参数仍满⾜以下限制

[公式]

关于公式 (32),我们进一步可以写成

[公式]

整理可得 [公式] ,也就是常见的 Softmax 函数。在这种表达形式下,多项式分布为

[公式]

1.3 高斯分布

对于⼀元⾼斯分布,我们有

[公式]

 [公式]  [公式]  [公式]  [公式] ,高斯分布就可以转化为标准指数族分布的形式。

1.4 最⼤似然与充分统计量

考虑⽤最⼤似然法估计公式 (28) 给出的⼀般形式的指数族分布的参数向量 [公式] 的问题。对公式 (29) 两侧求梯度,得

[公式]

重新排列并再次使用公式 (29),可得

[公式]

[公式] 的协⽅差可以根据 [公式] 的⼆阶导表达,对于⾼阶矩的情形也类似。因此,如果我们能对⼀个来⾃指数族分布的概率分布进⾏归⼀化,那么我们总能通过简单的求微分的⽅式找到它的矩。

现在考虑⼀组独⽴同分布的数据 [公式] 。对于这个数据集,似然函数为

[公式]

取负对数似然函数并令关于 [公式] 的导数等于零,我们可以得到最⼤似然估计 [公式] 满⾜的条件

[公式]

原则上可以通过解这个⽅程来得到 [公式] 。我们看到最⼤似然估计的解只通过 [公式] 对数据产⽣依赖,因此这个量被称为的充分统计量,所以最大似然解只依赖于充分统计量。对伯努利分布,函数 [公式] ,因此我们只需要关注数据点 [公式] 的和即可。⽽对于⾼斯分布, [公式] ,因此我们应同时关注 [公式] 的和以及 [公式] 的和。

如果考虑极限 [公式] ,那么公式 (43) 的右侧变成了 [公式] , 通过与公式 (13) ⽐较,可以看到在这个极限的情况下, [公式] 与真实值 [公式] 相等。

2. 构建广义线性模型 (Constructing Generalized Linear Model)

正如伯努利分布,多项分布,高斯分布与指数族分布的关系一样,线性回归,逻辑回归等也是一个更为广泛的广义线性模型的例子。为方便和以前公式对照,指数族分布对应的应该是目标值 [公式] ,所以下面讨论需要将 [公式] 替换成 [公式] ,另外将 [公式] 定义为线性模型的输入,并令 [公式] 

广义线性模型的构建需要基于以下三条假设:

  1. [公式] 符合以 [公式] 为参数的指数族分布。
  2. 给定输入 [公式] ,我们的目标是预测 [公式] (注意这里将第一节的 [公式] 全部用目标值 [公式] 代替)的理想值,一般取 [公式] ,正好是目标值。此时 [公式] 应满足 [公式] 
  3. 自然参数 [公式] 和输入 [公式] 满足线性关系 [公式]

在指数族分布的推导过程中,我们已经发现,如果认为上述三条假设成立,我们已经得出了相应的 logistic sigmoid 函数,softmax 函数,以及更一般的线性函数,分别对应二分类,多分类,以及线性回归的基础模型,所以他们都属于广义线性模型。

至此,线性分类也告一段落,虽然现在主流 deep learning 的任务都是以分类为主,但是成熟的模型体系从训练到应用似乎都不用了解这些基础的分类算法,然而那些高级算法总归还是脱胎于这些基础的理论,扎实的基本功对于提高学科上限还是很重要的。下篇文章将介绍神经网络。