声明来源:(结合了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:整体向着最优解收缩。
转载于:https://www.cnblogs.com/topW2W/p/5559421.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108987.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...