今天碰到一个问题,
可以利用拉格朗日乘子法对这个函数的最小值求解, 构造
然后让F对Pi和lambda求偏导等于零,就可以得到Pi=1/N的结果了。
那么拉格朗日乘子法到底是什么意义呢?
第一,从形式上看,构造出了一个更高维的函数,把原来的约束优化问题,转化为高维度的无约束的最优化问题。约束项在去到最优解时等于0,所以约束条件满足了。
但是为什么让这个高维度函数最优时,目标函数是约束条件下最优呢?
有一个非常直观的几何解释。
从梯度上来看,目标函数的梯度一定在约束平面上没有分量。为啥呢?你想哈,
如果目标函数在约束面上有分量了,那朝着这个分量走一小步,不就可以取到更小/更大的值了吗?所以我们把约束平面的法向量给求出来,就是对约束条件求导。
有人问了,为啥对约束条件求导就是法向量呢?其实你把约束条件g(x,y) = c想成一个函数f取特定值, f=g(x, y), 那么f总有等高线吧,你求一个梯度不就是下降最快的方向,垂直等高线的吗,所以梯度就是法向量。
ok. 换一种说话,目标函数梯度和法向量共线, 就是和目标函数和约束函数的登高面相切,等等的说法,都是可以互换的。那么另我们构造的高维函数梯度对为0,就可以满足这样的条件。
观察这个构造完了的大函数,在最优化时加了一项lambda乘以约束项,如果把lambda想象成一个固定值,那么F函数相比目标函数多了一项,表示了约束条件对最优问题的影响。
-1/2(log(x)+log(y)):
lambda是 1, 所以F = -1/2(log(x)+log(y)) + 1 (x + y -1)
如图,F在[0.5, 0.5]的地方形成了一个最小值。
lambda为正说明目标函数和约束函数的两个梯度相反。反之梯度方向相同。
另外,拉格朗日乘子法在不等式的情况也非常有用,kkt条件是解决SVM的关键。而谷歌最近的文章巧妙的把不等式中的松弛变量引入VAE中对于隐变量的约束,直接对应了语音合成中情感表现力因子。用数学量化描述情感,可以说非常具有启发性了。我们下一次再仔细看看。