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