本篇文章简单带您复习线性代数与优化理论(主要是我发表的文章中涉及过的或相关联的)
微积分和概率与统计由此进:基础数学:微积分和概率与统计-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.核心公式总结
梯度下降:
动量法:
拉格朗日函数: