机器学习中最优化问题

主要有三种:

  • 拉格朗日乘子法
  • KKT算法
  • 对偶问题

最优化问题:

min     f(x)

s.t. hi(x) = 0 i = 1,2,3,4,5,...,m

      gj(x) <= 0 j  = 1,2,3,4,5,...,m

  • 对于无约束条件,我们对变量求导,并让导数为0,求得极值
  • 对于等式约束条件,我们使用拉格朗日乘子法
  • 对于既有等式约束又有不等式约束条件,我们使用KKT条件

只包含等式约束的拉格朗日乘子法

目标函数f(x)的约束条件为:hk(x), k=1,2,3,...,m

所求解问题建模为:min f(x),s.t. hk(x)=0, k=1,2,3,...,m

我们需要构建拉格朗日函数,将带约束问题转换为无约束优化问题

转换方式:

机器学习中最优化问题_第1张图片

                              图1 f(x)与h(x) 函数图像 

图1为f(x)与h(x)图像,要求f(x)在h(x)约束下的极值点,只有两者图像相切的时候才有极值点,如上图,在相切点处,h(x)与f(x)的梯度共线。则有:

\bigtriangledown f(x) = \lambda\bigtriangledown h(x)

于是我们将原始问题转换为:

L(\lambda ,x) = f(x) +\sum \lambda k hk(x),k=1,2,3,...,m

上式中k为下标,L:为拉格朗日函数,\lambda为拉格朗日乘子。我们对拉格朗日函数对x求偏导数,令导数为0,求解极值。

KKT算法 

求解最优化问题类型:约束条件中既有等式又有不等式。我们对这样问题建模如图2。

机器学习中最优化问题_第2张图片

                                                      图2 含有等式约束和不等式约束问题建模

我们将图2问题利用KKT条件来构建拉格朗日函数,如图3,\lambda:为拉格朗日乘子.\mu:为KKT乘子。至此,我们将约束问题转换为无约束问题,对其求导,即可求出极值。

注意:KKT乘子是大于0的。

机器学习中最优化问题_第3张图片

                                                           图3 利用KKT条件构建拉格朗日函数

机器学习中最优化问题_第4张图片

                                                               图4 求出极值点满足 KKT条件

对偶问题

1. 原问题的等价表示

机器学习中最优化问题_第5张图片

2. 证明等价:

机器学习中最优化问题_第6张图片

3.对偶问题定义 

机器学习中最优化问题_第7张图片

 机器学习中最优化问题_第8张图片

4.对偶问题的证明 : 

机器学习中最优化问题_第9张图片

你可能感兴趣的:(最优化问题,机器学习)