PRML第三章之回归的线性模型

参考马春鹏 《模式识别与机器学习》翻译

本章讨论的是线性回归,从一个概率的观点,我们的任务是对 p ( t x ) p(t|x) 进行建模,线性模型是后面要讨论更复杂模型的基础。

线性基函数模型


线性回归最基本的定义:

(3.1) y ( x , w ) = w 0 + w 1 x 1 + + w D x D y ( \boldsymbol { x } , \boldsymbol { w } ) = w _ 0+ w _ 1 x _ 1+ \ldots + w _Dx _ D \tag{3.1}
由于线性函数的局限性(绝大部分模型都是非线性的),通过将上述公式中的 x x 换成 ϕ ( x ) \phi { (x) } ,通过把M个非线性(相对于x来说)模型进行组合

(3.2) y ( x , w ) = w 0 + j = 1 M 1 w j ϕ j ( x ) = j = 0 M 1 w j ϕ j ( x ) = w T ϕ ( x ) y ( \boldsymbol { x } , \boldsymbol { w } ) = w _ { 0 } + \sum _ { j = 1 } ^ { M - 1 } w _ { j } \phi _ { j } ( \boldsymbol { x } ) = \sum _ { j = 0 } ^ { M - 1 } w _ { j } \phi _ { j } ( \mathbf { x } ) = \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } ( \mathbf { x } ) \tag{3.2}

其中 ϕ j ( x ) \phi_j{ (x) } 被称为基函数(basis function)。通过把下标j的最⼤值记作M−1,这个模型中的参数总数为M。

通过使⽤⾮线性基函数,我们能够让函数y(x, w)成为输⼊向量x的⼀个⾮线性函数。但是,形如(3.2)的函数被称为线性模型,因为这个函数是 w w 的线性函数。

常用的基函数有:

  • 高斯基函数
    (3.3) ϕ j ( x ) = exp { ( x μ j ) 2 2 s 2 } \phi _ { j } ( x ) = \exp \left\{ - \frac { \left( x - \mu _ { j } \right) ^ { 2 } } { 2 s ^ { 2 } } \right\} \tag{3.3}
  • sigmoid基函数
    (3.4) ϕ j ( x ) = σ ( x μ j s ) \phi _ { j } ( x ) = \sigma \left( \frac { x - \mu _ { j } } { s } \right) \tag{3.4}

(3.5) σ a = 1 1 + exp ( a ) \sigma _ { a } = \frac { 1 } { 1 + \exp ( - a ) } \tag{3.5}

本章中的⼤部分讨论都与基函数的选择⽆关,我们不会具体化基函数的特定形式,为了保持记号的简洁,我们把注意⼒集中于单⼀⽬标变量t的情形。

最大似然和最小平方

本小章节讨论最⼩平⽅的⽅法与最⼤似然⽅法的关系。
我们假设⽬标变量t由确定的函数y(x, w)给出,这个函数被附加了⾼斯噪声,
(3.6) t = y ( x , w ) + ϵ t = y ( \boldsymbol { x } , \boldsymbol { w } ) + \epsilon \tag{3.6}
其中ϵ是⼀个零均值的⾼斯随机变量,精度(⽅差的倒数)为β。因此我们有
(3.7) p ( t x , w , β ) = N ( t y ( x , w ) , β 1 ) p ( t | \boldsymbol { x } , \boldsymbol { w } , \beta ) = \mathcal { N } ( t | y ( \boldsymbol { x } , \boldsymbol { w } ) , \beta ^ { - 1 } ) \tag{3.7}

最小化平⽅损失函数等价于预测目标t的条件均值(第一章介绍),可以写作
(3.8) E [ t x ] = t p ( t x ) d t = y ( x , w ) \mathbb { E } [ t | \boldsymbol { x } ] = \int t p ( t | \boldsymbol { x } ) \mathrm { d } t = y ( \boldsymbol { x } , \boldsymbol { w } ) \tag{3.8}

对于输入 X = { x 1 , , x N } \boldsymbol { X } = \left\{ \boldsymbol { x } _ { 1 } , \ldots , \boldsymbol { x } _ { N } \right\} ,对应的目标值 t = { t 1 , , t N } T \boldsymbol { t } = \left\{ \boldsymbol { t } _ { 1 } , \ldots , \boldsymbol { t } _ { N } \right\}^T ,假设这些数据点是独⽴地从分布(3.7)中抽取的。似然函数的表达式如下,其中参数w和β是可以调节的,形式为
(3.9) p ( t X , w , β ) = n = 1 N N ( t n w T ϕ ( x n ) , β 1 ) p ( \mathbf { t } | \boldsymbol { X } , \boldsymbol { w } , \beta ) = \prod _ { n = 1 } ^ { N } \mathcal { N } \left( t _ { n } | \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) , \beta ^ { - 1 } \right) \tag{3.9}

为了保持记号的简洁性,我们在诸如p(i | x, w, β)这类的表达式中不显式地写出x。取对数似然函数的对数:
(3.10) ln p ( t w , β ) = n = 1 N ln N ( t n w T ϕ ( x n ) , β 1 ) = N 2 ln β N 2 ln ( 2 π ) β E D ( w ) \begin{aligned} \ln p ( \mathbf { t } | \boldsymbol { w } , \beta ) & = \sum _ { n = 1 } ^ { N } \ln \mathcal { N } \left( t _ { n } | \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) , \beta ^ { - 1 } \right) \\ & = \frac { N } { 2 } \ln \beta - \frac { N } { 2 } \ln ( 2 \pi ) - \beta E _ { D } ( \boldsymbol { w } ) \end{aligned} \tag{3.10}

其中平⽅和误差函数的定义为:
(3.11) E D ( w ) = 1 2 n = 1 N { t n w T ϕ ( x n ) } 2 E _ { D } ( \boldsymbol { w } ) = \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left\{ t _ { n } - \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) \right\} ^ { 2 } \tag{3.11}

使⽤最⼤似然的⽅法确定w和β,首先似然函数对于w的梯度为
(3.12) ln p ( t w , β ) = β n = 1 N { t n w T ϕ ( x n ) } ϕ ( x n ) T \nabla \ln p ( \mathbf { t } | \boldsymbol { w } , \beta ) = \beta \sum _ { n = 1 } ^ { N } \left\{ t _ { n } - \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) \right\} \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) ^ { T } \tag{3.12}

令这个梯度等于零
(3.13) 0 = n = 1 N t n ϕ ( x n ) T w T ( n = 1 N ϕ ( x n ) ϕ ( x n ) T ) 0 = \sum _ { n = 1 } ^ { N } t _ { n } \phi \left( \boldsymbol { x } _ { n } \right) ^ { T } - \boldsymbol { w } ^ { T } \left( \sum _ { n = 1 } ^ { N } \phi \left( \boldsymbol { x } _ { n } \right) \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) ^ { T } \right) \tag{3.13}

所以
(3.14) w M L = ( Φ T Φ ) 1 Φ T t \boldsymbol { w } _ { M L } = \left( \boldsymbol { \Phi } ^ { T } \boldsymbol { \Phi } \right) ^ { - 1 } \boldsymbol { \Phi } ^ { T } \mathbf { t } \tag{3.14}

这⾥Φ是⼀个N × M的矩阵,被称为设计矩阵(design matrix)
(3.15) Φ = ( ϕ 0 ( x 1 ) ϕ 1 ( x 1 ) ϕ M 1 ( x 1 ) ϕ 0 ( x 2 ) ϕ 1 ( x 2 ) ϕ M 1 ( x 2 ) ϕ 0 ( x N ) ϕ 1 ( x N ) ϕ M 1 ( x N ) ) \mathbf { \Phi } = \left( \begin{array} { c c c c } { \phi _ { 0 } \left( \boldsymbol { x } _ { 1 } \right) } & { \phi _ { 1 } \left( \boldsymbol { x } _ { 1 } \right) } & { \cdots } & { \phi _ { M - 1 } \left( \boldsymbol { x } _ { 1 } \right) } \\ { \phi _ { 0 } \left( \boldsymbol { x } _ { 2 } \right) } & { \phi _ { 1 } \left( \boldsymbol { x } _ { 2 } \right) } & { \cdots } & { \phi _ { M - 1 } \left( \boldsymbol { x } _ { 2 } \right) } \\ { \vdots } & { \vdots } & { \ddots } & { \vdots } \\ { \phi _ { 0 } \left( \boldsymbol { x } _ { N } \right) } & { \phi _ { 1 } \left( \boldsymbol { x } _ { N } \right) } & { \cdots } & { \phi _ { M - 1 } \left( \boldsymbol { x } _ { N } \right) } \end{array} \right) \tag{3.15}

通过最大化似然函数,可求出对 β \beta
( 3.16) 1 β M L = 1 N n = 1 N { t n w M L T ϕ ( x n ) } 2 \frac { 1 } { \beta _ { M L } } = \frac { 1 } { N } \sum _ { n = 1 } ^ { N } \left\{ t _ { n } - \boldsymbol { w } _ { M L } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) \right\} ^ { 2 } \tag{ 3.16}
可以看出精度的倒数为⽬标值在回归函数周围的残留⽅差。

现在,我们可以更加深刻地认识偏置参数w0。如果我们显式地写出偏置参数,那么误差函数改写为
(3.17) E D ( w ) = 1 2 n = 1 N { t n w 0 j = 1 M 1 w j ϕ j ( x n ) } 2 E _ { D } ( \boldsymbol { w } ) = \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left\{ t _ { n } - w _ { 0 } - \sum _ { j = 1 } ^ { M - 1 } w _ { j } \phi _ { j } \left( \boldsymbol { x } _ { n } \right) \right\} ^ { 2 } \tag{3.17}

w 0 w_0 求导并令其导数为0,则求出 w 0 w_0 为:
(3.18) w 0 = t j = 1 M 1 w j ϕ j w _ { 0 } = \overline { t } - \sum _ { j = 1 } ^ { M - 1 } w _ { j } \overline { \phi } _ { j } \tag{3.18}

其中
(3.19) t = 1 N n = 1 N t n , ϕ j = 1 N n = 1 N ϕ j ( x n ) \overline { t } = \frac { 1 } { N } \sum _ { n = 1 } ^ { N } t _ { n } , \quad \overline { \phi } _ { j } = \frac { 1 } { N } \sum _ { n = 1 } ^ { N } \phi _ { j } \left( \boldsymbol { x } _ { n } \right) \tag{3.19}

可以看出偏置等于目标值的均值和预测值的均值的差。

最⼩平⽅的⼏何描述

对于输入 X = { x 1 , , x N } \boldsymbol { X } = \left\{ \boldsymbol { x } _ { 1 } , \ldots , \boldsymbol { x } _ { N } \right\} ,对应的目标值 t = { t 1 , , t N } T \boldsymbol { t } = \left\{ \boldsymbol { t } _ { 1 } , \ldots , \boldsymbol { t } _ { N } \right\}^T ,考虑N维空间的n个坐标轴以此对应 t n t_n ,因此 t = ( t 1 , , t N ) T \mathbf { t } = \left( t _ { 1 } , \dots , t _ { N } \right) ^ { T } 为此空间的一个向量,这N个 x x 对应的第j个基向量 ϕ j ( { x 1 , , x N } ) \phi _ { j } ( \left\{ \boldsymbol { x } _ { 1 } , \ldots , \boldsymbol { x } _ { N } \right\}) 也是N维向量,如果基函数数量M小于数据量N,那么M个向量 ϕ j ϕ_j 将会张成⼀个M维的⼦空间 S S ,我们定义 y y 是⼀个N维向量,它的第n个元素为 y ( x n , w ) y(x_n, w) ,其中n = 1,…,N。由于 y y 是M个向量 ϕ j ϕ_j 的任意线性组合,因此它可以位于M维⼦空间的任何位置。

平⽅和误差函数(3.11)就等于 y y t t 之间的平⽅欧⽒距离,为了是两个点的向量的距离最短,因此,w的最⼩平⽅解为使位于⼦空间 S S (M维)的 y y 距离 t t 最近。

如下图所示,举个例子,假设 t = ( 1 , 1 , 0 ) t = (1,1,0) 是一个3维向量,而 ϕ 1 = ( 1 , 0 , 0 ) , ϕ 2 = ( 0 , 1 , 0 ) \phi_1 = (1,0,0),\phi_2 = (0,1,0) 实际上这两个向量张成的是2维空间(在平面中),从t出发做投影到空间 S S ,此时的投影便是 y y ,因为此时 y t y到t 的距离最短嘛。
在这里插入图片描述

对于在之前得到的 w M L w_{ML}
(3.14) w M L = ( Φ T Φ ) 1 Φ T t \boldsymbol { w } _ { M L } = \left( \boldsymbol { \Phi } ^ { T } \boldsymbol { \Phi } \right) ^ { - 1 } \boldsymbol { \Phi } ^ { T } \mathbf { t } \tag{3.14}
y = ϕ w M L y = \phi w_{ML} 可以推导一下这个式子正是t在空间 S S 的投影

顺序学习

一次处理所有数据计算量相当大,现在为了减少一次计算成本来每次计算一个数据点,这称为顺序学习。对于顺序学习可以通过随机梯度下降(stochastic gradient descent)进行迭代。对于误差和 E = n E n E = \sum_n E_n ,当计算到第n个数据点时,对参数做一下更新
(3.20) w ( τ + 1 ) = w ( τ ) η E n \boldsymbol { w } ^ { ( \tau + 1 ) } = \boldsymbol { w } ^ { ( \tau ) } - \eta \nabla E _ { n } \tag{3.20}

对于之前个平方和误差的情况
(3.21) w ( τ + 1 ) = w ( τ ) + η ( t n w ( τ ) T ϕ n ) ϕ n \boldsymbol { w } ^ { ( \tau + 1 ) } = \boldsymbol { w } ^ { ( \tau ) } + \eta \left( t _ { n } - \boldsymbol { w } ^ { ( \tau ) T } \boldsymbol { \phi } _ { n } \right) \boldsymbol { \phi } _ { n } \tag{3.21}

正则化最⼩平⽅

为了防止模型过拟合,在误差函数中增加正则项
(3.22) E D ( w ) + λ E W ( w ) ,其中 E W ( w ) = 1 2 w T w E _ { D } ( \boldsymbol { w } ) + \lambda E _ { W } ( \boldsymbol { w } ) \tag{3.22} \text{,其中} E _ { W } ( \boldsymbol { w } ) = \frac { 1 } { 2 } \boldsymbol { w } ^ { T } \boldsymbol { w }

如果误差函数为式3.11,则总误差为
(3.23) 1 2 n = 1 N { t n w T ϕ ( x n ) } 2 + λ 2 w T w \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left\{ t _ { n } - \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) \right\} ^ { 2 } + \frac { \lambda } { 2 } \boldsymbol { w } ^ { T } \boldsymbol { w } \tag{3.23}

正则项更为一般的情况
1 2 n = 1 N { t n w T Φ ( x n ) } 2 + λ 2 j = 1 M w j q \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left\{ t _ { n } - \boldsymbol { w } ^ { T } \mathbf { \Phi } \left( \boldsymbol { x } _ { n } \right) \right\} ^ { 2 } + \frac { \lambda } { 2 } \sum _ { j = 1 } ^ { M } \left| w _ { j } \right| ^ { q }

q = 1的情形被称为套索(lasso)(Tibshirani, 1996)。它的性质为:如果λ充分⼤,那么某些系数 w j w_j 会变为零,从⽽产⽣了⼀个稀疏(sparse)模型,如下图
在这里插入图片描述
关于稀疏的解析,详细可以见知乎:https://zhuanlan.zhihu.com/p/50142573

多个输出

对于一个目标变量有个多个输出时,更常⽤的⽅法是对⽬标向量的所有分量使⽤⼀组相同的基函数来建模。
(3.24) y ( x , w ) = W T ϕ ( x ) \boldsymbol { y } ( \boldsymbol { x } , \boldsymbol { w } ) = \boldsymbol { W } ^ { T } \boldsymbol { \phi } ( \boldsymbol { x } ) \tag{3.24}
其中y是⼀个K维列向量,W是⼀个M × K的参数矩阵, ϕ ( x ) \phi (x) 是⼀个M为列向量。
用最大似然函数求解得到
(3.25) W M L = ( Φ T Φ ) 1 Φ T T \boldsymbol { W } _ { M L } = \left( \boldsymbol { \Phi } ^ { T } \boldsymbol { \Phi } \right) ^ { - 1 } \boldsymbol { \Phi } ^ { T } \boldsymbol { T } \tag{3.25}
对于t的每一个值 t k t_k
(3.26) w k = ( Φ T Φ ) 1 Φ T t k = Φ t k \boldsymbol { w } _ { k } = \left( \boldsymbol { \Phi } ^ { T } \mathbf { \Phi } \right) ^ { - 1 } \mathbf { \Phi } ^ { T } \mathbf { t } _ { k } = \mathbf { \Phi } ^ { \dagger } \mathbf { t } _ { k } \tag{3.26}

