最小二乘法及参数辨识

文章目录

  • 一、最小二乘法
    • 1.1 定义
    • 1.2 SISO系统运用最小二乘估计进行辨识
    • 1.3 几何解释
    • 1.4 最小二乘法性质
  • 二、加权最小二乘法
  • 三、递推最小二乘法
  • 四、增广最小二乘法

一、最小二乘法

1.1 定义

1974年高斯提出的最小二乘法的基本原理是未知量的最可能值是使各项实际观测值和计算值之间差的平方乘以其精确度的数值以后的和为最小。
z ( k ) = y ( k ) + v ( k ) z(k)=y(k)+v(k) z(k)=y(k)+v(k)
z ( k ) z(k) z(k)为观测值, y ( k ) y(k) y(k)为计算值, v ( k ) v(k) v(k)误差。
最小二乘法为 m i n ∑ k = 1 m w ( k ) ∣ z ( k ) − y ( k ) ∣ 2 min \ \sum_{k=1}^mw(k)|z(k)-y(k)|^2 min k=1mw(k)z(k)y(k)2
w(k)为精确度。

通过一个例子来理解最小二乘法。
通过试验确定热敏电阻阻值和温度间的关系如下表所示:

t(℃) t 1 t_1 t1 t 2 t_2 t2 ⋯ \cdots t N − 1 t_{N-1} tN1 t N t_N tN
R( Ω \Omega Ω) R 1 R_1 R1 R 2 R_2 R2 ⋯ \cdots R N − 1 R_{N-1} RN1 R N R_N RN

在这里插入图片描述
用直线 y = a + b t y=a+bt y=a+bt拟合该曲线,a和b为待估计参数。
每次测量总是存在随机误差。
y i = R i + v i y_i=R_i+v_i yi=Ri+vi

当采用每次测量的随机误差的平方和最小时,即
J m i n = ∑ i = 1 N v i 2 = ∑ i = 1 N [ R i − ( a + b t i ) ] 2 J_{min}=\sum_{i=1}^Nv_i^2=\sum_{i=1}^N[R_i-(a+bt_i)]^2 Jmin=i=1Nvi2=i=1N[Ri(a+bti)]2
,平方运算又称二乘,而且又是按照J最小来估计a和b的,称这种方法为最小二乘估计算法,简称最下二乘法。

为什么用平方呢?因为平方可以求导。


利用最小二乘法求取模型参数
若使得J最小,利用求极值的方法得

整理得

解方程组得


1.2 SISO系统运用最小二乘估计进行辨识

对于SISO系统,被辨识模型传递函数为:

对其离散化,对应的差分方程为

若考虑噪声影响

式中, z ( k ) z(k) z(k)为系统输出量的第 k k k次观测值; y ( k ) y(k) y(k)为系统输出量的第 k k k次真值; u ( k ) u(k) u(k)为系统的第 k k k个输入值; v ( k ) v(k) v(k)是均值为0的随机噪声。

定义

z ( k ) z(k) z(k)可写为
z ( k ) = h ( k ) θ + v ( k ) z(k)=h(k)\theta+v(k) z(k)=h(k)θ+v(k)
式中, θ \theta θ为待估计参数。

k = 1 , 2 , ⋯ , m k=1,2,\cdots,m k=1,2,,m,则有

最小二乘的思想就是寻找一个 θ \theta θ的估计值 θ ^ \hat\theta θ^,使得各次测量的 Z i ( i = 1 , ⋯ , m ) Z_i(i=1,\cdots,m) Zi(i=1,,m)与由估计 θ ^ \hat\theta θ^确定的量测估计 Z i ^ = H i θ ^ \hat{Z_i}=H_i\hat\theta Zi^=Hiθ^之差的平方和最小,即

根据极值定理:

如果 H m H_m Hm的行数大于等于行数,即 m ⩾ 2 n m\geqslant2n m2n H m T H m H_m^TH_m HmTHm满秩,即 r a n k ( H m T H m ) = 2 n rank(H_m^TH_m)=2n rank(HmTHm)=2n,则 ( H m T H m ) − 1 (H_m^TH_m)^{-1} (HmTHm)1存在。则 θ \theta θ的最小二乘估计为
θ ^ = ( H m T H m ) − 1 H m T Z m \hat\theta=(H_m^TH_m)^{-1}H_m^TZ_m θ^=(HmTHm)1HmTZm

1.3 几何解释

