漫步最优化二——基本优化问题

来源:互联网 发布:攻城狮和程序员打油诗 编辑:程序博客网 时间:2024/06/02 04:14








——

在进行优化之前,手头的问题首先得有合适的形式,性能标准F必须写成n个参数x1,x2,,xn的形式

F=f(x1,x2,,xn)

F是个标量,它可以是产品的成本或者系统期望性能与实际性能之差,变量x1,x2,,xn是影响产品的成本或者实际性能的参数,他们可能是独立变量(像时间)或者可调节的控制参数。

大部分优化问题是通过某种方式调节变量x1,x2,,xn来最小化F,从数学角度来描述就是

minF=f(x1,x2,,xn)

F通常称为目标函数或代价函数。

目标函数可能依赖大量的变量,可能是100个或更多。为了简化,我们会经常使用矩阵符号,如果x表示元素为x1,x2,,xn的列向量,转置xT表示行向量

xT=[x1 x2  xn]

使用这种符号,等式(1)可以写成

minF=f(x) for xEn

其中En表示n维欧几里德空间。

许多情况中,优化问题是寻找目标函数的最大值,因为

max[f(x)]=min[f(x)]

F的最大值通过求出F的最小值,然后再改变符号得到,因此不失一般性,我们以后专注于最小化。

在许多应用中,许多个不同的x函数需要同时进行优化,例如如果要求解非线性方程

fi(x)=0 for i=1,2,,m

,那么x就应该令所有的fi(x)同时为零。对这样的问题,优化函数可以表示成向量

F(x)=[f1(x) f2(x)  fm(x)]T

通过求出使F(x)=0的点x=x就可解出答案。然而许多情况下这样的x不存在,但是可以取近似解例如F(x)0

当要优化的x函数也是一个连续独立参数的函数时,同样会产生相似的问题,这时候我们感兴趣的函数可以对独立参数进行采样得到,可以构建向量形式为

F(x)=[f(x,t1) f(x,t2)  f(x,tm)]T

其中t是独立参数,接下里如果我们令

fi(x)f(x,ti)

那么我们可以写成

F(x)=[f1(x) f2(x) fm(x)]T

这种问题的解通过同时优化函数fi(x),i=1,2,,m即可得到,这样的解自然是近似解,因为样本点之间的f(x,t)没有考虑。但不管怎样,通过采集大量的样本点,在实际中可以得到合理的解,下面举例说明。

1n阶控制系统的阶梯响应y(x,t)需要尽可能满足下面指定的形式

y0(x,t)=tfor 0t<22for 2t<3t+5for 3t<41for 4t

构建向量F(x)使得求得的函数f(x,t)满足

y(x,t)y0(x,t) for 05

实际与指定相应之差(构成了近似误差)可以表示成

f(x,t=y(x,t))y0(x,t)

并且如果f(x,t)t=0,1,2,,5上采样,那么我们就得到

F(x)=[f1(x) f2(x)  f6(x)]T

其中

f1(x)=f(x,0)=y(x,0)f2(x)=f(x,1)=y(x,1)1f3(x)=f(x,2)=y(x,2)2f4(x)=f(x,3)=y(x,3)2f5(x)=f(x,4)=y(x,4)1f6(x)=f(x,5)=y(x,5)1

这个问题如图1所示,我们可以求出使得F(x)0的点x=x,显然,得到的近似值依赖于采样的密度,点的密度越高,近似值越好。


这里写图片描述
图1

上面描述的问题通过定义合适的目标函数就能求解,目标函数必须是标量且其最优解必须对F(x)中的所有元素同时优化,所以就必须用到某些范数,Lp范数定义如下:

FLp={i=1m|fi(x)|p}1/p

其中p是整数。

Lp范数中的某些特殊情况我们很感兴趣,如果p=1,那么

FL1=i=1m|fi(x)|

对于例1的问题而言,就是对每个元素幅值的和最小化,这称为L1问题。

如果p=2,就是对欧几里得范数

FL2={i=1m|fi(x)|2}1/2

进行最小化,如果忽略平方根,就是对平方和最小化,这样的问题通常称为最小二乘问题。

对于p=,如果我们假设|fi(x)|的唯一最大值F̂ 满足

F̂ =max1im|fi(x)|

那么我们可以写出

FL=limp{i=1m|fi(x)|p}1/p=F̂ limp{i=1m[|fi(x)|F̂ ]p}1/p

因为求和符号中的所有项只有一项为1,其余都小于1,所以当指数很大时他们区域0,因此我们得到

F=F̂ =maxiim|fi(x)|

显然,如果例1使用L范数,就是最小化最大近似误差,该问题称为极小极大问题。

F(x)的每个元素经常会乘以常数权值w1,w2,,wn,例如最小二乘目标函数表示为

F=i=1m[wifi(x)]2

这样强调了重要的函数,弱化了不重要的函数。如果最小化F,那么最终wifi(x)中的残差会有同样的大小,即

|wifi(x)|ε

也就是

|fi(x)|ε|wi|

所以,如果fi(x)使用很大的权值wi,也就意味着fi(x)最终会有很小的残差。