本系列为《模式识别与机器学习》的读书笔记。
一,线性基函数模型
1,线性基函数
回归问题的⽬标是在给定 D 维输⼊(input) 变量 x 的情况下, 预测⼀个或者多个连续⽬标(target)变量 t 的值。
通过将⼀组输⼊变量的⾮线性函数进⾏线性组合, 我们可以获得⼀类更加有⽤的函数, 被称为基函数(basis function)。
回归问题的最简单模型是输⼊变量的线性组合:
y(x,w)=w0+w1x1+⋯+wDxD(3.1)
其中,x=(x1,x2,…,xD)T ,通常称为线性回归(linear regression),这个模型的关键性质在于它是参数 w0,…,wD 的⼀个线性函数。 但是, 它也是输⼊变量 xi 的⼀个线性函数, 这给模型带来了极⼤的局限性。因此扩展模型的类别:将输⼊变量的固定的⾮线性函数进⾏线性组合:
y(x,w)=w0+j=1∑M−1wjϕj(x)(3.2)
其中, ϕj(x) 被称为基函数(basis function),参 数 w0 使得数据中可以存在任意固定的偏 置,这个值通常被称为偏置参数(bias parameter)。此模型称为线性模型。
通常,定义⼀个额外的虚“基函数” ϕ0(x)=1 是很⽅便的,这时,
y(x,w)=j=0∑M−1wjϕj(x)=wTϕ(x)(3.3)
其中,w=(w0,x1,…,wM−1)T ,ϕ=(ϕ0,ϕ2,…,ϕM−1)T 。
在许多模式识别的实际应⽤中, 我们会对 原始的数据变量进⾏某种固定形式的预处理或者特征抽取。如果原始变量由向量 x 组成,那么特征可以⽤基函数 {ϕj(x)} 来表⽰。
多项式基函数的⼀个局限性在于它们是输⼊变量的全局函数,因此对于输⼊空间⼀个区域的改变将会影响所有其他的区域。这个问题的解决方案:把输⼊空间切分成若⼲个区域,然后对于每个区域⽤不同的多项式函数拟合,这样的函数叫做样条函数(spline function)(Hastie et al., 2001)。
⾼斯基函数:
ϕj(x)=exp{−2s2(x−μj)2}(3.4)
其中,μj 控制了基函数在输⼊空间中的位置,参数 s 控制了基函数的空间⼤⼩。
sigmoid基函数:
ϕj(x)=σ(sx−μj)(3.5)
其中 σ(a) 是 logistic sigmoid函数,定义为:
σa=1+exp(−a)1(3.6)
除此之外,基函数还可以选择傅⾥叶基函数,tanh函数等等。其中,tanh函数 和 logistic sigmoid函数 的关系如下:tanh(a)=2σ(2a)−1。
如图3.1~3.3,分别为是多项式基函数,⾼斯基函数,sigmoid基函数。



