# 求 minimal sol / least squares sol
先上圖,懶得看英文可以直接看下面我的中文解釋再對照著看~

## minimal solution
如果 $A\vec{x} = \vec{b}$ 有很多解(即有很多個 $\vec{x}$ 滿足這這個式子)時,我們希望能找到這麼多解裡面長度最小的那個。
為什麼上面的圖中會寫如果 $\vec{b} \in CS(A)$,$A\vec{x} = \vec{b}$ 就有解呢?
> 因為如果 $\vec{b} \in CS(A)$,代表 $\vec{b}$ 可寫成 $A\vec{x}$ 的形式
> (因為 by definition, $CS(A)$ 就是收集所有可以寫成 $A\vec{x}$ 形式的向量)
> 因此也就代表說,存在一個 $\vec{x}$ 使 $A\vec{x} = \vec{b}$ 成立
現在我們假設滿足 $A\vec{x} = \vec{b}$ 的 $\vec{x}$ 可能不止一個,於是 minimal solution 就是在說,那就求一個滿足等式的 $\vec{x}$ 裡長度最小的那個吧!
那要怎麼找這個長度最小的 $\vec{x}$ 呢?
此 proposition 要告訴我們的就是:
這個長度最小的 $\vec{x}$ 就會恰好是某個在 $CS(A^T)$ 裡的向量
> 也可以說是在 $RS(A)$ 裡的,因為 $CS(A^T) = RS(A)$
> Why?
> 直觀的想法:你把 $A$ 取轉置之後,$A$ 的列變成行,行變成列,所以 $A^T$ 的行所生成的空間($CS(A^T)$)也就是原本 $A$ 的列所生成的空間($RS(A)$)
並且,在 $RS(A)$ 裡只會有一個 $\vec{x}$ (用 $\vec{x_0}$ 代表)會滿足 $A\vec{x} = \vec{b}$
#### 找 minimal solution 的方法
任找一個滿足 $A\vec{x} = \vec{b}$ 的 $\vec{x}$ ,再把這個 $\vec{x}$ 投影到列空間即可
==$x_0 = Proj_{C(A^T)}(x)$==
Gilbert Strang 書裡的圖比較方便想像:

> $\vec{x} = \vec{x_r} + \vec{x_n}$
> 是滿足 $A\vec{x} = \vec{b}$ 的其中一個解
> 但如果我們要求 minimal solution (所有解裡面長度最短的解),就是把 $\vec{x}$ 投影到 $RS(A) = C(A^T)$ 上,得到的 $\vec{x_r}$
>> 幫助想像,從圖上也可以看得出來 $\vec{x}$ 比 $\vec{x_r}$ 長
## least squares solution
如果 $A\vec{x} = \vec{b}$ 無解時,我們希望能找到一個 $\vec{x}$ ,使得 $A\vec{x}$ 和 $\vec{b}$ 最接近來當作一個近似解。
什麼時候 $A\vec{x} = \vec{b}$ 無解?
> $A\vec{x} = \vec{b}$ 無解代表說找不到一個 $\vec{x}$ 帶進去滿足這個式子,也就是說 $\vec{b}$ 沒辦法寫成 $A\vec{x}$ 的形式,既然如此,根據行空間 $CS(A)$ 的定義,要可以寫成 $A\vec{x}$ 的形式才會被收集到行空間中,因此 $\vec{b} \notin CS(A)$
> 如果 $A\vec{x} = \vec{b}$ 有解的時候,因為等號成立,所以我們可以把 $\vec{b}$ 搬到等號左側,變成 $A\vec{x} - \vec{b} = 0$
> 但是現在 $A\vec{x} = \vec{b}$ 無解,所以 $A\vec{x} - \vec{b} \not= 0$
> 既然不等於零,一定會有某一個 $\vec{x}$ 使得 $A\vec{x} - \vec{b}$ 最小,也就是說這個 $\vec{x}$ 讓 $A\vec{x}$ 和 $\vec{b}$ 最接近,我們用 $\vec{x^*}$ 來代表這個 $\vec{x}$
>
> 因為 $A\vec{x^*} - \vec{b}$ 是有方向性的,但我們在考慮它們要最接近的時候不用管到底是哪個方向,所以加上 norm:
least squares solution 即求:
\begin{equation}
\min ||\ A\vec{x^*} - \vec{b} \ ||
\end{equation}
這個圖很清晰的表示了找 least squares solution 件事:

> 綠色的點點是收集到的數據的值,當我們要找他們之間的關聯時,就想去畫一條線(回歸線 Regression Line)來描述這些點之間的關係,但是收集到的數據可能不會剛好都在這條直線上,所以我們畫出的線和實際的 observed value 之間會有誤差(Error)。
>
> 在求 least squares solution 的時候其實也是這個想法,這條線就是 $CS(A) = A\vec{x}$,也就是一個 $A \in F^{m \times n}$ 把所有 $\vec{x} \in F^{n \times 1}$ 送到的全部向量所成的空間,$\vec{b}$ 就是上面那些綠色的點(observed value),因為我們很難找到一個完美符合這些點的 regression line,在這樣的情況下,我們只好退而求其次找 error 最小的。
回到原本的問題,那我們如何求滿足 $\min ||A\vec{x^*} - \vec{b}||$ 的 $\vec{x^*}$?
### 找 least squares solution 的方法
#### 解 normal equation

我畫了一個簡單的圖說明 XD
從圖中我們可以看到黑色的向量 $\vec{b}$,以及一個紅色的向量 $A\vec{x^*}$ 在 $CS(A)$ 上,要找他們兩個之間最近的距離,很直觀的想法就是直接畫一條垂直線下來,這條線就是 $A\vec{x^*} - \vec{b}$
因為$A\vec{x^*} - \vec{b}$ 和 $CS(A)$ 垂直,所以 $A\vec{x^*} - \vec{b}$ 就會在 $CS(A)^\perp$,也就是 $CS(A)$ 的 orthogonal complement 中
> $CS(A)^\perp$:一個收集 和 「$CS(A)$ 裡所有向量」垂直的向量 的 subspace。
$CS(A)^\perp$ 又是什麼呢?
$\rightarrow$ 實際上就是 $N(A^T)$
不多說明直接上一個很好用的圖:

:::success
\begin{equation}
\begin{split}
N(A) = C(A^T)^\perp \\
N(A^T) = C(A)^\perp
\end{split}
\end{equation}
:::
> 詳細說明可參考 Gilbert Strang 的書,觀念寫超好,書的資訊附在下方 Reference。
所以也就是說 $A\vec{x^*} - \vec{b}$ 會在 $N(A^T)$ 中。
>根據 null space(也就是 kernel)的定義:
>
>$N(A)$ 會收集所有可以被 $A$ 送到 $\vec0$ 的 $\vec x$
>$\rightarrow$ $N(A^T)$ 會收集所有可以被 $A^T$ 送到 $\vec0$ 的 $\vec x$
既然 $A\vec{x^*} - \vec{b}$ 在 $N(A^T)$ 中,代表 $A^T$ 也會把 $A\vec{x^*} - \vec{b}$ 送到 $\vec0$,於是我們得到:
$A^T(A\vec{x^*} - \vec{b}) = \vec0$
把它展開:
$A^TA\vec{x^*} - A^T\vec{b} = \vec0$
移項:
:::success
\begin{equation}
A^TA\vec{x^*} = A^T\vec{b}
\end{equation}
:::
這個式子也叫做 normal equation,如果不知道推導的過程的話會覺得很神奇,因為它字面上的意思就是說:
>如果我們發現 $A\vec{x} = \vec{b}$ 沒有解,只要左右同乘 $A^T$ 就會有近似解了,還能保證這個近似解是最佳的近似解。
#### 當 A 行獨立時的公式
另外,當 <font color = "red">$A$ 行獨立</font>,$A^TA$ 就會可逆(有興趣可以翻閱課本看證明)因此存在 $(A^TA)^{-1}$ ,所以我們就可以把這個式子:
$A^TA\vec{x^*} = A^T\vec{b}$
>左右同乘 $(A^TA)^{-1}$:
$(A^TA)^{-1}A^TA\vec{x^*} = (A^TA)^{-1}A^T\vec{b}$
>左邊的 $(A^TA)^{-1}$ 和 $A^TA$ 消掉:
:::success
\begin{equation}
\vec{x^*} = (A^TA)^{-1}A^T\vec{b}
\end{equation}
:::
從這個式子我們就可以發現,在 $A$ 行獨立的情況下,$\vec{x^*}$ 是唯一的,但是如果 $A$ 行相依,代表說 $ker(A)$ 不是零空間,根據定理,$ker(A) = ker(A^TA)$,所以 $ker(A^TA)$ 也不是零空間(有除了零向量以外的向量在 $ker(A^TA)$ 中)
這代表我們可以把 $ker(A^TA)$ 中的任意向量加 $\vec{x^*}$ 去獲得許許多多的不同的解
> 舉例來說:
>
> 假設 $\vec{x^*}$ 是我們解 $A^TA\vec{x} = A^T\vec{b}$ 求除來的其中一個解
> 並且我們假設 $ker(A^TA) \not= \{\vec 0\}$
> $\vec x_1 \in ker(A^TA)$ 是 $ker(A^TA)$ 裡的任意一個向量
>
> $\because \vec x_1 \in ker(A^TA)$
> $\therefore A^TA\vec x_1 \ = \ \vec 0$
>
> 因為我們假設 $A^TA\vec{x^*} = A^T\vec{b}$,我們可把這個兩個式子相加,得到:
>
> $A^TA\vec{x^*} \ + \ A^TA\vec x_1 \ = \ A^T\vec{b} \ + \ \vec 0$
> $\rightarrow A^TA\vec{x^*} \ + \ A^TA\vec x_1 \ = \ A^T\vec{b}$
>
> 把左邊的 $A^TA$ 提出來:
> $\rightarrow A^TA\ (\vec{x^*} \ + \ \vec x_1) \ = \ A^T\vec{b}$
>
> 從這個式子可以發現, $\vec{x^*} \ + \ \vec x_1$ 也是一個解,因為我們對 $ker(A^TA)$ 裡的所有向量都可以重複這個做法去得到不同的解,所以只要 $ker(A^TA)$ 不是零空間,解就不唯一。
因此,結論就是如果 $A$ 行相依,normal equation 的解不唯一。
總之,如果題目問 least squares solution 且有特別說 $A$ 行獨立,我們就直接把 $\vec{b}$ 左乘 $(A^TA)^{-1}A^T$ 就是答案了;但如果 $A$ 沒有行獨立,就乖乖解 normal equation 就好。
---
## Reference
- Gilbert Strang (2006).Linear Algebra and Its Applications, 4/e
- [stanford lecture notes](https://math.stanford.edu/~jmadnick/R3.pdf)