偏置-⽅差分解


对于之前我们讨论的线性模型,我们假定了基函数的形式和数量都是固定的,会有以下问题

  1. 使⽤最⼤似然⽅法或者说使⽤最⼩平⽅⽅法,会导致严重的过拟合问题。
  2. 通过限制基函数的数量来避免过拟合问题有⼀个负作⽤,会影响模型描述数据的能力。
  3. 引⼊正则化项,如何确定正则化系数λ的合适的值。

本章中,我们会稍微深⼊地从贝叶斯观点讨论模型的复杂度。但是,在进⾏这样的讨论之前,从频率学家的观点考虑⼀下模型的复杂度问题。这种频率学家的观点被称为偏置-⽅差折中(bias-variance trade-off)。

在第一章证明了平⽅损失函数的期望为
(3.27) E [ L ] = { y ( x ) h ( x ) } 2 p ( x ) d x + { h ( x ) t } 2 p ( x , t ) d x d t \mathbb { E } [ L ] = \int \{ y ( \boldsymbol { x } ) - h ( \boldsymbol { x } ) \} ^ { 2 } p ( \boldsymbol { x } ) \mathrm { d } \boldsymbol { x } + \iint \{ h ( \boldsymbol { x } ) - t \} ^ { 2 } p ( \boldsymbol { x } , t ) \mathrm { d } \boldsymbol { x } \mathrm { d } t \tag{3.27}

第二项为数据噪声(数据集中的数据和事实情况不符合),第一项表示我们要找到一个y(x)使其最小,最好为零,然而这是不可能的(因为没有无线多的数据和计算能力),只能尽可能的小。

对于上式第一项,对于一个特定的数据集 D D
(3.28) y ( x ; D ) h ( x ) 2 {y(x;D) - h(x)}^2 \tag{3.28}

由于这个量与特定的数据集D相关,因此我们对所有的数据集取平均。对一个单独的输入x
(3.29) { y ( x ; D ) E D [ y ( x ; D ) ] + E D [ y ( x ; D ) ] h ( x ) } 2 = { y ( x ; D ) E D [ y ( x ; D ) ] } 2 + { E D [ y ( x ; D ) ] h ( x ) } 2 + 2 { y ( x ; D ) E D [ y ( x ; D ) ] } { E D [ y ( x ; D ) ] h ( x ) } \begin{array} { r l } { \left\{ y ( \boldsymbol { x } ; \mathcal { D } ) - \mathbb { E } _ { \mathcal { D } } [ y ( \boldsymbol { x } ; \mathcal { D } ) ] + \mathbb { E } _ { \mathcal { D } } [ y ( \boldsymbol { x } ; \mathcal { D } ) ] - h ( \boldsymbol { x } ) \right\} ^ { 2 } } & \\ = { \left \{ y ( \boldsymbol { x } ; \mathcal { D } ) - \mathbb { E } _ { \mathcal { D } } [ y ( \boldsymbol { x } ; \mathcal { D } ) ] \right\} ^ { 2 } + \left\{ \mathbb { E } _ { \mathcal { D } } [ y ( \boldsymbol { x } ; \mathcal { D } ) ] - h ( \boldsymbol { x } ) \right\} ^ { 2 } } { } & \\{ + 2 \left\{ y ( \boldsymbol { x } ; \mathcal { D } ) - \mathbb { E } _ { \mathcal { D } } [ y ( \boldsymbol { x } ; \mathcal { D } ) ] \right\} \left\{ \mathbb { E } _ { \mathcal { D } } [ y ( \boldsymbol { x } ; \mathcal { D } ) ] - h ( \boldsymbol { x } ) \right\} } \end{array} \tag{3.29}

因为上式为一个数据点的值,现在对其关于 D D 求期望
(3.30) E D [ { y ( x ; D ) h ( x ) } 2 ] = { E D [ y ( x ; D ) ] h ( x ) } 2 ( ) 2 + E D [ { y ( x ; D ) E D [ y ( x , D ) ] } 2 ] \begin{aligned} E_D[\{y(x;\mathcal{D})-h(x)\}^2] &= \begin{matrix} \underbrace{\{ E_D[y(x;\mathcal{D})]-h(x) \}^2} \\ (偏置)^2\end{matrix} + \begin{matrix} \underbrace{ E_D[\{y(x;\mathcal{D}) - E_D[y(x,\mathcal{D})]\}^2]} \\ 方差\end{matrix} \end{aligned} \tag{3.30}

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

上述是单独的x的情况,对一个所有输入x有
(3.31) = 2 + + 期望损失 = 偏置^2 + ⽅差 + 噪声 \tag{3.31}

(3.32) 2 = { E D [ y ( x ; D ) ] h ( x ) } 2 p ( x ) d x 偏置^2= \left\{ \mathbb { E } _ { \mathcal { D } } [ y ( \boldsymbol { x } ; \mathcal { D } ) ] - h ( \boldsymbol { x } ) \right\} ^ { 2 } p ( \boldsymbol { x } ) \mathrm { d } \boldsymbol { x } \tag{3.32}

(3.33) = E D [ { y ( x ; D ) E D [ y ( x ; D ) ] } 2 ] p ( x ) d x 方差 = \int \mathbb { E } _ { \mathcal { D } } \left[ \left\{ y ( \boldsymbol { x } ; \mathcal { D } ) - \mathbb { E } _ { \mathcal { D } } [ y ( \boldsymbol { x } ; \mathcal { D } ) ] \right\} ^ { 2 } \right] p ( \boldsymbol { x } ) \mathrm { d } \boldsymbol { x } \tag{3.33}

(3.34) = { h ( x ) t } 2 p ( x , t ) d x d t 噪声 = \iint \{ h ( \boldsymbol { x } ) - t \} ^ { 2 } p ( \boldsymbol { x } , t ) \mathrm { d } \boldsymbol { x } \mathrm { d } t \tag{3.34}

