线性回归之最小二乘法(Least Squares)推导

假设 n − 1 n - 1n1 维空间变量点为 x ⃗ = ( x 1 , x 2 , ⋯ , x n − 1 ) T \vec{x}= (x_1, x_2, \cdots, x_{n-1})^Tx=(x1,x2,,xn1)T , 并假设有 m mm 个这样的样本点 记为 x ⃗ ( 1 ) , x ⃗ ( 2 ) , ⋯ , x ⃗ ( m ) \vec{x}^{(1)}, \vec{x}^{(2)}, \cdots ,\vec{x}^{(m)}x(1),x(2),,x(m),我们希望找到一个这样的超平面,来使得尽可能的拟合这些样本点,形式化表示等价于我们希望找到这样的系数 w ⃗ \vec{w}wb bb 使得 w ⃗ T x ⃗ + b ≈ y {\vec{w}}^T\vec{x}+b \approx ywTx+by ,为了简化上述表达式,我们将 w ⃗ \vec{w}wb bb 放到一起简记为 ( w ⃗ T , b ) = w ⃗ T ({\vec{w}}^T,b) = {\vec{w}}^T(wT,b)=wT,并令 x ⃗ n ( i ) = 1 \vec{x}^{(i)}_{n} = 1xn(i)=1,于是上述表达式等价于找到 w ⃗ \vec{w}w 使得 w ⃗ T x ⃗ ≈ y {\vec{w}}^T\vec{x}\approx ywTxy

我们记样本点集为矩阵 X XX,则有 X = ( x ⃗ ( 1 ) T x ⃗ ( 2 ) T ⋮ x ⃗ ( m ) T ) = ( x 1 ( 1 ) x 2 ( 1 ) ⋯ x n ( 1 ) x 1 ( 2 ) x 2 ( 2 ) ⋯ x n ( 2 ) ⋮ ⋮ ⋱ ⋮ x 1 ( m ) x 2 ( m ) ⋯ x n ( m ) ) X = \begin{pmatrix} {\vec{x}^{(1)}}^{T} \\ {\vec{x}^{(2)}}^{T} \\ \vdots \\ {\vec{x}^{(m)}}^{T} \end{pmatrix} = \begin{pmatrix} x_1^{(1)} & x_2^{(1)} & \cdots & x_n^{(1)}\\ x_1^{(2)} & x_2^{(2)} & \cdots & x_n^{(2)}\\ \vdots & \vdots & \ddots & \vdots \\ x_1^{(m)} & x_2^{(m)} & \cdots & x_n^{(m)}\\ \end{pmatrix}X=x(1)Tx(2)Tx(m)T=x1(1)x1(2)x1(m)x2(1)x2(2)x2(m)xn(1)xn(2)xn(m)

于是上述表述等价于找到 w ⃗ \vec{w}w 使得 X w ⃗ ≈ y ⃗ X\vec{w} \approx \vec{y}Xwy.

考虑这样的一个特殊情形:假设所有的样本点正好在一个超平面,且样本点所张成的空间(S p a n   S p a c e Span\ SpaceSpan Space)为该 n nn 维空间,意味着 m ≥ n m \ge nmnr a n k ( X ) = n rank(X) = nrank(X)=n
此时方程 X w ⃗ = y ⃗ X\vec{w} = \vec{y}Xw=y 恰好有唯一解(即为该超平面) ,推导如下:X w ⃗ = y ⃗ ⇔ X T X w ⃗ = X T y ⃗ ⇔ w ⃗ = ( X T X ) − 1 X T y ⃗ X\vec{w} = \vec{y} \Leftrightarrow X^TX\vec{w}=X^T\vec{y} \Leftrightarrow \vec{w} = (X^TX)^{-1}X^T\vec{y}Xw=yXTXw=XTyw=(XTX)1XTy

