# 線性代數的最小平方/範數問題與與主成分分析(PCA) ###### tags: `線性代數` ###### 撰寫時間 : 2022/08/31 ## 最小平方問題(least square problem) 考慮$\mathbf{A}_{m \times n} \mathbf{x}_{n \times 1} = \mathbf{b}_{m \times 1}$,若$m > n, \mathrm{rank}(\mathbf{A}) = n$,也就是說有效方程式$m$條,多於未知數$n$個,屬於overdetermined problem,解不存在(或是只存在一組解),但問題總不能這樣就結束,因此我們"試圖"找到一個近似解的折衷方案 - 找$\mathbf{x} \in \mathbb{R}^n$能最小化$\mathbf{Ax} -\mathbf{b}\in \mathbb{R}^{ m \times n}$的長度。 ## 最小平方問題解法1 - 線性代數理論 ![](https://i.imgur.com/m0CllcU.jpg)<br> 在$\mathbb{R}^m$空間下 $$ \mathbf{A} \mathbf{x} = \begin{bmatrix} \mathbf{A}_1 & \mathbf{A}_2 & \cdots & \mathbf{A}_n \end{bmatrix} \begin{bmatrix} \mathbf{x}_1\\ \mathbf{x}_2\\ \vdots\\ \mathbf{x}_n \end{bmatrix} = \mathbf{x}_1 \mathbf{A}_1 + \mathbf{x}_2 \mathbf{A}_2 + \cdots + \mathbf{x}_n \mathbf{A}_n $$ 只會落在$\mathbb{R}^n$的平面,也就是$\mathrm{Col}(\mathbf{A})$,如果$\mathbf{b}$沒落在這個平面上,記為$\mathbf{b} \not\in \mathrm{Col}(\mathbf{A})$,則解不存在。這時我們希望能在這個$\mathrm{Col}(\mathbf{A})$的平面上找到一個向量,使得$\mathbf{Ax} -\mathbf{b}$的距離能短越好,記為$\min \|\mathbf{Ax} -\mathbf{b} \|$,根據幾何的知識,要讓$\mathbf{Ax} -\mathbf{b}$向量能垂直於$\mathrm{Col}(\mathbf{A})$的平面,因此 $$ \begin{align*} &\min \|\mathbf{Ax} -\mathbf{b} \|\\ \Rightarrow\;& \mathbf{Ax} -\mathbf{b} \in \mathrm{Col}(\mathbf{A})^\perp = \mathrm{Null}(\mathbf{A}^T)\\ \Rightarrow\;& \mathbf{A}^T (\mathbf{Ax} -\mathbf{b}) = \mathbf{0}\\ \Rightarrow\;& \mathbf{A}^T \mathbf{A} \mathbf{x} = \mathbf{A}^T \mathbf{b} \quad \ldots \text{normal equation} \end{align*} $$ 由於問題一開始假設$\mathbf{A}$是full column rank,即$\mathrm{rank}(\mathbf{A}_{m \times n}) = n$,根據性質$\mathrm{rank}(\mathbf{A}^T\mathbf{A}) = \mathrm{rank}(\mathbf{A})$,因此$\mathrm{rank}(\mathbf{A}^T \mathbf{A}) = n$,屬於full rank,$\det(\mathbf{A}^T \mathbf{A}) \neq 0$,因此矩陣$\mathbf{A}^T \mathbf{A}$可逆。最後推得 $$ \mathbf{x} = (\mathbf{A}^T \mathbf{A})^{-1} \mathbf{A}^T \mathbf{b} $$ :::info - 證明性質$\mathrm{rank}(\mathbf{A}^T\mathbf{A}) = \mathrm{rank}(\mathbf{A})$<br> 證明思路為先證明零核空間相同,再根據rank–nullity theorem證明。 1. 證明$\mathrm{Null(\mathbf{A}^T\mathbf{A})} = \mathrm{Null(\mathbf{A})}$,使用左包右,右包左證明<br> - 左包右$\mathrm{Null(\mathbf{A})} \subseteq \mathrm{Null(\mathbf{A}^T\mathbf{A})}$ $$ \begin{align*} & \forall \mathbf{x} \in \mathrm{Null(\mathbf{A})}\\ \Rightarrow\;& \mathbf{A} \mathbf{x} = \mathbf{0}\\ \Rightarrow\;& \mathbf{A}^T \mathbf{A} \mathbf{x} = \mathbf{A}^T \mathbf{0} = \mathbf{0}\\ \Rightarrow\;& \mathbf{x} \in \mathrm{Null(\mathbf{A}^T\mathbf{A})} \end{align*} $$ - 右包左$\mathrm{Null(\mathbf{A}^T\mathbf{A})} \subseteq \mathrm{Null(\mathbf{A})}$ $$ \begin{align*} & \forall \mathbf{x} \in \mathrm{Null(\mathbf{A}^T \mathbf{A})}\\ \Rightarrow\;& \mathbf{A}^T \mathbf{A} \mathbf{x} = \mathbf{0}\\ \Rightarrow\;& \mathbf{x}^T \mathbf{A}^T \mathbf{A} \mathbf{x} = \mathbf{x}^T \mathbf{0} = \mathbf{0}\\ \Rightarrow\;& (\mathbf{A} \mathbf{x})^T(\mathbf{A} \mathbf{x}) = \mathbf{0}\\ \Rightarrow\;& \| \mathbf{A} \mathbf{x} \|^2 = 0\\ \Rightarrow\;& \mathbf{A} \mathbf{x} = \mathbf{0}\\ \Rightarrow\;& \mathbf{x} \in \mathrm{Null(\mathbf{A})} \end{align*} $$ 2. 根據rank–nullity theorem證明$\mathrm{rank}(\mathbf{A}^T\mathbf{A}) = \mathrm{rank}(\mathbf{A})$<br> 給定矩陣$\mathbf{A}_{m \times n}$,因此$(\mathbf{A}^T \mathbf{A})_{n \times n}$,由rank–nullity theorem列出聯立方程式 $$ \begin{cases} \mathrm{nullity}(\mathbf{A}) &= \dim(\mathrm{Null}(\mathbf{A})) &= n - \mathrm{rank}(\mathbf{\mathbf{A}})\\ \mathrm{nullity}(\mathbf{A}^T \mathbf{A}) &= \dim(\mathrm{Null}(\mathbf{A}^T \mathbf{A})) &= n - \mathrm{rank}(\mathbf{A}^T\mathbf{\mathbf{A}})\\ \end{cases} $$ 由於$\mathbf{A}$和$\mathbf{A}^T \mathbf{A}$的零核空間相同$\mathrm{Null(\mathbf{A}^T\mathbf{A})} = \mathrm{Null(\mathbf{A})}$,因此零核空間維數相同$\mathrm{nullity}(\mathbf{A}) = \mathrm{nullity}(\mathbf{A}^T \mathbf{A})$,根據rank–nullity theorem關係式就可以推得$\mathrm{rank}(\mathbf{A}^T\mathbf{A}) = \mathrm{rank}(\mathbf{A})$。 ::: ## 最小平方問題解法2 - 微積分理論 定義一函數$\mathbf{Ax} -\mathbf{b}$為取norm的平方,這是取距離平方是為了方便運算。 $$ F : \mathbb{R}^n \to \mathbb{R}, F(\mathbf{x}) = \| \mathbf{Ax} -\mathbf{b} \|^2 $$ 欲求極值,就是找critical point,對於一個多變數實函數而言,要使所有方向的一階偏導數等於0,也就是**梯度等於0**。 $$ \text{find critical point} \Rightarrow \nabla F(\mathbf{x}) \triangleq \frac{\partial F(\mathbf{x})}{\partial\mathbf{x}} = [\frac{\partial F(\mathbf{x})}{\partial x_1}, \frac{\partial F(\mathbf{x})}{\partial x_2}, \ldots, \frac{\partial F(\mathbf{x})}{\partial x_n}] = 0 $$ 欲求梯度$\nabla F(\mathbf{x})$除了可以將將函數對每一項分量做偏微分,另一種較方便的解法是先求方向導數,再**根據"方向導數為梯度與該方向的內積"這個關係式求得梯度**。 $$ D_\mathbf{y} F(\mathbf{x}) = (\nabla F(\mathbf{x})) \cdot \mathbf{y} \quad\text{for any unit vector } \mathbf{y} $$ 觀察上式的form,欲求梯度,嘗試先求方向導數,並整理成一個向量跟單位方向向量的內積的form,這個向量就是梯度。 $$ \begin{align*} D_\mathbf{y} F(\mathbf{x}) &\triangleq \lim_{\epsilon \to 0} \frac{F(\mathbf{x} + \epsilon \mathbf{y}) - F(\mathbf{x})}{\epsilon}\\ &= \lim_{\epsilon \to 0} \frac{1}{\epsilon} \left[ \| \mathbf{A} (\mathbf{x} + \epsilon \mathbf{y}) -\mathbf{b} \|^2 - \| \mathbf{A}\mathbf{x} -\mathbf{b} \|^2 \right]\\ &= \lim_{\epsilon \to 0} \frac{1}{\epsilon} \left[ \| (\mathbf{A} (\mathbf{x} -\mathbf{b}) + \epsilon \mathbf{y}) \|^2 - \| \mathbf{A}\mathbf{x} -\mathbf{b} \|^2 \right]\\ &= \lim_{\epsilon \to 0} \frac{1}{\epsilon} \left[ \| \mathbf{A}\mathbf{x} -\mathbf{b} \|^2 + 2(\mathbf{Ax} - \mathbf{b}) \cdot (\epsilon \mathbf{Ay}) + \| \epsilon \mathbf{Ay} \|^2 - \| \mathbf{A}\mathbf{x} -\mathbf{b} \|^2 \right]\\ &= 2(\mathbf{A}\mathbf{x} -\mathbf{b}) \cdot (\mathbf{Ay})\\ &= 2(\mathbf{A}\mathbf{x} -\mathbf{b})^T (\mathbf{Ay})\\ &= 2[\mathbf{A}^T (\mathbf{A}\mathbf{x} -\mathbf{b})]^T \mathbf{y}\\ &= \underbrace{ 2[\mathbf{A}^T (\mathbf{A}\mathbf{x} -\mathbf{b})] }_{\nabla F(\mathbf{x})} \cdot \mathbf{y}\\ \end{align*} $$ 故critical point即為 $$ \begin{align*} & \text{find critical point}\\ \Rightarrow\;& \nabla F(\mathbf{x}) = 0\\ \Rightarrow\;& 2[\mathbf{A}^T (\mathbf{A}\mathbf{x} -\mathbf{b})] = 0\\ \Rightarrow\;& \mathbf{A}^T \mathbf{A}\mathbf{x} = \mathbf{A}^T \mathbf{b} \end{align*} $$ 同法一最後推得 $$ \mathbf{x} = (\mathbf{A}^T \mathbf{A})^{-1} \mathbf{A}^T \mathbf{b} $$ ## 最小範數問題(least norm problem) 考慮$\mathbf{A}_{m \times n} \mathbf{x}_{n \times 1} = \mathbf{b}_{m \times 1}$,若$m < n, \mathrm{rank}(\mathbf{A}) = m$,也就是說有效方程式$m$條,少於未知數$n$個,屬於underdetermined problem,具有無限多組解,可將解拆為齊次解與特解。 $$ \mathbf{x} = \mathbf{x}_h + \mathbf{x}_p $$ 其中齊次解$\{\mathbf{x}_h \mid \mathbf{Ax}_h = \mathbf{0}\}$為$\mathbb{R}^n$的子空間,屬於null space,以下圖$\mathbb{R}^3$空間為例,就是通過原點的平面,而特解就是將此平面做平移。欲求最佳的解,加上限制項 - 要讓解的距離最小。 ## 最小範數問題解法1 - 線性代數理論 ![](https://i.imgur.com/jVkbqdc.jpg)<br> 要使$\mathbf{x} = \mathbf{x}_h + \mathbf{x}_p$的集合落在平面,要使$\mathbf{x}$的距離最小,就是讓向量$\mathbf{x}$跟平面垂直。 $$ \begin{align*} &\min \|\mathbf{x} \|\\ \Rightarrow\;& \mathbf{x} \in \mathrm{Null}(\mathbf{A})^\perp = \mathrm{Row}(\mathbf{A}) = \mathrm{Col}(\mathbf{A}^T)\\ \Rightarrow\;& \mathbf{x} = \mathbf{A}^T \mathbf{w}\\ \Rightarrow\;& \mathbf{A} \mathbf{x} = \mathbf{A} \mathbf{A}^T \mathbf{w} = \mathbf{b}\\ \end{align*} $$ 由於問題假設$\mathrm{rank}(\mathbf{A}) = m$加上性質$\mathrm{rank}(\mathbf{A}) = \mathrm{rank}(\mathbf{A}\mathbf{A}^T)$,因此矩陣$\mathbf{A}\mathbf{A}^T$是full rank,行列式值不等於0,存在可逆矩陣$(\mathbf{A}\mathbf{A}^T)^{-1}$,因此進一步推導 $$ \begin{align*} & \mathbf{A} \mathbf{x} = \mathbf{A} \mathbf{A}^T \mathbf{w} = \mathbf{b}\\ \Rightarrow\;& \mathbf{w} = (\mathbf{A} \mathbf{A}^T)^{-1} \mathbf{b}\\ \Rightarrow\;& \mathbf{x} = \mathbf{A}^T \mathbf{w} = \mathbf{A}^T (\mathbf{A} \mathbf{A}^T)^{-1} \mathbf{b} \end{align*} $$ ## 最小範數問題解法2 - 微積分理論 定義一函數$\mathbf{x}$距離的平方,取距離平方是為了方便運算。 $$ F : \mathbb{R}^n \to \mathbb{R}, f(\mathbf{x}) = \| \mathbf{x} \|^2 = \mathbf{x}^T \mathbf{x} $$ 在限制條件$\vec{g}(\mathbf{x}) = \mathbf{Ax} - \mathbf{b} = 0$之下,欲求$\min f(\mathbf{x})$,這種帶有限制條件的極值問題,就需要使用Lagrange multiplier,把Lagrange multiplier $\mathbf{\lambda}$想像是變數,因此將**帶有限制項的單變數向量$\mathbf{x}$求極值問題,拓展為雙變數向量$\mathbf{x}, \mathbf{\lambda}$求極值問題**。需要注意這裡Lagrange multiplier $\mathbf{\lambda}$是帶有$m$條限制式的向量形式。 $$ \begin{align*} & \min f(\mathbf{x}) \;\text{subject to } \vec{g}(\mathbf{x})\\ \Rightarrow\;& \min \left[ F(\mathbf{x}, \mathbf{\lambda}) = f(\mathbf{x}) + \mathbf{\lambda} \cdot \vec{g}(\mathbf{x}) \right]\\ \Rightarrow\;& \begin{cases} \nabla_{\mathbf{\lambda}}F(\mathbf{x}, \mathbf{\lambda}) = \vec{g}(\mathbf{x}) = \mathbf{0}\\ \nabla_{\mathbf{\mathbf{y}}} F(\mathbf{x}, \mathbf{\lambda}) = \nabla_{\mathbf{\mathbf{x}}} f(\mathbf{x}) + \mathbf{\lambda} \cdot \nabla_{\mathbf{x}} \vec{g}(\mathbf{x}) \end{cases} \end{align*} $$ 由上式可以看出[Lagrange multiplier在幾何上的意義](https://www.youtube.com/watch?v=3ahgXXv-_j8),假設在向量空間$\mathbb{R}^3$,發生極值的條件為$f(\mathbf{x})$的等位曲面與$\vec{g}(\mathbf{x})$的等位曲面相切,兩個等位曲面相切,則代表兩個梯度向量會平行,彼此只會差上一個常數倍,這個常數就是Lagrange multiplier。 帶入數值計算 $$ \begin{align*} & \min f(\mathbf{x}) = \mathbf{x}^T \mathbf{x} \;\text{subject to } \vec{g}(\mathbf{x}) = \mathbf{Ax} - \mathbf{b} = 0\\ \Rightarrow\;& \min \left[ F(\mathbf{x}, \mathbf{\lambda}) = \mathbf{x}^T \mathbf{x} + \mathbf{\lambda}^T (\mathbf{Ax} - \mathbf{b}) \right]\\ \Rightarrow\;& \begin{cases} \nabla_{\mathbf{\lambda}}F(\mathbf{x}, \mathbf{\lambda}) = \mathbf{Ax} - \mathbf{b} = \mathbf{0}\\ \nabla_{\mathbf{\mathbf{y}}} F(\mathbf{x}, \mathbf{\lambda}) = \;? = 0 \end{cases} \end{align*} $$ 欲求梯度$\nabla_{\mathbf{\mathbf{y}}} F(\mathbf{x})$,同前面最小平方問題的技巧,先求方向導數,並整理成一個向量跟單位方向向量的內積的form,這個向量就是梯度。 $$ \begin{align*} D_\mathbf{y} F(\mathbf{x}, \mathbf{\lambda}) &\triangleq \lim_{\epsilon \to 0} \frac{F(\mathbf{x} + \epsilon \mathbf{y}, \mathbf{\lambda}) - F(\mathbf{x}, \mathbf{\lambda})}{\epsilon}\\ &= \lim_{\epsilon \to 0} \frac{1}{\epsilon} \left[ \underbrace{ (\mathbf{x} + \epsilon \mathbf{y})^T (\mathbf{x} + \epsilon \mathbf{y}) }_{= \mathbf{x}^T\mathbf{x} + \epsilon \mathbf{x}^T \mathbf{y} + \epsilon^2 \mathbf{y}^T \mathbf{x} + \epsilon^2 \mathbf{y}^T \mathbf{y} } + \mathbf{\lambda}^T ( \underbrace{ \mathbf{A}(\mathbf{x} + \epsilon \mathbf{y}) }_{= \mathbf{Ax} + \epsilon \mathbf{Ay}} - \mathbf{b}) - \mathbf{x}^T \mathbf{x} - \mathbf{\lambda}^T (\mathbf{Ax} - \mathbf{b}) \right]\\ &= \lim_{\epsilon \to 0} \frac{1}{\epsilon} \left[ \epsilon \mathbf{x}^T \mathbf{y} + \epsilon \mathbf{y}^T \mathbf{x} + \epsilon^2 \mathbf{y}^T \mathbf{y} - \epsilon \mathbf{\lambda}^T \mathbf{A}\mathbf{y} \right]\\ &= 2 \mathbf{x}^T \mathbf{y} - \mathbf{\lambda}^T \mathbf{A} \mathbf{y}\\ &= (2 \mathbf{x} - \mathbf{A}^T \mathbf{\lambda})^T \mathbf{y}\\ &= \underbrace{ (2 \mathbf{x} - \mathbf{A}^T \mathbf{\lambda}) }_{\nabla_{\mathbf{\mathbf{y}}} F(\mathbf{x}, \mathbf{\lambda})} \cdot \mathbf{y} \end{align*} $$ 解得梯度$\nabla_{\mathbf{\mathbf{y}}} F(\mathbf{x})$,因此聯立方程式為 $$ \begin{cases} \nabla_{\mathbf{\lambda}}F(\mathbf{x}, \mathbf{\lambda}) = \mathbf{Ax} - \mathbf{b} = \mathbf{0} &(1)\\ \nabla_{\mathbf{\mathbf{y}}} F(\mathbf{x}, \mathbf{\lambda}) = 2 \mathbf{x} - \mathbf{A}^T \mathbf{\lambda} = 0 \Rightarrow \mathbf{x} = \frac{1}{2} \mathbf{A}^T \mathbf{\lambda} &(2) \end{cases} $$ 將式(2)帶入式(1)得 $$ \mathbf{A}(\frac{1}{2} \mathbf{A}^T \mathbf{\lambda}) - \mathbf{b} = \mathbf{0} \Rightarrow \mathbf{A} \mathbf{A}^T \mathbf{\lambda} = 2\mathbf{b} $$ 由於問題假設$\mathrm{rank}(\mathbf{A}) = m$加上性質$\mathrm{rank}(\mathbf{A}) = \mathrm{rank}(\mathbf{A}\mathbf{A}^T)$,因此矩陣$\mathbf{A}\mathbf{A}^T$是full rank,行列式值不等於0,存在可逆矩陣$(\mathbf{A}\mathbf{A}^T)^{-1}$,使得 $$ \Rightarrow \mathbf{\lambda} = 2 (\mathbf{A} \mathbf{A}^T )^{-1} \mathbf{b} \tag{3} $$ 將式(3)帶回式(2)得 $$ \mathbf{x} = \frac{1}{2} \mathbf{A}^T \mathbf{\lambda} = \mathbf{A}^T (\mathbf{A} \mathbf{A}^T)^{-1} \mathbf{b} $$ ## 最小平方與範數問題同時發生(least square & norm problem) 考慮$\mathbf{A}_{m \times n} \mathbf{x}_{n \times 1} = \mathbf{b}_{m \times 1}$,若$\mathrm{rank}(\mathbf{A}) = r < m, n$,想要找到向量$\mathbf{x}$使得$\min \| \mathbf{Ax} - \mathbf{b} \|$,並且在這些無限多組解中找到能$\min \| \mathbf{x} \|$。 ## 最小平方與範數問題同時發生解法 - 由於$\mathrm{rank}(\mathbf{A}) = r < n$,故$\mathbf{A}^T \mathbf{A}$不可逆,若使用最小平方法只能解到$\mathbf{A}^T \mathbf{A}\mathbf{x} = \mathbf{A}^T \mathbf{b}$而卡住。 - 由於$\mathrm{rank}(\mathbf{A}) = r < m$,故$\mathbf{A} \mathbf{A}^T$不可逆,若使用最小範數法只能解到$\mathbf{x} = \mathbf{A}^T \mathbf{w}, \mathbf{A} \mathbf{A}^T \mathbf{w} = \mathbf{b}$而卡住。 因此使用SVD這個好用的工具下去求解,將$\mathbf{A}$做SVD分解,再求$\| \mathbf{Ax} - \mathbf{b} \|$ $$ \begin{align*} \| \mathbf{A} \mathbf{x} - \mathbf{b} \| &= (\mathbf{U\Sigma V}^T) \mathbf{x} - \mathbf{b} \|\\ &= \| \mathbf{U}^T (\mathbf{U\Sigma V}^T \mathbf{x} - \mathbf{b}) \| \quad\text{where } \mathbf{U} \text{ is orthogonal matrix}\\ &= \| \mathbf{\Sigma V}^T \mathbf{x} - \mathbf{U}^T \mathbf{b} \| \end{align*} $$ 這時再將$\mathbf{x}$做基底轉換為$\mathbf{y}$,將$\mathbf{b}$做基底轉換為$\mathbf{c}$ $$ \text{denote } \mathbf{V}^T \mathbf{x} = \mathbf{y} \in \mathbb{R}^n, \mathbf{U}^T \mathbf{b} = \mathbf{c} \in \mathbb{R}^m \quad\text{ie } \mathbf{x} = \mathbf{Vy}, \mathbf{b} = \mathbf{Uc} $$ 因此轉換為 $$ \begin{align*} \| \mathbf{\Sigma V}^T \mathbf{x} - \mathbf{U}^T \mathbf{b} \| &= \| \mathbf{\Sigma y} - \mathbf{c} \|\\ &= \left\| \begin{bmatrix} \sigma_1 & \cdots & \mathbf{0} & \mathbf{0}\\ \vdots & \ddots & \vdots & \mathbf{0}\\ \mathbf{0} & \cdots & \sigma_r & \mathbf{0}\\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \end{bmatrix} \begin{bmatrix} y_1\\ \vdots\\ \vdots\\ y_n \end{bmatrix} - \begin{bmatrix} c_1\\ \vdots\\ \vdots\\ c_n \end{bmatrix} \right\|\\ &= \left\| \begin{bmatrix} \sigma_1 y_1 - c_1\\ \vdots\\ \sigma_r y_r - c_r\\ - c_{r + 1}\\ \vdots\\ c_m \end{bmatrix} \right\|\\ \end{align*} $$ 因此我們把$\min \| \mathbf{A} \mathbf{x} - \mathbf{b} \|$的問題,轉換為$\min \| \mathbf{\Sigma y} - \mathbf{c} \|$,其中可以變動的是解$\mathbf{x}$,而解$\mathbf{x}$經過基底轉換後變成$\mathbf{y}$,因此只有$\mathbf{y}$可變動,根據上面推導的form,把最小化$\| \mathbf{\Sigma y} - \mathbf{c} \|$就是把$r$項弄為0,選擇 $$ y_i = \sigma_i^{-1} c_i, \; 1 \leq i \leq r $$ 再滿足最小平方問題後,再來滿足最小範數問題,欲$\min \| \mathbf{x} \|$,即為$\min \| \mathbf{y} \|$,因此後面$r$項取0 $$ y_i = 0, \; r + 1 \leq i \leq n $$ 總結$\mathbf{y}$為 $$ \mathbf{y} = \begin{bmatrix} \sigma_1^{-1} c_1\\ \vdots\\ \sigma_r^{-1} c_r\\ 0\\ \vdots\\ 0 \end{bmatrix}_{n \times 1} = \begin{bmatrix} \sigma_1^{-1} & \cdots & \mathbf{0} & \mathbf{0}\\ \vdots & \ddots & \vdots & \vdots\\ \mathbf{0} & \cdots & \sigma_r^{-1} & \mathbf{0}\\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0}\\ \vdots & \vdots & \vdots & \vdots\\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \end{bmatrix}_{n \times m} \begin{bmatrix} c_1\\ \vdots\\ c_r\\ c_{r + 1}\\ \vdots\\ c_m \end{bmatrix}_{m \times 1} = \mathbf{\Sigma}^+ \mathbf{c} $$ 最後變數變換(基底轉換)回原本的變數 $$ \mathbf{y} = \mathbf{\Sigma}^+ \mathbf{c} \Rightarrow \mathbf{V}^{-1} \mathbf{x} = \mathbf{\Sigma}^+ \mathbf{U}^T \mathbf{b} \Rightarrow \mathbf{x} = \mathbf{V\Sigma}^+ \mathbf{U}^T \mathbf{b} $$ ## 總結 - 定義虛反矩陣(pseudoinverse) 給定秩數$r$的矩陣$\mathbf{A}_{m \times n}$,做奇異值分解為 $$ \mathbf{A}_{m \times n} = \mathbf{U}_{m \times m} \mathbf{\Sigma}_{m \times n} (\mathbf{V}^T)_{n \times n}, \text{ where } \mathbf{\Sigma} = \begin{bmatrix} \sigma_1 & \cdots & \mathbf{0} & \mathbf{0}\\ \vdots & \ddots & \vdots & \vdots\\ \mathbf{0} & \cdots & \sigma_r & \mathbf{0}\\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0}\\ \vdots & \vdots & \vdots & \vdots\\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \end{bmatrix}_{m \times n} $$ 則虛反矩陣(pseudoinverse)定義為 $$ \mathbf{A}^+ = \mathbf{V}\mathbf{\Sigma}^+\mathbf{U}^T, \text{ where } \mathbf{\Sigma}^+ = \begin{bmatrix} \sigma_1^{-1} & \cdots & \mathbf{0} & \mathbf{0}\\ \vdots & \ddots & \vdots & \vdots\\ \mathbf{0} & \cdots & \sigma_r^{-1} & \mathbf{0}\\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0}\\ \vdots & \vdots & \vdots & \vdots\\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \end{bmatrix}_{n \times m} $$ 在求解線性方程式$\mathbf{Ax} = \mathbf{b}$,其最小平方問題與最小範數問題的通解就是 $$ \text{solve } \mathbf{Ax} = \mathbf{b} \Rightarrow \mathbf{x} = \mathbf{A}^+ \mathbf{b} = (\mathbf{V}\mathbf{\Sigma}^+\mathbf{U}^T) \mathbf{b} $$ 而經過數學推導(省略),可以得出結論 - 最小平方問題、最小範數問題都是用虛反矩陣求解$\mathbf{x} = \mathbf{A}^+ \mathbf{b}$時的特例 給定矩陣$\mathbf{}$ - 最小平方問題 - 如果$m \geq n$且$\mathrm{rank}(\mathbf{A}) = n$,則$\mathbf{A}^+ = (\mathbf{A}^T \mathbf{A})^{-1} \mathbf{A}^T$。 - 最小範數問題 - 如果$m \leq n$且$\mathrm{rank}(\mathbf{A}) = m$,則$\mathbf{A}^+ = \mathbf{A}^T(\mathbf{A} \mathbf{A}^T)^{-1}$。 ## 主成分分析(PCA)問題與前處理 給定二維資料$\{ x_i, y_i\}_{i = 1}^n$,我們想找到一條直線來擬合這些資料,這就是線性回歸問題,有以下2種方法 1. 找最小的垂直距離,誤差函數即為 $$ E(a_0, a_1) = \sum^n_{i = 1} (a_0 + a_1 x_i - y_i)^2 $$ 這就是underdetermined problem,使用最小平方法求解。 2. 找最小的水平距離,誤差函數即為 $$ E(b_0, b_1) = \sum^n_{i = 1} (b_0 + b_1 y_i - x_i)^2 $$ 寫垂直距離所隱含的意義為預設預設$y$是$x$的函數,記為$y = f(x)$,$x$為自變數,$y$是應變數,兩變數有這種從屬關係,舉例來說$x$軸代表實驗時測量的時間,$y$軸代表測量數據。但是在現實中的有些資料並不存在這種變數之間的從屬關係,因此用線性回歸做資料分析,對資料本身還是不太公平,而就數學的觀點來說對$y= f(x)$或是$x = f(y)$做線性回歸出來的直線並不同。 因此我們開始思考 - 要如何讓$x, y$這兩個變數能平等對待?我們嘗試**找擬合直線與數據點的最小距離,這樣就沒有變數之間的從屬關係**,誤差函數即為 $$ E(c_0, c_1) = \sum^n_{i = 1} (c_0 + c_1 y_i - x_i)^2 $$ 若要計算該直線,就發現$\frac{\partial E}{\partial c_0} = \frac{\partial E}{\partial c_1} = 0$難以計算。 因此我們的想法是把所有資料**移到資料中心**,這樣就不需要計算截距。第二步就是將資料根據資料的"特性"做適當的**正規化**,避免受到原數據特性的影響。 $$ \begin{align*} & \overline{x}_i = \frac{x_i - \overline{x}}{x_c}, \overline{y}_i = \frac{y_i - \overline{y}}{y_c}\\ & \text{where mean } \overline{x} = \frac{1}{n} \sum^n_{i = 1} x_i, \overline{y} = \frac{1}{n} \sum^n_{i = 1} y_i\\ & \text{where characteristic value } x_c, y_c \end{align*} $$ ## 1個分量的PCA推導 給已中心化與正規化的$m$筆資料,每筆資料有$n$分量$\mathbf{p}_1, \mathbf{p}_2, \ldots, \mathbf{p}_m \in \mathbb{R}^n$,並定義資料矩陣 $$ \mathbf{P} = \begin{bmatrix} \mathbf{p}_1^T\\ \mathbf{p}_2^T\\ \vdots\\ \mathbf{p}_m^T\\ \end{bmatrix}_{m \times n} $$ 欲擬合的方程式為 $$ \{ \alpha \mathbf{v} \mid \alpha \in \mathbb{R} \}, \mathbf{v} \in \mathbb{R}^n, \| \mathbf{v} \| = 1 $$ 定義數據點到擬合直線的距離,並由下圖幾何圖形圖解 ![](https://i.imgur.com/1GHFpaZ.jpg) $$ \begin{align*} d_i &= \min_{\alpha \in \mathbb{R}} \|\mathbf{p}_i - \alpha \mathbf{v}\|\\ &= \sqrt{\| \mathbf{p}_i \|^2 - |\mathbf{p}_i \cdot \mathbf{v} |^2}\\ &= \sqrt{ \mathbf{p}_i \cdot \mathbf{p}_i - ( \mathbf{p}_i \cdot \mathbf{v})^2 } \end{align*} $$ 定義誤差函數為最小距離的平方和,可以變動的擬合直線的向量$\mathbf{v}$ $$ E(\mathbf{v}) = \sum^m_{i = 1} d_i^2 = \sum^m_{i = 1} \left[ \mathbf{p}_i \cdot \mathbf{p}_i - ( \mathbf{p}_i \cdot \mathbf{v})^2 \right] $$ 因此目標為要找到一個擬合的向量$\mathbf{v}$,使得誤差函數能極小化$\min E(\mathbf{v})$,但是這個$\mathbf{v}$在選擇上有限制要是單位向量$\| \mathbf{v} \| = 1$,因此有限制的極值問題就需要使用Lagrange multiplier $$ \begin{align*} &\min F(\mathbf{v}, \lambda) = \min \left[ \sum^m_{i = 1} \left[ \mathbf{p}_i \cdot \mathbf{p}_i - ( \mathbf{p}_i \cdot \mathbf{v})^2 \right] + \lambda (\|\mathbf{v}\|^2 - 1) \right]\\ \Rightarrow\;& \begin{cases} \frac{\partial F}{\partial \lambda} = \| \mathbf{v} \|^2 - 1 = 0\\ \frac{\partial F}{\partial \mathbf{v}} = -2 \sum^m_{i = 1}(\mathbf{p}_i \cdot \mathbf{v})\mathbf{p}_i + 2\lambda \mathbf{v} = 0 \end{cases} \end{align*} $$ 其中$\frac{\partial F}{\partial \mathbf{v}}$的求法,同前面最小平方法的技巧,先求方向導數,並整理為方向導數為梯度向量與方向向量的內積關係式,得梯度向量$\frac{\partial F}{\partial \mathbf{v}}$。再進一步推導 $$ \begin{align*} &\frac{\partial F}{\partial \mathbf{v}} = 0\\ \Rightarrow\;& -2 \sum^m_{i = 1}(\mathbf{p}_i \cdot \mathbf{v})\mathbf{p}_i + 2\lambda \mathbf{v} = 0\\ \Rightarrow\;& \sum^m_{i = 1}(\mathbf{p}_i \cdot \mathbf{v})\mathbf{p}_i = \lambda \mathbf{v}\\ \Rightarrow\;& [\mathbf{p}_1, \ldots, \mathbf{p}_m] \begin{bmatrix} \mathbf{p}_1^T \mathbf{v}\\ \vdots\\ \mathbf{p}_m^T \mathbf{v} \end{bmatrix} = [\mathbf{p}_1, \ldots, \mathbf{p}_m] \begin{bmatrix} \mathbf{p}_1^T\\ \vdots\\ \mathbf{p}_m^T \end{bmatrix} \mathbf{v} = \lambda \mathbf{v}\\ \Rightarrow\;& \mathbf{P}^T \mathbf{P} \mathbf{v} = \lambda \mathbf{v}\\ \Rightarrow\;& \mathbf{v} \text{ is an eigenvector of } \mathbf{P}^T \mathbf{P} \text{ with eigenvalue } \lambda\\ \Rightarrow\;& \mathbf{v}^T \mathbf{P}^T \mathbf{P} \mathbf{v} = \lambda \mathbf{v}^T \mathbf{v}\\ \Rightarrow\;& \| \mathbf{P} \mathbf{v} \|^2 = \lambda \| \mathbf{v} \|^2\\ \Rightarrow\;& \| \mathbf{P} \mathbf{v} \|^2 = \lambda \qquad \because \frac{\partial F}{\partial \lambda} = \| \mathbf{v} \|^2 - 1 = 0\\ \Rightarrow\;& \left\| \begin{bmatrix} \mathbf{p}_1^T\\ \vdots\\ \mathbf{p}_m^T \end{bmatrix} \mathbf{v} \right\|^2 = \left\| \begin{bmatrix} \mathbf{p}_1 \cdot \mathbf{v}\\ \vdots\\ \mathbf{p}_m^ \cdot \mathbf{v} \end{bmatrix} \right\|^2 = \sum^m_{i = 1} (\mathbf{m}_i \cdot \mathbf{v})^2 = \lambda \end{align*} $$ 帶入誤差函數 $$ E(\mathbf{v}) = \sum^m_{i = 1} d_i^2 = \sum^m_{i = 1} \left[ \mathbf{p}_i \cdot \mathbf{p}_i - ( \mathbf{p}_i \cdot \mathbf{v})^2 \right] = \sum^m_{i = 1} \| \mathbf{p}_i \|^2 - \lambda $$ 其中的Lagrange multiplier $\lambda$就是前面求的$\mathbf{P}^T \mathbf{P}$的特徵值,即為資料矩陣做SVD分解$\mathbf{P} = \mathbf{U\Sigma V}^T$後,得到奇異值平方$\lambda = \sigma^2$,要極小化誤差函數$E(\mathbf{v})$就是想辦法讓$\mathbf{P}$的奇異值越大越好,因此選擇最大的奇異值$\lambda = \sigma_1^2$,而該奇異值對應到右奇異值向量就是擬合直線的向量$\mathbf{v} = \mathbf{v}_1$。 ## 高維度分量的PCA推導 同理兩個分量的PCA,推廣至高維度的分量,即可得到結論。 Given centered data $\mathbf{p}_1, \mathbf{p}_2, \ldots, \mathbf{p}_m \in \mathbb{R}^n$ and data matrix $\mathbf{P} = \begin{bmatrix} \mathbf{p}_1^T\\ \mathbf{p}_2^T\\ \vdots\\ \mathbf{p}_m^T\\ \end{bmatrix} \in \mathbb{R}^{m \times n}$ SVD : $\mathbf{P} = \mathbf{U\Sigma V}^T$ Fit the data by k-dimensional subspace ($k < n$) ${\alpha_1 \mathbf{w}_1 + \ldots + \alpha_k \mathbf{w}_k \mid \alpha_1, \ldots, \alpha_k }$ with orthonormal basis $\{ \mathbf{w}_1, \ldots \mathbf{w}_k \}$ Error function $$ E(\mathbf{w}_1, \ldots, \mathbf{w}_k) = \sum^m_{i = 1} \mathbf{p}_i \cdot \mathbf{p}_i - (\mathbf{p}_i \cdot \mathbf{w}_i)^2 - \ldots - (\mathbf{p}_i \cdot \mathbf{w}_k)^2 $$ is minimized by choosing first $k$ sigular vectors of $V$ with $E(\mathbf{v}_1, \ldots, \mathbf{v}_k) = \sum^m_{i = 1} \mathbf{p}_i \cdot \mathbf{p}_i - \sigma_1^2 - \ldots - \sigma_k^2$