从上面得到,最小化期望损失,可以分解成偏置、方差和噪声。有着最优预测能⼒的模型时在偏置和⽅差之间取得平衡。那么选取 λ \lambda 对偏置和方差有什么影响呢

  • λ \lambda 大的时候,模型可能就会欠拟合,我们得到的函数就会和预期的函数相差很大,就会导致偏置很大
  • λ \lambda 小的时候模型可能就会过拟合,我们得到的函数就会和预期的函数过于接近,就会导致偏置很小

虽然偏置-⽅差分解能够从频率学家的⾓度对模型的复杂度提供⼀些有趣的认识,但是它的实⽤价值很有限。这是因为偏置-⽅差分解依赖于对所有的数据集求平均,⽽在实际应⽤中我们只有⼀个观测数据集

贝叶斯线性回归


参数分布

首先引入 w w 的先验概率分布(假设精度β 已知),有公式3.9 似然函数 p ( t w ) p(t|w) ,其对应的共轭先验为高斯分布(所谓共轭先验就是,能够引入一个先验乘以似然函数之后得到的后验能和先验有着同样的形式,共轭先验具体见参考维基百科https://en.wikipedia.org/wiki/Conjugate_prior#Example
(3.35) p ( w ) = N ( w m 0 , S 0 ) p ( \boldsymbol { w } ) = \mathcal { N } ( \boldsymbol { w } | \boldsymbol { m } _ { 0 } , \boldsymbol { S } _ { 0 } ) \tag{3.35}

通过第二章的推导,后验分布为
(3.36) p ( w t ) = N ( w m N , S N ) p ( \boldsymbol { w } | \mathbf { t } ) = \mathcal { N } ( \boldsymbol { w } | \boldsymbol { m } _ { N } , \boldsymbol { S } _ { N } ) \tag{3.36}
其中
(3.37) m N = S N ( S 0 1 m 0 + β Φ T t ) S N 1 = S 0 1 + β Φ T Φ \begin{array} { c } { \boldsymbol { m } _ { N } = \boldsymbol { S } _ { N } \left( \boldsymbol { S } _ { 0 } ^ { - 1 } \boldsymbol { m } _ { 0 } + \beta \mathbf { \Phi } ^ { T } \mathbf { t } \right) } \\ { \boldsymbol { S } _ { N } ^ { - 1 } = \boldsymbol { S } _ { 0 } ^ { - 1 } + \beta \boldsymbol { \Phi } ^ { T } \boldsymbol { \Phi } } \end{array} \tag{3.37}

因此 w M A P = m N ( ) w_{MAP} = m_N(后验均值) ,如果假设先验 p ( w ) p(w) 的方差趋近无穷大(高斯函数越平缓),也就是刚开始 w w 为任何值得概率都是一样的,则 m N = w M L m_N = w_{ML} ,如果N=0,那么后验就等于了先验(此时没有任何数据信息)。这就可以理解为,任何一个阶段的后验即是下一阶段的先验。

预测分布

在实际应⽤中,我们通常感兴趣的不是w本⾝的值,⽽是对于新的x值预测出t的值。这需要我们计算出预测分布(predictive distribution),定义为
(3.38) p ( t t , α , β ) = p ( t w , β ) p ( w t , α , β ) d w p ( t | \mathbf { t } , \alpha , \beta ) = \int p ( t | \boldsymbol { w } , \beta ) p ( \boldsymbol { w } | \mathbf { t } , \alpha , \beta ) \mathrm { d } \boldsymbol { w } \tag{3.38}

转化为
(3.39) p ( t x , t , α , β ) = N ( t m N T ϕ ( x ) , σ N 2 ( x ) ) p ( t | \boldsymbol { x } , \mathbf { t } , \alpha , \beta ) = \mathcal { N } ( t | \boldsymbol { m } _ { N } ^ { T } \boldsymbol { \phi } ( \boldsymbol { x } ) , \sigma _ { N } ^ { 2 } ( \boldsymbol { x } ) ) \tag{3.39}
(3.40) σ N 2 ( x ) = 1 β + ϕ ( x ) T S N ϕ ( x ) \sigma _ { N } ^ { 2 } ( \boldsymbol { x } ) = \frac { 1 } { \beta } + \boldsymbol { \phi } ( \boldsymbol { x } ) ^ { T } \boldsymbol { S } _ { N } \boldsymbol { \phi } ( \boldsymbol { x } ) \tag{3.40}

公式3.40第⼀项表⽰数据中的噪声,⽽第⼆项反映了预测分布与参数w关联的不确定性。由于噪声和w的分布是相互独⽴的⾼斯分布,因此它们的值是可以相加的。当额外的数据点被观测到的时候,后验概率分布会变窄。从⽽可以证明出 σ N + 1 2 ( x ) σ N 2 ( x ) σ^2_{N +1}(x) ≤ σ^2_{N} (x)

等价核

把公式3.37的带入y(x, w), m N w m_N为w后验均值 , 则预测均值为
(3.41) y ( x , m N ) = m N T ϕ ( x ) = β ϕ ( x ) T S N Φ T t = m = 1 N β ϕ ( x ) T S N ϕ ( x n ) t n y \left( \boldsymbol { x } , \boldsymbol { m } _ { N } \right) = \boldsymbol { m } _ { N } ^ { T } \boldsymbol { \phi } ( \boldsymbol { x } ) = \beta \boldsymbol { \phi } ( \boldsymbol { x } ) ^ { T } \boldsymbol { S } _ { N } \boldsymbol { \Phi } ^ { T } \mathbf { t } = \sum _ { m = 1 } ^ { N } \beta \boldsymbol { \phi } ( \boldsymbol { x } ) ^ { T } \boldsymbol { S } _ { N } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) t _ { n } \tag{3.41}


