LLM大模型中的基础数学工具——非凸优化

Q30: 分析随机梯度下降(SGD)在鞍点处的逃离概率

随机梯度下降与鞍点是啥?

随机梯度下降(SGD)是深度学习中常用的优化算法,每次更新仅基于一个样本的梯度。鞍点是函数一阶导数为零,但非极值点的位置(类似马鞍中心)。在鞍点处,SGD 因梯度噪声有逃离可能。

逃离概率分析

鞍点处梯度为零,但 Hessian 矩阵特征值有正有负。SGD 更新公式为 x_{t+1} = x_t - \eta g_tg_t 含噪声)。噪声使梯度偏离零,向 Hessian 负特征值方向移动。逃离概率与学习率、噪声相关,大学习率下噪声影响强,逃离概率高。

在 LLM 中的使用

训练 LLM(如 GPT-4)时,参数达千亿级,损失函数曲面复杂,鞍点众多。SGD 的噪声机制助其逃离鞍点。例如,训练中某层参数陷入鞍点,SGD 利用样本梯度随机性,使更新方向偏离鞍点。如在文本生成任务中,若模型生成重复文本(可能因参数在鞍点附近),SGD 的逃离特性推动参数更新,改善生成效果。

代码示例(模拟鞍点附近 SGD 更新)

import torch  
import numpy as np  

# 定义鞍点函数 f(x, y) = x² - y²  
def f(x, y):  
    return x ** 2 - y ** 2  

# 计算梯度  
def grad_f(x, y):  
    return torch.tensor([2 * x, -2 * y])  

# 模拟SGD在鞍点(0,0)附近的更新  
x, y = 0.1, 0.1  
eta = 0.1  
num_steps = 10  
for _ in range(num_steps):  
    # 加入噪声的梯度  
    gx, gy = grad_f(x, y) + torch.normal(0, 0.1, size=(2,))  
    x -= eta * gx  
    y -= eta * gy  
    print(f"x: {x.item():.4f}, y: {y.item():.4f}")  

代码解释:定义鞍点函数,梯度含噪声模拟 SGD。即使初始在鞍点附近,噪声使梯度非零,参数更新逃离鞍点,类似 LLM 训练中 SGD 借助噪声逃离鞍点。


Q31: 证明 EM 算法的单调递增性质 \log p(X|\theta_{t+1}) \geq \log p(X|\theta_t)

EM 算法是啥?

EM 算法用于含隐变量的概率模型参数估计,分 E 步(计算隐变量后验期望)和 M 步(最大化期望似然)。单调递增性指每次迭代后,观测数据 X 的对数似然 \log p(X|\theta) 不减少。

证明过程

  • E 步:计算 Q(\theta, \theta_t) = E_Z[\log p(X, Z|\theta)|X, \theta_t]
  • M 步:\theta_{t+1} = \arg\max_\theta Q(\theta, \theta_t)。 利用 Jensen 不等式,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨顿

唵嘛呢叭咪吽

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值