基礎數學:線性代數與優化理論

本篇文章簡單帶您復習線性代數與優化理論(主要是我發表的文章中涉及過的或相關聯的)?

微積分和概率與統計由此進:基礎數學:微積分和概率與統計-CSDN博客

圖論與信息論由此進:基礎數學:圖論與信息論-CSDN博客

數值分析與離散數學由此進:基礎數學:數值分析與離散數學-CSDN博客

二、線性代數

1.矩陣運算

(1) 基礎操作與幾何意義

  • 矩陣乘法:

? ? ? ? 定義:若?A\in R^{m\times n},B\in R^{n\times p},則乘積?C=AB\in R^{m\times p}?的元素為:

????????????????C_{ij}=\sum_{k=1}^{n}A_{ik}B_{kj}

? ? ? ? 幾何解釋:矩陣乘法表示線性變換的組合。例如,旋轉矩陣?R?和平移矩陣?T?的組合變換為?RT

? ? ? ? 在注意力機制中,Query矩陣?Q?與Key矩陣?K^{T}?相乘,計算相似度得分(即注意力權重)

? ? ? ? 示例:設?Q=\begin{bmatrix} 1 & 2\\ 3&4 \end{bmatrix}K=\begin{bmatrix} 5 & 6\\ 7&8 \end{bmatrix},則:

????????????????QK^{T}=\begin{bmatrix} 1\cdot 5+2\cdot 7 & 1\cdot 6+2\cdot 8\\ 3\cdot 5+4\cdot 7&3\cdot 6+4\cdot 8 \end{bmatrix}=\begin{bmatrix} 19 &22 \\ 43 &50 \end{bmatrix}

  • 矩陣轉置:

? ? ? ? 定義:(A^{T})_{ij}=A_{ji}

? ? ? ? 性質:(AB)^{T}=B^{T}A^{T}

? ? ? ? 對稱矩陣滿足?A=A^{T}

  • 逆矩陣:

? ? ? ? 定義:若存在矩陣?A^{-1},使得?AA^{-1}=1,則?A?可逆

? ? ? ? 存在條件:det(A)\neq 0

(2) 矩陣分解

  • 奇異值分解(SVD):

? ? ? ? 定義:任意矩陣?A\in R^{m\times n}?可分解為:

????????????????A=U\Sigma V^{T}

