最近在搞点云处理的项目,其中对于拉普拉斯图的相关处理中,使用到了内点法进行优化,于是开始着手学习。
1. 问题描述:(障碍函数法)
内点法用于求解带有约束的优化命题。
f0为优化目标函数,fi{i=1,...,m}(二阶可导的凸函数)以及Ax=b为约束函数。
存在最优解,此时,有这样一对对偶变量和, 满足KKT条件:(这里完全不懂)
不等式使得求解困难,因此障碍函数法(内点法的一种)在原始的目标函数中引入一个障碍函数,或者惩罚函数,来代替约束条件中的不等式约束,这样,命题1就变成了:
函数应该满足的条件,当没有违反约束时,函数值为0,违反约束,函数值为正无穷,如图红色虚线所示:
红色虚线这个函数在某些点上是不可导的,因此并不适用。使用一个对数函数来拟合:
优化问题被转化为:
定义如下对数障碍:
命题变为:
2. Central Path
针对t > 0值,定义x*(t)为相应优化命题的解。那么,central path就是指所有点x*(t), t > 0的集合,其中的点被称为central points。central path上的点满足如下的充分必要条件,首先x*(t)都是严格可行的,即:
我们可以从对偶变量的角度进一步研究上式,给等号两边都乘以1/t, 我们有:
我们发现如果令
(8)
就取得了与2式中的第一个等式基本一致的结果。也就是说,x*(t)能最小化拉格朗日函数
是原命题中的一组可行的对偶变量,其实乐意理解为能使拉格朗日函数到数为0的就是对偶变量
那么此时,对偶命题的目标函数值为:
上述等式为(8)式带入的结果
我们记原命题(1)的目标函数的最小值为p*,那么由优化命题的对偶理论可知
,原命题与对偶命题的差记录为
被称为对偶间隙。
这里给一个算法框架:
Barrier Method:
3. 牛顿法求极值(针对Barrier Method的第一步)
在文章Convex Optimization中,介绍了如何利用牛顿法解Barrier Method的第一步解的问题。
问题描述:
使用二阶泰勒展开,该优化问题转换为:
二阶极小化问题:
定义
为x的Newton step.(我的理解是更新步长,论文原文解释见下),
w为相伴最优对偶变量
给出一个最优条件下的线性逼近:
通过对x的线性拟合替换第二个方程的梯度项,以获得新的方程:
算法: