线性回归
何为线性?
给定由 d d d个属性描述的一个示例, x = ( x 1 ; x 2 ; ⋯ ; x d ) x=(x_1;x_2;\cdots;x_d) x=(x1;x2;⋯;xd),其中 x i x_i xi是 x x x在第 i i i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即
f ( x ) = w 1 x 1 + w 2 x 2 + ⋯ + w d x d + b f(x)=w_1x_1+w_2x_2+\cdots+w_dx_d+b f(x)=w1x1+w2x2+⋯+wdxd+b
向量形式为
f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b
其中, w = ( w 1 ; w 2 ; ⋯ ; w d ) w=(w_1;w_2;\cdots;w_d) w=(w1;w2;⋯;wd)。 w w w和 b b b学得之后,模型就得以确定。
何为线性回归?
给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x n , y n ) } 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 1 ; x i 2 ; ⋯ ; x i d ) , y i ∈ R x_i=(x_{i1};x_{i2};\cdots;x_{id}),y_i\in{R} xi=(xi1;xi2;⋯;xid),yi∈R。线性回归指试图学习一个线性模型 f ( x i ) = w T x i + b f(x_i)=w^Tx_i+b f(xi)=wTxi+b来准确预测实值输出标记,使得 f ( x i ) ≃ y i f(x_i)\simeq{y_i} f(xi)≃yi。
先考虑一元线性回归,何为一元呢,指输入属性数目只有一个。此时,可忽略关于属性的下标,即 D = { ( x i , y i ) } i = 1 n D=\{(x_i,y_i)\}_{i=1}^n D={ (xi,yi)}i=1n
如何求解 w w w和 b b b呢?自然是最小二乘法。
( w ∗ , b ∗ ) = arg min ( w , b ) ∑ i n ( f ( x i ) − y i ) 2 = arg min ( w , b ) ∑ i n ( y i − w x i − b ) 2 (w^*,b^*)=\argmin_{(w,b)}\sum_i^n(f(x_i)-y_i)^2=\argmin_{(w,b)}\sum_i^n(y_i-wx_i-b)^2 (w∗,b∗)=(w,b)argmini∑n(f(xi)−yi)2=(w,b)argmini∑n(yi−wxi−b)2
求解 w w w和 b b b使得 E ( w , b ) = ∑ i = i m ( y i − w x i − b ) 2 E_{(w,b)}=\sum_{i=i}^m(y_i-wx_i-b)^2 E(w,b)=∑i=im(yi−wxi−b)2最小化的过程,称为线性回归模型的最小二乘“参数估计”。
∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) \frac{\partial{E_{(w,b)}}}{\partial{w}}=2\bigg(w\sum_{i=1}^{m}x_i^2-\sum_{i=1}^{m}(y_i-b)x_i\bigg) ∂w∂E(w,b)=2(wi=1∑mxi2−i=1∑m(yi−b)xi)
∂ E ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) \frac{\partial{E_{(w,b)}}}{\partial{b}}=2\bigg(mb-\sum_{i=1}^{m}(y_i-wx_i)\bigg) ∂b∂E(w,b)=2(mb−i=1∑m(yi−wxi))
得到 w w w和 b b b的最优解的闭式解
w = ∑ i = 1 m y i ( x i − x ˉ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 w=\frac{\sum_{i=1}^{m}y_i(x_i-\bar{x})}{\sum_{i=1}^{m}x_i^2-\frac{1}{m}\Big(\sum_{i=1}^{m}x_i\Big)^2} w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−xˉ)
b = 1 m ∑ i = 1 m ( y i − w x i ) b=\frac{1}{m}\sum_{i=1}^{m}(y_i-wx_i) b=m1i=1∑m(yi−wxi)
其中, x ˉ = 1 m ∑ i = 1 m x i \bar{x}=\frac{1}{m}\sum_{i=1}^mx_i xˉ=m1∑i=1mxi为 x x x的均值。
接下来考虑多元线性回归。类似的使用最小二乘法来估计 w w w和 b b b。
由于机器学习中向量一般为列向量,把数据集 D D D表示为一个 n × ( d + 1 ) n\times{(d+1)} n×(d+1)大小的矩阵 X X X,其中每行对应一个示例,每行前 d d d个元素对应示例的 d d d个属性值,每行最后一个元素恒为1。另外,将 w w w和 b b b吸收进向量形式 w ^ = ( w ; b ) \hat{w}=(w;b) w^=(w;b)
X = [ x 11 x 12 ⋯ x 1 d 1 x 21 x 22 ⋯ x 2 d 1 ⋮ ⋮ ⋱ ⋮ ⋮ x n 1 x n 2 ⋯ x n d 1 ] n × ( d + 1 ) y = [ y 1 y 2 ⋮ y n ] n × 1 w ^ = [ w 1 w 2 ⋮ w d b ] ( d + 1 ) × 1 X= \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1d} &1\\ x_{21} & x_{22} & \cdots & x_{2d} &1\\ \vdots & \vdots & \ddots & \vdots& \vdots\\ x_{n1} & x_{n2} & \cdots & x_{nd} &1 \end{bmatrix}_{n\times{(d+1)}} y=\begin{bmatrix} y_{1} \\ y_{2} \\ \vdots \\ y_{n} \end{bmatrix}_{n\times1} \hat{w}= \begin{bmatrix} w_{1} \\ w_{2} \\ \vdots \\ w_{d} \\ b \end{bmatrix}_{(d+1)\times1} X=⎣⎢⎢⎢⎡x11x21⋮xn1x12x22⋮xn2⋯⋯⋱⋯x1dx2d⋮xnd11⋮1⎦⎥⎥⎥⎤n×(d+1)y=⎣⎢⎢⎢⎡y1y2⋮yn⎦⎥⎥⎥⎤n×1w^=⎣⎢⎢⎢⎢⎢⎡w1w2⋮wdb⎦⎥⎥⎥⎥⎥⎤(d+1)×1
于是,根据最小二乘法求解 w ^ \hat{w} w^
w ^ ∗ = arg min w ^ ( y − X w ^ ) T ( y − X w ^ ) \hat{w}^*=\argmin_{\hat{w}}(y-X\hat{w})^T(y-X\hat{w}) w^∗=w^argmin(y−Xw^)T(y−Xw^)
令 E w ^ = ( y − X w ^ ) T ( y − X w ^ ) E_{\hat{w}}=(y-X\hat{w})^T(y-X\hat{w}) Ew^=(y−Xw^)T(y−Xw^),则
E w ^ = ( y − X w ^ ) T ( y − X w ^ ) = ( y T − w ^ T X T ) ( y − X w ^ ) = y T y − y T X w ^ − w ^ T X T y + w ^ T X T X w ^ E_{\hat{w}}=(y-X\hat{w})^T(y-X\hat{w})=(y^T-\hat{w}^TX^T)(y-X\hat{w})=y^Ty-y^TX\hat{w}-\hat{w}^TX^Ty+\hat{w}^TX^TX\hat{w} Ew^=(y−Xw^)T(y−Xw^)=(yT−w^TXT)(y−Xw^)=yTy−yTXw^−w^TXTy+w^TXTXw^
由于误差为实数,因此式中每个均为实数,而又因为
y T X w ^ = ( w ^ T X T y ) T y^TX\hat{w}=(\hat{w}^TX^Ty)^T yTXw^=(w^TXTy)T
最终,化简得
E w ^ = y T y − 2 w ^ T X T y + w ^ T X T X w ^ E_{\hat{w}}=y^Ty-2\hat{w}^TX^Ty+\hat{w}^TX^TX\hat{w} Ew^=yTy−2w^TXTy+w^TXTXw^
对 w ^ \hat{w} w^求导,
d A T B A = B , d X T A X A = 2 A X \frac{dA^TB}{A}=B,\frac{dX^TAX}{A}=2AX AdATB=B,AdXTAX=2AX
∂ E w ^ ∂ w ^ = 2 X T X w ^ − 2 X T y = 2 X T ( X w ^ − y ) = 0 \frac{\partial{E_{\hat{w}}}}{\partial{\hat{w}}}=2X^TX\hat{w}-2X^Ty=2X^T(X\hat{w}-y)=0 ∂w^∂Ew^=2XTXw^−2XTy=2XT(Xw^−y)=0
求解时会设计逆矩阵的计算,因此当 X T X X^TX XTX为满秩矩阵或正定矩阵时,可得
w ^ ∗ = ( X T X ) − 1 X T y \hat{w}^*=(X^TX)^{-1}X^Ty w^∗=(XTX)−1XTy
令 x ^ i ∗ = ( x i , 1 ) \hat{x}_i^*=(x_i,1) x^i∗=(xi,1),学习到的线性回归模型为
f ( x ^ i ) = x ^ i T ( X T X ) − 1 X T y f(\hat{x}_i)=\hat{x}_i^T(X^TX)^{-1}X^Ty f(x^i)=x^iT(XTX)−1XTy
岭回归
在现实任务中, X T X X^TX XTX往往不是满秩矩阵,例如当样本的属性数目大于样本数,导致 X X X的列数大于行数, X T X X^TX XTX显然不满秩。不满秩则意味着有多个解 w ^ \hat{w} w^,选择哪一个解呢?常见做法是引入正则化项。
w ^ ∗ = arg min w ^ [ ( y − X w ^ ) T ( y − X w ^ ) + λ P ( w ) ] \hat{w}^*=\argmin_{\hat{w}}[(y-X\hat{w})^T(y-X\hat{w})+\lambda{P(w)}] w^∗=w^argmin[(y−Xw^)T(y−Xw^)+λP(w)]
其中, P ( w ) P(w) P(w)为惩罚项, λ \lambda λ为惩罚系数。当 P ( w ) = ∥ w ^ ∥ 2 P(w)=\|\hat{w}\|^2 P(w)=∥w^∥2,则称为岭回归。
令 E w ^ = ( y − X w ^ ) T ( y − X w ^ ) + λ w ^ T w ^ E_{\hat{w}}=(y-X\hat{w})^T(y-X\hat{w})+\lambda{\hat{w}^T\hat{w}} Ew^=(y−Xw^)T(y−Xw^)+λw^Tw^,则
E w ^ = ( y T − w ^ T X T ) ( y − X w ^ ) + λ w ^ T w ^ = y T y − y T X w ^ − w ^ T X T y + w ^ T X T X w ^ + λ w ^ T w ^ E_{\hat{w}}=(y^T-\hat{w}^TX^T)(y-X\hat{w})+\lambda{\hat{w}^T\hat{w}}=y^Ty-y^TX\hat{w}-\hat{w}^TX^Ty+\hat{w}^TX^TX\hat{w}+\lambda{\hat{w}^T\hat{w}} Ew^=(yT−w^TXT)(y−Xw^)+λw^Tw^=yTy−yTXw^−w^TXTy+w^TXTXw^+λw^Tw^
进一步化简,得
E w ^ = w ^ T ( X T X + λ I ) w ^ − 2 w ^ T X T y + y T y E_{\hat{w}}=\hat{w}^T(X^TX+\lambda{I})\hat{w}-2\hat{w}^TX^Ty+y^Ty Ew^=w^T(XTX+λI)w^−2w^TXTy+yTy
对 w ^ \hat{w} w^求导,
∂ E w ^ ∂ w ^ = 2 ( X T X + λ I ) w ^ − 2 X T y = 0 \frac{\partial{E_{\hat{w}}}}{\partial{\hat{w}}}=2(X^TX+\lambda{I})\hat{w}-2X^Ty=0 ∂w^∂Ew^=2(XTX+λI)w^−2XTy=0
最终解得,
w ^ ∗ = ( X T X + λ I ) − 1 X T y \hat{w}^*=(X^TX+\lambda{I})^{-1}X^Ty w^∗=(XTX+λI)−1XTy
参考文献