? ? ? ? 其中?U\in R^{m\times m}?和?V\in R^{m\times n}?是正交矩陣,\Sigma \in R^{m\times n}?是對角矩陣(奇異值 \sigma _{1}\geq \sigma _{2}\geq ...\geq 0

? ? ? ? 幾何意義:SVD將矩陣分解為旋轉-縮放-旋轉操作,奇異值表示縮放因子

? ? ? ? 應用:

? ? ? ? ? ? ? ? 降維:保留前?k?個奇異值,近似矩陣?A\approx U_{:,1:k}\Sigma _{1:k,1:k}V^{T}_{:,1:k^{\cdot }}

? ? ? ? ? ? ? ? 量化壓縮:通過低秩近似減少參數存儲(如LLM.int8()中的權重壓縮)

  • QR分解:

? ? ? ? 定義:將矩陣?A\in R^{m\times n}?分解為正交矩陣 Q?和上三角矩陣 R,即 A=QR

? ? ? ? 數值穩定性:QR分解常用于求解線性方程組?Ax=b,避免直接求逆的數值不穩定問題

  • 特征值分解(EVD):

? ? ? ? 定義:對方陣?A\in R^{n\times m},若存在標量?\lambda?和非零向量?v,滿足?Av=\lambda v,則?\lambda?為特征值,v?為特征向量

? ? ? ? 應用:

? ? ? ? ? ? ? ? 主成分分析(PCA):通過協方差矩陣的特征值分解降維

? ? ? ? ? ? ? ? 矩陣冪的計算:A^{k}=V\Lambda ^{k}V^{-1}

(3) 張量與高階運算

  • 張量的定義:

? ? ? ? 張量是多維數組的泛化,階數(維度)成為張量的秩。例如:

? ? ? ? ? ? ? ? 標量:0階張量

? ? ? ? ? ? ? ? 向量:1階張量

? ? ? ? ? ? ? ? 矩陣:2階張量

? ? ? ? ? ? ? ? 三維數組:3階張量

  • Einstein求和約定(einsum):

? ? ? ? 規則:通過下標標記維度,自動求和重復索引

? ? ? ? 示例:計算矩陣乘法?C_{ij}=\sum_{k}^{}A_{ik}B_{kj}?可表示為?einsum("ik,kj\rightarrow ij",A,B)

  • 張量壓縮與分塊:

? ? ? ? Tucker分解:高階SVD,將張量分解為核心張量與多個因子矩陣的乘積

? ? ? ? 應用:減少 Transformer 模型中的計算量(如將大矩陣分塊適配GPU內存)

2.數值表示

(1) 浮點數與定點數

  • IEEE 754浮點數標準:

? ? ? ? 單精度(float32):1位符號位,8位指數位,23位尾數位

? ? ? ? 半精度(float16):1位符號位,5位指數位,10位尾數位

? ? ? ? 動態范圍:浮點數的表示范圍由指數位決定,例如float16的范圍約為?\pm 6.55 \times 10^{4}

  • 定點數表示:

? ? ? ? 定義:固定小數位數,例如8位整數部分和8位小數部分

? ? ? ? 量化公式:將浮點數?x?映射到整數?q

????????????????q=round(x\cdot S)

? ? ? ? 其中?S=2^{frac\underline{\hspace{0.1cm}}bits}?是縮放因子

? ? ? ? 反量化:

????????????????x_{dequant}=q/S

(2) 稀疏性與壓縮存儲

  • 稀疏矩陣存儲格式:

? ? ? ? CSR(Compressed Sparse Row):存儲非零元素的值、列索引和行偏移指針

? ? ? ? 示例:矩陣?A=\begin{bmatrix} 5 & 0 & 0\\ 0 & 8 & 0\\ 0 & 0 & 3 \end{bmatrix}?的CSR表示為:

? ? ? ? ? ? ? ? values = [5, 8, 3]

? ? ? ? ? ? ? ? col_indices = [0, 1, 2]

? ? ? ? ? ? ? ? row_ptr = [0, 1, 2, 3]

? ? ? ? CSC(Compressed Sparse Column):類似CSR,但按列壓縮存儲

  • 塊稀疏:

? ? ? ? 定義:將稀疏矩陣劃分為固定大小的塊,僅存儲非零塊

? ? ? ? 優勢:提升GPU內存訪問效率(連續內存讀取)、加速矩陣乘法? ? ? ? ??

3.應用場景

(1) 注意力機制中的矩陣運算:從理論到實踐:Pytorch實現注意力機制到Triton優化-CSDN博客

(2) absmax量化步驟:從理論到實踐:absmax、zeropoint和LLM.int8()在gpt-2的應用-CSDN博客

(3)? Triton優化中的分塊策略:從理論到實踐:Pytorch實現注意力機制到Triton優化-CSDN博客

4.核心公式總結

矩陣乘法:C_{ij}=\sum_{k=1}^{n}A_{ik}B_{kj}?

奇異值分解(SVD):A=U\Sigma V^{T}?

QR分解:A=QR?

特征值分解(EVD):滿足?Av=\lambda v?,則?\lambda??為特征值,v??為特征向量

矩陣冪計算:A^{k}=V\Lambda ^{k}V^{-1}?

注意力權重:softmax(\frac{QK^{t}}{\sqrt{d}})?

三、優化理論

1.數值優化

(1) 梯度下降

  • 目標:最小化損失函數?\mathcal{L}(\theta)?,參數更新規則為:

????????\theta_{t+1}=\theta_{t}-\eta \triangledown _{\theta} \mathcal{L}(\theta_{t})?

? ? ? ? 其中?\eta??是學習率,\triangledown _{\theta}\mathcal{L}??是梯度

  • 幾何解釋:梯度方向是函數上升最快的方向,負梯度方向是函數下降最快的方向
  • 示例:對二次函數?\mathcal{L}(\theta)=\theta^{2}?,梯度為?2\theta?,更新規則為?
  • 動量法:引入動量項?v_{t}??減少震蕩,加速在平坦區域的收斂:

????????v_{t+1}=\beta v_{t}+(1-\beta)\triangledown _{\theta}\mathcal{L}(\theta_{t})?

????????\theta_{t+1}=\theta_{t}-\eta v_{t+1}?

(2) 隨機梯度下降(SGD)

  • 小批量更新:每次從數據集中隨機采樣一個小批量?B?,計算梯度:

????????\triangledown _{\theta }\mathcal{L}(\theta)\approx \frac{1}{B}\sum_{x\in B}^{}\triangledown _{\theta}\mathcal{L}(\theta;x)?

  • 方差分析:小批量梯度是無偏估計,但方差為?O(1/\left | B \right |)?

? ? ? ? 權衡:批量越大,方差越小,但計算成本越高

(3) 約束優化

  • 拉格朗日乘數法:

? ? ? ? 目標:最小化?f(x)??滿足約束?g(x)=0?

? ? ? ? 構造拉格朗日函數:

????????????????\mathcal{L}(x,\lambda)=f(x)+\lambda g(x)?

? ? ? ? 通過求解?\triangledown _{x}\mathcal{L}=0?和?\triangledown _{\lambda}\mathcal{L}=0?找到極值

  • 示例(量化約束):

? ? ? ? 量化要求權重?W?限制在整數范圍?[-k,k]

????????????????\underset{W}{min}||W-Q(W)||^{2} \quad s.t. \quad Q(W)\in (-k,...,k)

? ? ? ? 通過投影梯度下降迭代:

? ? ? ? 1.更新參數:W'=W-\eta \triangledown \mathcal{L}

? ? ? ? 2.投影到約束集:Q(W')=round(clip(W',-k,k))

