定义
之前提到的梯度下降法,牛顿法都是在定义域全集上寻找函数 f(x) f ( x ) 的最大值或者最小值,但有时候,我们希望的不是全集,而是在 x x 的某个子集
中找到 f(x) f ( x ) 的最大值或者最小值。这称为约束优化(constrained optimization)。 在优化术语中,集合 S S 内的点 x x 称为可行(feasible)点
.例如我们常常希望找到在某种意义上小的解,针对这种情况下的常见方法就是强加一个范数约束(norm constraint), 如
.
简单方法:映射-修改
约束优化的一个简单方法是将约束考虑在内后简单地对梯度下降进行修改。
- 如果使用一个小的恒定步长 ϵ ϵ , 我们可以先取梯度下降的单步结果,然后将结果投影回 S S .
- 如果使用线性搜索,我们只能在步长为 ϵ ϵ 范围内搜索可行的 x x 点, 或者可以将线上的每个点投影到约束区域。
- 如果可能,在梯度下降或线性搜索前将梯度投影到可行域的切空间会更高效
复杂方法 : 转化为无约束优化问题
一种更复杂的方法是设计一个不同的、无约束的优化问题,其解可以转化为原始约束优化问题的解。例如,我们要在 中最小化 f(x)