假设我们有这样一个数据集: D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } \mathcal{D}=\{(x_1, y_1),(x_2, y_2),\cdots,(x_N, y_N)\} D={(x1,y1),(x2,y2),⋯,(xN,yN)}其中每个 x i x_i xi为一个 p p p维列向量,每个 y i y_i yi是一个标量。
我们将该数据集用矩阵的形式表示: X N × p = [ x 1 T x 2 T ⋯ x N T ] , Y N × 1 = [ y 1 y 2 ⋯ y N ] X_{N\times p}=\begin{bmatrix}x^T_1\\x^T_2\\\cdots\\x_N^T\end{bmatrix},Y_{N\times 1}=\begin{bmatrix}y_1\\y_2\\\cdots\\y_N\end{bmatrix} XN×p=⎣⎢⎢⎡x1Tx2T⋯xNT⎦⎥⎥⎤,YN×1=⎣⎢⎢⎡y1y2⋯yN⎦⎥⎥⎤则线性回归假设可以表示为 f ( w ) = w T x f(w)=w^Tx f(w)=wTx
其中 w w w是一个 p p p维列向量。
回归问题的终极目标就是求 w w w的值(方法:频率派的最小二乘法和极大似然估计、贝叶斯派的极大后验估计),或者生成关于 w w w的概率分布(方法:贝叶斯派的贝叶斯估计)。
既然是频率派,我们惯用的套路就是先建立一个模型,将我们的训数据集中的 x i x_i xi输入到模型中,输出就是我们预测的 y i ^ \hat{y_i} yi^,将预测值 y i ^ \hat{y_i} yi^与真实值 y i y_i yi作比较,计算损失函数,通过最小化失函数来优化模型中的参数 w w w,使得 w w w可以尽量去拟合数据集真实的分布。
最小二乘法采用平方误差来定义损失函数公式 L ( w ) = ∑ i = 1 N ( w T x i − y i ) 2 = [ w T x 1 − y 1 , w T x 2 − y 2 , ⋯ , w T x N − y N ] [ w T x 1 − y 1 w T x 2 − y 2 ⋯ w T x N − y N ] = [ w T x 1 − y 1 T , w T x 2 − y 2 T , ⋯ , w T x N − y N T ] [ x 1 T w − y 1 x 2 T w − y 2 ⋯ x N T w − y N ] = ( w T X T − Y T ) ( X w − Y ) = w T X T X w − Y T X w − w T X T Y + Y T Y = w T X T X w − 2 w T X T Y + Y T Y (1) \begin{aligned} &L(w)=\sum\limits_{i=1}^N(w^Tx_i-y_i)^2\\ &\qquad\ =[w^Tx_1-y_1,w^Tx_2-y_2,\cdots,w^Tx_N-y_N]\begin{bmatrix}w^Tx_1-y_1 \\w^Tx_2-y_2\\\cdots\\w^Tx_N-y_N\end{bmatrix}\\ &\qquad\ =[w^Tx_1-y^T_1,w^Tx_2-y^T_2,\cdots,w^Tx_N-y^T_N]\begin{bmatrix}x^T_1w-y_1\\x^T_2w- y_2\\\cdots\\x^T_Nw-y_N\end{bmatrix}\\ &\qquad\ =(w^TX^T-Y^T)(Xw-Y)\\ &\qquad\ =w^TX^TXw-Y^TXw-w^TX^TY+Y^TY\\ &\qquad\ =w^TX^TXw-2w^TX^TY+Y^TY \end{aligned} \qquad\tag{1} L(w)=i=1∑N(wTxi−yi)2 =[wTx1−y1,wTx2−y2,⋯,wTxN−yN]⎣⎢⎢⎡wTx1−y1wTx2−y2⋯wTxN−yN⎦⎥⎥⎤ =[wTx1−y1T,wTx2−y2T,⋯,wTxN−yNT]⎣⎢⎢⎡x1Tw−y1x2Tw−y2⋯xNTw−yN⎦⎥⎥⎤ =(wTXT−YT)(Xw−Y) =wTXTXw−YTXw−wTXTY+YTY =wTXTXw−2wTXTY+YTY(1) L ( w ) L(w) L(w)是一个凸函数,最小化 L ( w ) L(w) L(w)可以自然而然的想到将 L ( w ) L(w) L(w)对 w w w求导,令导函数为0:
∂ L ( w ) ∂ w = 0 2 X T X w − 2 X T Y = 0 w = ( X T X ) − 1 X T Y = X † Y (2) \begin{aligned} &\frac{\partial L(w)}{\partial w}=0\\ &2X^TXw-2X^TY=0\\ &w=(X^TX)^{-1}X^TY=X^{\dag}Y \tag{2} \end{aligned} ∂w∂L(w)=02XTXw−2XTY=0w=(XTX)−1XTY=X†Y(2)
(2)中, X † = ( X T X ) − 1 X T X^{\dag}=(X^TX)^{-1}X^T X†=(XTX)−1XT又被称之为伪逆。显然若 X T X X^TX XTX可逆,那么可以直接求解。否则,我们可以求 X X X的奇异值分解 X = U Σ V T X=U\Sigma V^T X=UΣVT,其中 Σ \Sigma Σ是一个满秩方阵。那么 X † = ( V Σ T U T U Σ V T ) − 1 V Σ T U T = V ( Σ T Σ ) − 1 V T V Σ U T = V ( Σ T Σ ) − 1 Σ U T = V Σ † U T (3) \begin{aligned} &X^\dag=(V\Sigma^TU^TU\Sigma V^T)^{-1}V\Sigma^TU^T\\ &\quad\ =V(\Sigma^T\Sigma)^{-1}V^TV\Sigma U^T\\ &\quad\ =V(\Sigma^T\Sigma)^{-1}\Sigma U^T\\ &\quad\ =V\Sigma^\dag U^T \end{aligned}\tag{3} X†=(VΣTUTUΣVT)−1VΣTUT =V(ΣTΣ)−1VTVΣUT =V(ΣTΣ)−1ΣUT =VΣ†UT(3)
求 w w w的问题实际上就是求解方程 X w = Y Xw=Y Xw=Y。
为了表述方便,我们采取另一种形式表示 X X X:
在 X X X中, x i T x^T_i xiT就是一个 p p p维的行向量,令 x i T = [ x i 1 , x i 2 , ⋯ , x i p ] x^T_i=[x^1_i,x^2_i,\cdots,x^p_i] xiT=[xi1,xi2,⋯,xip]
那么数据集在第一个维度上可表示为: x 1 = [ x 1 1 x 2 1 ⋯ x N 1 ] x^1=\begin{bmatrix}x^1_1\\x^1_2\\\cdots\\x^1_N\end{bmatrix} x1=⎣⎢⎢⎡x11x21⋯xN1⎦⎥⎥⎤
那么 X X X就可以表示为 X = [ x 1 , x 2 , ⋯ , x p ] X=[x^1,x^2,\cdots,x^p] X=[x1,x2,⋯,xp]
由线性代数的知识我们可以得到
假设我们的训练样本张成一个 p p p维空间 X \mathcal{X} X( X X X列满秩): X = S p a n ( x 1 , ⋯ , x N ) \mathcal{X}=Span(x_1,\cdots,x_N) X=Span(x1,⋯,xN)
那么 X w Xw Xw就是 X \mathcal{X} X的基向量 [ x 1 , x 2 , ⋯ , x p ] [x^1,x^2,\cdots,x^p] [x1,x2,⋯,xp]关于 w w w的线性组合,其可以表示为 X \mathcal{X} X中的向量 Y ^ \hat{Y} Y^, w w w是 p p p维基空间 I \mathcal{I} I中的向量。当然,求解 w w w就是希望 Y ^ \hat{Y} Y^和 Y Y Y越近越好。
若 X X X是 p × p p\times p p×p的方阵且满秩,那么 Y Y Y是 p p p维向量,可与通过空间逆变换将 X \mathcal{X} X中的 Y Y Y映射到基空间 I \mathcal{I} I中得到 w w w。PS:有关这一点可以参考b站3Blue1Brown的系列视频-线性代数的本质-03-矩阵与线性变换
若 N > p N>p N>p且 X X X列满秩,对于低维空间 X \mathcal{X} X和高维向量 Y Y Y,显然 Y Y Y不在 X \mathcal{X} X中,那么此时我们可以求 X \mathcal{X} X中与 Y Y Y最近的那个向量,是哪个呢?显然将 Y Y Y往低维空间 X \mathcal{X} X中投影得到的向量就是最近的那个,该向量在 X \mathcal{X} X中的基向量的线性组合就是 w w w。
若 N < p N N<p
既然我们通过最小二乘法得到了 w w w,那么我们自然就要研究其数值稳定性,也就是当 Y Y Y发生扰动时, w w w的变化幅度。
不妨假设 A A A为方阵且可逆,则对于 A x = b Ax=b Ax=b有 x = A − 1 b x=A^{-1}b x=A−1b。
条件数定义为 c o n d ( A ) = ∣ ∣ Δ x ∣ ∣ ∖ ∣ ∣ x ∣ ∣ ∣ ∣ Δ b ∣ ∣ ∖ ∣ ∣ b ∣ ∣ = ∣ ∣ Δ x ∣ ∣ ⋅ ∣ ∣ b ∣ ∣ ∣ ∣ x ∣ ∣ ⋅ ∣ ∣ Δ b ∣ ∣ = ∣ ∣ A − 1 Δ b ∣ ∣ ⋅ ∣ ∣ A x ∣ ∣ ∣ ∣ Δ b ∣ ∣ ⋅ ∣ ∣ x ∣ ∣ (4) cond(A)=\frac{||\Delta x||\setminus||x||}{||\Delta b||\setminus||b||}=\frac{||\Delta x||\cdot||b||}{|| x||\cdot||\Delta b||}=\frac{||A^{-1}\Delta b||\cdot||Ax||}{||\Delta b||\cdot||x||}\tag{4} cond(A)=∣∣Δb∣∣∖∣∣b∣∣∣∣Δx∣∣∖∣∣x∣∣=∣∣x∣∣⋅∣∣Δb∣∣∣∣Δx∣∣⋅∣∣b∣∣=∣∣Δb∣∣⋅∣∣x∣∣∣∣A−1Δb∣∣⋅∣∣Ax∣∣(4)
已知 A A A的范数可表示为 ∣ ∣ A ∣ ∣ = m a x x ≠ 0 ∣ ∣ A x ∣ ∣ ∣ ∣ x ∣ ∣ ||A||=\underset{x\neq 0}{max}\frac{||Ax||}{||x||} ∣∣A∣∣=x=0max∣∣x∣∣∣∣Ax∣∣
那么 c o n d ( A ) ≤ ∣ ∣ A ∣ ∣ ⋅ ∣ ∣ A − 1 ∣ ∣ (5) cond(A)\le ||A||\cdot||A^{-1}||\tag{5} cond(A)≤∣∣A∣∣⋅∣∣A−1∣∣(5)当条件数 c o n d ( A ) cond(A) cond(A)较小时,若初始条件发生较小的变化,解的变化不大, A A A就是良态矩阵;
当条件数 c o n d ( A ) cond(A) cond(A)较大时,如初始条件发生较小的变化,解的变化很大, A A A就是病态矩阵。
先说结论:利用对 X X X作 Q R QR QR分解的方式求解可以保证数值的稳定性。
对矩阵 X X X,若 N ≥ p N\ge p N≥p,则 X X X可被分解成X=QR ,其中 Q N × N Q_{N\times N} QN×N是正交矩阵( Q T Q = Q Q T = I Q^TQ=QQ^T=I QTQ=QQT=I), R N × p = [ R ^ p × p 0 ] R_{N\times p}=\begin{bmatrix}\hat{R}_{p\times p}\\0\end{bmatrix} RN×p=[R^p×p0], R ^ p × p \hat{R}_{p\times p} R^p×p是上三角矩阵。 ∣ ∣ X w − Y ∣ ∣ 2 2 ||Xw-Y||_2^2 ∣∣Xw−Y∣∣22内部左乘一正交矩阵对结果不影响。因此, L ( w ) = ∣ ∣ X w − Y ∣ ∣ 2 2 = ∣ ∣ Q R w − Y ∣ ∣ 2 2 = ∣ ∣ Q T Q R w − Q T Y ∣ ∣ 2 2 = ∣ ∣ [ R ^ 0 ] w − Q T Y ∣ ∣ 2 2 (6) L(w)=||Xw-Y||_2^2=||QRw-Y||_2^2=||Q^TQRw-Q^TY||_2^2=||\begin{bmatrix}\hat{R}\\0\end{bmatrix} w-Q^TY||_2^2\tag{6} L(w)=∣∣Xw−Y∣∣22=∣∣QRw−Y∣∣22=∣∣QTQRw−QTY∣∣22=∣∣[R^0]w−QTY∣∣22(6)将 Q T Y Q^TY QTY拆成与 [ R ^ 0 ] \begin{bmatrix}\hat{R}\\0\end{bmatrix} [R^0]类似的上下两部分: [ c 1 c 2 ] \begin{bmatrix}c_1\\c_2\end{bmatrix} [c1c2], L ( w ) = ∣ ∣ [ R ^ w − c 1 − c 2 ] ∣ ∣ 2 2 = ∣ ∣ R ^ w − c 1 ∣ ∣ 2 2 + ∣ ∣ c 2 ∣ ∣ 2 2 (7) L(w)=||\begin{bmatrix}\hat{R}w-c_1\\-c_2\end{bmatrix} ||_2^2=||\hat{R}w-c_1||_2^2+||c_2||_2^2\tag{7} L(w)=∣∣[R^w−c1−c2]∣∣22=∣∣R^w−c1∣∣22+∣∣c2∣∣22(7) ∣ ∣ c 2 ∣ ∣ 2 2 ||c_2||_2^2 ∣∣c2∣∣22为常数,因此我们只能最小化(7)前一部分使得 ∣ ∣ R ^ w − c 1 ∣ ∣ 2 2 = 0 ||\hat{R}w-c_1||_2^2=0 ∣∣R^w−c1∣∣22=0,则有 R ^ w − c 1 = 0 \hat{R}w-c_1=0 R^w−c1=0,那么 L ( w ) L(w) L(w)的最小值为 ∣ ∣ c 2 ∣ ∣ 2 2 ||c_2||_2^2 ∣∣c2∣∣22。这样处理之后就避免了求正规方程组中的 ( X T X ) − 1 (X^TX)^{-1} (XTX)−1,避免条件数变成 c o n d ( X T X ) = c o n d ( X ) 2 cond(X^TX)=cond(X)^2 cond(XTX)=cond(X)2,保证了数值的稳定性。
先说结论:最小二乘估计 ⇔ \Leftrightarrow ⇔噪声服从正态分布的极大似然估计
对于一维的情况,记 y = w T x + ϵ , ϵ ∼ N ( 0 , σ 2 ) y=w^Tx+\epsilon,\epsilon\sim\mathcal{N}(0,\sigma^2) y=wTx+ϵ,ϵ∼N(0,σ2),
那么 y ∼ N ( w T x , σ 2 ) y\sim\mathcal{N}(w^Tx,\sigma^2) y∼N(wTx,σ2), p ( y i ∣ x i , w ) = 1 2 π σ e x p { − ( y i − w T x i ) 2 2 σ 2 } p(y_i|x_i,w)=\frac{1}{\sqrt{2\pi}\sigma}exp\{-\frac{(y_i-w^Tx_i)^2}{2\sigma^2}\} p(yi∣xi,w)=2πσ1exp{−2σ2(yi−wTxi)2}
代入极大似然估计中:
L ( w ) = log p ( Y ∣ X , w ) = log ∏ i = 1 N p ( y i ∣ x i , w ) = ∑ i = 1 N log ( 1 2 π σ e x p { − ( y i − w T x i ) 2 2 σ 2 } ) (8) \begin{aligned} &L(w)=\log p(Y|X,w)\\ &\qquad\ =\log\prod\limits_{i=1}^Np(y_i|x_i,w)\\ &\qquad\ =\sum\limits_{i=1}^N\log(\frac{1}{\sqrt{2\pi}\sigma}exp\{-\frac{(y_i-w^Tx_i)^2}{2\sigma^2}\})\end{aligned}\tag{8} L(w)=logp(Y∣X,w) =logi=1∏Np(yi∣xi,w) =i=1∑Nlog(2πσ1exp{−2σ2(yi−wTxi)2})(8) w = a r g m a x w L ( w ) = a r g m i n w ∑ i = 1 N ( y i − w T x i ) 2 (9) \begin{aligned}w=\mathop{argmax}\limits_wL(w)=\mathop{argmin}\limits_w\sum\limits_{i=1}^N(y_i-w^Tx_i)^2\end{aligned}\tag{9} w=wargmaxL(w)=wargmini=1∑N(yi−wTxi)2(9)(9)和最小二乘估计得到的结果一样。
我们用多项式回归来说明其中的过拟合现象。
首先我们应该意识到,多项式回归 ⇔ \Leftrightarrow ⇔线性回归。
例如我们用下面形式的多项式函数来拟合函数: y ( x , w ) = w 0 + w 1 x + w 2 x 2 + ⋯ + w p x p = ∑ i = 0 p w i x i y(x,\textbf w)=w_0+w_1x+w_2x^2+\cdots+w_px^p=\sum_{i=0}^pw_ix^i y(x,w)=w0+w1x+w2x2+⋯+wpxp=i=0∑pwixi可以看到,当 w = [ w 1 , w 2 , ⋯ , x p ] T , b = w 0 , x = [ x 1 , x 2 , x 3 , ⋯ , x p ] T \textbf w=[w_1,w_2,\cdots,x_p]^T, b=w_0,\textbf x=[x^1,x^2,x^3,\cdots,x^p]^T w=[w1,w2,⋯,xp]T,b=w0,x=[x1,x2,x3,⋯,xp]T时,多项式回归相当于高维度线性回归在低维空间的表现形式。
再举一个更具体的例子:比如我们在二维空间拟合二次多项式曲线 y = x + x 2 y=x+x^2 y=x+x2,就相当于在三维空间拟合平面 z = x + y z=x+y z=x+y,该曲线即为三维空间中 z = x + y , y = x 2 z=x+y,y=x^2 z=x+y,y=x2两个面的交线,二维空间中数据分布在曲线周围,三维空间中数据分布在交线周围,也在平面 z = x + y z=x+y z=x+y上。因此低维空间的非线性问题在高维空间的线性问题。
而过拟合问题就是,由于数据量太少,维度太高,在二维空间把要拟合的直线 y = x y=x y=x(即 w w w第二维为0)拟合成了曲线 y = x + x 2 y=x+x^2 y=x+x2,在三维空间的表现形式就是平面 z = x z=x z=x偏移到了 z = x + y z=x+y z=x+y。
选取不同的阶数 p p p时,多项式曲线如下图的红色曲线所示:
当我们达到更⾼阶的多项式 ( p = 9 ) (p= 9) (p=9),我们得到了对于训练数据的⼀个完美的拟合。事实上,多项式函数精确地通过了每⼀个数据点, L ( w ∗ ) = 0 L(w^*)= 0 L(w∗)=0。然⽽,拟合的曲线剧烈震荡,就表达函数 s i n ( 2 π x ) sin(2\pi x) sin(2πx)⽽⾔表现很差。这种⾏为叫做过拟合(over-fitting)。
我们通过考察不同阶数多项式的系数 w ∗ w^* w∗更深刻地思考这个问题,如下图所⽰,随着 M M M的增⼤,系数的⼤⼩通常会变⼤。对于 M = 9 M = 9 M=9的多项式,通过调节系数,让系数取相当⼤的正数或者负数,多项式函数可以精确地与数据匹配,但是对于数据之间的点(尤其是临近区间端点处的点),从上图可以看到函数表现出剧烈的震荡。直觉上讲,发⽣了这样的事情:有着更⼤的M值的更灵活的多项式被过分调参,使多项式被调节成了与⽬标值的随机噪声相符。
当我们达到更⾼阶的多项式(p= 9),我们得到了对于训练数据的⼀个完美的拟合。事实上,多项式函数精确地通过了每⼀个数据点,。然⽽,拟合的曲线剧烈震荡,就表达函数⽽⾔表现很差。这种⾏为叫做过拟合(over-fitting)。
我们通过考察不同阶数多项式的系数更深刻地思考这个问题,如下图所⽰,随着M的增⼤,系数的⼤⼩通常会变⼤。对于M = 9的多项式,通过调节系数,让系数取相当⼤的正数或者负数,多项式函数可以精确地与数据匹配,但是对于数据之间的点(尤其是临近区间端点处的点),从上图可以看到函数表现出剧烈的震荡。直觉上讲,发⽣了这样的事情:有着更⼤的M值的更灵活的多项式被过分调参,使多项式被调节成了与⽬标值的随机噪声相符。
在实际应用时,如果样本容量不远远大于样本的特征维度,很可能造成过拟合,对这种情况,我们有下面四个解决方式:
1 加数据(会增大计算量)
2 特征选择(降低特征维度)如 PCA 算法。
3 正则化,限制系数的大小
4 贝叶斯(Bayesian)⽅法,参数的有效数量会⾃动根据数据集的规模调节,有效解决模型参数的数量超过数据点数量的情形。我们想针对模型参数w的合适选择进⾏强调和定量化。我们将会看到,从贝叶斯的观点来看,我们能够使⽤概率论来描述模型参数(例如w)的不确定性,或者模型本⾝的选择。
正则化一般是在损失函数(如最小二乘损失)上加入正则化项(表示模型的复杂度对模型的惩罚) w = a r g m i n w ( L ( w ) + λ p ( w ) ) , λ > 0 w=\underset{w}{argmin}(L(w)+\lambda p(w)),\lambda>0 w=wargmin(L(w)+λp(w)),λ>0中 p ( w ) p(w) p(w)是惩罚项
下面我们介绍一般情况下的两种正则化框架。
二维的 λ ∣ ∣ w ∣ ∣ 1 \lambda||w||_1 λ∣∣w∣∣1如下图所示:
可以看到, λ ∣ ∣ w ∣ ∣ 1 \lambda||w||_1 λ∣∣w∣∣1是一个凸性很强的函数,原函数加上 λ ∣ ∣ w ∣ ∣ 1 \lambda||w||_1 λ∣∣w∣∣1可以增加原函数凸性从而更容易求解。因为 λ ∣ ∣ w ∣ ∣ 1 \lambda||w||_1 λ∣∣w∣∣1在坐标轴凸性最强,那么原函数加上 λ ∣ ∣ w ∣ ∣ 1 \lambda||w||_1 λ∣∣w∣∣1后在坐标轴位置凸性也增强,则最优解更容易迭代到坐标轴附近,即更容易获得稀疏解。
a r g m i n w L ( w ) s . t . ∣ ∣ w ∣ ∣ 2 2 ≤ C w ^ = a r g m i n w [ L ( w ) + λ w T w ] ∂ ∂ w [ L ( w ) + 2 λ w T w ] = 2 X T X w ^ − 2 X T Y + 2 λ w ^ = 0 w ^ = ( X T X + λ I ) − 1 X T Y (11) \begin{aligned} &\mathop{argmin}\limits_wL(w)\quad s.t.||w||_2^2\le C\\ &\hat{w}=\mathop{argmin}\limits_w[L(w)+\lambda w^Tw]\\ &\frac{\partial}{\partial w}[L(w)+2\lambda w^Tw]=2X^TX\hat{w}-2X^TY+2\lambda \hat w=0\\ &\hat{w}=(X^TX+\lambda \mathbb{I})^{-1}X^TY\\ \end{aligned}\tag{11} wargminL(w)s.t.∣∣w∣∣22≤Cw^=wargmin[L(w)+λwTw]∂w∂[L(w)+2λwTw]=2XTXw^−2XTY+2λw^=0w^=(XTX+λI)−1XTY(11)二维的 λ ∣ ∣ w ∣ ∣ 2 2 \lambda||w||_2^2 λ∣∣w∣∣22如下图所示:
可以看到, ∣ ∣ w ∣ ∣ 1 ||w||_1 ∣∣w∣∣1与 ∣ ∣ w ∣ ∣ 2 2 ||w||_2^2 ∣∣w∣∣22的不同就在于 ∣ ∣ w ∣ ∣ 2 2 ||w||_2^2 ∣∣w∣∣22的凸性分布比较均匀,因此不太可能产生稀疏性解。
因此, ∣ ∣ w ∣ ∣ 1 ||w||_1 ∣∣w∣∣1会趋向于产生少量的特征,而其他的特征都是0,而 ∣ ∣ w ∣ ∣ 2 2 ||w||_2^2 ∣∣w∣∣22会选择更多的特征,这些特征的权重系数都会接近于0。
参数w的极大似然估计并不涉及模型复杂度,它完全由数据大小控制。使用贝叶斯方法可以更好地处理模型复杂度和过拟合。贝叶斯估计有两个关键优势:1先验:我们可以通过在参数上放置先验来量化我们可能拥有的任何先验知识。例如,如果我们认为方差可能很小,我们会选择一个先前的概率质量较低的值。2 量化不确定性:我们不是得到参数W的的单一估计,而是完全后验分布,关于W的不同值的可能性。例如,数据点很少,我们的W不确定性将是非常高,这样我们会充分利用数据,得到非常广泛的后验和更宽的解释面。
贝叶斯规则的本质就是将我们已知的知识(先验)和世界上的证据相结合(似然),以告诉我们有关世界状况的信息(后验)。
取先验分布 w ∼ N ( 0 , Σ p ) w\sim\mathcal{N}(0,\Sigma_p) w∼N(0,Σp),则 p ( w ) = 1 ( 2 π ) p 2 ∣ Σ p ∣ 1 2 exp { − 1 2 w T Σ p − 1 w } p(w)=\frac{1}{(2\pi)^{\frac{p}{2}}|\Sigma_p|^{\frac{1}{2}}}\exp\{-\frac{1}{2}w^T\Sigma_p^{-1}w\} p(w)=(2π)2p∣Σp∣211exp{−21wTΣp−1w}。 Y Y Y由 w , X w,X w,X决定, Y Y Y未知的情况下 w , X w,X w,X相互独立于是:
w ^ = a r g m a x w p ( w ∣ X , Y ) = a r g m a x w p ( w , X , Y ) p ( X , Y ) = a r g m a x w p ( w , X , Y ) = a r g m a x w log ( p ( Y ∣ X , w ) p ( w ∣ X ) p ( X ) ) = a r g m a x w log ( p ( Y ∣ X , w ) p ( w ∣ X ) ) = a r g m a x w log ( p ( Y ∣ X , w ) p ( w ) ) = a r g m a x w ( log p ( Y ∣ X , w ) + log p ( w ) ) = a r g m a x w ( ∑ i = 1 N log ( 1 2 π σ e x p { − ( y i − w T x i ) 2 2 σ 2 } ) + l o g ( 1 ( 2 π ) p 2 ∣ Σ p ∣ 1 2 exp { − 1 2 w T Σ p − 1 w } ) ) = a r g m a x w ( log ( N 2 π σ ) + ∑ i = 1 N { − ( y i − w T x i ) 2 2 σ 2 } + l o g ( 1 ( 2 π ) p 2 ∣ Σ p ∣ 1 2 ) + { − 1 2 w T Σ p − 1 w } ) = a r g m i n w ( ∑ i = 1 N { ( y i − w T x i ) 2 2 σ 2 } + { 1 2 w T Σ p − 1 w } ) = a r g m i n w ( ∑ i = 1 N { ( y i − w T x i ) 2 + { σ 2 w T Σ p − 1 w } ) = a r g m i n w ( ( Y T − w T X T ) ( Y − X w ) + { σ 2 w T Σ p − 1 w } ) = a r g m i n w ( w T X T X w − 2 w T X Y + σ 2 w T Σ p − 1 w ) \begin{aligned} &\hat{w}=\mathop{argmax}\limits_wp(w|X,Y)=\mathop{argmax}\limits_w\frac{p(w,X,Y)}{p(X,Y)}=\mathop{argmax}\limits_wp(w,X,Y)\\ &\quad=\mathop{argmax}\limits_w\log (p(Y|X,w)p(w|X)p(X))\\ &\quad=\mathop{argmax}\limits_w\log (p(Y|X,w)p(w|X))\\ &\quad=\mathop{argmax}\limits_w\log (p(Y|X,w)p(w))\\ &\quad=\mathop{argmax}\limits_w(\log p(Y|X,w)+\log p(w))\\ &\quad=\mathop{argmax}\limits_w(\sum\limits_{i=1}^N\log(\frac{1}{\sqrt{2\pi}\sigma}exp\{-\frac{(y_i-w^Tx_i)^2}{2\sigma^2}\})+log(\frac{1}{(2\pi)^{\frac{p}{2}}|\Sigma_p|^{\frac{1}{2}}}\exp\{-\frac{1}{2}w^T\Sigma_p^{-1}w\}))\\ &\quad=\mathop{argmax}\limits_w(\log(\frac{N}{\sqrt{2\pi}\sigma})+\sum\limits_{i=1}^N\{-\frac{(y_i-w^Tx_i)^2}{2\sigma^2}\}+log(\frac{1}{(2\pi)^{\frac{p}{2}}|\Sigma_p|^{\frac{1}{2}}})+\{-\frac{1}{2}w^T\Sigma_p^{-1}w\})\\ &\quad=\mathop{argmin}\limits_w(\sum\limits_{i=1}^N\{\frac{(y_i-w^Tx_i)^2}{2\sigma^2}\}+\{\frac{1}{2}w^T\Sigma_p^{-1}w\})\\ &\quad=\mathop{argmin}\limits_w(\sum\limits_{i=1}^N\{(y_i-w^Tx_i)^2+\{\sigma^2w^T\Sigma_p^{-1}w\})\\ &\quad=\mathop{argmin}\limits_w((Y^T-w^TX^T)(Y-Xw)+\{\sigma^2w^T\Sigma_p^{-1}w\})\\ &\quad=\mathop{argmin}\limits_w(w^TX^TXw-2w^TXY +\sigma^2w^T\Sigma_p^{-1}w) \end{aligned} w^=wargmaxp(w∣X,Y)=wargmaxp(X,Y)p(w,X,Y)=wargmaxp(w,X,Y)=wargmaxlog(p(Y∣X,w)p(w∣X)p(X))=wargmaxlog(p(Y∣X,w)p(w∣X))=wargmaxlog(p(Y∣X,w)p(w))=wargmax(logp(Y∣X,w)+logp(w))=wargmax(i=1∑Nlog(2πσ1exp{−2σ2(yi−wTxi)2})+log((2π)2p∣Σp∣211exp{−21wTΣp−1w}))=wargmax(log(2πσN)+i=1∑N{−2σ2(yi−wTxi)2}+log((2π)2p∣Σp∣211)+{−21wTΣp−1w})=wargmin(i=1∑N{2σ2(yi−wTxi)2}+{21wTΣp−1w})=wargmin(i=1∑N{(yi−wTxi)2+{σ2wTΣp−1w})=wargmin((YT−wTXT)(Y−Xw)+{σ2wTΣp−1w})=wargmin(wTXTXw−2wTXY+σ2wTΣp−1w)
可得
w ^ = a r g m i n w ( w T X T X w − 2 w T X Y + σ 2 w T Σ p − 1 w ) (12) \hat{w}=\mathop{argmin}\limits_w(w^TX^TXw-2w^TXY +\sigma^2w^T\Sigma_p^{-1}w)\tag{12} w^=wargmin(wTXTXw−2wTXY+σ2wTΣp−1w)(12)
我们将会看到,令 Σ p = I , σ 2 = λ \Sigma_p=I,\sigma^2=\lambda Σp=I,σ2=λ,则(12)的第三项和和 L 2 L2 L2 Ridge 正则项对应,同样的如果将先验分布取为 Laplace 分布 f ( x ) = 1 2 α e x p { − ∣ x − μ ∣ α } f(x)=\frac{1}{2\alpha}exp\{-\frac{|x-\mu|}{\alpha}\} f(x)=2α1exp{−α∣x−μ∣}( α , β \alpha,\beta α,β为常数),那么就会得到和 L 1 L1 L1Lasso正则类似的结果。
与MAP不同的是,MAP直接计算参数值,贝叶斯估计计算参数的分布,通过对分布求期望得到参数值。
对参数的后验分布进行推断:
p ( w ∣ X , Y ) = p ( w , X , Y ) p ( X , Y ) = p ( Y ∣ w , X ) p ( w , X ) p ( X , Y ) = p ( Y ∣ w , X ) p ( w ∣ X ) p ( Y ∣ X ) = p ( Y ∣ w , X ) p ( w ) ∫ p ( w , Y ∣ X ) d w (13) \begin{aligned}p(w|X,Y) &=\frac{p(w,X,Y)}{p(X,Y)}\\ &=\frac{p(Y|w,X)p(w,X)}{p(X,Y)}\\ &=\frac{p(Y|w,X)p(w|X)}{p(Y|X)}\\ &=\frac{p(Y|w,X)p(w)}{\int p(w,Y|X)dw}\tag{13}\end{aligned} p(w∣X,Y)=p(X,Y)p(w,X,Y)=p(X,Y)p(Y∣w,X)p(w,X)=p(Y∣X)p(Y∣w,X)p(w∣X)=∫p(w,Y∣X)dwp(Y∣w,X)p(w)(13)
分母是常数,并不会影响到后验分布的均值与方差
p ( w ∣ X , Y ) ∝ ∏ i = 1 N N ( y i ∣ w T x i , σ 2 ) ⋅ N ( 0 , Σ p ) (14) p(w|X,Y)\propto \prod\limits_{i=1}^N\mathcal{N}(y_i|w^Tx_i,\sigma^2)\cdot\mathcal{N}(0,\Sigma_p)\tag{14} p(w∣X,Y)∝i=1∏NN(yi∣wTxi,σ2)⋅N(0,Σp)(14)已知共轭关系是指似然概率和先验概率的共轭,我们找到一个先验概率,如果后验概率与先验概率是一样的形式,那么该先验概率为似然函数的共轭先验,先验分布和后验分布是共轭分布。高斯分布符合上述分布的定义,可得(14)的后验分布也是一个高斯分布。
第一项:
∏ i = 1 N N ( y i ∣ w T x i , σ 2 ) = 1 ( 2 π ) N / 2 σ N exp ( − 1 2 σ 2 ∑ i = 1 N ( y i − w T x i ) 2 ) = 1 ( 2 π ) N / 2 ∣ σ 2 I ∣ N 2 exp ( − 1 2 ( Y T − w T X T ) ( σ − 2 I ) ( Y − X w ) ) = 1 ( 2 π ) N / 2 ∣ σ 2 I ∣ N 2 exp ( − 1 2 ( Y − X w ) T ( σ − 2 I ) ( Y − X w ) ) = N ( X w , σ 2 I ) (15) \begin{aligned}\prod\limits_{i=1}^N\mathcal{N}(y_i|w^Tx_i,\sigma^2) &=\frac{1}{(2\pi)^{N/2}\sigma^N}\exp(-\frac{1}{2\sigma^2}\sum\limits_{i=1}^N(y_i-w^Tx_i)^2)\\ &=\frac{1}{(2\pi)^{N/2}|\sigma^2\mathbb{I}|^\frac{N}{2}}\exp(-\frac{1}{2}(Y^T-w^TX^T)(\sigma^{-2}\mathbb{I})(Y-Xw))\\ &=\frac{1}{(2\pi)^{N/2}|\sigma^2\mathbb{I}|^\frac{N}{2}}\exp(-\frac{1}{2}(Y-Xw)^T(\sigma^{-2}\mathbb{I})(Y-Xw))\\ &=\mathcal{N}(Xw,\sigma^2\mathbb{I})\end{aligned}\tag{15} i=1∏NN(yi∣wTxi,σ2)=(2π)N/2σN1exp(−2σ21i=1∑N(yi−wTxi)2)=(2π)N/2∣σ2I∣2N1exp(−21(YT−wTXT)(σ−2I)(Y−Xw))=(2π)N/2∣σ2I∣2N1exp(−21(Y−Xw)T(σ−2I)(Y−Xw))=N(Xw,σ2I)(15)(15)代入(14): p ( w ∣ X , Y ) ∝ exp ( − 1 2 ( Y − X w ) T σ − 2 I ( Y − X w ) − 1 2 w T Σ p − 1 w ) (16) p(w|X,Y)\propto\exp(-\frac{1}{2}(Y-Xw)^T\sigma^{-2}\mathbb{I}(Y-Xw)-\frac{1}{2}w^T\Sigma_p^{-1}w)\tag{16} p(w∣X,Y)∝exp(−21(Y−Xw)Tσ−2I(Y−Xw)−21wTΣp−1w)(16)假定最后得到的高斯分布为: N ( μ w , Σ w ) \mathcal{N}(\mu_w,\Sigma_w) N(μw,Σw)。对于(16)的分布,采用配方的方式来得到最终的分布:
指数上面的二次项为: − 1 2 σ 2 w T X T X w − 1 2 w T Σ p − 1 w -\frac{1}{2\sigma^2}w^TX^TXw-\frac{1}{2}w^T\Sigma_p^{-1}w −2σ21wTXTXw−21wTΣp−1w
于是: Σ w − 1 = σ − 2 X T X + Σ p − 1 = A (17) \Sigma_w^{-1}=\sigma^{-2}X^TX+\Sigma_p^{-1}=A\tag{17} Σw−1=σ−2XTX+Σp−1=A(17)
一次项: 1 2 σ 2 2 Y T X w = σ − 2 Y T X w = μ w T Σ w − 1 \frac{1}{2\sigma^2}2Y^TXw=\sigma^{-2}Y^TXw=\mu_w^T\Sigma_w^{-1} 2σ212YTXw=σ−2YTXw=μwTΣw−1
于是: μ w = σ − 2 A − 1 X T Y (18) \mu_w=\sigma^{-2}A^{-1}X^TY\tag{18} μw=σ−2A−1XTY(18)
于是: p ( w ∣ X , Y ) ∼ N ( μ w , Σ w ) = N ( σ − 2 A − 1 X T Y , A − 1 ) (19) p(w|X,Y)\sim \mathcal{N}(\mu_w,\Sigma_w)=\mathcal{N}(\sigma^{-2}A^{-1}X^TY ,A^{-1})\tag{19} p(w∣X,Y)∼N(μw,Σw)=N(σ−2A−1XTY,A−1)(19)
预测结果
给定一个 x ∗ x^* x∗,求解 y ∗ y^* y∗,我们有 y ∗ = x ∗ T w + σ 2 y^*=x^{*T}w+\sigma^2 y∗=x∗Tw+σ2,已知 p ( w ∣ X , Y ) ∼ N ( μ w , Σ w ) p(w|X,Y)\sim\mathcal{N}(\mu_w,\Sigma_w) p(w∣X,Y)∼N(μw,Σw)
代入条件高斯分布的公式可得: p ( y ∗ ∣ w , X , Y , x ∗ ) ∼ N ( x ∗ T μ w , σ 2 + x ∗ T Σ w x ∗ ) } (20) p(y^*|w,X,Y,x^*)\sim\mathcal{N}(x^{*T}\mu_w,\sigma^2+x^{*T}\Sigma_wx^*)\tag{20}\} p(y∗∣w,X,Y,x∗)∼N(x∗Tμw,σ2+x∗TΣwx∗)}(20)
根据中心极限定理,对于任意均值 μ \mu μ方差 σ 2 \sigma^2 σ2的分布 p ( X ) p(X) p(X),若采样 n ≥ 30 n\ge30 n≥30次,则 X ∼ N ( n μ , n σ 2 ) X\sim \mathcal{N}(n\mu,n\sigma^2) X∼N(nμ,nσ2)=> X ˉ ∼ N ( μ , σ 2 n ) \bar{X}\sim\mathcal{N}(\mu,\frac{\sigma^2}{n}) Xˉ∼N(μ,nσ2)=> X ˉ − μ σ n ∼ N ( 0 , 1 ) \frac{\bar{X}-\mu}{\frac{\sigma}{\sqrt{n}}}\sim\mathcal{N}(0,1) nσXˉ−μ∼N(0,1)
则求 p ( X ) p(X) p(X) 95%的置信区间, α = 1 − 0.95 = 0.05 \alpha=1-0.95=0.05 α=1−0.95=0.05,可通过查表得 z α 2 = z 0.025 = 1.96 z_{\frac{\alpha}{2}}=z_{0.025}=1.96 z2α=z0.025=1.96,计算过程如下图
import numpy as np
import matplotlib.pyplot as plt
import math
class Bayesian:
def __init__(self,sigma,prior_mu,prior_sigma):
self.sigma=sigma#噪声方差
self.prior_mu=prior_mu#参数先验均值
self.prior_sigma=prior_sigma#参数先验方差
def fit(self,X,Y):
if X.shape[1]==1:#一维情况
A = 1 / (self.sigma ** 2) * np.dot(X.T, X) + 1/self.prior_sigma
self.posterior_sigma = 1/A
self.posterior_mu = 1/(self.sigma ** 2) * self.posterior_sigma * np.dot(X.T, Y)
else:#多维情况
A=1/(self.sigma**2)*np.dot(X.T,X)+np.linalg.inv(self.prior_sigma)
self.posterior_sigma=np.linalg.inv(A)
self.posterior_mu=1/(self.sigma**2)*self.posterior_sigma*np.dot(X.T,Y)
def pre(self,x_star,confidence):
self.n=1000
mu=np.dot(x_star.T,self.posterior_mu)
sigma=self.sigma**2+np.dot(x_star.T,self.posterior_sigma).dot(x_star)
#我们每次预测返回一个置信度95%的区间
return (mu - confidence * sigma / (math.sqrt(self.n)), mu + confidence * sigma / (math.sqrt(self.n)))
def generate(noise_sigma):
X = np.linspace(-100, 100,10000).reshape(-1,1)#在[-100,100]均匀取10000个点
w = np.array([3.6])
Y = np.dot(X,w) + np.random.normal(0, noise_sigma, size=X.shape[0])##加上均值为0,标准差为nois_sigma的高斯分布
return X,Y
if __name__=="__main__":
noise_sigma=30#噪声方差
confidence=1.96#置信度95%的区间对应的z为1.96
X, Y = generate(noise_sigma)
bay = Bayesian(noise_sigma, 0, 1)
bay.fit(X, Y)
y1,y2=[],[]
for x in X[:,0]:
R=bay.pre(x,confidence)
y1.append(*R[0])
y2.append(*R[1])
plt.scatter(X, Y,c='black',label='Sample points',s=1)
plt.plot(X,y1,color='red',label='95%confidence interval,sample 1000 times')
plt.plot(X,y2,color='red')
plt.legend()
plt.show()
由于贝叶斯估计生成的是关于 y ∗ y^* y∗的高斯分布,因此我们可以用置信区间表示其取值。
将一维高斯分布推广到多变量中就得到了高斯网络,将多变量推广到无限维,就得到了高斯过程,高斯过程是定义在连续域(时间空间)上的无限多个高维随机变量所组成的随机过程。
在时间轴上的任意一个点n,有 y n y_n yn服从高斯分布,且 ( y 1 , y 2 , ⋯ , y n ) (y_1,y_2,\cdots,y_n) (y1,y2,⋯,yn)服从 n n n维高斯分布,那么随机过程 { y 1 , y 2 , ⋯ , y n } \{y_1,y_2,\cdots,y_n\} {y1,y2,⋯,yn}是一个高斯过程, { y 1 , y 2 , ⋯ , y n } \{y_1,y_2,\cdots,y_n\} {y1,y2,⋯,yn}各取一个值值可以组成高斯过程的一个样本。
高斯过程有两个参数(高斯过程存在性定理),均值函数 m ( n ) = E [ y n ] m(n)=\mathbb{E}[y_n] m(n)=E[yn]和协方差函数 k ( n 1 , n 2 ) = E [ ( y n 1 − E [ y n 1 ] ) ( y n 2 − E [ y n 2 ] ) ] k(n_1,n_2)=\mathbb{E}[(y_{n_1}-\mathbb{E}[y_{n_1}])(y_{n_2}-\mathbb{E}[y_{n_2}])] k(n1,n2)=E[(yn1−E[yn1])(yn2−E[yn2])]。
贝叶斯线性回归+核方法=高斯过程回归
高斯过程回归分为两种视角:
1.权空间的视角-核贝叶斯线性回归
2.函数空间的视角-高斯分布。
两者达到的效果一样。
贝叶斯线性回归可以通过加入核函数的方法来解决非线性函数的问题,将 f ( x ) = x T w f(x)=x^Tw f(x)=xTw这个函数变为 f ( x ) = ϕ ( x ) T w f(x)=\phi(x)^Tw f(x)=ϕ(x)Tw( Σ p \Sigma_p Σp也要变为更高维度的),变换到更高维的空间,有:
f ( y ∗ ) ∼ N ( σ − 2 ϕ ( x ∗ ) T A − 1 Φ T Y , ϕ ( x ∗ ) T A − 1 ϕ ( x ∗ ) ) (21) f(y^*)\sim\mathcal{N}(\sigma^{-2}\phi(x^*)^{T}A^{-1}\Phi^TY,\phi(x^*)^{T}A^{-1}\phi(x^*))\tag{21} f(y∗)∼N(σ−2ϕ(x∗)TA−1ΦTY,ϕ(x∗)TA−1ϕ(x∗))(21)其中, Φ = ( ϕ ( x 1 ) , ϕ ( x 2 ) , ⋯ , ϕ ( x N ) ) T \Phi=(\phi(x_1),\phi(x_2),\cdots,\phi(x_N))^T Φ=(ϕ(x1),ϕ(x2),⋯,ϕ(xN))T, Σ p \Sigma_p Σp来自高斯先验: p ( w ) = N ( 0 , Σ p ) p(w)=\mathcal{N}(0,\Sigma_p) p(w)=N(0,Σp), σ 2 \sigma^2 σ2是噪声方差, x ∗ x^* x∗是输入的新数据。
计算均值:
A = σ − 2 Φ T Φ + Σ p − 1 ⇔ A Σ p = σ − 2 Φ T Φ Σ p + I ⇔ A Σ p Φ T = σ − 2 Φ T Φ Σ p Φ T + Φ T = σ − 2 Φ T ( k + σ 2 I ) ⇔ Σ p Φ T = σ − 2 A − 1 Φ T ( k + σ 2 I ) ⇔ σ − 2 A − 1 Φ T = Σ p Φ T ( k + σ 2 I ) − 1 ⇔ σ − 2 ϕ ( x ∗ ) T A − 1 Φ T = ϕ ( x ∗ ) T Σ p Φ T ( k + σ 2 I ) − 1 \begin{aligned} &A=\sigma^{-2}\Phi^T\Phi+\Sigma_p^{-1}\\ &\Leftrightarrow A\Sigma_p=\sigma^{-2}\Phi^T\Phi\Sigma_p+ \mathbb{I}\\ &\Leftrightarrow A\Sigma_p\Phi^T=\sigma^{-2}\Phi^T\Phi\Sigma_p\Phi^T+\Phi^T=\sigma^{-2}\Phi^T(k+\sigma^2\mathbb{I})\\ &\Leftrightarrow\Sigma_p\Phi^T=\sigma^{-2}A^{-1}\Phi^T(k+\sigma^2\mathbb{I})\\ &\Leftrightarrow\sigma^{-2}A^{-1}\Phi^T=\Sigma_p\Phi^T(k+\sigma^2\mathbb{I})^{-1} \\ &\Leftrightarrow\sigma^{-2}\phi(x^*)^TA^{-1}\Phi^T=\phi(x^*)^T\Sigma_p\Phi^T(k+\sigma^2\mathbb{I})^{-1} \end{aligned} A=σ−2ΦTΦ+Σp−1⇔AΣp=σ−2ΦTΦΣp+I⇔AΣpΦT=σ−2ΦTΦΣpΦT+ΦT=σ−2ΦT(k+σ2I)⇔ΣpΦT=σ−2A−1ΦT(k+σ2I)⇔σ−2A−1ΦT=ΣpΦT(k+σ2I)−1⇔σ−2ϕ(x∗)TA−1ΦT=ϕ(x∗)TΣpΦT(k+σ2I)−1
得到均值为: μ = ϕ ( x ∗ ) T Σ p Φ T ( k + σ 2 I ) − 1 Y (22) \mu=\phi(x^*)^T\Sigma_p\Phi^T(k+\sigma^2\mathbb{I})^{-1} Y\tag{22} μ=ϕ(x∗)TΣpΦT(k+σ2I)−1Y(22)其中 k = Φ Σ p Φ T k=\Phi\Sigma_p\Phi^T k=ΦΣpΦT。
计算方差:
先利用 ( A + U C V ) − 1 = A − 1 − A − 1 U ( C − 1 + V A − 1 U ) − 1 V A − 1 (A+UCV)^{-1}=A^{-1}-A^{-1}U(C^{-1}+VA^{-1}U)^{-1}VA^{-1} (A+UCV)−1=A−1−A−1U(C−1+VA−1U)−1VA−1求解 A − 1 A^{-1} A−1
所以 A − 1 = Σ p − Σ p Φ T ( σ 2 I + k ) − 1 Φ Σ p A^{-1}=\Sigma_p-\Sigma_p\Phi^T(\sigma^2\mathbb{I}+k)^{-1}\Phi\Sigma_p A−1=Σp−ΣpΦT(σ2I+k)−1ΦΣp
得到方差为: Σ = ϕ ( x ∗ ) T Σ p ϕ ( x ∗ ) − ϕ ( x ∗ ) T Σ p Φ T ( σ 2 I + k ) − 1 Φ Σ p ϕ ( x ∗ ) (23) \Sigma=\phi(x^*)^T\Sigma_p\phi(x^*)-\phi(x^*)^T\Sigma_p\Phi^T(\sigma^2\mathbb{I}+k)^{-1}\Phi\Sigma_p\phi(x^*)\tag{23} Σ=ϕ(x∗)TΣpϕ(x∗)−ϕ(x∗)TΣpΦT(σ2I+k)−1ΦΣpϕ(x∗)(23)
我们看到,在均值和方差中,含有下面四项:
ϕ ( x ∗ ) T Σ p Φ T , ϕ ( x ∗ ) T Σ p ϕ ( x ∗ ) , ϕ ( x ∗ ) T Σ p Φ T , Φ Σ p ϕ ( x ∗ ) \phi(x^*)^T\Sigma_p\Phi^T,\quad\phi(x^*)^T\Sigma_p\phi(x^*),\quad\phi(x^*)^T\Sigma_p\Phi^T,\quad\Phi\Sigma_p\phi(x^*) ϕ(x∗)TΣpΦT,ϕ(x∗)TΣpϕ(x∗),ϕ(x∗)TΣpΦT,ΦΣpϕ(x∗)上面四项的形式和 k ( x , x ′ ) = ϕ ( x ) T Σ p ϕ ( x ′ ) k(x,x')=\phi(x)^T\Sigma_p\phi(x') k(x,x′)=ϕ(x)TΣpϕ(x′)是一样的。由于 Σ p \Sigma_p Σp是正定对称的方差矩阵,所以,这是一个核函数 k ( x , x ′ ) = ( Σ p 1 2 ϕ ( x ) ) T ( Σ p 1 2 ϕ ( x ′ ) ) k(x,x')=(\Sigma_p^{\frac{1}{2}}\phi(x))^T(\Sigma_p^{\frac{1}{2}}\phi(x') ) k(x,x′)=(Σp21ϕ(x))T(Σp21ϕ(x′)),可令 ψ ( x ) = Σ p 1 2 ϕ ( x ) \psi(x)=\Sigma_p^{\frac{1}{2}}\phi(x) ψ(x)=Σp21ϕ(x)。因此高斯过程中的均值和方差全和核函数有关。这样就可以直接定义核函数而避免了求(核方法)。
高斯过程中的协方差:
给定先验 p ( w ) = N ( 0 , Σ p ) p(w)=\mathcal{N}(0,\Sigma_p) p(w)=N(0,Σp)
∵ f ( x ) = ϕ ( x ) T w + ϵ \because f(x)=\phi(x)^Tw+\epsilon ∵f(x)=ϕ(x)Tw+ϵ
∴ E [ f ( x ) ] = E [ ϕ ( x ) T w ] = E [ ϕ ( x ) T ] E [ w ] = 0 \therefore E[f(x)]=E[\phi(x)^Tw]=E[\phi(x)^T]E[w]=0 ∴E[f(x)]=E[ϕ(x)Tw]=E[ϕ(x)T]E[w]=0
k ( n 1 , n 2 ) = C o v [ f ( x ) , f ( x ′ ) ] = E [ ( f ( x ) − E [ f ( x ) ] ) ( f ( x ′ ) − E [ f ( x ′ ) ] ) ] = E [ f ( x ) f ( x ′ ) ] = E [ ϕ ( x ) T w ϕ ( x ′ ) T w ] = E [ ϕ ( x ) T w w T ϕ ( x ′ ) ] = ϕ ( x ) T E [ w w T ] ϕ ( x ′ ) = ϕ ( x ) T ( E [ w w T ] − E [ w ] T E [ w ] ) ϕ ( x ′ ) = ϕ ( x ) T Σ p ϕ ( x ′ ) (23) \begin{aligned} &k(n_1,n_2)=Cov[f(x),f(x')]\\ &=E[(f(x)-E[f(x)])(f(x')-E[f(x')])]\\ &=E[f(x)f(x')]\\ &=E[\phi(x)^Tw\phi(x')^Tw]\\ &=E[\phi(x)^Tww^T\phi(x')]\\ &=\phi(x)^TE[ww^T]\phi(x')\\ &=\phi(x)^T(E[ww^T]-E[w]^TE[w])\phi(x')\\ &=\phi(x)^T\Sigma_p\phi(x')\end{aligned}\tag{23} k(n1,n2)=Cov[f(x),f(x′)]=E[(f(x)−E[f(x)])(f(x′)−E[f(x′)])]=E[f(x)f(x′)]=E[ϕ(x)Twϕ(x′)Tw]=E[ϕ(x)TwwTϕ(x′)]=ϕ(x)TE[wwT]ϕ(x′)=ϕ(x)T(E[wwT]−E[w]TE[w])ϕ(x′)=ϕ(x)TΣpϕ(x′)(23)可以看到,这就对应着上面的核函数。因此 f ( x ) f(x) f(x)组成的一系列变量集合就是一个高斯过程。
相比权重空间,我们也可以直接关注 f f f这个空间,对于预测任务,这就是类似于求: p ( y ∗ ∣ X , Y , x ∗ ) = ∫ f p ( y ∗ ∣ f , X , Y , x ∗ ) p ( f ∣ X , Y , x ∗ ) d f p(y^*|X,Y,x^*)=\int_fp(y^*|f,X,Y,x^*)p(f|X,Y,x^*)df p(y∗∣X,Y,x∗)=∫fp(y∗∣f,X,Y,x∗)p(f∣X,Y,x∗)df
对于数据集来说,取
f ( X ) ∼ N ( μ ( X ) , k ( X , X ) ) , Y = f ( X ) + ε ∼ N ( μ ( X ) , k ( X , X ) + σ 2 I ) f(X)\sim\mathcal{N}(\mu(X),k(X,X)),Y=f(X)+\varepsilon\sim\mathcal{N}(\mu(X),k(X,X)+\sigma^2\mathbb{I}) f(X)∼N(μ(X),k(X,X)),Y=f(X)+ε∼N(μ(X),k(X,X)+σ2I)
预测任务的目的是给定一个新数据序列 X ∗ = ( x 1 ∗ , ⋯ , x M ∗ ) T X^*=(x_1^*,\cdots,x_M^*)^T X∗=(x1∗,⋯,xM∗)T,得到 Y ∗ = f ( X ∗ ) + ε Y^*=f(X^*)+\varepsilon Y∗=f(X∗)+ε。我们可以写出: [ Y f ( X ∗ ) ] ∼ N ( [ μ ( X ) μ ( X ∗ ) ] , [ k ( X , X ) + σ 2 I k ( X , X ∗ ) k ( X ∗ , X ) k ( X ∗ , X ∗ ) ] ) \begin{bmatrix}Y\\f(X^*)\end{bmatrix}\sim\mathcal{N}\left(\begin{bmatrix}\mu(X)\\\mu(X^*)\end{bmatrix},\begin{bmatrix}k(X,X)+\sigma^2\mathbb{I}\ &k(X,X^*)\\k(X^*,X)&\ k(X^*,X^*)\end{bmatrix}\right) [Yf(X∗)]∼N([μ(X)μ(X∗)],[k(X,X)+σ2I k(X∗,X)k(X,X∗) k(X∗,X∗)])
根据高斯分布的方法:
x = [ x a x b ] ∼ N ( [ μ a μ b ] , [ Σ a a Σ a b Σ b a Σ b b ] ) x b ∣ x a ∼ N ( μ b ∣ a , Σ b ∣ a ) μ b ∣ a = Σ b a Σ a a − 1 ( x a − μ a ) + μ b Σ b ∣ a = Σ b b − Σ b a Σ a a − 1 Σ a b p ( f ( X ∗ ) ∣ X , Y , X ∗ ) = p ( f ( X ∗ ) ∣ Y ) = N ( k ( X ∗ , X ) [ k ( X , X ) + σ 2 I ] − 1 ( Y − μ ( X ) ) + μ ( X ∗ ) , k ( X ∗ , X ∗ ) − k ( X ∗ , X ) [ k ( X , X ) + σ 2 I ] − 1 k ( X , X ∗ ) ) \begin{aligned}&x=\begin{bmatrix}x_a\\x_b\end{bmatrix}\sim\mathcal{N}\left(\begin{bmatrix}\mu_a\\\mu_b\end{bmatrix},\begin{bmatrix}\Sigma_{aa}&\Sigma_{ab}\\\Sigma_{ba}&\Sigma_{bb}\end{bmatrix}\right)\qquad x_b|x_a\sim\mathcal{N}(\mu_{b|a},\Sigma_{b|a})\qquad\mu_{b|a}=\Sigma_{ba}\Sigma_{aa}^{-1}(x_a-\mu_a)+\mu_b\qquad\Sigma_{b|a}=\Sigma_{bb}-\Sigma_{ba}\Sigma_{aa}^{-1}\Sigma_{ab}\\ &p(f(X^*)|X,Y,X^*)=p(f(X^*)|Y)\\ &\qquad\qquad\qquad\qquad=\mathcal{N}(k(X^*,X)[k(X,X)+\sigma^2\mathbb{I}]^{-1}(Y-\mu(X))+\mu(X^*),k(X^*,X^*)-k(X^*,X)[k(X,X)+\sigma^2\mathbb{I}]^{-1}k(X,X^*))\end{aligned} x=[xaxb]∼N([μaμb],[ΣaaΣbaΣabΣbb])xb∣xa∼N(μb∣a,Σb∣a)μb∣a=ΣbaΣaa−1(xa−μa)+μbΣb∣a=Σbb−ΣbaΣaa−1Σabp(f(X∗)∣X,Y,X∗)=p(f(X∗)∣Y)=N(k(X∗,X)[k(X,X)+σ2I]−1(Y−μ(X))+μ(X∗),k(X∗,X∗)−k(X∗,X)[k(X,X)+σ2I]−1k(X,X∗))
所以对于:
Y ∗ = f ( X ∗ ) + ε Y^*=f(X^*)+\varepsilon Y∗=f(X∗)+ε
有 p ( Y ∗ ∣ f ( X ∗ ) ) ∼ N ( k ( X ∗ , X ) [ k ( X , X ) + σ 2 I ] − 1 ( Y − μ ( X ) ) + μ ( X ∗ ) , k ( X ∗ , X ∗ ) − k ( X ∗ , X ) [ k ( X , X ) + σ 2 I ] 1 k ( X , X ∗ ) + σ 2 I ) p(Y^*|f(X^*))\sim \mathcal{N}(k(X^*,X)[k(X,X)+\sigma^2\mathbb{I}]^{-1}(Y-\mu(X))+\mu(X^*),k(X^*,X^*)-k(X^*,X)[k(X,X)+\sigma^2\mathbb{I}]^{1}k(X,X^*)+\sigma^2\mathbb{I}) p(Y∗∣f(X∗))∼N(k(X∗,X)[k(X,X)+σ2I]−1(Y−μ(X))+μ(X∗),k(X∗,X∗)−k(X∗,X)[k(X,X)+σ2I]1k(X,X∗)+σ2I)我们看到,函数空间的观点更加简单易于求解。
线性回归模型是最简单的模型,但是麻雀虽小,五脏俱全,在这里,我们利用最小二乘误差得到了闭式解。同时也发现,在噪声为高斯分布的时候,MLE 的解等价于最小二乘误差,而增加了正则项后,最小二乘误差加上 L2 正则项等价于高斯噪声先验下的 MAP解,加上 L1 正则项后,等价于 Laplace 噪声先验。我们也可以通过贝叶斯估计生成完整的后验分布。
传统的机器学习方法或多或少都有线性回归模型的影子:
线性模型往往不能很好地拟合数据,因此有三种方案克服这一劣势:
1.对特征的维数进行变换,例如多项式回归模型就是在线性特征的基础上加入高次项。
2.在线性方程后面加入一个非线性变换,即引入一个非线性的激活函数,典型的有线性分类模型如感知机。
3.对于一致的线性系数,我们进行多次变换,这样同一个特征不仅仅被单个系数影响,例如多层感知机(深度前馈网络)。
线性回归在整个样本空间都是线性的,我们修改这个限制,在不同区域引入不同的线性或非线性,例如线性样条回归和决策树模型。
线性回归中使用了所有的样本,但是对数据预先进行加工学习的效果可能更好(所谓的维数灾难,高维度数据更难学习),例如 PCA 算法和流形学习。
[1]: bilibili shuhuai008 白板推导机器学习 https://space.bilibili.com/97068901/