这里面还需要说明一下凸函数的几条性质:
1.对于定义域上可微函数f,若f得导数单调不减,则f是凸函数;
2.如果凸函数存在极小值,则一定是全局极小值,也即凸函数的局部最小点就是全局最小点;
3.严格凸函数的全局最小点唯一;
4.如果满足约束条件的可行域是有界的,凸函数优化有解。
一般,我们定义的目标函数都是凸函数,再利用拉格朗日对偶性求解全局最优解。正是由于凸函数满足以上性质,便于我们求解问题,而不用考虑复杂情况。
引入一般化的拉格朗日公式:
下面的步骤将拉格朗日函数和最初的函数f等价起来:
这里的P代表primal,表示原始问题。假设给定某个w,如果w违反原始问题的约束条件,即或者,那么我们总是可以调整和来使得有最大值为正无穷。而只有g和h都满足约束时,为f(w)。总结下来就是:
看到了没,这样就把拉格朗日函数和f联系在了一起。
于是我们原来要求的min f(w)就转化成求了。
令=,现在我们的任务就是求解,如果直接求解这个问题会很复杂,因此一般不会直接求解,而是引入对偶问题,利用对偶问题的解作为原始问题的解。
原始问题向对偶问题的转换过程如下:
D的意思是对偶(dual)。
将拉格朗日函数转换成两个参数的a和b的函数,并在此基础上求解最大值:
我们把这个问题称为原问题的对偶问题,从形式上看相对于原问题对偶问题只是更换了min和max的顺序,实际上替换前后两者的值并不一定相同。在满足一些条件下,对偶问题的解和原始问题的解相同,用表示对偶问题的值:
原始问题和对偶问题的关系:
原始问题的值和对偶问题的值满足公式:d*<=p*,如果等式成立,则它们的解是相同的。
1.假设函数f和g是凸函数,h是仿射函数,并且假定不等式约束g是严格可行的,也即存在w,满足所有的不等式约束,则原始问题和对偶问题有解,并且解相同。其解相同的充要条件是解满足KKT条件: