<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      最小二乘問題詳解2:線性最小二乘求解

      1. 引言

      復習上一篇文章《最小二乘問題詳解1:線性最小二乘》中的知識,對于一個線性問題模型:

      \[f(x; \theta) = A\theta \]

      那么線性最小二乘問題可以表達為求一組待定值\(\theta\),使得殘差的平方和最小:

      \[\min_{\theta} \|A\theta - b\|^2 \]

      本質上是求解超定線性方程組:

      \[A\theta = b \]

      具體的線性最小二乘解是:

      \[\theta^* = (A^T A)^{-1} A^T b \tag{1} \]

      2. 求解

      2.1 問題

      雖然線性最小二乘解已經給出,但是并不意味著在實際的數值計算中就能按照式(1)來進行求解。一個典型的問題就是求逆矩陣:在工程實踐和數值計算中,直接求解逆矩陣通常是一個性能消耗大且可能不精確的操作,應該盡量避免。舉例來說,我們按照大學本科《線性代數》課程中的方法寫程序來求解一個逆矩陣,假設使用伴隨矩陣法:

      \[A^{-1} = \frac{1}{\det(A)} \cdot \text{adj}(A) \]

      其中:

      • \(\det(A)\) 是矩陣 \(A\) 的行列式。
      • \(\text{adj}(A)\)\(A\) 的伴隨矩陣。

      為了求解伴隨矩陣 \(\text{adj}(A)\)

      1. 求代數余子式 (Cofactor):對于矩陣 \(A\) 中的每一個元素 \(a_{ij}\),計算其代數余子式 \(C_{ij}\)

        • 代數余子式 \(C_{ij} = (-1)^{i+j} \cdot M_{ij}\)
        • \(M_{ij}\) 是刪去 \(A\) 的第 \(i\) 行和第 \(j\) 列后得到的子矩陣的行列式(稱為余子式)。
      2. 構造余子式矩陣:將所有代數余子式 \(C_{ij}\) 按照原來的位置排列,形成一個新矩陣 \(C\)(稱為余子式矩陣)。

      3. 轉置:將余子式矩陣 \(C\) 進行轉置,得到的矩陣就是伴隨矩陣 \(\text{adj}(A)\)

        \[\text{adj}(A) = C^T \]

      4. 代入公式:將 \(\det(A)\)\(\text{adj}(A)\) 代入公式 \(A^{-1} = \frac{1}{\det(A)} \cdot \text{adj}(A)\) 即可。

      這里我們大概能估算,使用伴隨矩陣法求逆矩陣的理論復雜度是\(O(n!)\),這是一個階乘級的增長,算法效率非常低。《線性代數》中介紹的另外一種算法高斯消元法也只能達到\(O(n^3)\),呈指數級增加。其實效率只是一方面的問題,使用計算機求解的另外一個問題是舍入誤差累積:在計算機中,浮點數運算存在固有的舍入誤差;求逆過程涉及大量的除法和減法運算,這些誤差會在計算過程中不斷累積和傳播。總而言之,使用通解求解逆矩陣,可能存在不精確且性能消耗大的問題。

      2.2 QR分解

      那么不使用逆矩陣怎么辦呢?我們需要注意的是,最小二乘問題的本質是求解,而不是求逆矩陣,因此關鍵是要求解正規方程

      \[A^T A \theta = A^T b \]

      對矩陣\(A\)作QR分解:

      \[A = Q_1 R \]

      其中:

      • \(Q_1\in\mathbb R^{m\times n}\) 列正交,滿足\(Q_1^T Q_1 = I_n\)
      • \(R\in\mathbb R^{n\times n}\)是上三角矩陣,如果\(A\)列滿秩,則\(R\)的對角元均非零,可逆。

      那么把\(A=Q_1R\)代入正規方程,得到:

      \[(Q_1 R)^T (Q_1 R) x = (Q_1 R)^T b \]

      左邊整理,因為\(Q_1^T Q_1 = I_n\)

      \[R^T Q_1^T Q_1 R x = R^T R x \]

      右邊為

      \[R^T Q_1^T b \]

      因此正規方程等價于

      \[\boxed{R^T R x = R^T (Q_1^T b)} \]

      \(R\)可逆(即\(A\)滿秩,\(\operatorname{rank}(A)=n\)),則\(R^T\)也可逆。左右兩邊左乘\((R^T)^{-1}\),得到:

      \[R x = Q_1^T b. \]

      \(c = Q_1^\top b\)(這是一個長度為\(n\)的向量),于是我們得到一個簡單的上三角線性系統

      \[\boxed{R x = c,\qquad c = Q_1^T b} \]

      這就是QR方法把正規方程化簡得到的核心結果:只需解上三角方程\(R x = Q_1^T b\)

      以上只是對\(A\)列滿秩的情況做了推導,如果\(A\)列滿秩,那么QR分解可以表示為\(x = R^{-1}Q_1^\top b\);如果\(A\)列不滿秩(\(R\)奇異),需要使用列主元QR方法對\(R^T R x = R^T (Q_1^T b)\)進行求解,或者干脆使用下面要介紹的SVD分解(奇異值分解)法。

      2.3 SVD分解

      另外一種求解的方法是SVD分解。對任意矩陣\(A\),存在奇異值分解:

      \[\boxed{A = U\Sigma V^T} \]

      其中:

      • \(U\in\mathbb R^{m\times m}\)為正交(列為左奇異向量),

      • \(V\in\mathbb R^{n\times n}\)為正交(列為右奇異向量),

      • \(\Sigma\in\mathbb R^{m\times n}\)為“對角塊”矩陣,通常寫成

        \[\Sigma=\begin{bmatrix}\Sigma_r & 0 \\ 0 & 0\end{bmatrix} \]

        其中\(\Sigma_r=\operatorname{diag}(\sigma_1,\dots,\sigma_r)\)\((\sigma_1\ge\sigma_2\ge\cdots\ge\sigma_r>0)\)\(r=\operatorname{rank}(A)\)

      將SVD代入正規方程,先計算\(A^\top A\)

      \[A^T A = (U\Sigma V^T)^T(U\Sigma V^T) = V \Sigma^T U^T U \Sigma V^T = V (\Sigma^T \Sigma) V^T. \]

      注意\(U^T U=I\)。而\(\Sigma^T\Sigma\)\(n\times n\)的對角塊矩陣,其非零對角元就是\(\sigma_i^2(i=1..r)\),其余為零。

      同樣的,計算\(A^T b\)

      \[A^T b = V \Sigma^T U^T b. \]

      于是正規方程變為:

      \[V (\Sigma^T \Sigma) V^T x = V \Sigma^T U^T b. \]

      兩邊左乘\(V^T\),因為\(V\)正交,\(V^TV=I\),得到:

      \[(\Sigma^T \Sigma)(V^T x) = \Sigma^T (U^T b) \]

      \(y=V^T x\)\(c=U^T b\)代入,得到更簡單的對角方程:

      \[\boxed{(\Sigma^T\Sigma) y = \Sigma^T c} \]

      接下來按奇異值分塊展開對角方程,先寫出\(\Sigma\)相關的形狀:

      \[\Sigma=\begin{bmatrix}\Sigma_r & 0 \\ 0 & 0\end{bmatrix},\qquad \Sigma^\top\Sigma = \begin{bmatrix}\Sigma_r^2 & 0 \\ 0 & 0\end{bmatrix} \]

      \(y\)\(c\)也做相應分塊:

      \[y=\begin{bmatrix}y_1\ y_2\end{bmatrix},\qquad c=\begin{bmatrix}c_1\ c_2\end{bmatrix} \]

      其中\(y_1,c_1\in\mathbb R^r\)對應非零奇異值,\(y_2,c_2\)對應奇異值為0的部分(維度 \(n-r\)),代入得到分塊方程:

      \[\begin{bmatrix}\Sigma_r^2 & 0 \\ 0 & 0\end{bmatrix} \begin{bmatrix}y_1 \\ y_2\end{bmatrix}= \begin{bmatrix}\Sigma_r & 0 \\ 0 & 0\end{bmatrix} \begin{bmatrix}c_1 \\ c_2\end{bmatrix} \]

      即等價于兩組方程:

      \[\Sigma_r^2 y_1 = \Sigma_r c_1,\qquad 0 = 0\cdot c_2 \ (\text{無約束/自由分量}) \]

      由于\(\Sigma_r\)為對角且可逆,第一式等價于

      \[\Sigma_r y_1 = c_1 \quad\Longrightarrow\quad y_1 = \Sigma_r^{-1} c_1. \]

      \(y_2\)(對應零奇異值的分量)在正規方程中不受約束——這反映了在列秩不足時普通最小二乘解不是唯一的(可以在零空間方向任意加解)。為得到最小范數解(慣常的選擇),取 \(y_2=0\)

      最后回到\(x\)的求解,對于\(y\)有:

      \[y = \begin{bmatrix} \Sigma_r^{-1} c_1 \\ 0 \end{bmatrix} \]

      \(c_1\)\(c=U^\top b\)關系代回:

      \[y = \begin{bmatrix} \Sigma_r^{-1} & 0 \\ 0 & 0\end{bmatrix} U^T b \]

      由于\(y=V^T x\),于是:

      \[x = V y = V \begin{bmatrix} \Sigma_r^{-1} & 0 \\ 0 & 0\end{bmatrix} U^T b \]

      定義\(\Sigma^+\)為將非零奇異值取倒數后轉置得到的偽逆矩陣(對角塊為\(\Sigma_r^{-1}\),其余為0),則

      \[\boxed{x^+ = V \Sigma^+ U^T b} \]

      這就是 最小二乘的 Moore–Penrose 偽逆解

      • \(A\)列滿秩,則為唯一最小二乘解,由于那么\(\Sigma^+=\Sigma^{-1}\),SVD求解公式退化為常見的\(x = V\Sigma^{-1}U^T b\)
      • 若秩虧,它給出 在所有最小二乘解中范數最小的那個(minimum-norm solution)。

      2.4 比較

      從以上論述可以看到,SVD分解穩定且能處理秩虧的情況,但比QR分解慢,復雜度高,通常\(O(mn^2)\);QR分解在列滿秩、條件數不是太差時更快;若需要判定秩或求最小范數解,SVD是首選。

      3. 補充

      在最后補充一些基礎知識,也是筆者很感興趣的一點,那就是為什么一個矩陣A可以進行QR分解或者SVD分解呢?

      3.1 QR分解

      QR分解其實非常好理解,它的本質其實就是大學本科《線性代數》課程中提到的施密特(Gram–Schmidt)正交化。我們先復習一下施密特正交化相關的知識。

      設有一組線性無關向量

      \[a_1, a_2, \dots, a_n \in \mathbb{R}^m \]

      我們想把它們變成一組正交(再歸一化后變成標準正交)的向量\(q_1, q_2, \dots, q_n\)。具體步驟如下:

      1. 取第一個向量,歸一化:

        \[q_1 = \frac{a_1}{|a_1|} \]

      2. 對第 2 個向量,先減去在\(q_1\)上的投影:

        \[\tilde{q}_2 = a_2 - (q_1^T a_2) q_1 \]

        然后歸一化:

        \[q_2 = \frac{\tilde{q}_2}{|\tilde{q}_2|} \]

      3. 對第 3 個向量,減去它在前兩個正交向量上的投影:

        \[\tilde{q}_3 = a_3 - (q_1^T a_3) q_1 - (q_2^T a_3) q_2 \]

        然后歸一化:

        \[q_3 = \frac{\tilde{q}_3}{|\tilde{q}_3|} \]

      4. 一般地,對第\(j\)個向量:

        \[\tilde{q}_j = a_j - {\sum_{i=1}^{j-1}} (q_i^T a_j) q_i, \quad q_j = \frac{\tilde{q}_j}{|\tilde{q}_j|} \]

      這樣得到的\({q_i}\)就是標準正交基,且每個\(q_j\)只用到了前\(j-1\)個。

      現在把矩陣\(A\)看成由列向量組成:

      \[A = [a_1, a_2, \dots, a_n] \in \mathbb{R}^{m\times n}. \]

      把施密特正交化寫成矩陣形式,我們得到一組正交向量:

      \[Q_1 = [q_1, q_2, \dots, q_n] \in \mathbb{R}^{m\times n}, \quad Q_1^T Q_1 = I_n. \]

      同時,原向量可以寫成:

      \[a_j = \sum_{i=1}^j r_{ij} q_i \]

      其中:

      \[r_{ij} = q_i^T a_j \]

      把這些關系拼成矩陣形式:

      \[A = Q_1 R \]

      其中:

      • \(R = (r_{ij})\)\(n \times n\)上三角矩陣,因為第\(j\)列只用到前\(j\)\(q_i\)
      • \(Q_1\)的列正交,所以\(Q_1^T Q_1 = I\)

      3.2 SVD分解

      SVD分解其實也非常有意思,同樣也可以順著《線性代數》中基礎知識來進行推導。首先復習一下特征值和特征向量。對于一個方陣 $ A \in \mathbb{R}^{n \times n} $,如果存在一個非零向量 $ \mathbf{v} \in \mathbb{R}^n $ 和一個實數 $ \lambda $,使得:

      \[A \mathbf{v} = \lambda \mathbf{v} \]

      那么:

      • $ \lambda $ 稱為 特征值(eigenvalue)
      • $ \mathbf{v} $ 稱為對應于 $ \lambda $ 的 特征向量(eigenvector)

      接下來復習一下什么叫做對角化。如果一個\(n \times n\)矩陣\(A\)可以寫成:

      \[A = P D P^{-1} \]

      其中:

      • $ D $ 是一個對角矩陣(只有對角線上有元素)
      • $ P $ 是一個可逆矩陣

      我們就說 \(A\)可對角化的

      而且通常:

      • $ D $ 的對角元素是 $ A $ 的特征值:$ D = \operatorname{diag}(\lambda_1, \dots, \lambda_n) $
      • $ P $ 的列是對應的特征向量

      即:

      \[P = [\mathbf{v}_1\ \mathbf{v}_2\ \cdots\ \mathbf{v}_n],\quad D = \begin{bmatrix} \lambda_1 & & \\ & \ddots & \\ & & \lambda_n \end{bmatrix} \]

      對角化非常重要,因為對角矩陣計算非常簡單,比如計算\(D^k\)只需把對角元各自取\(k\)次方即可。對角化的本質就是把復雜的線性變換,變成旋轉 → 拉伸 → 逆旋轉的過程。注意,不是所有矩陣都能對角化,只有當矩陣有\(n\)個線性無關的特征向量時,才能對角化。但是,所有對稱矩陣(如 $ A^T A $)都可以對角化,而且可以使用正交矩陣對角化。

      也就是說,存在正交矩陣\(V\),使得:

      \[A^T A = V \Lambda V^T,\quad \Lambda = \operatorname{diag}(\lambda_1, \dots, \lambda_n) \]

      然后根據這個對角化公式,構造\(U\)\(\Sigma\),最終得到SVD:

      \[A = U \Sigma V^\top \]

      這里具體構造\(U\)\(\Sigma\)的過程還是有點繁瑣的,這里就不進一步推導了,免得離題太遠。

      posted @ 2025-10-01 22:51  charlee44  閱讀(209)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲男女羞羞无遮挡久久丫| 亚洲国产码专区在线观看| 99久久无码一区人妻a黑| 夜夜爱夜鲁夜鲁很鲁| 最近2019中文字幕大全第二页| 婷婷五月综合丁香在线| 国产精品第二页在线播放| 国产微拍一区二区三区四区| 国产精品久久蜜臀av| 国内精品久久久久影院薰衣草| 免费高清特级毛片A片| 国产精品久久人妻无码网站一区| 久久夜色精品国产噜噜亚洲sv | 高清无码爆乳潮喷在线观看| 中文字幕日韩精品亚洲一区| 久久中文字幕日韩无码视频| 国产suv精品一区二区五| 亚洲AV永久无码天堂网一线| 杭锦旗| 激情国产一区二区三区四| 亚洲va久久久噜噜噜久久狠狠| 我和亲妺妺乱的性视频| 国产人妻大战黑人第1集| 亚洲综合av一区二区三区| 一面膜上边一面膜下边视频| 狠狠色丁香婷婷综合尤物| 色悠悠国产在线视频一线| 老司机aⅴ在线精品导航| 久热这里只有精品12| 国产精品自在自线视频| 中国熟妇毛多多裸交视频 | 日韩乱码人妻无码系列中文字幕| 国产精品久久久久7777| 亚洲精品国产成人| 国产女人叫床高潮大片| 亚洲一区二区三区在线观看精品中文 | 熟妇人妻无码中文字幕老熟妇| 国产精品制服丝袜白丝| 亚洲国产成人久久精品软件| 福清市| 国内精品大秀视频日韩精品 |