梯度方法Skill gradient-methods

这个技能专注于优化问题中的梯度方法,提供全面的问题解决策略,包括梯度下降、步长选择、加速方法和牛顿法等,适用于机器学习、数据科学和量化金融等领域的数值优化。关键词:梯度下降,优化算法,机器学习,数值优化,BFGS,共轭梯度,步长选择。

机器学习 0 次安装 0 次浏览 更新于 3/14/2026

名称: 梯度方法 描述: “优化中梯度方法的问题解决策略” 允许工具: [Bash, Read]

梯度方法

何时使用

在优化中处理梯度方法问题时使用此技能。

决策树

  1. 基本梯度下降

    • 更新: x_{k+1} = x_k - alpha * grad f(x_k)
    • 步长 alpha: 固定、递减或线搜索
    • 收敛: O(1/k) 对于凸函数,线性对于强凸函数
  2. 步长选择

    方法 方法
    固定 alpha 常数(需要调优)
    回溯 Armijo 条件: f(x - alphagrad) <= f(x) - calpha*
    精确线搜索 在 alpha 上最小化 f(x - alpha*grad)
    自适应 Adam, RMSprop(机器学习应用)
  3. 加速方法

    • 动量: 添加速度项
    • Nesterov: 前瞻梯度
    • 共轭梯度: 用于二次函数
    • scipy.optimize.minimize(f, x0, method='CG') - 共轭梯度
  4. 牛顿法

    • 更新: x_{k+1} = x_k - H^{-1} * grad f
    • 需要海森矩阵(昂贵但二次收敛)
    • 准牛顿法 (BFGS): 近似海森矩阵
    • scipy.optimize.minimize(f, x0, method='BFGS')
  5. 收敛诊断

    • 监控 ||grad f|| < 容差
    • 检查函数值下降
    • 注意振荡(步长太大)
    • sympy_compute.py diff "f" --var x 用于梯度

工具命令

Scipy_Bfgs

uv run python -c "from scipy.optimize import minimize; res = minimize(lambda x: (x[0]-1)**2 + 100*(x[1]-x[0]**2)**2, [0, 0], method='BFGS'); print('Rosenbrock min at', res.x)"

Scipy_Cg

uv run python -c "from scipy.optimize import minimize; res = minimize(lambda x: x[0]**2 + x[1]**2, [1, 1], method='CG'); print('Min at', res.x)"

Sympy_Gradient

uv run python -m runtime.harness scripts/sympy_compute.py diff "x**2 + y**2" --var "[x, y]"

关键技术

来自索引教材:

  • [非线性编程_tif] 梯度方法** - 这些方法使用梯度信息迭代接近最优解。收敛** - 处理收敛性质。下降方向和步长规则:** 关注如何选择下降方向和适当的步长。
  • [非线性编程_tif] 梯度方法在无约束最优控制问题中的应用原则上很简单。例如,最速下降法采用形式 W = b oMV H, (kb ph,y), i=0,. Pl = 因此,给定 u¥,通过系统方程的前向传播计算 zF,然后通过伴随方程的后向传播计算 p*¥。
  • [非线性编程_tif] 页脚或尾行**: - 有一个空的结束元素,由单个 “.” 表示。总体而言,此表作为文档中章节或部分的索引,特别强调优化方法和相关数学策略,如列出的梯度、牛顿和其他导数技术。散落的字母和空槽可能表示一种风格或格式选择,而不是此上下文中的有意义的內容。
  • [非线性编程_tif] Zoutendijk 方法使用 tw ) oscalatse)Oand’ye 0,1), a i ! P, 其中 ¢ — Y™k € 和 my 是第一个非负 k ok 28 %, ) it T #(z*,7"e) < -y (a) 显示 (b) 证明 {d*} 是梯度相关的,从而建立稳定性。 2. Min-H 方法用于最优控制) 考虑寻找序列 u = (z1,22,. 的问题。
  • [非线性编程_tif] 练习 1 的函数 f 的图示。稳定性) (www) 我们经常感兴趣的是当问题数据轻微扰动时,最优解是否发生根本性变化。这个问题通过稳定性分析解决,与灵敏度分析对比,后者处理问题数据变化时最优解的变化量。

认知工具参考

参见 .claude/skills/math-mode/SKILL.md 获取完整工具文档。