(4) 凸優化 vs. 非凸優化

  • 凸函數定義:對任意?x,y?和?\lambda \in [0,1],滿足:

????????f(\lambda x+(1-\lambda)y)\leq \lambda f(x)+(1-\lambda)f(y)

? ? ? ? 性質:凸函數的局部最小值即全局最小值

  • 非凸優化挑戰:

? ? ? ? 存在多個局部極小值(如神經網絡損失函數)

? ? ? ? 依賴初始化策略(如Xavier初始化)和優化器設計(如Adam)

2.應用場景

(1) 注意力機制中的優化問題

  • 計算瓶頸:標準注意力計算?softmax(QK^{T})V?需要?O(n^{2})?時間和空間
  • FlashAttention優化:

? ? ? ? 分塊計算:將?Q,K,V?分塊,逐塊計算并累加結果。有?O(n^{2})?從內存讀寫降至?O(n)

(2) 量化中的約束優化

  • 對稱量化:約束縮放因子?s?和零點?Z

????????\underset{s,Z}{min}||W-s(q-Z)||^{2} \quad s.t. \quad q\in \mathbb{Z}

? ? ? ? 閉式解:

????????????????s=\frac{max(|W|)}{2^{b-1}-1},Z=0

  • 非對稱量化:允許零點偏移,適應非對稱分布:

????????s=\frac{max(W)-min(W)}{2^{b}-1},Z=round(\frac{-min(W)}{s})

(3) 模型訓練中的自適應優化器

  • Adam優化器:結合動力與自適應學習率:

????????m_t=\beta_1m_{t-1}+(1-\beta_1)g_t

????????v_t=\beta_2v_{t-1}+(1-\beta_2)g_{t}^{2}

????????\theta_{t+1}=\theta_t-\eta \frac{m_t}{\sqrt{v_{t}}+\epsilon }

? ? ? ? 作用:自動調整參數的學習率,適應不同方向的梯度變化

3.核心公式總結

梯度下降:\theta_{t+1}=\theta_{t}-\eta \triangledown _{\theta} \mathcal{L}(\theta_{t})

動量法:v_{t+1}=\beta v_{t}+(1-\beta)\triangledown _{\theta}\mathcal{L}(\theta_{t})

拉格朗日函數:\mathcal{L}(x,\lambda)=f(x)+\lambda g(x)

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

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

相關文章

java android持久化數據

1. SQLite 數據庫(Android 內置) 1.1 創建數據庫幫助類 public class DatabaseHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME "MyDatabase.db";private static final int DATABASE_VERSION 1;// 表名和列名…

鴻蒙動畫與交互設計:ArkUI 3D變換與手勢事件詳解

大家好,我是 V 哥。 在鴻蒙 NEXT 開發中,ArkUI 提供了豐富的 3D 變換和手勢事件功能,可用于創建生動且交互性強的用戶界面。下面詳細介紹 ArkUI 的 3D 變換和手勢事件,并給出相應的 ArkTS 案例代碼。 1. ArkUI 3D 變換 ArkUI 支…

HTTP 和 HTTPS 協議的區別及使用場景

在互聯網的世界里,HTTP 和 HTTPS 是我們經常接觸到的兩種網絡協議,它們在數據傳輸、安全性等方面存在諸多差異,適用的場景也各有不同。? 一、HTTP 和 HTTPS 的基本概念? HTTP,即超文本傳輸協議(Hyper - Text Transfer Protocol),是一種用于分布式、協作式和超媒體信息…

【微服務管理】注冊中心:分布式系統的基石

在分布式系統日益普及的當下,如何高效地管理眾多服務實例成為關鍵問題。注冊中心應運而生,它猶如分布式系統的 “指揮中樞”,承擔著服務注冊、發現等核心任務,為整個系統的穩定運行和高效協作提供堅實保障。本文將深入探討注冊中心…

高并發短信系統設計:基于SharingJDBC的分庫分表、大數據同步與實時計算方案

高并發短信系統設計:基于SharingJDBC的分庫分表、大數據同步與實時計算方案 一、概述 在當今互聯網應用中,短信服務是極為重要的一環。面對每天發送2000萬條短信的需求,我們需要一個能夠處理海量數據(一年下來達到數千萬億級別&…

2025最新系統 Git 教程(七)(完結)

第4章 分布式Git 4.1 分布式 Git - 分布式工作流程 你現在擁有了一個遠程 Git 版本庫,能為所有開發者共享代碼提供服務,在一個本地工作流程下,你也已經熟悉了基本 Git 命令。你現在可以學習如何利用 Git 提供的一些分布式工作流程了。 這一…

OpenCV 圖像旋轉

一、OpenCV 圖像旋轉介紹 在計算機視覺和圖像處理領域,圖像旋轉是指將圖像圍繞某個中心點按照一定的角度進行轉動。旋轉操作會改變圖像中像素的位置,從而得到新的圖像布局。這一操作在很多場景中都有重要應用,比如文檔矯正、目標檢測時對圖像…

<C#>在 .NET 開發中,依賴注入, 注冊一個接口的多個實現

在 .NET 開發里,有時一個接口會有多個實現類,此時就需要向依賴注入容器注冊多個實現。下面會詳細介紹不同場景下如何注冊多個實現,以及怎樣從容器中解析這些實現。 1. 注冊多個實現 在 .NET 中,依賴注入容器可以通過不同方式注冊…

idea 保存格式化 但是不格式化 Xml

xml- 其他 - 保持空格勾選上 https://blog.csdn.net/m0_65724734/article/details/128378290?spm1001.2101.3001.6650.8&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-128378290-blog-135147277.235%5Ev43%5Epc_blog_bo…

如何在C++中優雅地繪制圖表

如何在C項目中優雅地繪制圖表 matplotlibpreparematplotlibcpp.hpython3vs configuretest Gnuplotpreparegnuplotgnuplot-iostream.hboostvs configuretest MathGL 在C項目中,在進行一些數據分析時往往不夠直觀,若能借助圖表進行分析可以達到事半功倍的效…

vue3使用keep-alive緩存組件與踩坑日記

目錄 一.了解一下KeepAlive 二.使用keep-alive標簽緩存組件 1.聲明Home頁面名稱 三.在路由出口使用keep-alive標簽 四.踩坑點1:可能需要配置路由(第三點完成后有效可忽略) 五.踩坑點2:沒有找到正確的路由出口 一.了解一下Kee…

ros通信機制學習——latched持久化機制

點云的地圖的發送邏輯中,我發現每次使用rostopic echo 時只會打印一次,然后就不會再打印了。并且rviz中也是始終都會顯示的,這里面其實就是用到了latched持久話機制,可以接受這最后一次發布的消息。 我們通過一個具體的項目來學習…

力扣每日打卡 1922. 統計好數字的數目 (中等)

力扣 1922. 統計好數字的數目 中等 前言一、題目內容二、解題方法1. 暴力解法(會超時,此法不通)2. 快速冪運算3. 組合計數的思維邏輯分析組合計數的推導例子分析思維小結論 4.官方題解4.1 方法一:快速冪 三、快速冪運算快速冪運算…

如何使用通義靈碼玩轉Docker - AI助手提升開發效率

一、引言 Docker 作為一種流行的虛擬化技術,能夠幫助開發者快速搭建所需的運行環境。然而,對于初學者來說,掌握 Docker 的基本概念和使用方法可能會遇到一些挑戰。本文將介紹如何利用通義靈碼這一智能編碼助手,幫助你更高效地學習…

從一到無窮大 #45:InfluxDB MCP Server 構建:從工程實踐到價值重構

本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。 本作品 (李兆龍 博文, 由 李兆龍 創作),由 李兆龍 確認,轉載請注明版權。 文章目錄 工程實踐遇到的問題MCP Host選擇開發流程 結果展現可能性展望工作生活帶來的變化 MCP…

JAVA SDK通過proxy對接google: GCS/FCM

前言:因為國內調用google相關api需要通過代理訪問(不想設置全局代理),所以在代理這里經常遇到問題,先說一下結論 GCS 需要設置全局代理或自定義代理選擇器, FCM sdk admin 在初始化firebaseApp時是支持設置的。 GCS: 開始時嘗試在…

【NLP】24. spaCy 教程:自然語言處理核心操作指南(進階)

spaCy 中文教程:自然語言處理核心操作指南(進階) 1. 識別文本中帶有“百分號”的數字 import spacy# 創建一個空的英文語言模型 nlp spacy.blank("en")# 處理輸入文本 doc nlp("In 1990, more than 60% of people in East…

關于香橙派OrangePi 5 Ultra 這個開源板子,開發Android

我下載了它資料中的開源Android13 系統SDK, 這個SDK連個git 都沒有,把這種代碼釋放能稱為開源嗎?? 并且也就是說你買了這個板子,里面是沒有任何關于RK3588的開發文檔,如果你沒玩過其他RK平臺,估…

WHAT - React Portal 機制:將子組件渲染到 DOM 的指定節點

文章目錄 適合場景基本語法示例:Modal 彈窗1. 創建一個簡單的 Modal.tsx2. 在 App 中使用 為什么要用 Portal?TypeScript 中 Portal 類型定義? 適合場景 React Portal 是 React 提供的一種機制,讓你可以將子組件渲染到 DOM 的指定…

數據結構---跳表

目錄 一、跳表的概念 為什么要使用隨機值來確定層高 二、跳表的分析 (1)查找過程 (2)性能分析 三、跳表的實現 四、與紅黑樹哈希表的對比 skiplist本質上也是一種查找結構,用于解決算法中的查找問題&#xff0c…