线性回归学习笔记
线性回归
给出\((x_1,y_1),...(x_n,y_n),x_i\in R^k,y_i\in R\)。
假设:\(w\in R^k,b\in R,f(x)=x^Tw+b\)
损失函数:\(h(x_i)=(f(x_i)-y_i)^2\)(一个点),\(Ls(w,b)=\Sigma_{i=1}^n(f(x_i)-y_i)^2\)。
为了更好地用矩阵的语言表示,现令\(\widehat x_i^T=(1,x_i^T),\hat w^T=(b,w^T)\),再用\(\widehat x_i\)代替\(x_i\),用\(w^T\)代替\(w\)。现在\(f(x_i)=x_i^Tw\),令\(X=\left(\begin{matrix}x_1^T\\...\\x_n^T \end{matrix}\right )\),\(Xw\in R^n\),则有:\(||xw-y||^2=\Sigma_{i=1}^n((xw)_i-y_i)^2=\Sigma_{i=1}^n(x_i^Tw-y_i)^2\)。
这样就可以把线性回归等同于一个优化问题:\(min_{w\in R^k}||Xw-y||^2\)。令\(h(w)=||Xw-y||^2\),如果从内积的角度看(很显然最后的Loss应该是一个数),等价于\((Xw-y,Xw-y)=(Xw-y)^T(Xw-y)=((Xw)^T-y^T)(Xw-y)=(w^TX^T-y^T)(Xw-y)=w^TX^TXw-2w^TX^Ty+y^Ty\)
作为一个多元函数,需要求多次偏导数:
利用\(\bigtriangledown x(x^TAx)=2Ax,\bigtriangledown x(x^Ty)=y\)(二次型求偏导),则\(\bigtriangledown w(h)=2X^TXw-2X^Ty\),令其等于0,等价于\((X^TX)w=X^Ty\)。其中\((X^TX)\)至少是半正定的(半正定与正定的区别在于其是否是一个满秩的矩阵)。如果\(X^TX\)正定可逆,则可以把\(w\)解出来:\(w=(X^TX)^{-1}(X^Ty)\),因此线性回归是可以有闭式解的(但也是有比较严格的条件的)。
特殊情况:\(X\)本身是可逆方阵,\(w=(X^TX)^{-1}(X^Ty)=X^{-1}(X^T)^{-1}X^Ty=X^{-1}y\)。此时对于\(Xw=y\)的\(w\)是有解的,因此给定的数据本身就在同一个超平面上,损失函数自然等于0。一般情况下,给定的数据点的个数要远远超过\(w\)的维数,因此可以避免过度拟合。
优化:\(h(w)=(Xw-y)^T\Omega (Xw-y)\),其中\(\Omega\)是正定矩阵,再令\(\bigtriangledown w(h)=0\),得到\(w=(X^T\Omega X)^{-1}(X^T\Omega y)\)作为闭式解。