(注:因为 X XX 为列满秩,所以 r a n k ( X T X ) = r a n k ( X ) = n rank(X^TX)= rank(X) = nrank(XTX)=rank(X)=n,即 X T X X^TXXTX 为可逆方阵)

而对于一般情形,所有的样本点一般不会在同一个超平面中,所以方程 X w ⃗ = y ⃗ X\vec{w} = \vec{y}Xw=y 此时是无解的,这个方程组也称之为超定方程组(O v e r d e t e r m i n e d   S y s t e m Overdetermined\ SystemOverdetermined System),即方程数量超过未知数个数,此时我们希望找到一个超平面使得 X w ⃗ ≈ y ⃗ X\vec{w} \approx \vec{y}Xwy 且误差 ∥ X w ⃗ − y ⃗ ∥ \Vert X\vec{w} - \vec{y}\VertXwy 尽可能的小(这里符号∥   ∥ \Vert\ \Vert L 2 L_2L2范数,利用度量欧几里得距离来衡量误差大小是比较符合常识的,这也是least square的由来)。形式化表达等价于 w ^ ⃗ = arg ⁡ min ⁡ w ⃗ ∥ X w ⃗ − y ⃗ ∥ \vec{\hat{{w}}} = \arg\min_{\vec{w}}\Vert X\vec{w} - \vec{y}\Vertw^=argwminXwy

为了便于计算,我们不妨令 w ^ ⃗ = arg ⁡ min ⁡ w ⃗ ∥ X w ⃗ − y ⃗ ∥ = arg ⁡ min ⁡ w ⃗ ∥ X w ⃗ − y ⃗ ∥ 2 \vec{\hat{{w}}} = \arg\min_{\vec{w}}\Vert X\vec{w} - \vec{y}\Vert = {\arg\min_{\vec{w}}\Vert X\vec{w} - \vec{y}\Vert}^2w^=argwminXwy=argwminXwy2

且令 L ( w 1 , w 2 , ⋯ , w n ) = ∥ X w ⃗ − y ⃗ ∥ 2 L(w_1,w_2,\cdots,w_n)={\Vert X\vec{w} - \vec{y}\Vert}^2L(w1,w2,,wn)=Xwy2

仍不妨假设此时 X XX 是列满秩的
上述问题转化为了求极值问题,我们很自然的想到了利用导数来寻找极值。
于是对 w i w_iwi 求偏导且令其为零 ∂ L ∂ w i = 2 ( x i ( 1 ) , x i ( 2 ) , ⋯ , x i ( m ) ) ( X w ⃗ − y ⃗ ) = 0 \frac{\partial{L}}{\partial{w_i}}=2(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(m)})(X\vec{w}-\vec{y})=0wiL=2(xi(1),xi(2),,xi(m))(Xwy)=0

于是 ( ∂ L ∂ w 1 , ∂ L ∂ w 2 , ⋯ , ∂ L ∂ w n ) T = 0 ⃗ T ⇔ 2 X T ( X w ⃗ − y ⃗ ) = 0 ⃗ ⇔ X T X w ⃗ − X T y ⃗ = 0 ⃗ (\frac{\partial{L}}{\partial{w_1}}, \frac{\partial{L}}{\partial{w_2}}, \cdots,\frac{\partial{L}}{\partial{w_n}})^T=\vec{0}^T \Leftrightarrow 2X^T(X\vec{w}-\vec{y})=\vec{0} \Leftrightarrow X^TX\vec{w}-X^T\vec{y}=\vec{0}(w1L,w2L,,wnL)T=0T2XT(Xwy)=0XTXwXTy=0

即推出 w ⃗ = ( X T X ) − 1 X T y ⃗ \vec{w}=(X^TX)^{-1}X^T \vec{y}w=(XTX)1XTy

上述就是众所周知的线性最小二乘法的基本思想
然而,这里会有两个问题
(1) 为什么在这个情况下我们找到的是极小值?
(2) 为什么这个极小值就是我们需要的最小值?


版权声明:本文为qq_27576655原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。