泛函 (functional)
- 泛函
F
[
y
]
F[y]
F[y] 是函数的函数,即它的输入是函数
y
(
x
)
y(x)
y(x),输出是实数
F
F
F。这个输出值取决于一个或多个函数 (输入) 在一整个路径上的积分而非像一般函数一样取决于离散的变量。比如计算两点间的距离,输入是连接两点的曲线,输出是曲线长度。在 ML 的场景下,一个最常见的泛函就是熵
H
[
x
]
H[x]
H[x],熵的输入为随机变量
x
x
x 的概率分布
p
(
x
)
p(x)
p(x),输出为实数,因此也可被写作
H
[
p
]
H[p]
H[p]
Calculus of Variations
- 变分法就是找到一个函数
y
(
x
)
y(x)
y(x) 使得
F
[
y
]
F[y]
F[y] 最大/最小。例如找到两点间的最短路径为直线,使得微分熵最大的概率分布是正态分布
欧拉-拉格朗日方程
- (1) 对于函数
y
(
x
)
y(x)
y(x),添加一个微小扰动
ϵ
→
0
\epsilon\rightarrow0
ϵ→0 后用泰勒展开可得下式 (多项式的一阶导与原函数相同)
对于多变量函数
y
(
x
1
,
.
.
.
,
x
D
)
y(x_1,…,x_D)
y(x1,…,xD),泰勒展开式如下 (多项式的一阶偏导与原函数相同)
类似地,我们可以给泛函添加一个微小扰动
ϵ
η
(
x
)
\epsilon\eta(x)
ϵη(x)。通常在变分法中,泛函是一个积分,即
F
[
y
]
=
∫
G
d
x
F[y]=\int Gdx
F[y]=∫Gdx因此给泛函添加一个微小扰动就相当于给积分路径上的无数个变量都添加了扰动,将多变量函数的泰勒展开进行推广可以得到泛函的泰勒展开式:
其中,
δ
F
/
δ
y
(
x
)
\delta F/\delta y(x)
δF/δy(x) 为泛函
F
[
y
]
F[y]
F[y] 对
y
(
x
)
y(x)
y(x) 的导数 - (2)
G
G
G 可以是函数
y
(
x
)
y(x)
y(x) 和
y
(
x
)
y(x)
y(x) 各阶导数的函数 (由于
y
(
x
)
y(x)
y(x) 是
x
x
x 的函数,因此
G
G
G 也是
x
x
x 的函数)。为了说明方便,我们先姑且设
G
G
G 是
y
(
x
)
y(x)
y(x) 和
y
′
(
x
)
y’(x)
y′(x) 的函数,所以我们可以将泛函写成:
给
F
[
y
]
F[y]
F[y] 一个扰动并用泰勒公式展开可以得到
F
[
y
(
x
)
+
ϵ
η
(
x
)
]
=
∫
G
(
y
+
ϵ
η
,
y
′
+
ϵ
η
′
,
x
)
d
x
=
∫
[
G
(
y
,
y
′
,
x
)
+
ϵ
∂
G
∂
y
η
+
ϵ
∂
G
∂
y
′
η
′
+
O
(
ϵ
2
)
]
d
x
=
F
[
y
(
x
)
]
+
ϵ
∫
[
∂
G
∂
y
η
(
x
)
+
∂
G
∂
y
′
η
′
(
x
)
]
d
x
+
O
(
ϵ
2
)
F[y(x)+ϵη(x)]=∫G(y+ϵη,y′+ϵη′,x)dx=∫[G(y,y′,x)+ϵ∂y∂Gη+ϵ∂y′∂Gη′+O(ϵ2)]dx=F[y(x)]+ϵ∫[∂y∂Gη(x)+∂y′∂Gη′(x)]dx+O(ϵ2)将第 2 项分部积分可以得到
∫
[
∂
G
∂
y
′
η
′
(
x
)
]
d
x
=
∫
∂
G
∂
y
′
d
η
(
x
)
=
η
(
x
)
∂
G
∂
y
′
∣
x
−
∫
η
(
x
)
d
∂
G
∂
y
′
=
−
∫
d
d
x
(
∂
G
∂
y
′
)
η
(
x
)
d
x
∫[∂y′∂Gη′(x)]dx=∫∂y′∂Gdη(x)=η(x)∂y′∂G∣
∣x−∫η(x)d∂y′∂G=−∫dxd(∂y′∂G)η(x)dx其中最后一个等式是因为
y
(
x
)
y(x)
y(x) 的值在积分边界上是固定的,例如求两点间距离时,曲线在两个端点处的取值必须相同,因此扰动
η
(
x
)
\eta(x)
η(x) 在积分边界上值为 0,
F
[
y
(
x
)
+
ϵ
η
(
x
)
]
F[y(x)+\epsilon\eta(x)]
F[y(x)+ϵη(x)] 可写作下式: - (3) 对比 (1) (2) 中推得的式子可知
δ
F
δ
y
(
x
)
=
∂
G
∂
y
−
d
d
x
(
∂
G
∂
y
′
)
\frac{\delta F}{\delta y(x)}=\frac{\partial G}{\partial y}-\frac{d}{dx}\left(\frac{\partial G}{\partial y’}\right)
δy(x)δF=∂y∂G−dxd(∂y′∂G)当
y
(
x
)
y(x)
y(x) 使得泛函
F
[
y
]
F[y]
F[y] 取极值时,对所有
x
x
x 必有
δ
F
δ
y
(
x
)
=
0
\frac{\delta F}{\delta y(x)}=0
δy(x)δF=0,这是因为假如存在
x
^
\hat x
x^ 使得
δ
F
δ
y
(
x
^
)
≠
0
\frac{\delta F}{\delta y(\hat x)}\neq0
δy(x^)δF=0,那么就可以取一函数
η
(
x
)
\eta(x)
η(x) 使得
ϵ
η
(
x
^
)
δ
F
δ
y
(
x
^
)
>
0
\epsilon\eta(\hat x)\frac{\delta F}{\delta y(\hat x)}>0
ϵη(x^)δy(x^)δF>0 且当
x
≠
x
^
x\neq\hat x
x=x^ 时有
η
(
x
)
=
0
\eta(x)=0
η(x)=0。因此,可以推得下式,即欧拉-拉格朗日方程:
∂
G
∂
y
−
d
d
x
(
∂
G
∂
y
′
)
=
0
\frac{\partial G}{\partial y}-\frac{d}{dx}\left(\frac{\partial G}{\partial y’}\right)=0
∂y∂G−dxd(∂y′∂G)=0例如,对于
欧拉-拉格朗日方程为
另外,如果
G
G
G 只与
y
y
y 有关,则欧拉-拉格朗日方程为
∂
G
∂
y
(
x
)
=
0
\frac{\partial G}{\partial y(x)}=0
∂y(x)∂G=0 (对任意
x
x
x 成立)
变分法示例:求两个固定点之间的最短路径
- 如上图所示路径是一任意路径,我们取区中一小段微元
d
s
ds
ds,可以容易计算微元段的长度为:
d
s
≈
(
d
x
)
2
+
(
d
y
)
2
=
1
+
y
′
2
d
x
ds\approx\sqrt{(dx)^2+(dy)^2}=\sqrt{1+y’^2}dx
ds≈(dx)2+(dy)2=1+y′2dx积分得到总的路径长度为:
F
[
y
]
=
∫
x
1
x
2
d
s
=
∫
x
1
x
2
1
+
y
′
2
d
x
F[y]=\int_{x_1}^{x_2}ds=\int_{x_1}^{x_2}\sqrt{1+y’^2}dx
F[y]=∫x1x2ds=∫x1x21+y′2dx上述路径长度即为
y
y
y 的泛函,其中
G
=
1
+
y
′
2
G=\sqrt{1+y’^2}
G=1+y′2,因此有
∂
G
∂
y
=
0
d
d
x
(
∂
G
∂
y
′
)
=
d
d
x
(
y
′
1
+
y
′
2
)
=
1
+
y
′
2
y
′
′
−
y
′
y
′
1
+
y
′
2
y
′
′
1
+
y
′
2
=
y
′
′
(
1
+
y
′
2
)
3
2
\frac{\partial G}{\partial y}=0\ \frac{d}{dx}\left(\frac{\partial G}{\partial y’}\right)=\frac{d}{dx}\left(\frac{y’}{\sqrt{1+y’^2}}\right)=\frac{\sqrt{1+y’^2}y’’-y’\frac{y’}{\sqrt{1+y’^2}}y’’}{{1+y’^2}}=\frac{y’’}{{(1+y’^2)^{\frac{3}{2}}}}
∂y∂G=0dxd(∂y′∂G)=dxd(1+y′2y′)=1+y′21+y′2y′′−y′1+y′2y′y′′=(1+y′2)23y′′代入欧拉-拉格朗日方程可得
y
′
′
=
0
y’’=0
y′′=0这个常微分方程很容易得到
y
y
y 的通解为
y
=
c
1
x
+
c
2
y=c_1x+c_2
y=c1x+c2. 这也确实说明了使得同一平面上两点之间距离最小的途径是一条线段
References
- Bishop, Christopher M., and Nasser M. Nasrabadi. Pattern recognition and machine learning. Vol. 4. No. 4. New York: springer, 2006.
- 【PRML】【模式识别和机器学习】【从零开始的公式推导】变分法
- 变分法简介 Part 1.(Calculus of Variations)
- 【变分计算1】欧拉-拉格朗日方程
评论(0)
您还未登录,请登录后发表或查看评论