3.2 线性回归
线性回归的目的是,给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2)...(x_m,y_m)\} D={(x1,y1),(x2,y2)...(xm,ym)},其中 x i = ( x i 1 ; x i 2 ; . . . ; x i d ) x_i=(x_{i1};x_{i2};...;x_{id}) xi=(xi1;xi2;...;xid), y i ∈ R y_i \in R yi∈R。线性回归试图学得一个线性模型 f ( x i ) = w x i + b f(x_i)=wx_i+b f(xi)=wxi+b使得 f ( x i ) ≃ y i f(x_i)\simeq y_i f(xi)≃yi
书中所说的序的关系,是一种可以进行量化的关系。例如将表示程度的名词,用 [ 0 , 1 ] [0,1] [0,1]区间的实数进行量化。有些是不能量化的,如种类。书中提到的瓜的种类就是一个例子。若有几类瓜,则转换为几维向量。可以将向量的每一维看做一个布尔变量,若为1表示隶属于这种瓜。
为了求解参数 w , b w,b w,b,采用均方误差作为性能度量。显然均方误差越小越好,线性回归任务可以表示为
( w ∗ , b ∗ ) = a r g m i n ( w , b ) ∑ i = 1 m ( f ( x i ) − y i ) ) 2 = a r g m i n ( w , b ) ∑ i = 1 m ( y i − w x i − b ) 2 (w^*,b^*)=arg\ min_{(w,b)}\sum_{i=1}^{m}(f(x_i)-y_i))^2=arg\ min_{(w,b)}\sum_{i=1}^{m}(y_i-wx_i-b)^2 (w∗,b∗)=arg min(w,b)∑i=1m(f(xi)−yi))2=arg min(w,b)∑i=1m(yi−wxi−b)2
a r g m i n arg\ min arg min表示当 m i n min min后面表达式中取最小值的时候,参数的取值,上式中 ( w ∗ , b ∗ ) = a r g m i n ( w , b ) . . . (w^*,b^*)=arg\ min_{(w,b)...} (w∗,b∗)=arg min(w,b)...就是表示当后面的表达式取最小值的时候,参数(变量) w , b w,b w,b的值作为解 w ∗ , b ∗ w^*,b^* w∗,b∗。
均方误差对应了欧式距离,基于均方误差最小化来进行模型求解的方法也叫作最小二乘法。如果输入 x i x_i xi只有一维,也就是一元线性回归,那么和高中的最小二乘法拟合直线方程并没有什么区别。线性回归任务,也是找到一条直线,使得样本到直线上的欧式距离之和最小。
此处假设
x
i
x_i
xi只有一维,即一元线性回归。
令
E
(
w
,
b
)
=
∑
i
=
1
m
(
y
i
−
w
x
i
−
b
)
2
E_{(w,b)}=\sum_{i=1}^{m}(y_i-wx_i-b)^2
E(w,b)=∑i=1m(yi−wxi−b)2,求解
w
,
b
w,b
w,b使得
E
(
w
,
b
)
E_{(w,b)}
E(w,b)最小化的过程,称为线性回归模型的最小二乘参数估计。将
E
(
w
,
b
)
E_{(w,b)}
E(w,b)分别对
w
,
b
w,b
w,b求导。
∂ 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(w\sum_{i=1}^mx_i^2-\sum_{i=1}^m(y_i-b)x_i) ∂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(mb-\sum_{i=1}^m(y_i-wx_i)) ∂b∂E(w,b)=2(mb−i=1∑m(yi−wxi))
由于 E ( w , b ) E_{(w,b)} E(w,b)是凸函数,所以导数为0即可得到最优解的闭式。
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}^my_i(x_i-\bar{x})}{\sum_{i=1}^mx_i^2-\frac{1}{m}(\sum_{i=1}^mx_i)^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)
更一般的情况,样本由多个属性组成,学习目标为 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。称为多元线性回归。
w w w是每个属性前面的权值( d × 1 d×1 d×1的列向量),考虑到偏置项(常数项) b b b,将 b b b也吸入进向量形式,即 w ^ = ( w ; b ) \hat{w}=(w;b) w^=(w;b)( ( d + 1 ) × 1 (d+1)×1 (d+1)×1的列向量)。而 X X X是一个矩阵( m × d m×d m×d),每一行是一条数据记录,列对应一个属性。引入偏置项后,需要在最右侧增加一列1,变成 m × ( d + 1 ) m×(d+1) m×(d+1)的矩阵。这样可以求得
w ^ ∗ = a r g m i n w ^ ( y − X w ^ ) T ( y − X w ^ ) \hat{w}^*=arg\ min_{\hat{w}}(y-X\hat{w})^T(y-X\hat{w}) w^∗=arg minw^(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^)。类似的,导数为0的时候可以求出闭解形式,首先要解决的是矩阵求导的问题,这里用两种方式求解 E w ^ E_{\hat{w}} Ew^的导数。下面会涉及到一些矩阵论的内容,使用到的式也会一并给出。
方法一
用到的公式: d A B d B = A T , d A T B d A = B , X T A X d X = 2 A X \frac{dAB}{dB}=A^T,\frac{dA^TB}{dA}=B,\frac{X^TAX}{dX}=2AX dBdAB=AT,dAdATB=B,dXXTAX=2AX
E w ^ = ( y − X w ^ ) T ( y − X w ^ ) = ( w ^ T X T X w ^ − w ^ T X T Y − Y T X x ^ − Y T Y ) E_{\hat{w}} \\ =(y-X\hat{w})^T(y-X\hat{w}) \\=(\hat{w}^TX^TX\hat{w}-\hat{w}^TX^TY-Y^TX\hat{x}-Y^TY) Ew^=(y−Xw^)T(y−Xw^)=(w^TXTXw^−w^TXTY−YTXx^−YTY)
则
d E w ^ d w ^ = d ( w ^ T X T X w ^ − w ^ T X T Y − Y T X x ^ − Y T Y ) d w ^ = d w ^ T X T X w ^ d w ^ − d w ^ T X T Y d w ^ − d Y T X x ^ d w ^ − d Y T Y d w ^ \frac{dE_{\hat{w}}}{d\hat{w}} = \frac{d(\hat{w}^TX^TX\hat{w}-\hat{w}^TX^TY-Y^TX\hat{x}-Y^TY)}{d\hat{w}} = \frac{d\hat{w}^TX^TX\hat{w}}{d\hat{w}} - \frac{d\hat{w}^TX^TY}{d\hat{w}} - \frac{dY^TX\hat{x}}{d\hat{w}} - \frac{dY^TY}{d\hat{w}} dw^dEw^=dw^d(w^TXTXw^−w^TXTY−YTXx^−YTY)=dw^dw^TXTXw^−dw^dw^TXTY−dw^dYTXx^−dw^dYTY
根据公式 d w ^ T X T X w ^ d w ^ = 2 X T X w ^ , d w ^ T X T Y d w ^ = X T Y , d Y T X x ^ d w ^ = X T Y , d Y T Y d w ^ = 0 \frac{d\hat{w}^TX^TX\hat{w}}{d\hat{w}} = 2X^TX\hat{w}, \frac{d\hat{w}^TX^TY}{d\hat{w}} = X^TY, \frac{dY^TX\hat{x}}{d\hat{w}} = X^TY, \frac{dY^TY}{d\hat{w}} = 0 dw^dw^TXTXw^=2XTXw^,dw^dw^TXTY=XTY,dw^dYTXx^=XTY,dw^dYTY=0
那么 d E w ^ d w ^ = 2 X T X w ^ − 2 X T Y = 2 X T ( X w ^ − Y ) \frac{dE_{\hat{w}}}{d\hat{w}} = 2X^TX\hat{w}-2X^TY=2X^T(X\hat{w}-Y) dw^dEw^=2XTXw^−2XTY=2XT(Xw^−Y)
方法二
用到的公式: d f = ∑ i = 1 n ∂ f ∂ x i d x i = ∂ f T ∂ x d x df=\sum_{i=1}^{n}\frac{\partial f}{\partial x_i}dx_i = \frac{\partial f^T}{\partial x}dx df=∑i=1n∂xi∂fdxi=∂x∂fTdx
d [ ( y − X w ^ ) T ( y − X w ^ ) ] = d ( y − X w ^ ) T ( y − X w ^ ) + ( y − X w ^ ) T d ( y − X w ^ ) = ∂ ( y − X w ^ ) ∂ w ^ ( y − X w ^ ) d w ^ + ( y − X w ^ ) T ∂ ( y − X w ^ ) T w ^ d w ^ = ( X T X w ^ − X T Y ) d w + ( w ^ T X T X − Y T X ) d w = ( X T X w ^ − X T Y + w ^ T X T X − Y T X ) d w = [ ( X T X w ^ − X T Y ) + ( X T X w ^ − X T Y ) ] d w = 2 X T ( X w ^ − Y ) d w d[(y-X\hat{w})^T(y-X\hat{w})] \\ = d(y-X\hat{w})^T(y-X\hat{w}) + (y-X\hat{w})^Td(y-X\hat{w}) \\ =\frac{\partial (y-X\hat{w})}{\partial \hat{w}}(y-X\hat{w})d\hat{w} + (y-X\hat{w})^T\frac{\partial (y-X\hat{w})^T}{\hat{w}}d\hat{w} \\=(X^TX\hat{w}-X^TY)dw + (\hat{w}^TX^TX-Y^TX)dw \\ = (X^TX\hat{w}-X^TY+\hat{w}^TX^TX-Y^TX)dw \\ = [(X^TX\hat{w} - X^TY) + (X^TX\hat{w}-X^TY)]dw \\ =2X^T(X\hat{w}-Y)dw d[(y−Xw^)T(y−Xw^)]=d(y−Xw^)T(y−Xw^)+(y−Xw^)Td(y−Xw^)=∂w^∂(y−Xw^)(y−Xw^)dw^+(y−Xw^)Tw^∂(y−Xw^)Tdw^=(XTXw^−XTY)dw+(w^TXTX−YTX)dw=(XTXw^−XTY+w^TXTX−YTX)dw=[(XTXw^−XTY)+(XTXw^−XTY)]dw=2XT(Xw^−Y)dw
令 2 X T ( X w ^ − Y ) = 0 2X^T(X\hat{w}-Y)=0 2XT(Xw^−Y)=0,即可得出 w ^ ∗ = ( X T X ) − 1 X T y \hat{w}^*=(X^TX)^{-1}X^Ty w^∗=(XTX)−1XTy