周志华《机器学习》(西瓜书) ——相关数学知识整理:拉格朗日乘子法与KKT条件

本文详细介绍了拉格朗日乘子法在解决最优化问题中的应用,包括无约束条件、等式约束条件和不等式约束条件的情况。通过举例说明了如何构造拉格朗日函数以及如何利用KKT条件解决带约束的最优化问题,特别是对机器学习中的SVM算法有重要影响。
摘要由CSDN通过智能技术生成


0 简介

  在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)是一种比较最常用的方法。当求解带不等式约束的最优化问题时,通常会将原问题转化为对偶问题进行求解,这时往往会要求函数满足 KKT 条件。

  这里提到的最优化问题通常是指凸优化问题,即对某一给定的凸函数,求其在指定作用域上的全局最小值(求最大值问题很容易转化成求最小值问题,然后按求最小值问题进行求解)。

  求最优化问题一般会碰到以下三种情况:

  1. 无约束条件
  2. 等式约束条件
  3. 不等式约束条件


1 无约束条件

  首先考虑不带任何约束的优化问题:
min ⁡ x ∈ R n f ( x ) \min _{\boldsymbol{x}\in \mathbb{R}^{n}}f(\boldsymbol{x}) xRnminf(x)

  这是最简单的情况,直接令梯度为零 ∇ x f ( x ) = 0 \nabla_{\boldsymbol{x}} f(\boldsymbol{x})=0 xf(x)=0 即可,若没有解析解,可用梯度下降法或者牛顿法进行迭代求解。


2 等式约束条件

  当目标函数加上等式约束条件之后,问题变成如下形式:

min ⁡ x f ( x ) s.t.   h i ( x ) = 0 , i = 1 , 2 , … , m \begin{array}{ll}&{\min _{\boldsymbol{x}}}{f(\boldsymbol{x})} \\\\ &{\text {s.t.}} \ \ {h_{i}(\boldsymbol{x})=0,i=1,2, \ldots, m}\end{array} minxf(x)s.t.  hi(x)=0i=1,2,,m

  约束条件将解的范围限定在一个可行域内,此时不一定能找到使 ∇ x f ( x ) = 0 \nabla_{\boldsymbol{x}} f(\boldsymbol{x})=0 xf(x)=0 的点,这时需要在可行域内找到使 f ( x ) f(\boldsymbol{x}) f(x) 取最小值的点,这时常用拉格朗日乘子法,引入拉格朗日乘子 α ∈ R m \boldsymbol{\alpha} \in \mathbb{R}^{m} αRm ,构造拉格朗日函数如下:

L ( x , α ) = f ( x ) + ∑ i = 1 m α i h i ( x ) L(\boldsymbol{x}, \boldsymbol{\alpha})=f(\boldsymbol{x})+\sum_{i=1}^{m} \alpha_{i} h_{i}(\boldsymbol{x}) L(x,α)=f(x)+i=1mαihi(x)

分别令 L ( x , α ) L(\boldsymbol{x}, \boldsymbol{\alpha}) L(x,α) x \boldsymbol{x} x α \boldsymbol{\alpha} α 的梯度为 0 0 0

{ ∇ x L ( x , α ) = 0 ∇ α L ( x , α ) = 0 \left\{\begin{array}{l}{\nabla_{\boldsymbol{x}} L(\boldsymbol{x}, \boldsymbol{\alpha})=0} \\\\ {\nabla_{\boldsymbol{\alpha}} L(\boldsymbol{x}, \boldsymbol{\alpha})=0}\end{array}\right. xL(x,α)=0αL(x,α)=0

将求得 x \boldsymbol{x} x α \boldsymbol{\alpha} α 后将 x \boldsymbol{x} x 带回,即得到 f ( x ) f(\boldsymbol{x}) f(x) h i ( x ) = 0 h_{i}(\boldsymbol{x})=0 hi(x)=0 约束下的最小值。

  下图是带一个等式约束条件的优化问题的示例。

L ( x , α ) = f ( x ) + α h ( x ) L(\boldsymbol{x}, \alpha)=f(\boldsymbol{x})+\alpha h(\boldsymbol{x}) L(x,α)=f(x)+αh(x)

带一个等式约束条件的优化问题

  从图中我们可以看出,只有在 f ( x ) f(\boldsymbol{x}) f(x) h ( x ) h(\boldsymbol{x}) h(x) 相切的点,才有可能得到满足约束的 f ( x ) f(\boldsymbol{x}) f(x) 的极小值,此时 f ( x ) f(\boldsymbol{x}) f(x) h ( x ) h(\boldsymbol{x}) h(x) 的梯度必定是平行的,即

∇ x f ( x ) = λ ∇ x h ( x ) \nabla_{\boldsymbol{x}} f(\boldsymbol{x}) = \lambda \nabla_{\boldsymbol{x}}h(\boldsymbol{x}) xf(x)=λxh(x)

当我们利用拉格朗日乘子法求

∇ x L ( x , α ) = ∇ x f ( x ) + α ∇ x h ( x ) = 0 \nabla_{\boldsymbol{x}}L(\boldsymbol{x}, \alpha)=\nabla_{\boldsymbol{x}} f(\boldsymbol{x}) + \alpha\nabla_{\boldsymbol{x}}h(\boldsymbol{x})=0 xL(x,α)=xf(x)+α

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值