(3.42) y ( x , m N ) = n = 1 N k ( x , x n ) t n y \left( \boldsymbol { x } , \boldsymbol { m } _ { N } \right) = \sum _ { n = 1 } ^ { N } k \left( \boldsymbol { x } , \boldsymbol { x } _ { n } \right) t _ { n } \tag{3.42}

(3.43) k ( x , x ) = β ϕ ( x ) T S N ϕ ( x ) k \left( \boldsymbol { x } , \boldsymbol { x } ^ { \prime } \right) = \beta \boldsymbol { \phi } ( \boldsymbol { x } ) ^ { T } \boldsymbol { S } _ { N } \boldsymbol { \phi } \left( \boldsymbol { x } ^ { \prime } \right) \tag{3.43}

式3.43被称为平滑矩阵或等价核,等价核表示的是对于新x和与训练数据集中的所有x的距离,预测值y则是这些距离和其对应的t的加权平均。

贝叶斯模型的比较

模型⽐较的贝叶斯观点仅仅涉及到使⽤概率来表⽰模型选择的不确定性,假设我们想⽐较L个模型 M i {M_i} ,其中 i = 1 , . . . , L i = 1, . . . , L。 我们会假设数据是由这些模型中的⼀个⽣成的,但是我们不知道究竟是哪⼀个。我们的不确定性通过先验概率分布p(Mi)表⽰。给定⼀个训练数据集D,我们想估计后验分布
(3.44) p ( M i D ) p ( M i ) p ( D M i ) p \left( \mathcal { M } _ { i } | \mathcal { D } \right) \propto p \left( \mathcal { M } _ { i } \right) p ( \mathcal { D } | \mathcal { M } _ { i } ) \tag{3.44}

先验分布让我们能够表达不同模型之间的优先级。假设所有模型概率都相同,模型证据(model evidence) p ( D M i ) p(D | M_i) ,它表达了数据展现出的不同模型的优先级,也被称为边缘似然(marginal likelihood)

⼀旦我们知道了模型上的后验概率分布,那么根据概率的加和规则与乘积规则,预测分布为
(3.45) p ( t x , D ) = i = 1 L p ( t x , M i , D ) p ( M i D ) p ( t | \boldsymbol { x } , \mathcal { D } ) = \sum _ { i = 1 } ^ { L } p ( t | \boldsymbol { x } , \mathcal { M } _ { i } , \mathcal { D } ) p \left( \mathcal { M } _ { i } | \mathcal { D } \right) \tag{3.45}

对于⼀个由参数w控制的模型,根据概率的加和规则和乘积规则,模型证据为
(3.46) p ( D M i ) = p ( D w , M i ) p ( w M i ) d w p ( \mathcal { D } | \mathcal { M } _ { i } ) = \int p ( \mathcal { D } | \boldsymbol { w } , \mathcal { M } _ { i } ) p ( \boldsymbol { w } | \mathcal { M } _ { i } ) \mathrm { d } \boldsymbol { w } \tag{3.46}

模型证据恰好就是在估计参数的后验分布时出现在贝叶斯定理的分母中的归⼀化项,因为
(3.47) p ( w D , M i ) = p ( D w , M i ) p ( w M i ) p ( D M i ) p ( \boldsymbol { w } | \mathcal { D } , \mathcal { M } _ { i } ) = \frac { p ( \mathcal { D } | \boldsymbol { w } , \mathcal { M } _ { i } ) p ( \boldsymbol { w } | \mathcal { M } _ { i } ) } { p ( \mathcal { D } | \mathcal { M } _ { i } ) } \tag{3.47}

⾸先考虑模型有⼀个参数w的情形。这个参数的后验概率正⽐于p(D | w)p(w),其中为了简化记号,我们省略了它对于模型Mi的依赖。如果我们假设后验分布在最⼤似然值wMAP附近是⼀个尖峰,宽度为∆w后验,那么我们可以⽤被积函数的值乘以尖峰的宽度来近似这个积分。如下图
(3.48) p ( D ) = p ( D w ) p ( w ) d w p ( D w M A P ) Δ w  posterior  Δ w  prior  p ( \mathcal { D } ) = \int p ( \mathcal { D } | w ) p ( w ) \mathrm { d } w \simeq p ( \mathcal { D } | w _ { \mathrm { MAP } } ) \frac { \Delta w _ { \text { posterior } } } { \Delta w _ { \text { prior } } } \tag{3.48}

取对数可得
(3.49) ln p ( D ) ln p ( D w M A P ) + ln ( Δ w p o s t e r i o r Δ w p r i o r ) \ln p ( \mathcal { D } ) \simeq \ln p ( \mathcal { D } | w _ { \mathrm { MAP } } ) + \ln \left( \frac { \Delta w _ { \mathrm { posterior } } } { \Delta w _ { \mathrm { prior } } } \right) \tag{3.49}

第⼀项表⽰拟合由最可能参数对应的模型给出的数据。第⼆项⽤于根据模型的复杂度来惩罚模型。后验的宽度越小,表示模型拟合越精确,则惩罚越厉害
在这里插入图片描述

证据近似

在处理线性基函数模型的纯粹的贝叶斯⽅法中,我们会引⼊超参数α和β的先验分布,然后通过对超参数以及参数w求积分的⽅式做预测。但是,虽然我们可以解析地求出对w的积分或者求出对超参数的积分,但是对所有这些变量完整地求积分是没有解析解的。

这⾥我们讨论⼀种近似⽅法。这种⽅法中,我们⾸先对参数w求积分,得到边缘似然函数(marginal likelihoodfunction),然后通过最⼤化边缘似然函数,确定超参数的值。这种⽅法也被称为证据近似

