关于回归的线性模型的讨论

1. 回归线性模型综述

这篇文章我们来讨论回归问题。回归问题的目标是在给定D维输入(input) 变量x的情况下,预测一个或者多个连续目标(target)变量t的值。

典型的回归问题的例子是:多项式曲线拟合问题。

多项式是被称为线性回归模型的一大类函数的一个具体的例子。线性回归模型有着可调节的参数,具有线性函数的性质。

线性回归模型的最简单的形式也是输入变量的线性函数。

但是,通过将一组输入变量的非线性函数进行线性组合,我们可以获得一类更加有用的函数,被称为基函数(basis function)。这样的模型是参数的线性函数,这使得其具有一些简单的分析性质,同时关于输入变量是非线性的。

给定一个由N个观测值{xn}组成的数据集,其中n = 1, . . . , N,以及对应的目标值{tn},我们的目标是预测对于给定新的x值的情况下,t的值。

对于这个目标,有2个不同的实现方法:

  • 判别式方法:直接建立一个适当的函数y(x),对于新的输入x,这个函数能够直接给出对应的t的预测。
  • 生成式方法:从一个概率的观点来看,我们的目标是对预测分布p(t | x)建模,因为它表达了对于每个x值,我们对于t的值的不确定性。从这个条件概率分布中,对于任意的x的新值,我们可以对t进行预测。常用的概率预测方法是极大似然估计,这种方法等同于最小化一个恰当选择的损失函数的期望值。

 

2. 线性基函数模型

回归问题的最简单模型是输入变量的线性组合:

其中 x = (x1 , . . . , xD)T 。这通常被简单地称为线性回归(linear regression)

这个模型的关键性质是它是参数w0, . . . , wD的一个线性函数。但是,它也是输入变量xi的一个线性函数,这给模型带来的极大的局限性。

因此我们这样扩展模型的类别:将输入变量扩展为任意的非线性函数组合,形式为:

其中φj(x)被称为基函数(basis function)。通过把下标 j 的最大值记作M-1,这个模型中的参数总数为M。 

参数w0使得数据中可以存在任意固定的偏置,这个值通常被称为偏置参数(bias parameter)。通常,定义一个额外的虚“基函数”φ0(x) = 1是很方便的,这时:

其中w = (w0, . . . , wM−1)T 且φ = (φ0, . . . , φM-1)T

在许多模式识别的实际应用中,我们会对原始的数据变量进行某种固定形式的预处理或者特征抽取。这里的基函数{φj(x)}代表了特征工程后的单个特征向量维度,如果我们不做任何特征工程的话,基函数就是原始的某个数据向量维度。

通过使用非线性基函数,我们能够让函数y(x, w)成为输入向量x的一个非线性函数。但是,形如下式

的函数仍然被称为线性模型,因为这个函数是w的线性函数

正是这种关于参数的线性,极大地简化了对于这列模型的分析。 

在这篇文章中讨论的多项式拟合的例子是这个模型的一个特例,那里有一个输入变量x,基函数是x的幂指数的形式,即φj(x) = xj

对于基函数,有许多其他的选择,例如:

其中 μj 控制了基函数在输入空间中的位置,参数 s 控制了基函数的空间大小。这种基函数通常被称为“高斯”基函数。

另一种可能的选择是sigmoid基函数,形式为:

其中σ(a)是logistic sigmoid函数,定义为:

下图说明了基函数的不同选择情况:

左图是多项式基函数,中图是形式为高斯基函数,右图是sigmoid基函数

本章中的大部分讨论都与基函数的选择无关。我们的大部分讨论将会同等地适用于基函数向量φ(x)的形式为φ(x) = x的情形。

因此,为了保持记号的简洁,我们把注意力集中于单一目标变量t的情形。

 

3. 损失函数

0x1:最大似然与最小平台损失函数的等价性

我们已经知道,回归线性模型下的最小误差解,等价于高斯噪声模型的假设下的最大似然解。这个章节,我们来更加详细地讨论下最小平方的方法以及它与最大似然方法的关系。

