Contents

  • 泛函 (functional)
  • Calculus of Variations
  • References

泛函 (functional)

  • 泛函 F[y]F[y]F[y] 是函数的函数,即它的输入是函数 y(x)y(x)y(x),输出是实数 FFF。这个输出值取决于一个或多个函数 (输入) 在一整个路径上的积分而非像一般函数一样取决于离散的变量。比如计算两点间的距离,输入是连接两点的曲线,输出是曲线长度。在 ML 的场景下,一个最常见的泛函就是 H[x]H[x]H[x],熵的输入为随机变量 xxx 的概率分布 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(x1,...,xD)y(x_1,...,x_D)y(x1​,...,xD​),泰勒展开式如下 (多项式的一阶偏导与原函数相同)
    类似地,我们可以给泛函添加一个微小扰动 ϵη(x)\epsilon\eta(x)ϵη(x)。通常在变分法中,泛函是一个积分,即
    F[y]=∫GdxF[y]=\int GdxF[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) GGG 可以是函数 y(x)y(x)y(x) 和 y(x)y(x)y(x) 各阶导数的函数 (由于 y(x)y(x)y(x) 是 xxx 的函数,因此 GGG 也是 xxx 的函数)。为了说明方便,我们先姑且设 GGG 是 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)dx=∫[G(y,y′,x)+ϵ∂G∂yη+ϵ∂G∂y′η′+O(ϵ2)]dx=F[y(x)]+ϵ∫[∂G∂yη(x)+∂G∂y′η′(x)]dx+O(ϵ2)\begin{aligned} F[y(x)+\epsilon\eta(x)] &=\int G(y+\epsilon\eta,y'+\epsilon\eta',x)dx \\&=\int \left[G(y,y',x)+\epsilon\frac{\partial G}{\partial y}\eta+\epsilon\frac{\partial G}{\partial y'}\eta'+O(\epsilon^2)\right]dx \\&=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{aligned}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)]dx=∫∂G∂y′dη(x)=η(x)∂G∂y′∣x−∫η(x)d∂G∂y′=−∫ddx(∂G∂y′)η(x)dx\begin{aligned} \int \left[\frac{\partial G}{\partial y'}\eta'(x)\right]dx &=\int \frac{\partial G}{\partial y'}d\eta(x) \\&=\left.\eta(x)\frac{\partial G}{\partial y'}\right|_x-\int\eta(x)d \frac{\partial G}{\partial y'} \\&=-\int\frac{d}{dx}\left(\frac{\partial G}{\partial y'}\right)\eta(x)d x \end{aligned}∫[∂y′∂G​η′(x)]dx​=∫∂y′∂G​dη(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−ddx(∂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] 取极值时,对所有 xxx 必有 δFδy(x)=0\frac{\delta F}{\delta y(x)}=0δy(x)δF​=0,这是因为假如存在 x^\hat xx^ 使得 δ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 xx=x^ 时有 η(x)=0\eta(x)=0η(x)=0。因此,可以推得下式,即欧拉-拉格朗日方程
    ∂G∂y−ddx(∂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例如,对于
    欧拉-拉格朗日方程为
    另外,如果 GGG 只与 yyy 有关,则欧拉-拉格朗日方程为 ∂G∂y(x)=0\frac{\partial G}{\partial y(x)}=0∂y(x)∂G​=0 (对任意 xxx 成立)

变分法示例:求两个固定点之间的最短路径

  • 如上图所示路径是一任意路径,我们取区中一小段微元 dsdsds,可以容易计算微元段的长度为:
    ds≈(dx)2+(dy)2=1+y′2dxds\approx\sqrt{(dx)^2+(dy)^2}=\sqrt{1+y'^2}dxds≈(dx)2+(dy)2​=1+y′2​dx积分得到总的路径长度为:
    F[y]=∫x1x2ds=∫x1x21+y′2dxF[y]=\int_{x_1}^{x_2}ds=\int_{x_1}^{x_2}\sqrt{1+y'^2}dxF[y]=∫x1​x2​​ds=∫x1​x2​​1+y′2​dx上述路径长度即为 yyy 的泛函,其中 G=1+y′2G=\sqrt{1+y'^2}G=1+y′2​,因此有
    ∂G∂y=0ddx(∂G∂y′)=ddx(y′1+y′2)=1+y′2y′′−y′y′1+y′2y′′1+y′2=y′′(1+y′2)32\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′2​y′​)=1+y′21+y′2​y′′−y′1+y′2​y′​y′′​=(1+y′2)23​y′′​代入欧拉-拉格朗日方程可得
    y′′=0y''=0y′′=0这个常微分方程很容易得到 yyy 的通解为 y=c1x+c2y=c_1x+c_2y=c1​x+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】欧拉-拉格朗日方程

变分法 (Calculus of Variations)相关推荐

  1. 变分(Calculus of variations)的概念及运算规则(二)

    文章目录 6. Euler-Lagrange equation 6.6 一般化 6.7 泛化到流形 6.8 具体例子 7. Beltrami's identity 8. Euler–Poisson e ...

  2. 变分(Calculus of variations)的概念及运算规则(一)

    文章目录 1. 回顾:微分的定义 2. 泛函概念 3. 变分概念 4. 变分的运算法则 4.1 变分的基本运算法则 4.2 变分的运算法则详述 4.2.1 定义 4.2.2 特性 4.2.3 确定泛函 ...

  3. Introduction to the calculus of variations

    转自:http://staff.www.ltu.se/~larserik/applmath/chap3en/ Parts: 1. Functions - extreme points. 2. Func ...

  4. 三维空间刚体运动4-4:四元数多点连续解析解插值方法:Spicv

    三维空间刚体运动4-4:四元数多点连续解析解插值方法:Spicv 1. 总述:多点旋转插值的数学方法 2. 插值曲线及其连续性 2.1 插值曲线定义 2.2 插值曲线连续性的讨论 3. 最优插值曲线 ...

  5. 变分贝叶斯推断(Variational Bayes Inference)简介

    通常在研究贝叶斯模型中,很多情况下我们关注的是如何求解后验概率(Posterior),不幸的是,在实际模型中我们很难通过简单的贝叶斯理论求得后验概率的公式解,但是这并不影响我们对贝叶斯模型的爱--既然 ...

  6. 【访客必读 - 指引页】一文囊括主页内所有优质博客

    前言 嘿!彩蛋!感觉有帮助就三连呗! 本人现为一名「机器学习」方向的研究生,本科专业为 CS,期间主要参与 ACM 竞赛,因此主页内的博客一共分为如下四类: 机器学习 ACM 各类算法详细解析 + 题 ...

  7. dsge模型难做吗_请在针对DSGE模型学习的建议性计划--转自人大经济论坛

    我在这篇文章里面只提供一个DSGE模型的建设性路线,因为发现大多数同学都不知道如何入手,再加上学校开课不同,数学储备不同,起点也大不相同.我这篇文章的出发点是从基础入门的同学的观点出发,如果你想要做D ...

  8. 变分法求解最大熵时变拉格朗日对偶

    变分法求解最大熵时变拉格朗日对偶 一般拉格朗日对偶 min⁡xf0(x)\min\limits_{x} f_0(x)xmin​f0​(x) s.t.fi(x)⩽0\mathrm{s.t.} ~ f_i ...

  9. 数学狂想曲(十一)——高阶统计, 最速降线, 泛函 变分

    高阶统计 Cumulants(续) 在介绍Cumulants之前,我们首先看一下Moment-generating function: MX(t):=E⁡[etX],t∈RM_X(t) := \ope ...

  10. Python+Opencv实现无参数、全自动的Canny算法

    目录 一.什么是Canny边缘检测算法? 二.最优边缘准则是什么? 三.Canny算法实现步骤 四.Canny算法在使用中的问题? 五.无参数.自动化Canny算法代码实现 六.改进算法效果展示 七. ...

最新文章

  1. python中pop函数_Python中的Pop函数
  2. 使用TortoiseGit,设置ssh方式连接git仓库。
  3. sencha touch tabsidebar 源码扩展
  4. 规则引擎选型及应用 邴越 2017-04-27 16:31:17 浏览614 评论0 HTTPS 模块 配置 string exception void input 规则引擎 摘要: 规则引擎具体执
  5. CentOS下gitlab迁移和升级
  6. Netty中有哪些自带的ChannelHandler?
  7. UIScrollView 和 UICollectionView 分页效果
  8. eXtremeComponents文档
  9. 佰马DTU连接远程服务器操作教程
  10. 027. 从从门槛和可复制性聊聊生意模式
  11. 25匹赛马得前三名问题求解
  12. Codeforces Beta Round #94 (Div. 1 Only)A. Statues
  13. echarts:柱状图去掉网格线
  14. 碰撞、子弹路径、参考
  15. LightWave 3D 2019 for Mac(三维动画制作软件)
  16. 为什么要找一个不提倡加班的工作?是我我们太懒,不求上进吗?
  17. 黑人太管用计算机来打出来的音乐,求欧美黑人饶舌歌曲,节奏感要很强劲的那种。。。 (在百度上搜了,对味的只有少数)...
  18. centos下安装cutycapt
  19. 网络监控、上网行为管理产品大解析。
  20. 信息安全从业人员证书——CISP(附培训课件资料)

热门文章

  1. Android 实现搜索历史(1)
  2. 年末总结(androidbug)
  3. 如何设计三极管控制继电器电路
  4. 清除 DNS 缓存( 附全平台详细教程 )
  5. 解决windows文件名过长无法删除的问题
  6. 使用JSONObject比较Java复杂对象
  7. 软件测试好学吗?发展前景如何?
  8. 计算机未来的发展趋势和现状,计算机发展现状跟未来发展趋势.docx
  9. W806串口管脚复用
  10. Java线程池ThreadPoolExecutor详解(一篇就够了)