本篇文章簡單帶您復習線性代數與優化理論(主要是我發表的文章中涉及過的或相關聯的)?
微積分和概率與統計由此進:基礎數學:微積分和概率與統計-CSDN博客
圖論與信息論由此進:基礎數學:圖論與信息論-CSDN博客
數值分析與離散數學由此進:基礎數學:數值分析與離散數學-CSDN博客
二、線性代數
1.矩陣運算
(1) 基礎操作與幾何意義
- 矩陣乘法:
? ? ? ? 定義:若?,則乘積?
?的元素為:
????????????????
? ? ? ? 幾何解釋:矩陣乘法表示線性變換的組合。例如,旋轉矩陣??和平移矩陣?
?的組合變換為?
? ? ? ? 在注意力機制中,Query矩陣??與Key矩陣?
?相乘,計算相似度得分(即注意力權重)
? ? ? ? 示例:設?,
,則:
????????????????
- 矩陣轉置:
? ? ? ? 定義:
? ? ? ? 性質:
? ? ? ? 對稱矩陣滿足?
- 逆矩陣:
? ? ? ? 定義:若存在矩陣?,使得?
,則?
?可逆
? ? ? ? 存在條件:
(2) 矩陣分解
- 奇異值分解(SVD):
? ? ? ? 定義:任意矩陣??可分解為:
????????????????
? ? ? ? 其中??和?
?是正交矩陣,
?是對角矩陣(奇異值
)
? ? ? ? 幾何意義:SVD將矩陣分解為旋轉-縮放-旋轉操作,奇異值表示縮放因子
? ? ? ? 應用:
? ? ? ? ? ? ? ? 降維:保留前??個奇異值,近似矩陣?
? ? ? ? ? ? ? ? 量化壓縮:通過低秩近似減少參數存儲(如LLM.int8()中的權重壓縮)
- QR分解:
? ? ? ? 定義:將矩陣??分解為正交矩陣
?和上三角矩陣
,即
:
? ? ? ? 數值穩定性:QR分解常用于求解線性方程組?,避免直接求逆的數值不穩定問題
- 特征值分解(EVD):
? ? ? ? 定義:對方陣?,若存在標量?
?和非零向量?
,滿足?
,則?
?為特征值,
?為特征向量
? ? ? ? 應用:
? ? ? ? ? ? ? ? 主成分分析(PCA):通過協方差矩陣的特征值分解降維
? ? ? ? ? ? ? ? 矩陣冪的計算:
(3) 張量與高階運算
- 張量的定義:
? ? ? ? 張量是多維數組的泛化,階數(維度)成為張量的秩。例如:
? ? ? ? ? ? ? ? 標量:0階張量
? ? ? ? ? ? ? ? 向量:1階張量
? ? ? ? ? ? ? ? 矩陣:2階張量
? ? ? ? ? ? ? ? 三維數組:3階張量
- Einstein求和約定(einsum):
? ? ? ? 規則:通過下標標記維度,自動求和重復索引
? ? ? ? 示例:計算矩陣乘法??可表示為?
- 張量壓縮與分塊:
? ? ? ? Tucker分解:高階SVD,將張量分解為核心張量與多個因子矩陣的乘積
? ? ? ? 應用:減少 Transformer 模型中的計算量(如將大矩陣分塊適配GPU內存)
2.數值表示
(1) 浮點數與定點數
- IEEE 754浮點數標準:
? ? ? ? 單精度(float32):1位符號位,8位指數位,23位尾數位
? ? ? ? 半精度(float16):1位符號位,5位指數位,10位尾數位
? ? ? ? 動態范圍:浮點數的表示范圍由指數位決定,例如float16的范圍約為?
- 定點數表示:
? ? ? ? 定義:固定小數位數,例如8位整數部分和8位小數部分
? ? ? ? 量化公式:將浮點數??映射到整數?
:
????????????????
? ? ? ? 其中??是縮放因子
? ? ? ? 反量化:
????????????????
(2) 稀疏性與壓縮存儲
- 稀疏矩陣存儲格式:
? ? ? ? CSR(Compressed Sparse Row):存儲非零元素的值、列索引和行偏移指針
? ? ? ? 示例:矩陣??的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.核心公式總結
矩陣乘法:?
奇異值分解(SVD):?
QR分解:?
特征值分解(EVD):滿足??,則?
??為特征值,
??為特征向量
矩陣冪計算:?
注意力權重:?
三、優化理論
1.數值優化
(1) 梯度下降
- 目標:最小化損失函數?
?,參數更新規則為:
?????????
? ? ? ? 其中???是學習率,
??是梯度
- 幾何解釋:梯度方向是函數上升最快的方向,負梯度方向是函數下降最快的方向
- 示例:對二次函數?
?,梯度為?
?,更新規則為?
- 動量法:引入動量項?
??減少震蕩,加速在平坦區域的收斂:
?????????
?????????
(2) 隨機梯度下降(SGD)
- 小批量更新:每次從數據集中隨機采樣一個小批量?
?,計算梯度:
?????????
- 方差分析:小批量梯度是無偏估計,但方差為?
?
? ? ? ? 權衡:批量越大,方差越小,但計算成本越高
(3) 約束優化
- 拉格朗日乘數法:
? ? ? ? 目標:最小化???滿足約束?
?
? ? ? ? 構造拉格朗日函數:
?????????????????
? ? ? ? 通過求解??和?
?找到極值
- 示例(量化約束):
? ? ? ? 量化要求權重??限制在整數范圍?
:
????????????????
? ? ? ? 通過投影梯度下降迭代:
? ? ? ? 1.更新參數:
? ? ? ? 2.投影到約束集:
(4) 凸優化 vs. 非凸優化
- 凸函數定義:對任意?
?和?
,滿足:
????????
? ? ? ? 性質:凸函數的局部最小值即全局最小值
- 非凸優化挑戰:
? ? ? ? 存在多個局部極小值(如神經網絡損失函數)
? ? ? ? 依賴初始化策略(如Xavier初始化)和優化器設計(如Adam)
2.應用場景
(1) 注意力機制中的優化問題
- 計算瓶頸:標準注意力計算?
?需要?
?時間和空間
- FlashAttention優化:
? ? ? ? 分塊計算:將??分塊,逐塊計算并累加結果。有?
?從內存讀寫降至?
(2) 量化中的約束優化
- 對稱量化:約束縮放因子?
?和零點?
:
????????
? ? ? ? 閉式解:
????????????????
- 非對稱量化:允許零點偏移,適應非對稱分布:
????????
(3) 模型訓練中的自適應優化器
- Adam優化器:結合動力與自適應學習率:
????????
????????
????????
? ? ? ? 作用:自動調整參數的學習率,適應不同方向的梯度變化
3.核心公式總結
梯度下降:
動量法:
拉格朗日函數: