基础数学:线性代数与优化理论

本篇文章简单带您复习线性代数与优化理论(主要是我发表的文章中涉及过的或相关联的) 

微积分和概率与统计由此进:基础数学:微积分和概率与统计-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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值