2,最⼤似然与最⼩平⽅
假设⽬标变量 t 由确定的函数 y(x,w) 给出,这个函数被附加了⾼斯噪声,即
t=y(x,w)+ϵ
其中,ϵ 是⼀个零均值的⾼斯随机变量,精度(⽅差的倒数)为 β,则有:
p(t∣x,w,β)=N(t∣y(x,w),β−1)(3.7)
均值为:
E[t∣x]=∫tp(t∣x)dt=y(x,w)
考虑⼀个输⼊数据集 X={x1,…,xN}, 对应的⽬标值为 t1,…,tN 。 我们把⽬标向量 {tn} 组成⼀个列向量, 记作 t。 假设这些数据点是独⽴地从分布公式(3.7)中抽取的,那么可以得到下⾯的似然函数的表达式, 它是可调节参数 w 和 β 的函数,形式为:
p(t∣X,w,β)=n=1∏NN(tn∣wTϕ(xn),β−1)(3.8)
取似然函数的对数,使⽤⼀元⾼斯分布的标准形式,可得:
lnp(t∣w,β)=n=1∑NlnN(tn∣wTϕ(xn),β−1)=2Nlnβ−2Nln(2π)−βED(w)(3.9)
其中,平⽅和误差函数的定义为:
ED(w)=21n=1∑N{tn−wTϕ(xn)}2(3.10)
对数似然函数的梯度为:
∇lnp(t∣w,β)=βn=1∑N{tn−wTϕ(xn)}ϕ(xn)T(3.11)
令梯度等于零,求解 w 可得:
wML=(ΦTΦ)−1ΦTt(3.12)
这被称为最⼩平⽅问题的规范⽅程(normal equation)。这⾥ Φ 是⼀个 N×M 的矩阵,被称为设计矩阵(design matrix),它的元素为 Φnj=ϕj(xn) ,即
Φ=⎝⎜⎜⎜⎛ϕ0(x1)ϕ0(x2)⋮ϕ0(xN)ϕ1(x1)ϕ1(x2)⋮ϕ1(xN)⋯⋯⋱⋯ϕM−1(x1)ϕM−1(x2)⋮ϕM−1(xN)⎠⎟⎟⎟⎞
其中,量
Φ†≡(ΦTΦ)−1ΦT
被称为矩阵 Φ 的 Moore-Penrose伪逆矩阵(pseudo-inverse matrix)(Rao and Mitra, 1971; Golub and Van Loan, 1996)。
图3.4,最⼩平⽅解的⼏何表⽰,在⼀个 N 维空间中,坐标轴是 t1,…,tN 的值。最⼩平⽅回归函数可以通过下⾯的⽅式得到:寻找数据向量 t 在由基函数 ϕj(x) 张成的⼦空间上的正交投影,其中每个基函数都可以看成⼀个长度为 N 的向量 φj ,它的元素为 ϕj(xn) 。注意, φj 对应于 Φ 的第 j 列, ⽽ ϕ(xn) 对应于 Φ 的第 i ⾏。

如果显式地写出偏置参数,那么误差函数公式(3.10)变为:
ED(w)=21n=1∑N{tn−w0−j=1∑M−1wjϕj(xn)}2(3.13)
令关于 w0 的导数等于零,解出 w0 ,可得
w0=tˉ−j=1∑M−1wjϕˉj
其中,
tˉ=N1n=1∑Ntnϕˉj=N1n=1∑Nϕj(xn)
因此,偏置 w0 补偿了⽬标值的平均值(在训练集上的)与基函数的值的平均值的加权求和之间的差。
关于噪声精度参数 β 最⼤化似然函数公式(3.9),结果为:
βML1=N1n=1∑N{tn−wMLTϕ(xn)}2(3.14)
因此,噪声精度的倒数由⽬标值在回归函数周围的残留⽅差(residual variance)给出。
3,顺序学习
顺序算法中,每次只考虑⼀个数据点,模型的参数在每观测到⼀个数据点之后进⾏更新。顺序学习也适⽤于实时的应⽤,在实时应⽤中,数据观测以⼀个连续的流的⽅式持续到达,我们必须在观测到所有数据之前就做出预测。
我们可以获得⼀个顺序学习的算法通过考虑随机梯度下降(stochastic gradient descent)也 被称为顺序梯度下降(sequential gradient descent)的⽅法。 如果误差函数由数据点的和组成 E=∑nEn ,那么在观测到模式 n 之后,随机梯度下降算法使⽤下式更新参数向量 w :
w(τ+1)=w(τ)−η∇En(3.15)
其中 τ 表⽰迭代次数,η 是学习率参数。 w 被初始化为某个起始向 量 w(0) 。对于平⽅和误差函数公式(3.10)的情形,我们有:
w(τ+1)=w(τ)+η(tn−w(τ)Tϕn)ϕn(3.16)
其中 ϕn=ϕ(xn)。 这被称为最⼩均⽅(least-mean-squares)或者 LMS算法。η 的值需要仔细选择,确保算法收敛(Bishop and Nabney, 2008)。
4,正则化最⼩平⽅
为误差函数添加正则化项的思想来控制过拟合,因此需要最⼩化的总的误差函数的形式为
ED(w)+λEW(w)
其中 λ 是正则化系数,正则化项的⼀个最简单的形式为权向量的各个元素的平⽅和
EW(w)=21wTw
考虑平⽅和误差函数
ED(w)=21n=1∑N{tn−wTϕ(xn)}2(3.17)
那么总误差函数就变成了
21n=1∑N{tn−wTϕ(xn)}2+2λwTw
这种对于正则化项的选择⽅法在机器学习的⽂献中被称为权值衰减(weight decay)。
令总误差函数关于 w 的梯度等于零,解出 w ,有:
w=(λI+ΦTΦ)−1ΦTt(3.18)
有时使⽤⼀个更加⼀般的正则化项,这时正则化的误差函数的形式为:
21n=1∑N{tn−wTϕ(xn)}2+2λj=1∑M∣wj∣q(3.19)
如图3.5~3.8,对于不同的参数 q,公式(3.19)中的正则化项的轮廓线。




在统计学的⽂献中,q=1 的情形被称为套索(lasso)(Tibshirani, 1996)。它的性质为:如果 λ 充分⼤,那么某些系数 wj 会变为零,从⽽产⽣了⼀个稀疏(sparse)模型,这个模型中对应的基函数不起作⽤。
如图3.9,q=2 的⼆次正则化项的限制区域。

如图3.10,q=1 的套索正则化项的限制区域。

5,多个输出
对于预测 K>1 个⽬标变量,我们把这些⽬标变量聚集起来,记作⽬标向量 t ,其解决方案是:对于 t 的每个分量,引⼊⼀个不同的基函数集合,从⽽变成了多个独⽴的回归问题。但是,⼀个更有趣的并且更常⽤的⽅法是对⽬标向量的所有分量使⽤⼀组相同的基函数来建模,即:
y(x,w)=WTϕ(x)(3.20)
其中 y 是⼀个 K 维列向量,W 是⼀个 M×K 的参数矩阵,ϕ(x) 是⼀个 M 为列向量, 每个元素 为 ϕj(x) ,ϕ0(x)=1 。 假设令⽬标向量的条件概率分布是⼀个各向同性的⾼斯分布,形式为:
p(t∣x,W,β)=N(t∣WTϕ(x),β−1I)(3.21)
如果有⼀组观测 t1,…,tN ,可以把这些观测组合为⼀个 N×K 的矩阵 T ,使得矩阵的第 n ⾏为 tnT 。类似地,把输⼊向量 x1,…,xN 组合为矩阵 X 。这样,对数似然函数:
lnp(T∣X,W,β)=n=1∑NlnN(tn∣WTϕ(xn),β−1I)=2NKln(2πβ)−2βn=1∑N∣∣tn−WTϕ(xn)∣∣2(3.22)
关于 W 最⼤化这个函数,可得:
WML=(ΦTΦ)−1ΦTT(3.23)
对于每个⽬标变量 tk 考察这个结果,那么有
wk=(ΦTΦ)−1ΦTtk=Φ†tk(3.24)
其中,tk 是⼀个 N 维列向量, 元素为 tnk 其中 n=1,…,N 。 因此不同⽬标变量的回归问题在这⾥被分解开,并且我们只需要计算⼀个伪逆矩阵 Φ† ,这个矩阵是被所有向量 wk 所共享的。
二, 偏置-方差分解
假如已知条件概率分布 p(t∣x),每⼀种损失函数都能够给出对应的最优预测结果。使⽤最多的⼀个选择是平⽅损失函数,此时最优的预测由条件期望(记作 h(x) )给出,即
h(x)=E[t∣x]=∫tp(t∣x)dt(3.25)
考察平⽅损失函数的期望:
E[L]=∫{y(x)−h(x)}2p(x)dx+∫∫{h(x)−t}2p(x,t)dxdt(3.26)
其中,与 y(x) ⽆关的第⼆项,是由数据本⾝的噪声造成的,表⽰期望损失能够达到的最⼩值。第⼀项与对函数 y(x) 的选择有关,我们要找⼀个 y(x) 的解,使得这⼀项最⼩。由于它是⾮负的,因此我们希望能够让这⼀项的最⼩值等于零。
考察公式(3.26)的第⼀项被积函数,对于⼀个特定的数据集 D,它的形式为
{y(x;D)−h(x)}2
由于这个量与特定的数据集 D 相关,因此对所有的数据集取平均。如果我们在括号内减去然后加上 ED[y(x;D)] ,然后展开,有
{y(x;D)−ED[y(x;D)]+ED[y(x;D)]−h(x)}2={y(x;D)−ED[y(x;D)]}2+{ED[y(x;D)]−h(x)}2+2{y(x;D)−ED[y(x;D)]}{ED[y(x;D)]−h(x)}
现在关于 D 求期望,然后注意到最后⼀项等于零,可得
ED[{y(x;D)−h(x)}2]=(偏置)2{ED[y(x;D)]−h(x)}2+方差ED[{y(x;D)−ED[y(x;D)]}2](3.27)
其中,y(x;D) 与回归函数 h(x) 的差的平⽅的期望可以表⽰为两项的和。第⼀项,被称为平⽅偏置(bias),表⽰所有数据集的平均预测与预期的回归函数之间的差异。第⼆项,被称为⽅差(variance),度量了对于单独的数据集,模型所给出的解在平均值附近波动的情况,因此也就度量了函数 y(x;D) 对于特定的数据集的选择的敏感程度。
综上,对于期望平⽅损失的分解:
期望损失=偏置2+方差+噪声(3.28)
其中,
偏置2=∫{ED[y(x;D)]−h(x)}2p(x)dx方差=∫ED[{y(x;D)−ED[y(x;D)]}2p(x)dx噪声=∫∫{h(x)−t}2p(x,t)dxdt
对于⾮常灵活的模型来说,偏置较⼩, ⽅差较⼤;对于相对固定的模型来说,偏置较⼤,⽅差较⼩。
图3.11~3.13,模型复杂度对于偏置和⽅差的依赖的说明。左侧⼀列给出了对于不同的 lnλ 值,根据数据集拟合模型的结果。 为了清晰起见, 只给出了100个拟合模型中的20个。 右侧⼀列给出了对应的100个拟合的均值 (红⾊)以及⽤于⽣成数据集的正弦函数(绿⾊)。



举例:讨论正弦数据集,我们产⽣了100个数据集合, 每个集合都包含 N=25 个数据点,都是独⽴地从正弦曲线 h(x)=sin(2πx) 抽取的。数据集的编号为 l=1,…,L , 其中 L=100,并且对于每个数据 集 D(l) ,我们通过最⼩化正则化的误差函数拟合了⼀个带有24个⾼斯基函数的模型,然 后给出了预测函数 y(l)(x) ,如图3.11~13所⽰。如图3.11,对应着较⼤的正则化系数 λ,这样的模型的⽅差很⼩(因为左侧图中的红⾊曲线看起来很相似),但是偏置很⼤(因为右侧图中的两条曲线看起来相当不同)。相反,如图3.13,正则化系数 λ 很⼩,这样模型的⽅差较⼤(因为左侧图中 的红⾊曲线变化性相当⼤), 但是偏置很⼩(因为平均拟合的结果与原始正弦曲线⼗分吻合)。注意,把 M=25 这种复杂模型的多个解进⾏平均,会产⽣对于回归函数⾮常好的拟合, 这表明求平均是⼀个很好的步骤。事实上,将多个解加权平均是贝叶斯⽅法的核⼼,虽然这种求平均针对的是参数的后验分布,⽽不是针对多个数据集。
对于这个例⼦,我们也可以定量地考察偏置-⽅差折中。平均预测由下式求出:
yˉ(x)=L1l=1∑Ly(l)(x)(3.29)
有,
偏置2=N1n=1∑N{yˉ(xn)−h(x)}2
方差=N1n=1∑NL1l=1∑L{y(l)(xn)−yˉ(xn)}2
图3.14,平⽅偏置和⽅差的图像,以及它们的加和。
