透彻解析拉格朗日乘数法

文摘   2024-09-15 08:02   荷兰  

拉格朗日乘数法是在推导主成分分析时重要的数学技巧,今天这篇文章就来总结一下我对拉格朗日乘数法的学习。


我们先来一个简单的例子,假如x是一个长度为D的向量,其中包含了x1,…,xD个随机变量。现在又有一函数f(x)我们想知道当x12+…+ xD2=1,也就是xTx=1时,f(x)的最大值是多少

假如没有这个约束条件,那么我们可以能会选择对f(x)求一阶导使其等于0,然后我们这些拐点用二阶导验证其是否为Local maximum,最后比较得出Global maximum

这个方法有两个问题,第一个最直接的问题就是没有考虑到约束条件xTx=1;其次,如果f(x)关于x单调递增,那么直接求导将没有办法帮助我们找到需要的结果。

所以,为了找到满足约束条件的前提下的f(x)的最大值,我们需要使用拉格朗日乘数法


在具体讲解拉格朗日乘数法如何解决本例子之前,我们先来看一个更普适性的例子,假如我们有以下函数:

【函数1】

其中λ为我们新引入的变量。大家可以想象,如果这时我们想要寻找该函数的极值,需要使两个偏导都等于0

关于λ的偏导是十分容易的,它就等于g(x),也就是说对于所有满足g(x)=0x,其中有一个x能够使整个函数1取到最大值。而由于g(x)始终为0,所以这个最大值也是g(x)=0时,f(x)的最大值

上面的逻辑有一些tricky,大家可以多读几遍消化一下。总得来说,我们通过在f(x)后面添加一个新项,保证我们求出来了g(x)=0时,f(x)的最大值。大家肯定发现了这个结果与我们前述情境的目标完美契合(我们想知道当x12+…+ xD2=1,也就是xTx=1时,f(x)的最大值是多少)。我们可以令g(x)=1-xTx,那么遵照前述的方法,我们就可以计算出1-xTx=0,也就是xTx=1时,f(x)的最大值

这一方法就被称为拉格朗日乘数法(Lagrange Multiplier Method),而其中新加项的λ即为相应的拉格朗日乘数(Lagrange Multiplier)。


我们来将上述方法运用到具体的实例中,假如:

那么我们可以运用拉格朗日乘数法,添加一项新项:

对其关于x求导:

将结果等于0即可得出:

所以,通过拉格朗日乘数法,我们发现了所有矩阵S的特征向量能够使f(x)=xTSx达到极值。那么我们如何判断哪个特征向量能够使其取到最大值呢?我们可以在方程两边左乘xT,即可还原出f(x)

所以,我们只需要选取最大特征根对应的特征向量,即可使f(x)达到最大值。


上面都是关于拉格朗日乘数法的讲解和应用,实际上,如果掌握了这一方法,PCA的推导也将变得十分简单。如果你觉得你还是对拉格朗日乘数法一知半解,我可以在提供一幅维基百科上的插图辅助理解:

如图,我们可以把虚线看作f(x, y)的“等高线”,也就是在位于同一条虚线上,所有x, y的取值组合都会导向相同的f(x, y)值。同时,这个f(x, y)是一个“盆地”,也就是中间低,两边高的架构。而拉格朗日乘数法在做的,就是x, y满足某种关系g(x, y)=c时,寻找满足条件下的f(x, y)的最大or最小值(这里的图示似乎是一个寻找最小值的例子)。

如上,就是有关拉格朗日乘数法的全部内容,如果你觉得本文章对你有帮助,也请不要忘记给个二连赞和在看,在看一定要点啊!)。

PsychoStatisticia
一个统计学研究者的个人天地
 最新文章