我们还有很长的时间要走,千万不要把哥哥甩在身后;\textbf{我们还有很长的时间要走,千万不要把哥哥甩在身后;}
我和你要去闻闻新鲜的春天;\textbf{我和你要去闻闻新鲜的春天;}
感受阳光洒满肩上的夏天;\textbf{感受阳光洒满肩上的夏天;}
整个世界涂着金色的秋天;\textbf{整个世界涂着金色的秋天;}
体验白雪飘满天空的冬天;\textbf{体验白雪飘满天空的冬天;}
你在我身边,就胜过五彩缤纷的花花世界。\textbf{你在我身边,就胜过五彩缤纷的花花世界。}
——畅宝宝的傻逼哥哥\qquad\qquad\qquad\qquad\qquad\qquad\textbf{——畅宝宝的傻逼哥哥}

在进行优化之前,手头的问题首先得有合适的形式,性能标准FF必须写成nn个参数x1,x2,…,xnx_1,x_2,\ldots,x_n的形式

F=f(x1,x2,…,xn)

F=f(x_1,x_2,\ldots,x_n)

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

大部分优化问题是通过某种方式调节变量x1,x2,…,xnx_1,x_2,\ldots,x_n来最小化FF,从数学角度来描述就是

minF=f(x1,x2,…,xn)

\begin{equation} \min F=f(x_1,x_2,\ldots,x_n) \end{equation}

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

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

xT=[x1 x2 ⋯ xn]

\textbf{x}^T=[x_1\ x_2\ \cdots\ x_n]

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

minF=f(x) for x∈En

\min F=f(\textbf{x})\ for\ \textbf{x}\in E^n

其中EnE^n表示nn维欧几里德空间。

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

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

\max [f(\textbf{x})]=-\min [-f(\textbf{x})]

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

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

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

f_i(\textbf{x})=0\ for\ i=1,2,\ldots,m

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

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

F(\textbf{x})=[f_1(\textbf{x})\ f_2(\textbf{x})\ \cdots\ f_m(\textbf{x})]^T

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

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

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

F(\textbf{x})=[f(\textbf{x},t_1)\ f(\textbf{x},t_2)\ \cdots\ f(\textbf{x},t_m)]^T

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

fi(x)≡f(x,ti)

f_i(\textbf{x})\equiv f(\textbf{x},t_i)

那么我们可以写成

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

F(\textbf{x})=[f_1(\textbf{x})\ f_2(\textbf{x})\ \cdots f_m(\textbf{x})]^T

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

例1:\textbf{例1:}nn阶控制系统的阶梯响应y(x,t)y(\textbf{x,t})需要尽可能满足下面指定的形式

y0(x,t)=⎧⎩⎨⎪⎪tfor 0≤t<22for 2≤t<3−t+5for 3≤t<41for 4≤t

y_0(\textbf{x},t)= \begin{cases} t\qquad for\ 0\leq t

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

y(x,t)≈y0(x,t) for 0≤≤5

y(\textbf{x,t})\approx y_0(\textbf{x},t)\ for\ 0\leq\leq5

解:\textbf{解:}实际与指定相应之差(构成了近似误差)可以表示成

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

f(\textbf{x,t}=y(\textbf{x,t}))-y_0(\textbf{x,t})

并且如果f(x,t)f(\textbf{x,t})在t=0,1,2,…,5t=0,1,2,\ldots,5上采样,那么我们就得到

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

