# 附录 D 变分法

函数 $y(x)$ 可以看成一种操作符，即对于任意 $x$，返回一个输出 $y$。在这种情况下，我们可以定义泛函 $F[y]$：接受一个函数 $y(x)$，返回输出值 $F$。

机器学习中一个常见的例子熵 $H[x]$，因为对于任何一个概率分布 $p(x)$，它返回了 $x$ 在该分布下的熵，因此 $p(x)$ 的熵也可以写作 $H[p]$。

微积分中一个常见的问题是找到一个 $x$ 最大（小）化一个函数 $y(x)$，而变分法要解决的问题是找到一个 $y(x)$ 最大（小）化一个泛函 $F[y]$。

例如变分法可以解释为什么两点之间直线最短，或者最大熵分布是高斯分布。

传统的微积分给出：

$$
y(x+\epsilon) = y(x) + \frac{dy}{dx} \epsilon + O(\epsilon^2)
$$

以及

$$
y(x_1+\epsilon_1, \dots, x_D+\epsilon_D) = y(x_1, \dots, x_D) + \sum_{i=1}^D \frac{\partial y}{\partial x} \epsilon_i + O(\epsilon^2)
$$

类似的，泛函求导时，我们考虑一个 $y(x)$ 的小变化 $\epsilon\eta(x)$，（$\eta(x)$ 是关于 $x$ 的任意函数），记泛函 $F[y]$ 对函数 $y(x)$ 的导数为 $\frac{\delta F[y]}{\delta y(x)}$，定义：

$$
F[y(x)+\epsilon\eta(x)] = F[y(x)] + \epsilon \int \frac{\delta F[y]}{\delta y(x)} \eta(x) dx + O(\epsilon^2)
$$

泛函达到驻点的条件为，对任意 $\eta(x)$，有：

$$
\int \frac{\delta F[y]}{\delta y(x)} \eta(x) dx = 0
$$

要对任意 $\eta(x)$ 成立，$\frac{\delta F[y]}{\delta y(x)}$ 必须为 0。

考虑这样一个泛函：

$$
F[y] = \int G(y(x), y'(x), x) dx
$$

其中，$y'(x)$ 是 $y(x)$ 关于 $x$ 的导数，**$y(x)$ 在积分区间的边界的值是固定的**。考虑 $y(x)$ 的变分，展开之后有：

$$
\begin{align}
F[y(x)+\epsilon\eta(x)] 
& = \int G(y+\epsilon\eta, y'+\epsilon\eta', x) dx \\
& = \int G(y, y', x) dx + \epsilon \int 
\left\{ \frac{\partial G}{\partial y} \eta(x) + 
\frac{\partial G}{\partial y'} \eta'(x)\right\} dx + O(\epsilon^2) \\
& = F[y(x)] + \epsilon \int 
\left\{ \frac{\partial G}{\partial y} \eta(x) + 
\frac{\partial G}{\partial y'} \eta'(x)\right\} dx + O(\epsilon^2) \\
\end{align}
$$

为了得到定义的形式，对积分的第二部分进行分部积分：

$$
\int \frac{\partial G}{\partial y'} \eta'(x) dx = \left.\frac{\partial G}{\partial y'} \eta(x) \right|_x - \int \frac{d}{dx} \left(\frac{\partial G}{\partial y'}\right) \eta(x) dx
$$

考虑到 $y(x)$ 在边界上的值是固定的，因此在边界上 $\eta(x)$ 必须为 0，于是我们有

$$
F[y(x)+\epsilon\eta(x)] 
= F[y(x)] + \epsilon \int 
\left\{ \frac{\partial G}{\partial y} - 
\frac{d}{dx} \left(\frac{\partial G}{\partial y'}\right) \right\}\eta(x) dx + O(\epsilon^2) \\
$$

令变分为 0，我们有

$$
\frac{\partial G}{\partial y} - 
\frac{d}{dx} \left(\frac{\partial G}{\partial y'}\right) = 0
$$

这就是著名的欧拉-拉格朗日方程（`Euler-Lagrange equation`）。

例如 $G=y(x)^2+\left(y'(x)\right)^2$，欧拉-拉格朗日方程为：

$$
y(x) - \frac{d^2y}{dx^2} = 0
$$

利用边界条件，我们可以解出这个方程。

在很多问题中，如果我们的被积函数为 $G(y,x)$，那么驻点的要求为

$$
\frac{\partial G}{\partial y(x)}= 0
$$

279340e721b80d3cb798fd640038ce58e93aeadf
ipynb
Jupyter Notebook
Pattern-Recognition-and-Machine-Learning/Appendix/Appendix-D-Calculus-of-Variations.ipynb
binzhihao/py-ai-notebook
31560c7cbd3d6d123e310cda4080d40e5e2b23ac
MIT
2018-05-30T13:34:14.000Z
2019-01-21T07:31:14.000Z
Pattern-Recognition-and-Machine-Learning/Appendix/Appendix-D-Calculus-of-Variations.ipynb
binzhihao/py-ai-notebook
31560c7cbd3d6d123e310cda4080d40e5e2b23ac
MIT
Pattern-Recognition-and-Machine-Learning/Appendix/Appendix-D-Calculus-of-Variations.ipynb
binzhihao/py-ai-notebook
31560c7cbd3d6d123e310cda4080d40e5e2b23ac
MIT
Qwen/Qwen-72B
1. YES
2. YES