首页IT科技递归最小二乘算法(RLS递归最小二乘法(Recursive Least Squares))

递归最小二乘算法(RLS递归最小二乘法(Recursive Least Squares))

时间2025-05-05 11:25:15分类IT科技浏览3158
导读:RLS递归最小二乘法(Recursive Least Squares ...

RLS递归最小二乘法(Recursive Least Squares)

感谢B站Up 凩子白的讲解视频, 大多数的RLS算法介绍都是从各种专业领域角度讲解的(比如滤波器等角度), 对于缺乏专业背景的同学入门较难, 本文主要是以上提到的视频的文字化, 加入了自己的一些理解, 也许有一些地方不是那么严谨, 不过希望能帮助其他同学快速了解一下RLS算法的思想           。

PRELIMINARIES

最小二乘法

对于样本数据对儿

(

x

,

y

)

(\mathbf{x},y)

(x,y), 其中输入数据向量

x

=

[

x

11

,

x

12

,

.

.

.

,

x

1

m

]

T

R

m

\mathbf{x}=[x_{11},x_{12},...,x_{1m}]^T \in \mathbb{R}^m

x=[x11,x12,...,x1m]TRm
, 输出样本为

y

R

y\in \mathbb{R}

yR
; 使用参数为

w

\mathbf{w}

w
的模型来拟合数据

(

x

,

y

)

(\mathbf{x},y)

(x,y)
之间的真实映射关系; 认为模型

w

\mathbf{w}

w
的输出为

y

y

y
的估计值

y

^

R

\hat{y}\in \mathbb{R}

yR
, 满足

y

^

f

(

w

;

x

)

\hat{y} \sim f({\mathbf{w}};\mathbf{x})

yf(w;x)

, 拟合模型满足如下形式

y

1

^

=

w

1

x

11

+

w

2

x

12

+

.

.

.

w

m

x

1

m

=

x

1

T

w

y

2

^

=

x

2

T

w

y

n

^

=

x

n

T

w

(1)

\hat{y_1}=w_1x_{11}+w_2x_{12}+...w_mx_{1m}=\mathbf{x_1^T}\mathbf{{w}}\\ \hat{y_2}=\mathbf{x_2^T }\mathbf{{w}}\\ \vdots\\ \hat{y_n}=\mathbf{x_n^T }\mathbf{{w}} \tag{1}

y1=w1x11+w2x12+...wmx1m=x1Twy2=x2Twyn=xnTw(1)
最小二乘法的思路, 就是希望近似模型参数

w

\mathbf{{w}}

w
在这

n

n

n
个样本输入数据

X

n

×

m

=

[

x

1

,

x

2

,

.

.

.

,

x

n

]

T

X_{n\times m}=[\mathbf{x_1},\mathbf{x_2},...,\mathbf{x_n}]^T

Xn×m=[x1,x2,...,xn]T
(以后简记为

X

X

X
)上得出的估计值

y

^

=

[

y

1

^

,

y

2

^

,

.

.

.

,

y

n

^

]

T

\hat{\mathbf y}=[\hat{y_1},\hat{y_2},...,\hat{y_n}]^T

y=[y1,y2,...,yn]T
与ground truth 输出样本数据

y

=

[

y

1

,

y

2

,

.

.

.

,

y

n

]

T

\mathbf y=[y_1,y_2,...,y_n]^T

y=[y1,y2,...,yn]T

之间的差值平方和最小,即

w

=

arg

m

i

n

i

=

1

n

(

y

i

y

i

^

)

2

=

arg

m

i

n

i

=

1

n

(

y

i

x

i

T

w

)

2

=

arg

m

i

n

y

X

w

2

2

=

arg

m

i

n

E

(

w

)

(2)

{\mathbf{w}} =\arg min \sum\limits_{i=1}^n (y_i-\hat{y_i})^2\\ = \arg min \sum\limits_{i=1}^n (y_i-\mathbf{x_i^T }\mathbf{{w}})^2\\ =\arg min \begin{Vmatrix} \mathbf{y}-X\mathbf{w} \end{Vmatrix}_2^2\\ =\arg min\ E(\mathbf{w}) \tag{2}

w=argmini=1n(yiyi)2=argmini=1n(yixiTw)2=argminyXw22=argminE(w)(2)
误差

E

(

w

)

E(\mathbf{w})

E(w)
对参数

w

\mathbf{w}

w

求梯度,

w

E

=

w

y

X

w

2

2

=

w

[

(

y

X

w

)

T

(

y

X

w

)

]

=

2

X

T

(

y

X

w

)

(3)

\nabla_\mathbf{w} E =\nabla_\mathbf{w}\begin{Vmatrix} \mathbf{y}-X\mathbf{w} \end{Vmatrix}_2^2\\ =\nabla_\mathbf{w} \big[(\mathbf{y}-X\mathbf{w})^T(\mathbf{y}-X\mathbf{w})\big] \\ =2X^T(\mathbf{y}-X\mathbf{w}) \tag{3}

wE=wyXw22=w[(yXw)T(yXw)]=2XT(yXw)(3)

w

E

=

\nabla_\mathbf{w} E=0

wE=0

, 即可求出

w

=

X

1

y

=

(

X

T

X

)

1

X

T

y

(4)

\mathbf{w}=X^{-1}\mathbf{y}=(X^TX)^{-1}X^T\mathbf{y} \tag{4}

w=X1y=(XTX)1XTy(4)
注意, 公式

3

{3}

3
中的

y

\mathbf y

y
是样本数据, 将

X

1

X^{-1}

X1
表述为

(

X

T

X

)

1

X

T

(X^TX)^{-1}X^T

(XTX)1XT
的原因是矩阵

X

X

X
不一定是

n

×

n

n\times n

n×n
形状,因此不一定有逆矩阵, 而

X

T

X

X^TX

XTX
的逆是存在的?

当一次性给出所有样本集合

(

X

,

y

)

(X,\mathbf{y})

(X,y)时, 可以通过公式

4

{4}

4
来直接计算出最优的拟合模型参数

w

\mathbf{w}

w
, 然而, 在实际应用中, 这种直接计算法并不常见, 主要是因为公式中求逆部分

(

X

T

X

)

1

(X^TX)^{-1}

(XTX)1
的计算量大, 在样本数据量大时计算量更是明显增大; 另外, 现实生活中,往往出现样本数据可能也并不是一次性给出, 而是不断给出新的样本数据, 以一种数据流的形式给出样本数据, 例如传感器随时间不断读取信号等, 这种情况下利用公式

4

{4}

4
直接计算最优模型参数

w

{\mathbf{w}}

w
就需要每次进行直接计算, 也是不现实的.

因此, 为了利用最小误差平方和原则, 求解在大样本量, 或者数据流情况下的最优模型参数

w

{\mathbf{w}}

w, 一种方法可以将大样本分成多批次(batch), 计算旧模型在新批次样本上的梯度, 不断进行梯度下降来进行迭代求解(也可以将数据流当做一个个batch来梯度更新); 另一种则是解析的方法, 就是这里提到的递归最小二乘解法(RLS).

本质上, 递归最小二乘法RLS和梯度下降          、直接计算法一样, 都是为了求解满足最小误差平方和原则的最优模型参数

w

{\mathbf{w}}

w, 只是在实现方式上有所不同.

递归最小二乘法

如之前提到的, RLS的主要应用场景, 是假设输入样本数据

X

X

X在不断添加新数据, 例如

X

=

[

x

1

,

x

2

,

.

.

.

,

x

n

]

T

X

=

[

x

1

,

x

2

,

.

.

.

,

x

n

,

x

n

+

1

]

T

X=[\mathbf{x_1},\mathbf{x_2},...,\mathbf{x_n}]^T\rightarrow X=[\mathbf{x_1},\mathbf{x_2},...,\mathbf{x_n} , \mathbf{x_{n+1}}]^T

X=[x1,x2,...,xn]TX=[x1,x2,...,xn,xn+1]T
,

y

=

[

y

1

,

y

2

,

.

.

.

,

y

n

]

T

y

=

[

y

1

,

y

2

,

.

.

.

,

y

n

,

y

n

+

1

]

T

\mathbf y=[y_1,y_2,...,y_n]^T\rightarrow\mathbf y=[y_1,y_2,...,y_n,y_{n+1}]^T

y=[y1,y2,...,yn]Ty=[y1,y2,...,y

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
spring官方文档在哪(Spring FactoryBean接口) 如何在word中导入word(如何快速导入并管理Word文章?)