Processing math: 100%

曲线拟合之最大斯然估计和最小二乘法

目录

之前,我们讨论过关于曲线拟合的一些概念,提到了均方误差函数和贝叶斯估计 , 并在一篇博文中介绍了 matlab 实现。今天,我们讨论通过最小二乘法对最大斯然估计进行深入的挖掘。

1 问题模型

假设目标变量是t,其可以通过如下模型生成:

t=y(x,w)+ϵ

其中,ϵ是高斯白噪,均值为 0,方差是β。所以我们可以把t的概率密度函数表示为:

p(t|x,w,β)=N(t|y(x,w),β1)

2 问题分析:最大化似然函数和最小化平方和误差函数的等效性

如果我们的损失函数是均方误差,那么对于一个新的输入x,最优的预测是基于目标变量的条件均值。针对式~(2),我们有:

E[t|x]=tp(t|x)dt=y(x,w)

注意,高斯白噪的假设使得给定xt的条件均值是各向一致的。

现在考虑输入的数据集合X={x1,,xN},对应的目标变量是t1,,tN。我们假设数据集合是从式~(2)所示分布中采样得到的。所以,关于X的最大斯然估计为:

p(t|X,w,β)=Nn=1N(tn|wTϕ(xn),β1)

注意,这里我们假定 y(x,w)=wTϕxn

并且,我们不特别的约定基函数ϕ(x)的形式。在监督学习问题中(分类或者回归),我们的目标不是为输入变量建模。x会一直待在条件变量中,所以从现在开始我们去掉p(t|x,w,β)中的x。对式~(4)求对数,把乘法变成加法,我们有:

lnp(t|w,β)=Nn=1lnN(tn|wTϕ(xn),β1)

对式~(5)稍作变形,有:

lnp(t|w,β)=N2ln(β)N2ln(2π)βED(w)

其中,

ED(w)=12Nn=1{tnwTϕ(xn)}2

我们发现,优化基于高斯白噪的斯然函数和最小化平方和误差函数是等效的。通过对~(6)进行求导,有:

lnp(t|w,β)=Nn=1{tnwTϕ(xn)}ϕ(xn)T

令式~(8)等于零,

0=Nn=1tnϕ(xn)TwT(Nn=1ϕ(xn)ϕ(xn)T)

继而有:

wML=(ΦTΦ)1ΦTt

这个解是最小二乘问题的解。这里ΦN×M的矩阵:

Φ=[ϕ0(x1)ϕ1(x1)ϕM1(x1)ϕ0(x2)ϕ1(x2)ϕM1(x2)ϕ0(xN)ϕ1(xN)ϕM1(xN)]

其中,(ΦTΦ)1ΦTΦ的 Moore-Penrose 伪逆。这个伪逆是逆的推广。当Φ是方阵且可逆时,这个结果就直接等于Φ1

此刻,我们再分析w0。重写ED(w):

ED(w)=12Nn=1{tnw0M1j=1wjϕj(xn)}2

w0求导,可得:

w0=ˉtM1j=1wj¯ϕj

其中:

ˉt=1NNn=1tn,¯ϕj=1Nϕj(xn)

所以,w0补充了训练集合中目标值的均值与基函数之间的差值。

另外,我们可以对式~(6)求β的导数,得β:

1βML=1NNn=1{tnwTMLϕ(xn)}2

我们看到噪声精度的倒数是目标值在回归函数周围的方差。

3 最小二乘的几何意义

20170806leastSquare.png

图 1: 最小二乘的几何意义

考虑N维空间,t是其中一个矢量。每一个基函数ϕj(xn)N个训练集合中的值也可以视作一个矢量,标记为φj,如图 1所示。注意φj对应Φ的第j列。如果基函数的个数M小于训练集合的点数N,那么M个矢量ϕj(xn)张成一个M维的空间S。我们定义y是一个N维向量其第n个坐标为y(xn,w)。因为yφj 的线性组合。所以,y可以在M维空间S的任意位置。式~(7)是yt的欧几里得距离。所以w的最小二乘解对应着S中距离t最近的y。从图 1 可以看出这个解对应着tS的各个坐标系投影。

在实际应用中,直接求解ΦTΦ的逆比较困难(因为,这个矩阵的维度比较大),所以一些数学技巧比如 SVD 分解经常会被用到。

Author: emacsun (emacsun@163.com)

Date:

Emacs 25.0.50.1 (Org mode 9.1.9)

Validate