我们假设目标变量t由确定的函数y(x, w)给出,这个函数被附加了高斯噪声, 即:

其中ε是一个零均值的高斯随机变量,精度(方差的倒数)为β。因此我们有:

如果我们确定了损失函数,那么对于x的一个新值,最优的预测由目标变量的条件均值给出。在上式给出的高斯条件分布的情况下,条件均值可以简单地写成:

现在考虑一个输入数据集X = {x1, . . . , xN},对应的目标值为t1, . . . , tN 。我们把目标向量{tn}组成一个列向量,记作t。

假设这些数据点是独立地从分布

中抽取的,那么我们可以得到下面的似然函数的表达式, 它是可调节参数w和β的函数,形式为:

取对数似然函数的对数,使用一元高斯分布的标准形式,我们有:

其中平方和误差函数的定义为:

得到了似然函数,我们可以使用最大似然的方法确定w和β。

对上面给出的对数似然函数,求梯度为:

令这个梯度等于零,可得:

求解w,我们有 

这被称为最小平方问题的规范方程(normal equation)

这里Φ是一个N × M 的矩阵,被称为设计矩阵(design matrix),它的元素为Φnj = φj(xn),即:

量:

被称为矩阵Φ的Moore-Penrose伪逆矩阵(pseudo-inverse matrix)。它可以被看成逆矩阵的概念对于非方阵的矩阵的推广。

实际上,如果Φ是方阵且可逆,那么使用性质(AB)-1 = B-1A-1,我们可以看到:

 

现在,我们可以更加深刻地认识偏置参数w0。如果我们显式地写出偏置参数,那么误差函数

变为:

因此,偏置w0补偿了目标值的平均值(在训练集上的)与基函数的值的平均值的加权求和之间的差。 

0x2:最小平方的几何描述

这个小节,我们来讨论最小平方解的几何描述,这有助于理解最小平方损失的数学本质。

我们考虑一个 N 维空间,它的坐标轴由tn给出,即t = (t1, . . . , tN)T 是这个空间中的一个向量。每个在N个数据点处估计的基函数φj(xn)表示为这个空间中的一个向量,记作φj,如下图所示。

注意,φj对应于Φ的第j列,而φ(xn)对应于Φ的第i行。

如果基函数的数量M小于数据点的数量N,那么M个向量φj将会张成一个M维的子空间S(线性解空间)。

我们定义y是一个N维向量,它的第n个元素为y(xn,w),其中n = 1, . . . , N 。由于y是向量φj的任意线性组合,因此它可以位于M维子空间的任何位置。

这样,平方和误差函数

就等于y和t之间的平方欧氏距离(只相差一个因子1)。

因此,w的最小平方解对应于位于子空间S的与t最近的y的选择。直观来看,这个解对应于t在子空间S上的正交投影。 

在实际应用中,当ΦTΦ接近奇异矩阵时,直接求解规范方程会导致数值计算上的困难。特别地,当两个或者更多的基向量φj共线或者接近共线时,最终的参数值会相当大,因为这意味着模型过度复杂、很容易导致过拟合。

0x3:顺序学习/批次学习

上一节说过,在实际应用中,当ΦTΦ接近奇异矩阵时,直接求解规范方程会导致数值计算上的困难。这在实际情况中并不少见,具体场景中的数据是复杂、非线性的,大部分时候,基于最小损失函数,求矩阵的逆是困难的,甚至是不可行的。

为了解决这个问题,这一节我们来讨论另一个近似求解算法,随机梯度下降(stochastic gradient descent)

如果误差函数由数据点的和组成

那么在观测到模式n之后,随机梯度下降算法使用下式更新参数向量w:

其中 τ 表示迭代次数,η 是学习率参数。w被初始化为某个起始向量w(0)。对于平方和误差函数

的情形,我们有

其中φn = φ(xn)。这被称为最小均方(least-mean-squares)或者LMS算法。η的值需要仔细选择,确保算法收敛。 

和最大似然估计不同,随机梯度下降并不一次性读取所有数据,而是一次读取一个批次(N=1时被称为顺序学习)。 

