Levenberg-Marquardt算法基础知识

Levenberg-Marquardt算法基础知识

(2013-01-07 16:56:17)

转载

什么是最优化?
Levenberg-Marquardt算法是最优化算法中的一种。最优化是寻找使得函数值最小的参数向量。它的应用领域非常广泛,如:经济学、管理优化、网络分析、最优设计、机械或电子设计等等。
根据求导数的方法,可分为2大类。第一类,若f具有解析函数形式,知道x后求导数速度快。第二类,使用数值差分来求导数。根据使用模型不同,分为非约束最优化约束最优化最小二乘最优化

什么是Levenberg-Marquardt算法?
它是使用最广泛的非线性最小二乘算法,中文为列文伯格-马夸尔特法。它是利用梯度求最大(小)值的算法,形象的说,属于“爬山”法的一种。它同时具有梯度法牛顿法的优点。当λ很小时,步长等于牛顿法步长,当λ很大时,步长约等于梯度下降法的步长。

LM算法的实现并不算难,它的关键是用模型函数 f 对待估参数向量p在其领域内做线性近似,忽略掉二阶以上的导数项,从而转化为线性最小二乘问题,它具有收敛速度快等优点。LM算法属于一种“信赖域法”,所谓的信赖域法,即是:在最优化算法中,都是要求一个函数的极小值,每一步迭代中,都要求目标函数值是下降的,而信赖域法,顾名思义,就是从初始点开始,先假设一个可以信赖的最大位移s,然后在以当前点为中心,以s为半径的区域内,通过寻找目标函数的一个近似函数(二次的)的最优点,来求解得到真正的位移。在得到了位移之后,再计算目标函数值,如果其使目标函数值的下降满足了一定条件,那么就说明这个位移是可靠的,则继续按此规则迭代计算下去;如果其不能使目标函数值的下降满足一定的条件,则应减小信赖域的范围,再重新求解。

LM算法需要对每一个待估参数求偏导,所以,如果你的拟合函数 f 非常复杂,或者待估参数相当地多,那么可能不适合使用LM算法,而可以选择Powell算法(Powell算法不需要求导)。

时间: 2024-10-10 15:08:14

Levenberg-Marquardt算法基础知识的相关文章

[算法学习笔记]算法基础知识

算法基础知识 算法的五大要素 有穷性:算法必须能够在有限个步骤内完成. 确定性:算法的每一步必须有确定的定义. 输入 输出 可行性:算法的每个步骤都必须能分解为基本的可执行操作,每个步骤都必须能在有限时间内完成 循环不变式 循环中的循环不变式可以帮助我们理解算法的正确性.为了证明算法的正确,必须证明循环不变式的三个性质: 1. 初始化:循环不变式在循环开始之前是正确的. 2. 保持:循环不变式在循环的每一次迭代开始之前是正确的. 3. 终止:在循环结束时,不变式会给出一个可以对判断算法是否正确有

算法——基础知识

算法--基础知识 1.什么是算法? 答:算法(Algorithm):一个计算过程,解决问题的方法. 程序 =  数据结构 + 算法 2.时间复杂度(三连图) 时间复杂度小结: 1.时间复杂度是用来估计算法运行时间的一个式子(单位). 2.一般来说,时间复杂度高的算法比复杂度低的算法慢 3.常见的时间复杂度(按效率排序) -  O(1)  < O(logn) <O(n) < O(nlogn) <O(n2) <(n2logn) <O(n3) 4.不常见的时间复杂度 O(n!

算法基础知识

一丶基本概念   1.算法设计的任务:对一个具体的问题,设计一种良好的算法,获取最佳的结果. 2.什么是算法:通俗说是一种最优解, 3.程序=数据结构+算法+程序设计语言 二丶基础算法   1.枚举(穷举)算法思想 特点:1.依赖于计算机强大的运算能力来穷尽每一个可能的情况,从而达到解决问题的目的. 2.该算法效率不高. 3.该算法适用于一些没有规律可循的环境中. 两个必要条件:1.对于一种可能的情况,计算其结果. 2.判断结果是否满足要求,如果不满足,则执行第一步. 示例1:填数字游戏 算法描

Algorithm 算法基础知识(未完成

基础概念不讲,记录课上关键部分 时间复杂度(Time Complexity) 算法所需要花的时间 比较时间复杂度(主要看问题的规模) 时间频度(算法执行次数)T(n)和T(n1),如果两个时间频度为等价无穷小,那么为时间复杂度相等 用O表时间复杂度上界,用Ω表示时间复杂度下界 用θ表示如果复杂度上下界相等(一般求的是O) 时间复杂度举例 基本语句:简单复杂度为O(1),100个简单语句也为O(1) 循环语句:1个循环的时间复杂度为O(n),n次循环 空间复杂度(Space Complexity)

莫队算法---基础知识介绍(转载)

莫队算法 莫队算法可用于解决一类可离线且在得到区间[l,r][l,r]的答案后,能在O(1)O(1)或O(log2n)O(log2?n)得到区间[l,r+1][l,r+1]或[l−1,r][l−1,r]的答案的问题 先看这样一个问题: 给出n个数字,m次询问,每次询问在区间[li,ri][li,ri]之间任选两个数字相等的概率是多少.(n,q<=50000)(小z的袜子) 在区间[l,r][l,r]中,这个概率是: ∑vi=1C(2,f(i))C(2,r−l+1)∑i=1vC(2,f(i))C(

算法基础知识之树、二叉树,

一.树 把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的.在计算机科学中,树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合.树一般分为两类: 无序树:树中任意节点的子节点之间没有顺序关系,这种树称为无序树,也称为自由树: 有序树:树中任意节点的子节点之间有顺序关系,这种树称为有序树: 二.二叉树 在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(不存在分支度大于2的节点

数据结构和算法一(基础知识)

一.数据结构与算法基础知识 从广义上讲,数据结构就是指一组数据的存储结构.算法就是操作数据的一组方法. 从狭义上讲,就是指某些著名的数据结构和算法,比如队列.栈.堆.二分查找.动态规划等. 数据结构和算法是相辅相成的,数据结构为算法服务,算法要作用在特定的数据结构之上. 数据结构思维导图 基础数据结构:数组.链表.栈.队列.散列表.二叉树.堆.跳表.图.Trie树 基础算法:地柜.排序.二分查找.搜索.哈希算法.贪心算法.分治算法.回溯算法.动态规划.字符串匹配算法 二.时间复杂度和空间复杂度

学习算法你必须知道的一些基础知识(文末福利)

点击标题下「异步社区」可快速关注 机器学习是解决很多文本任务的基本工具,本文自然会花不少篇幅来介绍机器学习.要想搞明白什么是机器学习,一定要知道一些概率论和信息论的基本知识,本文就简单回顾一下这些知识. 1.1 概率论 概率就是描述一个事件发生的可能性.我们生活中绝大多数事件都是不确定的,每一件事情的发生都有一定的概率(确定的事件就是其概率为100%而已).天气预报说明天有雨,那么它也只是说明天下雨的概率很大.再比如掷骰子,我把一个骰子掷出去,问某一个面朝上的概率是多少?在骰子没有做任何手脚的情

PHP面试(二):程序设计、框架基础知识、算法与数据结构、高并发解决方案类

一.程序设计 1.设计功能系统--数据表设计.数据表创建语句.连接数据库的方式.编码能力 二.框架基础知识 1.MVC框架基本原理--原理.常见框架.单一入口的工作原理.模板引擎的理解 2.常见框架的特性--PHP框架的差异和优缺点 三.算法与数据结构 1.常见算法--算法的概念.时间复杂度和空间复杂度.常见排序算法.常见查找算法 2. 3. 4. 四.高并发解决方案 1. 2. 原文地址:https://www.cnblogs.com/darklights/p/9275751.html