如果我们引⼊α和β上的超先验分布,那么预测分布可以通过对w, α和β求积分的⽅法得到
(3.50) p ( t t ) = p ( t w , β ) p ( w t , α , β ) p ( α , β t ) d w d α d β p ( t | \mathbf { t } ) = \iiint p ( t | \boldsymbol { w } , \beta ) p ( \boldsymbol { w } | \mathbf { t } , \alpha , \beta ) p ( \alpha , \beta | \mathbf { t } ) \mathrm { d } \boldsymbol { w } \mathrm { d } \alpha \mathrm { d } \beta \tag{3.50}

如果后验分布 p ( α , β i ) p(α, β | i) α ^ \widehat { \alpha } β ^ \widehat { \beta } 附近有尖峰,那么预测分布可以通过对积分的⽅式简单地得到,其中α和β被固定为 α ^ \widehat { \alpha } β ^ \widehat { \beta }
(3.51) p ( t t ) p ( t t , α ^ , β ^ ) = p ( t w , β ^ ) p ( w t , α ^ , β ^ ) d w p ( t | \mathbf { t } ) \simeq p ( t | \mathbf { t } , \widehat { \alpha } , \widehat { \beta } ) = \int p ( t | \boldsymbol { w } , \widehat { \beta } ) p ( \boldsymbol { w } | \mathbf { t } , \widehat { \alpha } , \widehat { \beta } ) \mathrm { d } \boldsymbol { w } \tag{3.51}

接下来就要求出 α ^ \widehat { \alpha } β ^ \widehat { \beta } ,α和β的后验分布为
(3.52) p ( α , β t ) p ( t α , β ) p ( α , β ) p ( \alpha , \beta | \mathbf { t } ) \propto p ( \mathbf { t } | \alpha , \beta ) p ( \alpha , \beta ) \tag{3.52}

α ^ \widehat { \alpha } β ^ \widehat { \beta } 可以通过最⼤化边缘似然函数p(i | α, β)来获得。我们接下来会计算线性基函数模型的边缘似然函数,然后找到它的最⼤值。这将使我们能够从训练数据本⾝确定这些超参数的值,⽽不需要交叉验证

计算证据函数

边缘似然函数p(i | α, β)是通过对权值参数w进⾏积分得到的
(3.53) p ( t α , β ) = p ( t w , β ) p ( w α ) d w p ( \mathbf { t } | \alpha , \beta ) = \int p ( \mathbf { t } | \boldsymbol { w } , \beta ) p ( \boldsymbol { w } | \alpha ) \mathrm { d } \boldsymbol { w } \tag{3.53}

根据公式(3.10)、公式(3.11)和w的分布
(3.10) ln p ( t w , β ) = n = 1 N ln N ( t n w T ϕ ( x n ) , β 1 ) = N 2 ln β N 2 ln ( 2 π ) β E D ( w ) \begin{aligned} \ln p ( \mathbf { t } | \boldsymbol { w } , \beta ) & = \sum _ { n = 1 } ^ { N } \ln \mathcal { N } \left( t _ { n } | \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) , \beta ^ { - 1 } \right) \\ & = \frac { N } { 2 } \ln \beta - \frac { N } { 2 } \ln ( 2 \pi ) - \beta E _ { D } ( \boldsymbol { w } ) \end{aligned} \tag{3.10}

(3.11) E D ( w ) = 1 2 n = 1 N { t n w T ϕ ( x n ) } 2 E _ { D } ( \boldsymbol { w } ) = \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left\{ t _ { n } - \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) \right\} ^ { 2 } \tag{3.11}

p ( w α ) = N ( w 0 , α 1 I ) p ( \boldsymbol { w } | \alpha ) = \mathcal { N } ( \boldsymbol { w } | \mathbf { 0 } , \alpha ^ { - 1 } \boldsymbol { I } )

我们可以把证据函数写成下⾯的形式
(3.54) p ( t α , β ) = ( β 2 π ) N 2 ( α 2 π ) M 2 exp { E ( w ) } d w p ( \mathbf { t } | \alpha , \beta ) = \left( \frac { \beta } { 2 \pi } \right) ^ { \frac { N } { 2 } } \left( \frac { \alpha } { 2 \pi } \right) ^ { \frac { M } { 2 } } \int \exp \{ - E ( \boldsymbol { w } ) \} \mathrm { d } \boldsymbol { w } \tag{3.54}

(3.55) E ( w ) = β E D ( w ) + α E W ( w ) = β 2 t Φ w 2 + α 2 w T w \begin{aligned} E ( \boldsymbol { w } ) & = \beta E _ { D } ( \boldsymbol { w } ) + \alpha E _ { W } ( \boldsymbol { w } ) \\ & = \frac { \beta } { 2 } \| \mathbf { t } - \boldsymbol { \Phi } \boldsymbol { w } \| ^ { 2 } + \frac { \alpha } { 2 } \boldsymbol { w } ^ { T } \boldsymbol { w } \end{aligned} \tag{3.55}

公式(3.55)等于正则化的平⽅和误差函数。我们现在对w配平⽅,可得
(3.56) E ( w ) = E ( m N ) + 1 2 ( w m N ) T A ( w m N ) E ( \boldsymbol { w } ) = E \left( \boldsymbol { m } _ { N } \right) + \frac { 1 } { 2 } \left( \boldsymbol { w } - \boldsymbol { m } _ { N } \right) ^ { T } \boldsymbol { A } \left( \boldsymbol { w } - \boldsymbol { m } _ { N } \right) \tag{3.56}

(3.57) A = α I + β Φ T Φ \boldsymbol { A } = \alpha \boldsymbol { I } + \beta \boldsymbol { \Phi } ^ { T } \boldsymbol { \Phi } \tag{3.57}