0x4:正则化最小平方

这是一个非常有趣的话题,笔者专门开了一篇文章讨论它,有兴趣的读者可以移步。

Relevant Link:

 (Pattern Recognization and Maching Learning)(PRML)》

0x5:其他最小化误差搜索算法 

在非线性回归方程中,我们无法通过直接求导得到极值,所以非线性回归中常常使用"逐步逼近"的思想,在不断地迭代中不断逼近最优的模型参数

1、最速下降法

最速下降法(又称梯度法,或Steepest Descent),是无约束最优化领域中最简单的算法,它属于比较古老提出的一种算法。但是,它的理念思想却对之后提出的非线性回归模型的参数搜索奠定了基础,我们会发现在其他某些算法中,也有最速下降法的“影子”

最速下降法只使用目标函数的一阶导数信息,从“梯度法”这个名字可以看出它的本意是取目标函数值“最快下降”的方向作为搜索方向。于是问题来了:沿什么方向,目标函数 f(x)的值下降最快呢?答案是沿负梯度方向  =gk (即负一阶导数方向),函数值下降最快。我们通过公式推导来说明一下该结论的原理

将目标函数在点处泰勒展开:

高阶无穷小 o(α) 可忽略,由于我们定义了步长 α>0(即朝某个方向前进的一段距离),同时,只有当 时, f(x)<f(xk) (即函数值是下降的)。所以 dk和gk的方向至少需要是相反的,才能达到下降的目的
同时Cauchy-Schwartz不等式(柯西-许瓦兹不等式)可得:当且仅当 dk=gk 时,等号成立,所以 d=gk 时, 最小(<0), f(x) 下降量最大

所以 gk 是最快速下降方向

但是最速下降法并不如它名字里说的是最速的,事实是,它只在局部范围内具有“最速”性质。对整体求解过程而言,它的下降非常缓慢。

dk = -gk本质上意味着GD不断在走90度折角的Z字型下降,所以下降过程是不断来回折的,并不快

2、最速下降法(梯度法)衍生改进 - 批量梯度下降法(Batch Gradient Descent,BGD)

BGD顾名思义,是一次使用整批m个样本参与计算loss function

(1)将J(theta)对theta求偏导,得到每个theta对应的的梯度,m代表样本个数:

(2)由于是要最小化风险函数,所以按每个参数theta的梯度负方向,来更新每个theta:

(3)从上面公式可以注意到每更新一步,都要用到样本的所有的数据,如果m很大,那么可想而知这种方法的迭代速度会相当的慢。对于批量梯度下降法,样本个数m,x为n维向量,一次迭代需要把m个样本全部带入计算,

迭代一次计算量为m*n2

3、批量梯度下降法改进 - 随机梯度下降(Stochastic Gradient Descent,SGD)

BGD的缺点是一次用到了整批样本参与运算,然而我们知道冗余特性在很多数据集中都是广泛存在的,即一个样本集中存在部分的样本在各个维度上的特征是类似的,对于这种情况,

即使我们不使用全部的样本集参与运算也不会损失太多精确度。随机梯度下降正是借助"随机思想"从完整的样本集中采样一个相对较小批次的子数据集作为本次loss function的运算输入,

在降低m的前提下力求尽量少的损失精确度,两者的关系可以这样理解:随机梯度下降方法以损失很小的一部分精确度和增加一定数量的迭代次数为代价,换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量

但是,SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向

4、高斯 - 牛顿法

首先,选择一个接近函数 (x)零点的 x0,计算相应的 (x0) 和切线斜率f  ' (x0)(这里f ' 表示函数 f  的导数)。然后我们计算穿过点(x0,  f  (x0)) 并且斜率为'(x0)的直线和 轴的交点的x坐标,也就是求如下方程的解:

我们将新求得的点的 坐标命名为x1,通常x1会比x0更接近方程f  (x) = 0的解。因此我们现在可以利用x1开始下一轮迭代。迭代公式可化简为如下所示:

已经证明,如果f  ' 是连续的,并且待求的零点x是孤立的,那么在零点x周围存在一个区域,只要初始值x0位于这个邻近区域内(如果不在这个区域内就可能出现局部最优但全局不最优),那么牛顿法必定收敛。 并且,

如果f  ' (x)不为0, 那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍。下图为一个牛顿法执行过程的例子。

由于牛顿法是基于当前位置的切线来确定下一次的位置,所以牛顿法又被很形象地称为是"切线法"

牛顿法的优缺点

优点:
1. 顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。(牛顿法目光更加长远,所以少走弯路;相对而言,梯度下降法只考虑了局部的最优,没有全局思想。)

缺点:
1. 牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂。

从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径

注:红色的牛顿法的迭代路径,绿色的是梯度下降法的迭代路径

5、牛顿法改进 - 拟牛顿法(Quasi-Newton Methods)

拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度

拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效

6、牛顿一拉夫森法

牛顿—拉夫森(Newton-raphson)法的基本思想也是利用泰勒级数展开近似,通过迭代运算寻找最小二乘函数最优解的数值解法。

但区别在于,牛顿—拉夫森法的迭代运算,相当于在前一个参数估计向量的基础上,按单位移动幅度(通常称为“步长”)搜索更好的参数估计值,因此牛顿—拉夫森法也是一 种搜索法(不断进行局部最优搜索)

牛顿—拉夫森法的优点是搜索方向和步长的确定比较科学,因此找到满足精度要求最优水平的搜索次数一般要小一些。

牛顿—拉夫森方法的缺点是迭代运算中需要反复计算梯度向量,特别是海塞矩阵的逆矩阵,因此计算工作量很大。事实上,人们在实际应用中常常并不按照牛顿一 拉夫森法进行搜索,而是根据一些简单法则确定搜索的步长,如“双向线性搜索法”就是其中常用的方法之一

Relevant Link:

https://support.minitab.com/zh-cn/minitab/18/help-and-how-to/modeling-statistics/regression/supporting-topics/nonlinear-regression/understanding-nonlinear-regression/
https://support.minitab.com/zh-cn/minitab/18/help-and-how-to/modeling-statistics/regression/supporting-topics/nonlinear-regression/understanding-algorithms-and-starting-values-in-nonlinear-regression/
http://blog.csdn.net/ice110956/article/details/22735535
http://202.121.199.249/foundrymate/lessons/data-analysis/24/241.HTM
http://www.cnblogs.com/maybe2030/p/4751804.html#_label1
https://www.codelast.com/%E5%8E%9F%E5%88%9B-%E5%86%8D%E8%B0%88-%E6%9C%80%E9%80%9F%E4%B8%8B%E9%99%8D%E6%B3%95%E6%A2%AF%E5%BA%A6%E6%B3%95steepest-descent/
http://gaolei786.github.io/r/statistics/nlm.smooth.reg.html 
http://kuangnanfang.com/zb_users/upload/2015/09/201509201442740102956811.pdf

 

4. 偏置-方差分解 

目前为止,我们对于回归的线性模型的讨论中,我们假定了基函数的形式和数量都是固定的。

如果使用有限规模的数据集来训练复杂的模型,那么使用最大似然方法,或者等价地,使用最小平方方法,会导致严重的过拟合问题。然而,通过限制基函数的数量来避免过拟合问题有一个负作用,即限制了模型描述数据中有趣且重要的规律的灵活性。虽然引入正则化项可以控制具有多个参数的模型的过拟合问题。

但是这就产生了一个问题:

如何确定正则化系数λ的合适的值??

过拟合现象确实是最大似然方法的一个不好的性质,这个章节,我们从频率学家的观点来考虑一下模型的复杂度问题是。

这种频率学家的观点被称为偏置-方差折中(bias-variance trade-off)

我们会在线性基函数模型中介绍这个概念,因为这样介绍可以使用简单的例子来说明一些基本的思想,但是实际上这种讨论有着更加普遍的适用性。

在讨论回归问题的决策论时,我们考虑了不同的损失函数。一旦我们知道了 条件概率分布p(t | x),每一种损失函数都能够给出对应的最优预测结果。使用最多的一个选择是平方损失函数,此时最优的预测由条件期望(记作h(x))给出,即:

注意,有必要区分决策论中出现的平方损失函数以及模型参数的最大似然估计中出现的平方和误差函数。

我们可以使用比最小平方更复杂的方法,例如正则化或者纯粹的贝叶斯方法,来确定条件概率分布p(t | x)。为了进行预测,这些方法都可以与平方损失函数相结合。

平方损失函数的期望可以写成:

上式中:

  • 第二项代表分布t本身的方差,在x上进行了平均,它表示目标数据内在的变化性。它y(x)无关,是由数据本身的噪声造成的,表示期望损失能够达到的最小值。
  • 第一项与我们对函数y(x)的选择有关,它打标对数据均值的拟合程度。我们要找一个y(x)的解,使得这一项最小。由于它是非负的,因此我们希望能够让这一项的最小值等于零。

如果我们有无限多的数据,以及无限多的计算资源,那么原则上我们能够以任意的精度寻找回归函数h(x),这会给出y(x)的最优解。

然而,在实际应用中,我们的数据集D只有有限的N个数据点,从而我们不能够精确地知道回归函数h(x)。

如果我们使用由参数向量w控制的函数y(x, w)对h(x)建模,那么从贝叶斯的观点来看,我们模型的不确定性是通过w的后验概率分布来表示的。

但是,频率学家的方法涉及到根据数据集D对w进行点估计,然后试着通过下面的思想实验来表示估计的不确定性。假设我们有许多数据集,每个数据集的大小为N ,并且每个数据集都独立地从分布p(t, x)中抽取。对于任意给定的数据集D,我们可以运行我们的学习算法,得到一个预测函数y(x; D)。不同的数据集会给出不同的函数,从而给出不同的平方损失的值。这样,特定的学习算法的表现就可以通过取各个数据集上的表现的平均值来进行评估。

考虑上面平方损失函数的期望函数的第一项的被积函数

对于一个特定的数据集D,它的形式为:

由于这个量与特定的数据集D相关,因此我们对所有的数据集取平均。如果我们在括号内加上然后减去ED[y(x; D)],然后展开,我们有:

我们现在关于D求期望,然后注意到最后一项等于零,可得:

我们看到,y(x; D)与回归函数h(x)的差的平方的期望可以表示为两项的和。

  • 第一项,被称为平方偏置(bias),表示所有数据集的平均预测与预期的回归函数之间的差异。
  • 第二项,被称为方差(variance),度量了对于单独的数据集,模型所给出的解在平均值附近波动的情况,因此也就度量了函数y(x; D)对于特定的数据集的选择的敏感程度。 

如果我们把这个展开式带回到公式

中,那么我们就得到了下面的对于期望平方损失的分解:

 

其中:

我们的目标是最小化期望损失,它可以分解为(平方)偏置、方差和一个常数噪声项的和。

正如我们将看到的那样,在偏置和方差之间有一个折中

  • 对于非常灵活的模型来说,偏置较小,方差较大
  • 对于相对固定的模型来说,偏置较大,方差较小

有着最优预测能力的模型时在偏置和方差之间取得最优的平衡的模型。

这里通过之前讨论过的正弦数据集来说明。我们产生了100个数据集合,每个集合都包含N = 25个数据点,都是独立地从正弦曲线h(x) = sin(2πx)抽取的。

数据集的编号为l = 1, . . . , L,其中L = 100,并且对于每个数据集D(l),我们通过最小化正则化的误差函数,拟合了一个带有24个高斯基函数的模型,然后给出了预测函数y(l)(x),如下图所示。

右侧一列给出了对应的100个拟合的均值 (红色)以及用于生成数据集的正弦函数(绿色 

第一行对应着较大的正则化系数λ,这样的模型的方差很小(因为左侧图中的红色曲线看起来很相似),但是偏置很大(因为右侧图中的两条曲线看起来相当不同)。

相反,在最后一行,正则化系数λ很小,这样模型的方差较大(因为左侧图中的红色曲线变化性相当大),但是偏置很小(因为平均拟合的结果与原始正弦曲线十分吻合)。

注意,把M = 25这种复杂模型的多个解进行平均,会产生对于回归函数非常好的拟合, 这表明求平均是一个很好的步骤。事实上,将多个解加权平均是贝叶斯方法的核心,虽然这种求平均针对的是参数的后验分布,而不是针对多个数据集。 

对于这个例子,我们也可以定量地考察偏置-方差折中。平均预测由下式求出:

并且积分后的平方偏置以及积分后的方差为:

下图给出了这些量以及它们的求和关于lnλ的函数图像。

我们看到,

  • 小的λ使得模型对于各个数据集里的噪声的拟合效果非常好,导致了较大的方差。
  • 相反,大的λ把权值参数拉向零,导致了较大的偏置。

虽然偏置-方差分解能够从频率学家的角度对模型的复杂度提供一些有趣的认识,但是它的实用价值很有限。这是因为偏置-方差分解依赖于对所有的数据集求平均,而在实际应用中我们只有一个观测数据集。如果我们有大量的已知规模的独立的训练数据集,那么我们最好的方法是把它们组合成一个大的训练集,因为海量数据集N本身就会降低给定复杂度的模型的过拟合程度。

笔者注

在有的教材中,偏置-方差分解,也被称为结构化风险-经验花风险。 

 

5. 贝叶斯线性回归 

在上一章的结尾我们说到,偏置-方差分解是一个理论化分析工具,无法在实际中应用。由于有这么多局限性,因此我们在这一节里将讨论线性基函数模型的贝叶斯观点。它不仅提供了对于过拟合现象的深刻认识,还提出了解决模型复杂度问题的实用的技术。 

在我们讨论使用最大似然方法设置线性回归模型的参数时,我们已经看到由基函数的数量控制的模型的复杂度需要根据数据集的规模进行调整。为对数似然函数增加一个正则化项意味着模型的复杂度可以通过正则化系数的值进行控制,虽然基函数的数量和形式的选择仍然对于确定模型的整体行为十分重要。

这就产生了对于特定的应用确定合适的模型复杂度的问题。这个问题不能简单地通过最大化似然函数来确定,因为这总会产生过于复杂的模型和过拟合现象。

独立的额外数据能够用来确定模型的复杂度,但是这需要较大的计算量(被称为留出法验证),并且浪费了有价值的数据。

因此我们转而考虑线性回归的贝叶斯方法,这会避免最大似然的过拟合问题,也会引出使用训练数据本身确定模型复杂度的自动化方法

与之前一样,为了简单起见,我们只考虑单一目标变量t的情形。对于多个目标变量情形的推广是很直接的。

0x1:参数分布

我们先从参数分布说起,这类分布具有确定性的分布函数,且函数的形态有几个数量有限的参数控制,因为被称为参数分布

关于线性拟合的贝叶斯方法的讨论,我们首先引入模型参数w的先验概率分布。现在这个阶段,我们把噪声精度参数β当做已知常数。

首先,我们注意到,由公式

定义的似然函数p(t | w)是w的二次函数的指数形式。于是对应的共轭先验是高斯分布,形式为:

均值为m0,协方差为S0。 

接下来我们计算后验分布,它正比于似然函数与先验分布的乘积。由于共轭高斯先验分布的选择,后验分布也是高斯分布。

我们可以对指数项进行配平方,然后使用归一化的高斯分布的标准结果找到归一化系数,这样就计算出了后验分布的形式。

其中 

注意,由于后验分布是高斯分布,它的众数恰好与它的均值相同。因此最大后验权向量的结果就是wMAP = mN 。如果我们考虑一个无限宽的先验S0 = α−1I,其中α → 0,那么后验概率分布的均值mN就变成了最大似然值wML

类似地,如果N = 0,那么后验概率分布就变成了先验分布。此外,如果数据点是顺序到达的,那么任何一个阶段的后验概率分布都可以看成后续数据点的先验。此时新的后验分布再次由上面公式给出。

我们可以使用直线拟合的简单的例子来说明线性基函数的贝叶斯学习过程,以及后验概率分布的顺序更新过程

考虑一个单一输入变量x,一个单一目标变量t,以及一个形式为y(x, w) = w0 + w1x的线性模型。由于这个模型只有两个可调节参数,因此我们可以直接在参数空间中画出先验分布和后验分布。

我们从函数f(x, a) = a0 + a1x中人工生成数据,其中a0 = −0.3,a1 = 0.5。

生成数据的方法为:首先从均匀分布U(x | −1, 1)中选择xn的值,然后计算f(xn , a),最后增加一个标准差为0.2的高斯噪声,得到目标变量tn

我们的目标是从这样的:从数据中恢复a0和a1的值,并且我们想研究模型对于数据集规模的依赖关系

这里我们假设噪声方差是已知的,因此我们把精度参数设置为它的真实值β = (1/0.2)2 = 25。类似地,我们把α固定为2.0。

下图给出了当数据集的规模增加时贝叶斯学习的结果,还展示了贝叶斯学习的顺序本质,即当新数据点被观测到的时候,当前的后验分布变成了先验分布。

 

  • 这张图的第一行对应于观测到任何数据点之前的情况,给出了w空间的先验概率分布的图像,以及函数y(x, w)的六个样本,这六个样本的w都是从先验概率分布中随机抽取的。
  • 在第二行,我们看到了观测到一个数据点之后的情形。数据点的位置(x, t)由右侧一 列中的蓝色圆圈表示。左侧一列是对于这个数据点的似然函数p(t, w)关于w的函数图像。注意,似然函数提供了一个温和的限制,即直线必须穿过数据点附近的位置,其中附近位置的范围由噪声精度β确定。为了进行对比,用来生成数据集的真实参数值a0 = −0.3以及a1 = 0.5在图 3.7的左侧一列被标记为白色十字。如果我们把这个似然函数与第一行的先验概率相乘,然后归一化,我们就得到了第二行中间的图给出的后验概率分布。从这个后验概率分布中抽取w的样 本,对应的回归函数y(x, w)被画在了右侧一列的途中。注意,这些样本直线全部穿过数据点的附近位置。
  • 这张图的第三行展示了观测到第二个数据点的效果。与之前一样,这个数据点由右侧一列的蓝色圆圈表示。第二个数据点自身对应的似然函数在左侧一列的图中给出。如果我们把这个似然函数与第二行的后验概率分布相乘,我们就得到了第三行中间一列的图给出的后验概率分布。注意,这个后验概率分布与我们将原始的先验分布结合两个数据点的似然函数得到的后验概率分布完全相同(满足结合律)。现在,后验概率分布被两个数据点影响。由于两个点足够定义一条直线,因此目前已经得到了相对较好的后验概率分布。从这个后验分布中抽取的样本产生了第三列中红色的函数,我们看到这些函数同时穿过了两个数据点的附近。
  • 第四行展示了观测到20个数据点的效果。左侧的图展示了第20个数据点自身的似然函数,中间的图展示了融合了20次观测信息的后验概率分布。注意与第三行相比,这个后验概率分布变得更加尖锐。在无穷多个数据点的极限情况下,后验概率分布会变成一个Delta函数。这个函数的中心是用白色十字标记出的真实参数值。 

在贝叶斯理论中,先验分布本质上代表了一种结构化经验,它可以是任意的函数形式。

例如,我们可以推广高斯先验分布,得到 

其中q = 2的情形对应于高斯分布,并且只有在这种情形下的先验分布才是公式

给出的 似然函数的共轭先验。

找到w的后验概率分布的最大值对应于找到正则化误差函数

的最小值。

在高斯先验的情况下,后验概率分布的众数等于均值,但是如果q != 2,这个性质就不成立了。 

0x2:预测分布

在实际应用中,我们通常感兴趣的不是w本身的值(生成式模型),而是对于新的x值预测出t的值(判别式模型)。这需要我们计算出预测分布(predictive distribution),定义为

其中t是训练数据的目标变量的值组成的向量。并且,为了简化记号,我们在右侧省略了条件概率中出现的输入向量。

目标变量的条件概率分布p(t | w, w, β)由公式

给出,后验分布由公式

给出。综上,我们看到预测分布的形式为:

 

其中预测分布的方差σN2(x)为:

上式的第一项表示数据中的噪声,而第二项反映了与参数w关联的不确定性。

由于噪声和w的分布是相互独立的高斯分布,因此它们的值是可以相加的。

注意,当额外的数据点被观测到的时候,后验概率分布会变窄。从而可以证明出:

σN+12(x) ≤ σN2(x)

在极限N → ∞的情况下,上式的第二项趋于零,从而预测分布的方差只与参数β控制的具有可加性的噪声有关。 

为了说明贝叶斯线性回归模型的预测分布,让我们回到正弦数据集例子

上图中,我们调整一个由高斯基函数线性组合的参数模型,使其适应于不同规模的数据集,然后观察对应的后验概率分布。这里,绿色曲线对应着产生数据点的函数sin(2πx)(带有附加的高斯噪声)。大小为N = 1, N = 2, N = 4和N = 25的数据集在四幅图中用蓝色圆圈表示。对于每幅图,红色曲线是对应的高斯预测分布的均值,红色阴影区域是均值两侧的一个标准差范围的区域。

注意,预测的不确定性依赖于x,并且在数据点的邻域内最小。同时,不确定性的程度 随着观测到的数据点的增多而逐渐减小。

但是,上图的图像只给出了每个点处的预测方差与x的函数关系。 为了更加深刻地认识对于不同的x值的预测之间的协方差,我们可以从w的后验概率分布中抽取样本,然后画出对应的函数y(x, w),如下图所示。

 

如果我们使用局部的基函数(例如高斯基函数),那么在距离基函数中心比较远的区域,公式

给出的预测方差的第二项的贡献将会趋于零,只剩下噪声的贡献β-1。因此,当对基函数所在的区域之外的区域进行外插的时候,模型对于它做出的预测会变得相当确定,这通常不是我们想要的结果。

通过使用被称为高斯过程的另一种贝叶斯回归方法,这个问题可以被避免。

注意,如果w和β都被当成未知的,我们可以引入一个由高斯-Gamma分布定义的共轭先验分布p(w, β)。在这种情况下,预测分布是一个学生t分布。 

 

6. 固定基函数的局限性 

在这篇文章中,我们已经关注了由固定的非线性基函数的线性组合组成的模型。我们已经看到,对于参数的线性性质的假设产生了一系列有用的性质,包括最小平方问题的解析解,以及容易计算的贝叶斯方法。

此外,对于一个合适的基函数的选择,我们可以建立输入向量到目标值之间的任意非线性映射。因此,似乎这样的模型建立的解决模式识别问题的通用框架。

不幸的是,线性模型有一些重要的局限性,这使得我们需要要转而关注更加复杂的模型,例如支持向量机和神经网络。

困难的产生主要是因为我们假设了基函数在观测到任何数据之前就被固定了下来,而这正是维度灾难问题的一个表现形式。结果,基函数的数量随着输入空间的维度D迅速增长,通常是指数方式的增长

幸运的是,真实数据集有两个性质,可以帮助我们缓解这个问题。

  • 第一,数据向量{xn}通常位于一个非线性流形内部。由于输入变量之间的相关性,这个流形本身的维度小于输入空间的维度。如果我们使用局部基函数,那么我们可以让基函数只分布在输入空间中包含数据的区域。这种方法被用在径向基函数网络中,也被用在支持向量机和相关向量机当中。神经网络模型使用可调节的基函数, 这些基函数有着sigmoid非线性的性质。神经网络可以通过调节参数,使得在输入空间的区域中基函数会按照数据流形发生变化。
  • 第二,目标变量可能只依赖于数据流形中的少量可能的方向。利用这个性质,神经网络可以通过选择输入空间中基函数产生相应的方向。

 

posted @ 2020-07-13 16:03  郑瀚Andrew  阅读(1469)  评论(0编辑  收藏  举报