[原创]理解泛函的概念和能量…

来源:互联网 发布:c语言终端分屏 编辑:程序博客网 时间:2024/05/16 01:20
原文地址:[原创]理解泛函的概念和能量泛函的梯度下降流作者:小腹黑zju
对本篇文章进行转载需说明出处:

1. 泛函的概念
       函数y=f(x)是一个变量x∈R到y∈R的一个映射,而泛函是表示一个空间集合u∈RN到R的映射。说起来比较抽象,以一个例子说明:可以想象一个三维空间内有无数条不同的曲线,这些曲线组成了空间集合u,每一条曲线表示该集合u的一个元素(u类似于函数中的x变量,具体一条曲线对应x变量的某个具体值),这些曲线在实数R上都有一个值与之对应,当曲线变化时,对应的值也相应发生变化。
       值得一提的是,由于u集合中的每条曲线对应一个值,该值实际上是表征了具体某条直线的特性(比如曲线的总长),这是一条曲线的整体对应了某个值,所以当具体一条曲线上的某个变量在变动时,该曲线对应的值是不变的,也就是说曲线上的变量变动对泛函无意义,而是整条曲线作为变量(比如一条曲线变成了集合u中的另一条曲线)对泛函值的改变才有贡献。这也就是为什么称泛函是“函数的函数”的原因(第一个函数表示u集合中的各条曲线,第二个函数表示曲线集合到实数R的映射)。
 
2.泛函的梯度下降流

  为了更好地理解泛函的梯度下降流,首先来看函数的导数。什么是函数的导数?

      函数的导数其实就是函数的增加方向。比如u=x2+y2-9的函数,用三维图表达该函数如下图。u的导数u'=2x+2y,指示的是u值的增加方向,这里的x,y表示向量,亦可写成u'=(2x,2y)。

[转载][原创]理解泛函的概念和能量泛函的梯度下降流

 
      类似于函数导数的概念,泛函的一阶变分(即类似于一阶导数)指示的是泛函的增加方向。因此一阶变分的负值就是该泛函的梯度下降流。
       比如一个能量E(u)=∫f(x, u(x),▽u(x))dx关于u的一阶变分E'(u)的负值,即-E'(u)就是该能量泛函的梯度下降流,也就是说函数集u随着该方向行走,其对应的能量会逐步减少。例如u有其中一个函数u(i)对应能量E(i),u(i+1)=u(i)+(-E'(u))△t表示-E'(u)的方向走了一个步长△t后沿着所对应的能量E(i+1)du/dt=[u(i+1)-u(i)]/△t=-E'(u)=-dE(u)/du,这个就是我们常见图像处理中的能量泛函下降流(流的意思就是从一个u(i)→u(i+1)的连续变化方向)。