F(\textbf{x})=[f_1(\textbf{x})\ f_2(\textbf{x})\ \cdots\ f_6(\textbf{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

\begin{align*} &f_1(\textbf{x})=f(\textbf{x},0)=y(\textbf{x},0)\\ &f_2(\textbf{x})=f(\textbf{x},1)=y(\textbf{x},1)-1\\ &f_3(\textbf{x})=f(\textbf{x},2)=y(\textbf{x},2)-2\\ &f_4(\textbf{x})=f(\textbf{x},3)=y(\textbf{x},3)-2\\ &f_5(\textbf{x})=f(\textbf{x},4)=y(\textbf{x},4)-1\\ &f_6(\textbf{x})=f(\textbf{x},5)=y(\textbf{x},5)-1 \end{align*}

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


图1

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

F≡Lp={∑i=1m|fi(x)|p}1/p

F\equiv L_p=\left\{\sum_{i=1}^m|f_i(\textbf{x})|^p\right\}^{1/p}

其中pp是整数。

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

F≡L1=∑i=1m|fi(x)|

F\equiv L_1=\sum_{i=1}^m|f_i(\textbf{x})|

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

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

F≡L2={∑i=1m|fi(x)|2}1/2

F\equiv L_2=\left\{\sum_{i=1}^m|f_i(\textbf{x})|^2\right\}^{1/2}

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

对于p=∞p=\infty,如果我们假设|fi(x)||f_i(\textbf{x})|的唯一最大值F̂ \hat{F}满足

F̂ =max1≤i≤m|fi(x)|

\hat{F}=\max_{1\leq i\leq m}|f_i(\textbf{x})|

那么我们可以写出

F≡L∞=limp→∞{∑i=1m|fi(x)|p}1/p=F̂ limp→∞{∑i=1m[|fi(x)|F̂ ]p}1/p

\begin{align*} F\equiv L_{\infty} &=\lim_{p\to\infty}\left\{\sum_{i=1}^m|f_i(\textbf{x})|^p\right\}^{1/p}\\ &=\hat{F}\lim_{p\to\infty}\left\{\sum_{i=1}^m\left[\frac{|f_i(\textbf{x})|}{\hat{F}}\right]^p\right\}^{1/p} \end{align*}

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

F=F̂ =maxi≤i≤m|fi(x)|

F=\hat{F}=\max_{i\leq i\leq m}|f_i(\textbf{x})|

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

F(x)F(\textbf{x})的每个元素经常会乘以常数权值w1,w2,…,wnw_1,w_2,\ldots,w_n,例如最小二乘目标函数表示为

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

F=\sum_{i=1}^m[w_if_i(\textbf{x})]^2

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

|wifi(x)|≈ε

|w_if_i(\textbf{x})|\approx \varepsilon

也就是

|fi(x)|≈ε|wi|

|f_i(\textbf{x})|\approx\frac{\varepsilon}{|w_i|}

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

漫步最优化二——基本优化问题相关推荐

  1. 漫步最优化二十三——一维优化

    你的每一句话,回荡在耳边:\textbf{你的每一句话,回荡在耳边:} 你闪动的双眼,徘徊在脑海.\textbf{你闪动的双眼,徘徊在脑海.} 好像告诉你,\textbf{好像告诉你,} 天天在想你. ...

  2. 漫步最优化二十九——D.S.C.算法

    你是我的小公主,\textbf{你是我的小公主,} 像宠你宠你宠你.\textbf{像宠你宠你宠你.} 你是我的小公主,\textbf{你是我的小公主,} 我的天空是晴是雨是彩虹,\textbf{我的 ...

  3. 漫步最优化二十八——三次插值法

    没有你的世界,\textbf{没有你的世界,} 我会灵魂失控.\textbf{我会灵魂失控.} 没有你的世界,\textbf{没有你的世界,} 我被乌云拖着走.\textbf{我被乌云拖着走.} 没有 ...

  4. 漫步最优化二十七——二次插值法

    陪着你,仿佛面朝阳光,\textbf{陪着你,仿佛面朝阳光,} 不管走到哪里都是晴天.\textbf{不管走到哪里都是晴天.} 在蝴蝶飞舞的百花丛中,\textbf{在蝴蝶飞舞的百花丛中,} 一朵一朵 ...

  5. 漫步最优化二十五——斐波那契搜索

    白天与黑夜,\textbf{白天与黑夜,} 希望陪你共同走过.\textbf{希望陪你共同走过.} 整夜的美梦,\textbf{整夜的美梦,} 希望抱你一起回味.\textbf{希望抱你一起回味.} ...

  6. 漫步最优化二十二——收敛速率

    未来的你已在我的身边,\textbf{未来的你已在我的身边,} 虽然经过了很多个弯:\textbf{虽然经过了很多个弯:} 现在的我已经没了号码牌,\textbf{现在的我已经没了号码牌,} 虽然已经 ...

  7. 漫步最优化二十——下降函数

    就算言语无法表达,\textbf{就算言语无法表达,} 我仍能听见你的声音:\textbf{我仍能听见你的声音:} 就算阳光不再耀眼,\textbf{就算阳光不再耀眼,} 我也永远倾心与宝宝.\tex ...

  8. 漫步最优化十六——优化的一般问题

    一直没有说我爱你,\textbf{一直没有说我爱你,} 一直没有拥抱你,\textbf{一直没有拥抱你,} 道路上虽然会留下伤口,\textbf{道路上虽然会留下伤口,} 可是随着时间总会愈合.\te ...

  9. 漫步最优化二十四——二分搜索

    你喜欢有小情绪,\textbf{你喜欢有小情绪,} 像夜晚的月亮,\textbf{像夜晚的月亮,} 但各有各的精彩.\textbf{但各有各的精彩.} 你情感丰富,\textbf{你情感丰富,} 时常 ...

最新文章

  1. python视频抽帧 后 前端javascript如何显示_使用OpenCV编写一个可以定时抽帧的脚本...
  2. 程序员薪资两极分化,如何成为高薪程序员?
  3. 洛谷 p2066 机器分配(资源型)
  4. JNI实现源码分析【三 间接引用表】
  5. T-SQL and XML
  6. 【分享】Android JNI实例​
  7. Microsoft Expression Blend 4 下载地址
  8. 《python透明人士,他是凭什么成为主流编程的宠儿?!》Python 逻辑
  9. Apache PIO 操作Excel
  10. AndroidStudio安卓原生开发_UI高级_DrawerLayout_侧滑菜单控件---Android原生开发工作笔记120
  11. 压缩/解压缩库ZipArchive
  12. win10 悬浮日历_win10系统桌面添加日历,天气,时钟等小工具的操作方法
  13. Android Studio第六课:模仿QQ登录跳转
  14. 御坂网络(枚举基准,二分图)
  15. js中的includes用法
  16. 什么是SEO网站快速排名?
  17. php lottery,lottery.php · 韩志洋/CUPT2019_official_website - Gitee.com
  18. docerfile 文件
  19. 不做七种危险的网络管理员
  20. 电商遭遇成本寒冬:京东商城放弃全场免运费

热门文章

  1. 01_appium自动化环境的搭建
  2. 使用Linux命令行测试网速
  3. javascript将base64编码的图片数据转换为file并提交
  4. 基础知识 + 面试题目 总结 索引页
  5. 领悟非凡,只有西方人才能做出来的效果。。。不是技术,而是人文和胸怀
  6. 企业文件服务器(samba)配置案例一
  7. JavaScript玩转机器学习:模型和层
  8. BlockChain:区块链入门课程 -- 区块链之类型 、应用程序、技术挑战和潜力
  9. 通过Gogs部署git仓库
  10. 一个列表包揽所有你需要的Windows应用