最优化学习笔记(二十)——全局搜索算法
一、引言
前边的博文我们讨论过一些迭代算法,包括梯度方法、牛顿法、共轭梯度法和拟牛顿法,能够从初始点出发,产生一个迭代序列,但是往往这些迭代序列只能收敛到局部极小点,而且这些迭代方法需要计算目标函数的一阶导数(牛顿法还需计算二阶导数)。从本节开始,讨论一些全局搜索算法,这些方法只需要计算目标函数值,而不需要对目标函数求导。
二、Nelder-Mead 单纯形法(一)
Nelder-Mead 单纯形法引入了单纯形的概念,不需要计算目标函数的梯度。所谓单纯形,指的是由nn维空间中的n+1个点p0,p1,…,pn\boldsymbol{p_0, p_1, \dots, p_n}构成的几何形状,且满足:
\det\left[ \begin{array}{cccc} \boldsymbol{p_0} & \boldsymbol{p_1} & \dots & \boldsymbol{p_n} \\ 1 &1 & \dots & 1 \end{array} \right] \ne 0
这一条件的含义为 R\mathbb{R}中的两个点不重合, R2\mathbb{R^2}中的三个点不共线, R3\mathbb{R^3}中的四个点不共面, 以此类推。这说明,单纯形包围的 nn维空间具有有限的体积。
针对函数f(x)f(\boldsymbol{x}), x∈Rn\boldsymbol{x} \in \mathbb{R^n}的最小化问题, 首先选择 n+1n+1个点, 使其构成一个初始的单纯形。构造单纯形的一种方式为:选定初始点 x(0)=p0\boldsymbol{x}^{(0)} = \boldsymbol{p_0} ,按照下式产生其他点:
\boldsymbol{p_i} = \boldsymbol{p_0} + \lambda_i\boldsymbol{e_i}, i = 1,2,\dots,n
其中, ei,i=1,2,…,n\boldsymbol{e_i}, i = 1,2,\dots,n 表示一组单位向量, 是空间 Rn\mathbb{R^n}的标准基,系数 λi\lambda_i为正数, 可以按照优化问题的规模确定其大小。 按照这种方式产生的 n+1n+1个点,正好能构成一个单纯形。初始单纯形确定之后,接下来就一步步对其进行修改,使得产生的单纯形能够朝着函数的极小点进行收敛。在每次迭代中,都针对单纯形的每个点计算目标函数值。对于函数 f<script type="math/tex" id="MathJax-Element-1764">f</script>最小化的优化问题而言,目标函数最大的点将被另外的点代替,持续开展这一迭代过程,直到单纯形收敛到目标函数极小点。
下节将给出单纯形的更新规则。
最优化学习笔记(二十)——全局搜索算法相关推荐
- Mr.J-- jQuery学习笔记(二十八)--DOM操作方法(添加方法总结)
Table of Contents appendTo appendTo(source, target) 源代码 append prependTo prependTo源码 prepend ...
- 嵌入式系统设计师学习笔记二十八:嵌入式程序设计③——高级程序设计语言
嵌入式系统设计师学习笔记二十八:嵌入式程序设计③--高级程序设计语言 解释程序和编译程序 编译器的工作阶段示意图 语法错误:非法字符,关键字或标识符拼写错误 语法错误:语法结构出错,if--endif ...
- uniapp 学习笔记二十二 购物车页面结构搭建
uniapp 学习笔记二十二 购物车页面结构搭建 cart.vue <template><view><view class="flex padding" ...
- Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用
Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用 大概要写到结尾了,最后几篇就将手册的各常用命令再看一遍,组合一下,并列举出常见的一些有用的操作. DATA_COLOR_MAP数 ...
- JVM 学习笔记二十六、JVM监控及诊断工具-GUI篇
二十六.JVM监控及诊断工具-GUI篇 1.工具概述 使用上一张命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但他们存在下列局限: (1)无法获取方法级别的分析数据,如方法间的调用关系 ...
- JVM 学习笔记二十五、JVM监控及诊断工具-命令行篇
二十五.JVM监控及诊断工具-命令行篇 1.概述 性能诊断是软件工程师在日常工作中经常面对和解决的问题,在用户体验至上的今天,解决好应用软件的性能问题能带来非常大的收益. Java作为最流行的编程语言 ...
- 立创eda学习笔记二十八:在嘉立创购买pcb板并贴片(smt)
完整的写一下,分为两部分: 1.下pcb订单 这个可以看之前写的一个博客: 立创eda学习笔记三:pcb购买_Gutie_bartholomew的博客-CSDN博客 补充一下,买pcb可以直接有几个途 ...
- 最优化学习笔记(十二)——基本共轭方向算法(续)
目标函数为nn维二次型函数时,共轭方向法能够在nn步迭代之后得到极小点.接下来会发现,共轭方向法的中间迭代步骤具有一种很有意义的性质.选定x(0)\boldsymbol{x}^{(0)}作为迭代初始点 ...
- jQuery,Ajax.animate,SVG(简要学习笔记二十)[完结篇]
1.$和jquery在全局命名空间中定义的唯一两个变量. 2.jquery是工厂函数,不是构造函数.他返回一个新创建的对象. 3.jquery的四种调用方式: <1>传递CSS选择 ...
- 【theano-windows】学习笔记二十——LSTM理论及实现
前言 上一篇学习了RNN,也知道了在沿着时间线对上下文权重求梯度的时候,可能会导致梯度消失或者梯度爆炸,然后我们就得学习一波比较常见的优化方法之LSTM 国际惯例,参考网址: LSTM Network ...
最新文章
- FileChannel
- 新人如何快速上手项目管理
- php 去除中英文空格,php去除字符串首尾中英文空格程序_PHP教程
- 自定义Dialog(图片,文字说明,单选按钮)----类ListPreference实现(2)
- NLog在asp.net core中的应用
- 外联接、自联接与联合
- VS2015不能修改安装路径问题
- java超时结束程序_java本机进程超时
- java,类的构造方法
- 图的遍历之深度优先搜索和广度优先搜索
- java 文件流传输_java – 将远程文件流式传输到文件对象中
- word参考文献插入和上标设置
- 使用回溯法求解N皇后问题
- 自考学习记录 课程代码03708《中国近代史纲要》1
- nginx匹配规则详解
- ftpserver配置
- 【邢不行|量化小讲堂系列06-Python量化入门】极简方法将日线数据转为周线、月线或其他周期
- 不相交轮换的乘积怎么求_怎么样将一个轮换分解成不相交的轮换的乘积
- python中range和arange的区别_浅谈Python中range与Numpy中arange的比较
- RDD -- Transformation算子分析