MIT 线性代数 Linear Algebra 16: 最小二乘法 least square method

    科技2022-07-20  179

    这一讲,Prof. Strang着重讲 projection的应用。

    Problem: 二维空间中有三个点 (1,1), (2,2), (3,2) 找到一条最优的线来拟合它们。

    假设方程是 y = k x + c y=kx+c y=kx+c

    那么其实我们是想找一条线使得 1 = k + c 1=k+c 1=k+c

    2 = 2 k + c 2=2k+c 2=2k+c

    2 = 3 k + c 2=3k+c 2=3k+c

    That is, 解方程 A x = b \bm{Ax=b} Ax=b

    [ 1 1 2 1 3 1 ] [ k c ] = [ 1 2 2 ] \begin{bmatrix} 1 & 1 \\ 2 & 1 \\ 3 & 1 \\ \end{bmatrix}\begin{bmatrix} k \\ c \\ \end{bmatrix}=\begin{bmatrix} 1 \\ 2 \\ 2 \\ \end{bmatrix} ⎣⎡​123​111​⎦⎤​[kc​]=⎣⎡​122​⎦⎤​

    显然 b \bm{b} b 并不在 A \bm{A} A 的 column space 里, 这个方程无解。那我们应该怎么做尼?比较合理的是,我们找到一组 ( k ∗ , b ∗ ) (k^*,b^*) (k∗,b∗) 使得 [ 1 1 2 1 3 1 ] [ k ∗ c ∗ ] = d \begin{bmatrix} 1 & 1 \\ 2 & 1 \\ 3 & 1 \\ \end{bmatrix}\begin{bmatrix} {k}^* \\ {c}^* \\ \end{bmatrix}=\bm{d} ⎣⎡​123​111​⎦⎤​[k∗c∗​]=d

    得到的 d \bm{d} d 与 b \bm{b} b 的差距最小。一种 measure 差距的方式是 min ⁡ ∥ d − b ∥ 2           ( 1 ) \min \|\bm{d-b}\|^2 ~~~~~~~~~(1) min∥d−b∥2         (1)

    函数解法

    直接在(1)中代入 d \bm{d} d 和 b \bm{b} b 其实我们可以得出 ∥ d − b ∥ 2 = [ k ∗ + c ∗ − 1 2 k ∗ + c ∗ − 2 3 k ∗ + c ∗ − 2 ] ⊤ [ k ∗ + c ∗ − 1 2 k ∗ + c ∗ − 2 3 k ∗ + c ∗ − 2 ] \|\bm{d-b}\|^2=\begin{bmatrix} {k}^*+{c}^*-1 \\ 2{k}^*+{c}^*-2 \\ 3{k}^*+{c}^* -2\\ \end{bmatrix}^\top\begin{bmatrix} {k}^*+{c}^*-1 \\ 2{k}^*+{c}^*-2 \\ 3{k}^*+{c}^* -2\\ \end{bmatrix} ∥d−b∥2=⎣⎡​k∗+c∗−12k∗+c∗−23k∗+c∗−2​⎦⎤​⊤⎣⎡​k∗+c∗−12k∗+c∗−23k∗+c∗−2​⎦⎤​

    = 14 ( k ∗ ) 2 + 3 ( c ∗ ) 2 + 12 k ∗ c ∗ + 9 − 22 k ∗ − 10 c ∗ =14 (k^*)^2 + 3(c^*)^2+12k^*c^*+9-22k^*-10c^* =14(k∗)2+3(c∗)2+12k∗c∗+9−22k∗−10c∗

    要求他的最小值可以对 k ∗ k^* k∗, c ∗ c^* c∗ 分别求偏导,则有 { 28 k ∗ + 12 c ∗ − 22 = 0 12 k ∗ + 6 c ∗ − 10 = 0 \begin{cases} 28k^*+12c^*-22=0\\ 12k^*+6c^*-10=0 \end{cases} {28k∗+12c∗−22=012k∗+6c∗−10=0​

    解出得 k ∗ = 1 / 2 k^*=1/2 k∗=1/2, c ∗ = 2 / 3 c^*=2/3 c∗=2/3.

    矩阵解法

    Eq. (1) 实际上是让我们在 C ( A ) C(\bm{A}) C(A) 上找到一个向量使得 b − d \bm{b-d} b−d 的长度最小。显然,从 d \bm{d} d 做一条垂线到 C ( A ) C(\bm{A}) C(A) 距离是最短的。因此,最优的 d \bm{d} d 实际上 b \bm{b} b 在 C ( A ) C(\bm{A}) C(A) 上的投影。

    根据上节课的结论,令投影 d = A x \bm{d=Ax} d=Ax, 则 x \bm{x} x 由以下公式给出 A ⊤ A x = A ⊤ b      ( 2 ) \bm{A^\top Ax=A^\top b}~~~~(2) A⊤Ax=A⊤b    (2)

    Prof. Strang强调说这是 statistics 里一个重要的公式,其实我们很清楚这个公式就是由 A ⊤ ( b − d ) = 0 A^\top (\bm{b-d})=0 A⊤(b−d)=0 得出的 (忘记的同学参考上一节)。这里, A \bm{A} A 列满秩,因此 A ⊤ A \bm{A^\top A} A⊤A 满秩,直接解 (2) 会得到跟函数解法一模一样的解。

    几何表示

    最后我们再看一下这个问题的几何表示

    在上图中,我们把三个点标注为 P 1 P_1 P1​, P 2 P_2 P2​, P 3 P_3 P3​. 注意, (1) 中的 b \bm{b} b, d \bm{d} d 都是在三维空间中的vector (因为我们有三个点), 而非是图中二维空间的点 (矩阵表示法与图中二维空间无关). 所以实际上我们阿斯矩阵解法中所说的垂线是在三维空间中的垂线 (得针对 A x = b \bm{Ax=b} Ax=b 另画) 而非图中 P 1 P_1 P1​, P 2 P_2 P2​, P 3 P_3 P3​ 对直线做垂线.

    实际上, 矩阵表示法 A x = b \bm{Ax=b} Ax=b 与图中唯一的关联是, b \bm{b} b 是 P 1 P_1 P1​, P 2 P_2 P2​, P 3 P_3 P3​ 的纵坐标. 所以,当我们调整 [ k , c ] ⊤ [k,c]^\top [k,c]⊤ 得到不同的 A [ k , c ] ⊤ \bm{A}[k,c]^\top A[k,c]⊤ 时, 等价于我们选取不同的直线使得这条直线在三个点的横坐标处取得不同的值. 图中所示的是, 三维空间中取到投影时, d 1 d_1 d1​, d 2 d_2 d2​, d 3 d_3 d3​ 所处的位置, 他们与原来的点 P 1 P_1 P1​, P 2 P_2 P2​, P 3 P_3 P3​ 纵坐标的差值 e 1 e_1 e1​, e 2 e_2 e2​, e 3 e_3 e3​ 即为三维空间中 法向量 e = b − d \bm{e=b-d} e=b−d 的三维坐标.

    Processed: 0.008, SQL: 9