我们还有很长的时间要走,千万不要把哥哥甩在身后;
我和你要去闻闻新鲜的春天;
感受阳光洒满肩上的夏天;
整个世界涂着金色的秋天;
体验白雪飘满天空的冬天;
你在我身边,就胜过五彩缤纷的花花世界。
——畅宝宝的傻逼哥哥
在进行优化之前,手头的问题首先得有合适的形式,性能标准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 x∈En
其中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)没有考虑。但不管怎样,通过采集大量的样本点,在实际中可以得到合理的解,下面举例说明。
例1:n阶控制系统的阶梯响应y(x,t)需要尽可能满足下面指定的形式
y0(x,t)=⎧⎩⎨⎪⎪tfor 0≤t<22for 2≤t<3−t+5for 3≤t<41for 4≤t
构建向量F(x)使得求得的函数f(x,t)满足
y(x,t)≈y0(x,t) for 0≤≤5
解:实际与指定相应之差(构成了近似误差)可以表示成
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范数定义如下:
F≡Lp={∑i=1m|fi(x)|p}1/p
其中p是整数。
Lp范数中的某些特殊情况我们很感兴趣,如果p=1,那么
F≡L1=∑i=1m|fi(x)|
对于例1的问题而言,就是对每个元素幅值的和最小化,这称为L1问题。
如果p=2,就是对欧几里得范数
F≡L2={∑i=1m|fi(x)|2}1/2
进行最小化,如果忽略平方根,就是对平方和最小化,这样的问题通常称为最小二乘问题。
对于p=∞,如果我们假设|fi(x)|的唯一最大值F̂ 满足
F̂ =max1≤i≤m|fi(x)|
那么我们可以写出
F≡L∞=limp→∞{∑i=1m|fi(x)|p}1/p=F̂ limp→∞{∑i=1m[|fi(x)|F̂ ]p}1/p
因为求和符号中的所有项只有一项为1,其余都小于1,所以当指数很大时他们区域0,因此我们得到
F=F̂ =maxi≤i≤m|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)最终会有很小的残差。