知识点:次梯度算法

知识点概述

次梯度算法是梯度下降法向非光滑(不可微)凸优化问题的直接推广。它在每一步迭代中使用目标函数在当前点的一个次梯度(而不是梯度)来更新变量。

详细解释

  • 算法:
    1. 选择初始点
    2. 迭代更新: ,其中 处的一个任意次梯度。
  • 与梯度下降的区别:
    • 方向: 次梯度方向 不再保证是函数值的下降方向。因此,不能使用线搜索来寻找步长。
    • 目标函数值: 迭代过程中目标函数值不一定是单调下降的。算法的收敛性是通过记录并返回历史迭代中函数值最小的那个点来保证的。
  • 步长 的选择:
    • 由于不能线搜索,步长的选择至关重要,且必须预先设定。
    • 常用的步长规则要求 满足:。例如,
  • 收敛性:
    • 次梯度算法的收敛速度通常很慢,为次线性收敛

学习要点

  • 掌握次梯度算法的迭代公式。
  • 理解次梯度方向不一定是下降方向,因此算法不保证函数值单调下降。
  • 知道步长选择是次梯度算法的关键,且不能使用线搜索。
  • 了解其次线性收敛速度,通常慢于梯度下降。

实践应用

  • 求解各种非光滑凸优化问题,如带 正则项的LASSO问题、支持向量机的对偶问题等。虽然收敛慢,但其实现简单,对于某些大规模问题仍然是有效的方法。

关联知识点