在这里插入图片描述
H m θ ^ H_m\hat\theta Hmθ^应该等于 Z m Z_m Zm h ( 1 ) , h ( 2 ) , ⋯ , h ( m ) {h(1),h(2),\cdots,h(m)} h(1),h(2),,h(m)的张成空间的投影。

1.4 最小二乘法性质

  1. 最小二乘估计是无偏估计
    如果参数估计的数学期望等于参数的真值,则称估计是无偏的。
    E ( θ ^ ) = 0 或 E ( θ ~ ) = 0 E(\hat\theta)=0或E(\tilde\theta)=0 E(θ^)=0E(θ~)=0
  2. 最小二乘估计是有效估计
    有效估计就是具有最小方差的估计。
    E ( θ ~ θ ~ T ) = ( H m T H m ) − 1 H m T R H m ( H m T H m ) − 1 最小 E(\tilde\theta\tilde\theta^T)=(H_m^TH_m)^{-1}H_m^TRH_m(H_m^TH_m)^{-1}最小 E(θ~θ~T)=(HmTHm)1HmTRHm(HmTHm)1最小
  3. 最小二乘估计是一致估计
    如果随着测量次数 m m m的增加, θ ^ m \hat\theta_m θ^m依概率收敛于真值 θ \theta θ,则称 θ ^ m \hat\theta_m θ^m θ \theta θ的一致估计。
    l i m m → ∞ p ( ∣ θ ^ m − θ ∣ > ε ) = 0 lim_{m\to \infty}p(|\hat\theta_m-\theta|>\varepsilon)=0 limmp(θ^mθ>ε)=0

二、加权最小二乘法

一般最小二乘估计精度不高的原因之一是对测量数据同等对待;由于各次测量数据很难在相同的条件下获得的,因此存在有的测量值置信度高,有的测量值置信度低的问题。对不同置信度的测量值采用加权的办法分别对待,置信度高的,权重取得大些;置信度低的,权重取的小些。

式中, W m W_m Wm为加权矩阵,它是一个对称正定矩阵,通常取为对角矩阵,即 W m = d i a g [ w ( 1 ) w ( 2 ) ⋯ w ( m ) ] W_m=diag[w(1)\ w(2)\cdots \ w(m)] Wm=diag[w(1) w(2) w(m)]

θ ^ = ( H m T W m H m ) − 1 H m T W m Z m \hat\theta=(H_m^TW_mH_m)^{-1}H_m^TW_mZ_m θ^=(HmTWmHm)1HmTWmZm
如果 W m = R − 1 W_m=R^{-1} Wm=R1
θ ^ = ( H m T R − 1 H m ) − 1 H m T R − 1 Z m \hat\theta=(H_m^TR^{-1}H_m)^{-1}H_m^TR^{-1}Z_m θ^=(HmTR1Hm)1HmTR1Zm
又称马尔可夫估计。
马尔可夫估计的均方误差为
E ( θ ~ θ ~ T ) = ( H m T R − 1 H m ) − 1 E(\tilde\theta\tilde\theta^T)=(H_m^TR^{-1}H_m)^{-1} E(θ~θ~T)=(HmTR1Hm)1
马尔可夫估计的均方误差比任何其他加权最小二乘估计的均方误差都要小,所以是加权最小二乘估计中的最优者。

加权最小二乘估计也满足无偏性、有效性、一致性。

三、递推最小二乘法

当前估计值 θ ^ ( k ) \hat\theta(k) θ^(k)=上次估计值 θ ^ ( k − 1 ) \hat\theta(k-1) θ^(k1)+修正项

根据加权最小二乘法,利用 m 次测量数据所得到的估值
θ ^ = ( H m T W m H m ) − 1 H m T W m Z m \hat\theta=(H_m^TW_mH_m)^{-1}H_m^TW_mZ_m θ^=(HmTWmHm)1HmTWmZm
当新获得一对输入、输出数据时
z ( m + 1 ) = h ( m + 1 ) θ + v ( m + 1 ) z(m+1)=h(m+1)\theta+v(m+1) z(m+1)=h(m+1)θ+v(m+1)
利用m+1次输入、输出数据,得到的方程为 Z m + 1 = H m + 1 θ + V m + 1 Z_{m+1}=H_{m+1}\theta+V_{m+1} Zm+1=Hm+1θ+Vm+1
θ ^ m + 1 = ( H m + 1 T W m + 1 H m + 1 ) − 1 H m + 1 T W m + 1 Z m + 1 \hat\theta_{m+1}=(H_{m+1}^TW_{m+1}H_{m+1})^{-1}H_{m+1}^TW_{m+1}Z_{m+1} θ^m+1=(Hm+1TWm+1Hm+1)1Hm+1TWm+1Zm+1
W m + 1 = [ W m 0 0 w ( m + 1 ) ] W_{m+1}=\begin{bmatrix} W_m & 0 \\ 0 & w(m+1) \end{bmatrix} Wm+1=[Wm00w(m+1)]
如果设 P m = [ H m T W m H m ] − 1 P_m=[H_m^TW_mH_m]^{-1} Pm=[HmTWmHm]1
P m + 1 = [ H m + 1 T W m + 1 H m + 1 ] − 1 P_{m+1}=[H_{m+1}^TW_{m+1}H_{m+1}]^{-1} Pm+1=[Hm+1TWm+1Hm+1]1
则有 θ ^ m = P m H m T W m Z m \hat\theta_m=P_mH_m^TW_mZ_m θ^m=PmHmTWmZm
θ ^ m + 1 = P m + 1 H m + 1 T W m + 1 Z m + 1 \hat\theta_{m+1}=P_{m+1}H_{m+1}^TW_{m+1}Z_{m+1} θ^m+1=Pm+1Hm+1TWm+1Zm+1


P ( m ) − P ( m + 1 ) ⩾ 0 P(m)-P(m+1)\geqslant0 P(m)P(m+1)0,随着递推次数的增加, P ( m ) P(m) P(m) K ( m ) K(m) K(m)逐渐减小,直至趋于0。数据饱和后,由于递推计算的舍入误差,不仅新的观测值对参数估计不起修正作用,反而使 P ( m ) P(m) P(m)失去正定性,导致估计误差增加。
当系统参数随时间变化时,因新数据被旧数据淹没,递推算法无法直接使用。为适应时变参数的情况,修改算法时旧数据的权重(降低),增加新数据的作用。
主要方法有数据窗法和Kalman滤波法。

四、增广最小二乘法

对比:

方法优点缺点
一般最小二乘法白噪声可得无偏渐进无偏估计;算法简单可靠;计算量小;一次即可完成算法,适合离线辨识当矩阵维度增加时,矩阵求逆运算会急剧增加,给计算机的运算速度和存储量带来负担
递推最小二乘法可以减小数据存储量,避免矩阵求逆,减少计算量会出现数据饱和现象
增广最小二乘法将噪声模型的辨识同时考虑进去当数据长度较大时,辨识精度低于极大似然法

参考:
[1]刘金琨,沈晓蓉,赵龙.系统辨识理论及MATLAB仿真[M].电子工业出版社,2013.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/193730.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

魔众文库系统 v5.6.0 DWG文件格式支持,部分数据封面显示异常,定时调度清理临时文件

魔众文库系统基于文档系统知识,建立平台与领域,打造流量、用户、付费和变现的闭环,帮助您更好的搭建文库系统。 魔众文库系统发布v5.6.0版本,新功能和Bug修复累计17项,DWG文件格式支持,部分数据封面显示异…

C语言再学习 -- 编程规范

C语言编程规范这部分一直想总结一下。现在终于付诸行动了。 其实之前讲过一些面试题,参看:嵌入式面试知识点总结 – C语言篇 里面已经有包含一部分了,比如《高质量C C编程指南》.林锐着.pdf。 此次主要参考 华为技术有限公司c语言编程规范 …

2024 年如何成为一名成功的漏洞赏金猎人?成长总结以及相关资料推荐

2024 年如何成为一名成功的漏洞赏金猎人?成长总结以及相关资料推荐。 很多狂热的黑客新手都很好奇,如何才能成为一名黑客。其实黑客也有黑帽、白帽、灰帽或红帽之类的称呼。黑帽黑客,指的是专门制造病毒木马、通过操作系统寻找漏洞牟取暴利,并且以个人意志为出发点,肆意攻…

青年作家考公引热议,体制内可能不是你想的那样

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 阿福 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 声湃轩天津录音间 最近,班宇、陈春成、王苏辛三名青年作家出现在了武汉市文联所属事业单位专项招聘拟聘用人员名…

15技术太卷我学APEX-curl请求apex的autoRest

0 curl概述 cURL无处不在。它几乎隐藏在所有设备中,例如汽车,蓝光播放器等。它通过互联网协议传输任意类型数据。 0.1 cURL是什么意思? cURL(客户端URL)是一个开放源代码的命令行工具,也是一个跨平台的库…

选择排序详解:直接选择排序+堆排序(思路+图解+代码)

文章目录 排序选择排序1.直接选择排序方法一方法二直接插入排序和直接排序的区别 2.堆排序 排序 选择排序 在待排序序列中,找到最小值(大)的下标,和排好序的末尾交换,放到待排序列的开头,直到全部待排序元…

php在线审稿系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

一、源码特点 php在线审稿系统是一套完善的web设计系统mysql数据库 ,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 php在线审稿系统 代码 https://download.csdn.net/download/qq_41221322/885…

【C语言 | 数组】C语言数组详解(经典,超详细)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

websocket学习笔记【springboot+websocket聊天室demo】

文章目录 WebSocket是什么?为什么需要WebSocket?WebSocket和Http连接的区别WebSocket的工作原理基本交互过程: Java中的WebSocket支持WebSocket的优势springboot websocket themlef 一个聊天室demopom.xmlWebSocketConfigChatControllerWebController…

PDF/X、PDF/A、PDF/E:有什么区别,为什么有这么多格式?

PDF 是一种通用文件格式,允许用户演示和共享文档,无论软件、硬件或操作系统如何。多年来,已经创建了多种 PDF 子类型来满足各个行业的不同需求。让我们看看一些最流行的格式:PDF/X、PDF/A 和 PDF/E。 FastReport .net下载 PDF/X …

火山引擎云原生存储加速实践

在火山引擎相关的业务中绝大部分的机器学习和数据湖的算力都运行在云原生 K8s 平台上。云原生架构下存算分离和弹性伸缩的计算场景,极大的推动了存储加速这个领域的发展,目前业界也衍生出了多种存储加速服务。但是面对计算和客户场景的多样性&#xff0c…

Go fsnotify简介

fsnotify是一个用Go编写的文件系统通知库。它提供了一种观察文件系统变化的机制,例如文件的创建、修改、删除、重命名和权限修改。它使用特定平台的事件通知API,例如Linux上的inotify,macOS上的FSEvents,以及Windows上的ReadDirec…

Leetcode——岛屿的最大面积

1. 题目链接:695. 岛屿的最大面积 2. 题目描述: 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都…

[Mac软件]Adobe XD(Experience Design) v57.1.12.2一个功能强大的原型设计软件

Adobe XD是一个直观、强大的UI/UX开发工具,旨在设计、原型设计、用户之间共享材料,以及通过数字技术设计交互。Adobe XD为您提供开发网站、应用程序、语音界面、游戏界面、电子邮件模板等所需的一切。 无限制地创建 设计各种互动,创建看起来…

01序列 卡特兰数

解法: 将01序列置于坐标轴上,起始点为原点。0表示向右走,1表示向上走。这样就可以将前缀0的个数不少于1的个数就可以转换为路径上的点,横坐标大于纵坐标,也就是求合法路径个数。 注意题目mod的数是质数,所…

YOLOv5独家原创改进:最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度

💡该教程为属于《芒果书》📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡本篇文章为YOLOv5独家原创改进:独家首发最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度。 💡对自己数据集改进有效…

开发知识点-Vue-Electron

Electron ElectronVue打包.exe桌面程序 ElectronVue打包.exe桌面程序 为了不报错 卸载以前的脚手架 npm uninstall -g vue-cli安装最新版脚手架 cnpm install -g vue/cli创建一个 vue 随便起个名 vue create electron-vue-example (随便起个名字electron-vue-example)进入 创建…

Node.js详解

一、是什么 Node.js 是一个开源与跨平台的 JavaScript 运行时环境 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核),利用事件驱动、非阻塞和异步输入输出模型等技术提高性能 可以理解为 Node.js 就是一个服务器端的、非阻塞式I/…

关于Chrome中F12调试Console输入多行

在chrome 浏览器中使用console调试的时,如果想在console中输入多行代码,需要进行换行。 这时我们可以使用 [ Shift Enter ] 。也叫: 软回车。

C 语言实现 UDP

广播 发送广播信息&#xff0c;局域网中的客户端都可以接受该信息 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <arpa/inet.h>int main() {// 1.创建一个通信的socketint fd socket(PF_INET, …