(3.58) E ( m N ) = β 2 t Φ m N 2 + β 2 m N T m N E \left( \boldsymbol { m } _ { N } \right) = \frac { \beta } { 2 } \left\| \mathbf { t } - \mathbf { \Phi } \boldsymbol { m } _ { N } \right\| ^ { 2 } + \frac { \beta } { 2 } \boldsymbol { m } _ { N } ^ { T } \boldsymbol { m } _ { N } \tag{3.58}
对w进行求积分
(3.59) exp { E ( w ) } d w = exp { E ( m N ) } exp { 1 2 ( w m N ) T A ( w m N ) } d w = exp { E ( m N ) } ( 2 π ) M 2 A 1 2 \begin{aligned} \int & \exp \{ - E ( \boldsymbol { w } ) \} \mathrm { d } \boldsymbol { w } \\ & = \exp \left\{ - E \left( \boldsymbol { m } _ { N } \right) \right\} \int \exp \left\{ - \frac { 1 } { 2 } \left( \boldsymbol { w } - \boldsymbol { m } _ { N } \right) ^ { T } \boldsymbol { A } \left( \boldsymbol { w } - \boldsymbol { m } _ { N } \right) \right\} \mathrm { d } \boldsymbol { w } \\ & = \exp \left\{ - E \left( \boldsymbol { m } _ { N } \right) \right\} ( 2 \pi ) ^ { \frac { M } { 2 } } | \boldsymbol { A } | ^ { - \frac { 1 } { 2 } } \end{aligned} \tag{3.59}

我们可以把边缘似然函数的对数写成下⾯的形式
(3.60) ln p ( t α , β ) = M 2 ln α + N 2 ln β E ( m N ) 1 2 ln A N 2 ln ( 2 π ) \ln p ( \mathbf { t } | \alpha , \beta ) = \frac { M } { 2 } \ln \alpha + \frac { N } { 2 } \ln \beta - E \left( \boldsymbol { m } _ { N } \right) - \frac { 1 } { 2 } \ln | \boldsymbol { A } | - \frac { N } { 2 } \ln ( 2 \pi ) \tag{3.60}

最⼤化证据函数

考虑p(i | α, β)关于α的最⼤化,⾸先定义下⾯的特征向量⽅程
(3.61) ( β Φ T Φ ) u i = λ i u i \left( \beta \boldsymbol { \Phi } ^ { T } \boldsymbol { \Phi } \right) \boldsymbol { u } _ { i } = \lambda _ { i } \boldsymbol { u } _ { i } \tag{3.61}

可知A的特征值为α + λi。考虑公式(3.60)中涉及到ln |A|的项关
于α的导数
(3.62) d d α ln A = d d α ln i ( λ i + α ) = d d α i ln ( λ i + α ) = i 1 λ i + α \frac { \mathrm { d } } { \mathrm { d } \alpha } \ln | \boldsymbol { A } | = \frac { \mathrm { d } } { \mathrm { d } \alpha } \ln \prod _ { i } \left( \lambda _ { i } + \alpha \right) = \frac { \mathrm { d } } { \mathrm { d } \alpha } \sum _ { i } \ln \left( \lambda _ { i } + \alpha \right) = \sum _ { i } \frac { 1 } { \lambda _ { i } + \alpha } \tag{3.62}

求驻点得到
(3.63) α = γ m N T m N \alpha = \frac { \gamma } { \boldsymbol { m } _ { N } ^ { T } \boldsymbol { m } _ { N } } \tag{3.63}

(3.64) γ = i λ i α + λ i \gamma = \sum _ { i } \frac { \lambda _ { i } } { \alpha + \lambda _ { i } } \tag{3.64}
开始随机选择一个w值,之后根据3.63公式不断迭代进行收敛。我们可以类似地关于β最⼤化对数边缘似然函数(3.60)
(3.65) 1 β = 1 N γ n = 1 N { t n m N T ϕ ( x n ) } 2 \frac { 1 } { \beta } = \frac { 1 } { N - \gamma } \sum _ { n = 1 } ^ { N } \left\{ t _ { n } - \boldsymbol { m } _ { N } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) \right\} ^ { 2 } \tag{3.65}

参数的有效数量

公式3.63的值 α \alpha 通过 p ( w α ) = N ( w 0 , α 1 I ) p ( \boldsymbol { w } | \alpha ) = \mathcal { N } ( \boldsymbol { w } | \mathbf { 0 } , \alpha ^ { - 1 } \boldsymbol { I } ) 来控制这w的分布。

由于 β Φ T Φ βΦ^T Φ 是⼀个正定矩阵,因此它的特征值为正数,从⽽⽐值 λ i / ( λ i + α ) λ_i /(λ_i+α) 位于0和1之间,结果,由公式(3.91)定义的γ的取值范围为 0 γ M 0 ≤ γ ≤ M
在这里插入图片描述

  1. 对于λi ≫ α的⽅向,对应的参数 w i w_i 将会与最⼤似然值接近,且
    ⽐值 λ i / ( λ i + α ) λ_i/(λ_i+α) 接近1。这样的参数被称为良好确定的,因为它们的值被数据紧紧地限制着。

2.相反,对于λi ≪ α的⽅向,对应的参数wi将会接近0,⽐值 λ i / ( λ i + α ) λ_i/(λ_i+α) 也会接近0。这些⽅向上,似然函数对于参数的值相对不敏感,因此参数被先验概率设置为较⼩的值。公式(3.64)定义的γ因此度量了良好确定的参数的有效总数

固定基函数的局限性

在本章中,我们已经关注了由固定的⾮线性基函数的线性组合组成的模型。不幸的是,线性模型有⼀些重要的局限性,这使得我们在后续的章节中要转⽽关注更加复杂的模型,例如⽀持向量机和神经⽹络。

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

猜你喜欢

转载自blog.csdn.net/csdn_47/article/details/84841419