声明来源:(结合了wiki和scholarpedia上的内容,外加自己的一点理解。
Link:https://en.wikipedia.org/wiki/Nelder%E2%80%93Mead_method && http://www.scholarpedia.org/article/Nelder-Mead_algorithm)
Nelder–Mead algorithm ( NM算法 )其实是一种非常简单易懂的适用于在线最优化的算法。。。总的来说这个算法有些无脑。。。
收敛速度慢,效果一般般,因为适用范围较广(或者说unconstrained optimization,无固定模型也可以)
核心就是:向着最优的解收敛,不断抛弃更新现有的解
简介:
n维空间中,由n+1个顶点,可以组成“最简单”的图形,叫单纯形。
NM算法就是先构造一个出师的,包含给定点的单纯形。
然后使用可能的三种手段(反射,扩展,压缩)去替换函数值最差的顶点。
在以上三种手段失效的时候,使用收缩。
知道该单纯形的半径足够的小。
(半径的定义可以有很多,比如两两点的距离,两两点构成的向量中最大的维度的值,
只要当“半径”趋近与0的时候,该单纯形趋于一个点即可)
以下来自wiki:
x
i
=
x
1
+
σ
(
x
i
−
x
1
)
for all i
∈
{
2
,
…
,
n
+
1
}
{\displaystyle {\textbf
{x}}_{i}={\textbf {x}}_{1}+\sigma ({\textbf {x}}_{i}-{\textbf
{x}}_{1}){\text{ for all i }}\in \{2,\dots ,n+1\}}
. go to step 1.
理解:
Reflection:以最优点为中心,做最差点的反射点,来达到抛弃最差点的目的。
Expansion:扩大最优点的优势,尝试是否能够得到更优的解。
Contraction:收缩搜索范围。
Shrink:整体向着最优解收缩。