(線性代數最小二乘問題)Normal Equation(正規方程)

Normal Equation(正規方程) 是線性代數中的一個重要概念,主要用于解決最小二乘問題(Least Squares Problem)。它通過直接求解一個線性方程組,找到線性回歸模型的最優參數(如權重或系數)。以下是詳細介紹:


1. 定義與數學表達式

給定一個超定方程組(方程數量多于未知數):
A x = b A\mathbf{x} = \mathbf{b} Ax=b
其中:

  • A ∈ R m × n A \in \mathbb{R}^{m \times n} ARm×n m > n m > n m>n)是一個設計矩陣(Design Matrix),
  • x ∈ R n \mathbf{x} \in \mathbb{R}^n xRn 是未知參數向量,
  • b ∈ R m \mathbf{b} \in \mathbb{R}^m bRm 是目標向量(通常不在 A A A 的列空間中)。

由于 A x = b A\mathbf{x} = \mathbf{b} Ax=b 通常無解,Normal Equation 的目標是找到一個近似解 x \mathbf{x} x,使得殘差向量 e = b ? A x \mathbf{e} = \mathbf{b} - A\mathbf{x} e=b?AxL2 范數最小(即最小化誤差平方和)。

Normal Equation 的公式為
A T A x = A T b A^T A \mathbf{x} = A^T \mathbf{b} ATAx=ATb
如果 A T A A^T A ATA 可逆,則最優解為:
x = ( A T A ) ? 1 A T b \mathbf{x} = (A^T A)^{-1} A^T \mathbf{b} x=(ATA)?1ATb


2. 推導方法
方法一:矩陣求導
  1. 定義損失函數(誤差平方和):
    J ( x ) = ∥ b ? A x ∥ 2 2 = ( b ? A x ) T ( b ? A x ) J(\mathbf{x}) = \|\mathbf{b} - A\mathbf{x}\|_2^2 = (\mathbf{b} - A\mathbf{x})^T (\mathbf{b} - A\mathbf{x}) J(x)=b?Ax22?=(b?Ax)T(b?Ax)
  2. x \mathbf{x} x 求導并令導數為零:
    ? J ? x = ? 2 A T b + 2 A T A x = 0 \frac{\partial J}{\partial \mathbf{x}} = -2A^T \mathbf{b} + 2A^T A \mathbf{x} = 0 ?x?J?=?2ATb+2ATAx=0
  3. 得到 Normal Equation:
    A T A x = A T b A^T A \mathbf{x} = A^T \mathbf{b} ATAx=ATb
方法二:幾何投影
  1. 幾何視角
    • A x A\mathbf{x} Ax b \mathbf{b} b A A A 的列空間(Column Space, C ( A ) C(A) C(A))上的投影 p \mathbf{p} p
    • 殘差向量 e = b ? p \mathbf{e} = \mathbf{b} - \mathbf{p} e=b?p 必須正交于列空間,即:
      A T e = 0 ? A T ( b ? A x ) = 0 A^T \mathbf{e} = 0 \quad \Rightarrow \quad A^T (\mathbf{b} - A\mathbf{x}) = 0 ATe=0?AT(b?Ax)=0
    • 由此得到 Normal Equation:
      A T A x = A T b A^T A \mathbf{x} = A^T \mathbf{b} ATAx=ATb

3. 幾何解釋
  • 列空間與投影
    A A A 的列空間 C ( A ) C(A) C(A) 是所有可能的 A x A\mathbf{x} Ax 組成的子空間。由于 b \mathbf{b} b 不在 C ( A ) C(A) C(A) 中,我們尋找 x \mathbf{x} x 使得 A x A\mathbf{x} Ax b \mathbf{b} b C ( A ) C(A) C(A) 上的投影 p \mathbf{p} p

  • 正交性條件
    殘差 e = b ? p \mathbf{e} = \mathbf{b} - \mathbf{p} e=b?p 必須與列空間正交(即 e ∈ N ( A T ) \mathbf{e} \in N(A^T) eN(AT)),從而導出 Normal Equation。


4. 應用場景

Normal Equation 是線性回歸的核心工具,尤其適用于以下情況:

  1. 小規模數據集:當特征數 n n n 較小時(如 n < 10 , 000 n < 10,000 n<10,000),計算 ( A T A ) ? 1 (A^T A)^{-1} (ATA)?1 的開銷較小。
  2. 無需迭代:與梯度下降等迭代方法不同,Normal Equation 直接通過矩陣運算得到解析解。
  3. 理論分析:在數學推導中,Normal Equation 提供了最小二乘解的唯一性、存在性等性質。

5. 注意事項
  1. 矩陣可逆性

    • A T A A^T A ATA 必須是可逆的(即 A A A 列滿秩, rank ( A ) = n \text{rank}(A) = n rank(A)=n)。
    • 如果 A T A A^T A ATA 不可逆(如特征間線性相關),則有無窮多解,此時需選擇最小范數解(通過偽逆 A ? A^\dagger A?)。
  2. 計算復雜度

    • 計算 ( A T A ) ? 1 (A^T A)^{-1} (ATA)?1 的時間復雜度為 O ( n 3 ) O(n^3) O(n3),當 n n n 較大時效率較低。
    • 此時通常改用梯度下降或正則化方法(如嶺回歸)。
  3. 數值穩定性

    • A A A 接近病態矩陣(條件數很大),可能導致 A T A A^T A ATA 不可逆或結果不穩定。

6. 示例

假設我們有以下數據:
A = [ 1 2 1 3 1 4 ] , b = [ 2 3 4 ] A = \begin{bmatrix} 1 & 2 \\ 1 & 3 \\ 1 & 4 \end{bmatrix}, \quad \mathbf{b} = \begin{bmatrix} 2 \\ 3 \\ 4 \end{bmatrix} A= ?111?234? ?,b= ?234? ?

  1. 計算 A T A A^T A ATA A T b A^T \mathbf{b} ATb
    A T A = [ 3 9 9 29 ] , A T b = [ 9 29 ] A^T A = \begin{bmatrix} 3 & 9 \\ 9 & 29 \end{bmatrix}, \quad A^T \mathbf{b} = \begin{bmatrix} 9 \\ 29 \end{bmatrix} ATA=[39?929?],ATb=[929?]
  2. 解 Normal Equation:
    [ 3 9 9 29 ] [ x 1 x 2 ] = [ 9 29 ] \begin{bmatrix} 3 & 9 \\ 9 & 29 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix} 9 \\ 29 \end{bmatrix} [39?929?][x1?x2??]=[929?]
    解得 x = [ 0 , 1 ] T \mathbf{x} = [0, 1]^T x=[0,1]T,即最佳擬合直線為 y = 0 + 1 x y = 0 + 1x y=0+1x

7. 總結
項目說明
目標找到使殘差 ∣ b ? A x ∣ 2 |\mathbf{b} - A\mathbf{x}|_2 b?Ax2? 最小的 x \mathbf{x} x
公式 x = ( A T A ) ? 1 A T b \mathbf{x} = (A^T A)^{-1} A^T \mathbf{b} x=(ATA)?1ATb
適用場景小規模數據、理論分析、無迭代需求。
局限性計算復雜度高、要求 A T A A^T A ATA 可逆。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/911743.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/911743.shtml
英文地址,請注明出處:http://en.pswp.cn/news/911743.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在架構設計中平衡動態語言與靜態語言部署差異的策略分析

在軟件架構設計過程中&#xff0c;語言的選型不僅僅關乎開發效率&#xff0c;更直接影響系統的部署速度、運行性能與維護成本。動態語言&#xff08;如 Python、Node.js&#xff09;部署快、開發靈活&#xff1b;靜態語言&#xff08;如 Go、Java、Rust&#xff09;性能強、類型…

我的VSCode中那些插件

前言 最近在研究VUE.JS&#xff0c;而VUE官方推薦使用VSCode作為開發工具&#xff0c;因此最近才開始大量使用這個工具。在使用過程中&#xff0c;總會遇到一些視頻博主推薦某某插件&#xff0c;于是我都將其安裝在我的VSCode上。這里記錄一下&#xff0c;僅供參考。 插件列表…

C# 時間格式日期格式使用合集

一、常用整理 C#時間使用整理,DateTime 使用整理_c#時間格式-CSDN博客 C# 本地時間格式&#xff0c;UTC時間格式&#xff0c;GMT時間格式處理 二、 C#如何獲取今天零點的時間 C# 獲取周一、周日 三、 C#計算兩個時間年份月份差 C#時間點字符串轉換為日期&#xff0c;當…

Ribbon負載均衡的具體實現原理

Ribbon 是 Netflix 開源的一款客戶端負載均衡工具&#xff0c;廣泛應用于微服務架構中&#xff0c;用于在客戶端選擇目標服務實例。 以下是 Ribbon 負載均衡的具體實現原理&#xff1a; 1. 什么是 Ribbon Ribbon 是一個客戶端負載均衡器&#xff0c;負責從服務注冊中心&#…

iOS APP上架App Store實踐:通過自動化流程和輔助工具高效提

在現代開發流程中&#xff0c;持續集成&#xff08;CI&#xff09;已經成為必不可少的環節。對于iOS應用的開發與發布&#xff0c;持續集成不僅限于構建過程&#xff0c;還應該涵蓋從代碼提交到版本發布的整個生命周期。然而&#xff0c;由于iOS平臺對開發環境的限制&#xff0…

3443. K 次修改后的最大曼哈頓距離

3443. K 次修改后的最大曼哈頓距離 題目鏈接&#xff1a;3443. K 次修改后的最大曼哈頓距離 代碼如下&#xff1a; class Solution { public:int maxDistance(string s, int k) {int res 0;// 定義一個大小為 X&#xff08;88&#xff09;的數組&#xff0c;并初始化為 0int…

【Ubuntu】Windows11安裝虛擬機超詳細圖文教程(VMware17.6.1 + ubuntu-24.04.2)

目錄 前言 一、準備工作 1、工具安裝包 2、獲取方式 3、本人的電腦安裝環境介紹 二、虛擬機磁盤分區&#xff08;可選&#xff09; 1、分區助手安裝 2、為虛擬機準備一個單獨的磁盤分區 三、VMware安裝 四、ubuntu鏡像安裝 1、Ubuntu鏡像iso文件加載引導 2、Ubuntu…

計算機視覺(Computer Vision, CV)

目錄 一、核心任務 二、常見應用場景 三、主流技術框架與工具 四、熱門算法簡述 五、發展趨勢 六、計算機視覺學習路線圖&#xff08;從入門到實戰&#xff09; 1.階段總覽 2.學習路徑詳解 階段一&#xff1a;CV入門基礎 學習目標&#xff1a; 推薦內容&#xff1a;…

使用Dagster資產工廠模式高效管理重復ETL任務

本文介紹了如何利用Dagster的資產工廠模式來高效管理和自動化重復的ETL&#xff08;提取、轉換、加載&#xff09;任務。通過Python函數和YAML配置文件的結合&#xff0c;我們可以輕松地創建和管理大量相似的資產&#xff0c;同時提高代碼的可維護性和可配置性。文章還探討了如…

淺談開源在線客服系統與 APP 集成的技術方案與優劣勢

在為移動端 App 接入在線客服系統的過程中&#xff0c;我經歷了長時間的技術選型探索。最初&#xff0c;我也曾被一些“技術理想主義”選項所吸引&#xff0c;比如讓用戶自己研發界面我提供 API 以獲得最高自由度&#xff0c;或集成 SDK 以追求原生體驗。然而&#xff0c;隨著項…

prometheus+grafana+MySQL監控

prometheusgrafanaMySQL監控 環境說明 操作前提&#xff1a; 先去搭建Docker部署prometheusgrafana...這篇文章的系統 Docker部署prometheusgrafana...的參考文章&#xff1a; Docker部署prometheusgrafana…-CSDN博客 在的節點服務器上搭建MySQL數據庫&#xff08;可以采用直…

多模態+類人認知:Embodied AI邁向AGI的三大瓶頸與突破路徑

作者&#xff1a;Yequan Wang&#xff1b;Aixin Sun 摘要 AGI常被視為本質上具有具身特性。隨著機器人技術和基礎人工智能模型的最新進展&#xff0c;我們正站在一個新時代的門檻上——這一時代以日益通用化的具身人工智能系統為標志。本文通過提出一個涵蓋五個層級&#xff…

wpf DataTemplate 寬度和控件寬度一樣

wpf DataTemplate 寬度和控件寬度一樣 在WPF中,如果你想要一個DataTemplate的寬度與它內部控件的寬度一致,你可以使用幾種不同的方法來實現這一點。下面是一些常見的方法: 方法1:使用DataTemplate的Width屬性 你可以在DataTemplate中直接設置Width屬性,使其與內部控件的…

C#上位機實現報警語音播報

我們在開發C#上位機時&#xff0c;有時候會需要將報警信息通過語音進行播報&#xff0c;今天跟大家分享一下具體的實現過程。 一、組件安裝 首先我們創建好一個Windows窗體項目&#xff0c;然后添加System.Speech庫引用。 點擊引用&#xff0c;右擊添加引用&#xff0c;在程…

01-StarRocks安裝部署FAQ

StarRocks安裝部署FAQ 概述 本文檔整理了StarRocks安裝部署過程中常見的問題和解決方案,涵蓋了環境準備、集群部署、配置優化等各個方面,幫助用戶快速解決安裝部署過程中遇到的問題。 環境準備FAQ Q1: StarRocks對硬件配置有什么要求? A: StarRocks的硬件配置要求如下:…

MinIO入門教程:從零開始搭建方便快捷的分布式對象存儲服務

目錄 一、MinIO簡介二、環境準備三、MinIO服務部署1. 下載指定版本MinIO鏡像2. 啟動MinIO容器3. 參數詳解 四、訪問MinIO控制臺1. 在瀏覽器中打開管理控制臺&#xff1a;2. 輸用戶名和密碼登錄3. 創建存儲桶Bucket4. 設置訪問權限為公有5. 上傳文件6. 訪問文件 一、MinIO簡介 …

多卡解決報錯torch.distributed.elastic.multiprocessing.errors.ChildFailedError的問題

使用多卡運行 Pytorch出現下面的報錯&#xff1a; E0619 10:29:15.774000 5065 site-packages/torch/distributed/elastic/multiprocessing/api.py:874] failed (exitcode: -11) local_rank: 0 (pid: 5184) of binary: /root/miniconda3/bin/python Traceback (most recent ca…

Kubernetes 架構的兩種節點

前言 Kubernetes 采用主從(master-node)架構模式&#xff0c;主要由主節點&#xff0c;也稱 控制平面(Control Plane)和工作節點(node)組成。 master 節點職責&#xff1a; ?集群管理?&#xff1a;負責整個集群的全局決策和狀態管理API服務?&#xff1a;通過 kube-apiser…

數據迷霧中的燈塔:奧威BI+AI數據分析如何照亮企業決策之路

決策進化史&#xff1a;從“盲人摸象”到“智能導航” 在每天83%的中國企業所面臨的決策場景中&#xff0c;數據往往沉默不語&#xff0c;無法為管理者提供明確的指引。從決策依賴人工統計的“石器時代”&#xff08;2010年前&#xff09;&#xff0c;到依賴靜態報表的“鐵器時…

Flutter 與 原生(Android/iOS)通信 Platform Channel

在Flutter中&#xff0c;Platform Channel是實現Flutter與原生平臺&#xff08;Android/iOS&#xff09;通信的核心機制&#xff0c;其設計遵循輕量級異步通信原則&#xff0c;用于解決Flutter跨平臺開發時與原生功能的交互需求。 一、核心作用 Flutter作為跨平臺框架&#x…