浅谈机器学习中应用的变分法

变分法

可以将函数\(y(x)\)看成一个对于任何输入\(x\),返回一个输出值\(y\)的运算符(operator)。用相同的方式可以定义一个泛函\(F[y]\),将其看成一个运算符(operator)。(输入是一个函数\(y(x)\),输出值是\(F\))

引子

在机器学习领域,泛函主要应用在熵中,比如概率\(p(x)\)的熵可以写成\(H[p]\)。变分法的目的是找到一个函数\(y(x)\)使泛函\(F[y]\)取最大值或最小值。
对于一元函数\(y(x)\)求导。可根据如下公式$$y(x+\varepsilon)=y(x)+\dfrac {dy}{dx}\varepsilon+O(\varepsilon ^2)$$令\(\varepsilon \rightarrow 0\)。同理,对于多元函数\(y(x_{1},\ldots ,x_{D})\)的偏导数根据如下公式定义$$y(x_{1}+\varepsilon_{1},\ldots ,x_{D}+\varepsilon_{D})=y(x_{1},\ldots ,x_{D})+\sum_{i=1}^{D}\dfrac {\partial y}{\partial x_{i}}\varepsilon_{i}+O(\varepsilon^2)$$同样的思想,用于泛函求导。类比上面的公式可写出如下公式$$F[y(x)+\varepsilon\eta (x)]=F[y(x)]+\varepsilon\int\dfrac {\partial F}{\partial y\left(x\right)}\eta (x)dx+O(\varepsilon^2)$$其中\(\eta (x)\)是\(x\)任意的函数。我们的目的是找到泛函\(F[y(x)]\)的极值;换句话说就是,当\(F[y]\)取极值时候,函数\(y(x)\)的微小变化(\(y(x)+\varepsilon\eta (x)\))不会使得\(F[y]\)的值发生改变。因此根据上面的公式,当泛函\(F[y(x)]\)取极值时,有下面的公式$$\int\dfrac {\partial F}{\partial y(x)}\eta (x)dx=0$$由于此公式必须对任意的\(\eta (x)\)都成立,因此得到泛函的导数\(\dfrac {\partial F}{\partial y(x)}=0\)(此时的\(y(x)\)使\(F[y]\)取极值)。

变分法浅探究

考虑如下形式定义的泛函$$F[y]=\int G(y(x),y’(x),x)dx$$其中假设\(y(x)\)的值在积分边界处是固定的。考虑函数\(y(x)\)的变化,得到如下公式$$F[y(x)+\varepsilon \eta (x)]=F[y(x)]+\varepsilon \int \Big\{\dfrac {\partial G}{\partial y}\eta (x)+\dfrac {\partial G}{\partial y’}\eta’(x)\Big\}dx+O(\varepsilon^2)$$

  • 杂谈:对于上面公式的非正式说明

    根据定义$$F[y(x)+\varepsilon \eta (x)]=\int G[y(x)+\varepsilon \eta (x),y’(x)+\varepsilon \eta’(x),x]dx$$可以将函数\(G\)看成多元函数,所以可以得到“多元函数\(G\)”的偏导数为(这样的写法不对,但为了和引言中多元函数展开公式相对应,就这么写了,忽略系数\(\varepsilon\))$$\dfrac {\partial G}{\partial y}\eta (x)+\dfrac {\partial G}{\partial y’}\eta’(x)$$我们知道,对于$$y(x)=\int f(x)dx$$有$$y’(x)=\int f’(x)dx$$所以可得到公式$$F[y(x)+\varepsilon \eta (x)]=F[y(x)]+\varepsilon \int \Big\{\dfrac {\partial G}{\partial y}\eta (x)+\dfrac {\partial G}{\partial y’}\eta’(x)\Big\}dx+O(\varepsilon^2)$$

对上面积分项中第二项利用分部积分可得$$\int\dfrac {\partial G}{\partial y’}\eta’(x)dx=\dfrac {\partial G}{\partial y’}\eta (x)\Big |-\int\dfrac {d}{dx}\Big(\dfrac {\partial G}{\partial y’}\Big)\eta (x)dx$$由于函数\(y(x)\)在积分边界处是固定的,所以有$$\dfrac {\partial G}{\partial y’}\eta (x)\Big |=0$$

  • 杂谈:关于函数\(y(x)\)在积分边界处是固定的,上式等于\(0\)

    由于函数\(y(x)\)在积分边界处是固定的,也就是说在积分边界处函数\(y(x)\)不会变化,因此在积分边界处有\(y(x)=y(x)+\varepsilon\eta (x)\),进而可以得到在积分边界处函数\(\eta (x)\)必须消失。

因此可以得到如下公式$$F[y(x)+\varepsilon \eta (x)]=F[y(x)]+\varepsilon \int\Big\{\dfrac {\partial G}{\partial y}-\dfrac {d}{dx}\Big(\dfrac {\partial G}{\partial y’}\Big)\Big\}\eta (x)dx+O(\varepsilon^2)$$根据以上分析,泛函在极值处导数为\(0\)可以得到如下公式$$\dfrac {\partial G}{\partial y}-\dfrac {d}{dx}\Big(\dfrac {\partial G}{\partial y’}\Big)=0$$如果泛函的定义只是对函数\(G(y,x)\)的积分,只需要令\(\dfrac {\partial G}{\partial y}=0\)即可。

结束
参考:PRML