遞迴最小平方濾波器

来自testwiki
跳转到导航 跳转到搜索

Template:NoteTA 遞迴最小平方濾波器(RLS)屬於自适应滤波器,會針對和輸入信號有關的Template:Link-en损失函数,遞迴尋找可以使其最小化的係數。此方法和想要減少均方误差最小均方滤波器(LMS)不同。在推導遞迴最小平方濾波器時,會假設輸入信號是确定性的,而最小均方滤波及其他演算法會假設信號Template:Link-en。和其他的方法比較起來,遞迴最小平方濾波器的收斂速度特別快。但其代價是非常高的運算複雜度。

演進

遞迴最小平方濾波器是由卡爾·弗里德里希·高斯發現,但被遺忘無人使用,直到Plackett在1950年發現高斯1821年的著作之後,才再獲使用。一般來說,遞迴最小平方濾波器可以求得任何可以用自适应滤波器求解的問題。例如,假設信號d(n)從有回聲的有噪信道傳輸,接收到的是

x(n)=k=0qbn(k)d(nk)+v(n)

其中v(n)代表加性高斯白噪声。RLS濾波器的目的是用p+1有限冲激响应(FIR)濾波器𝐰,還原想要的訊號d(n)

d(n)k=0pw(k)x(nk)=𝐰𝑇𝐱n

其中𝐱n=[x(n)x(n1)x(np)]T是包括x(n)最近p+1次取樣的-{zh-tw:行; zh-cn:列;}-向量。接收到想要訊號的估測值為

d^(n)=k=0pwn(k)x(nk)=𝐰n𝑇𝐱n

其目的是估測濾波器𝐰的參數,在每個時間n,會將目前的估測值用𝐰n表示,自適應的最小方差估測值為𝐰n+1𝐰n也是如下的列向量,其转置𝐰n𝑇則是-{zh-tw:列; zh-cn:行;}-向量。矩陣乘法𝐰n𝑇𝐱n(也是𝐰n𝐱n點積)是d^(n)為純量。若d^(n)d(n)最小二乘法的概念下,其值是小的,其估測就算是好的。

隨著時間演進,會希望避免完全重做最小方差演算法來找新估測值𝐰n+1,會希望可以將新估測值𝐰n+1𝐰n配合其他變數來表示。

遞迴最小平方濾波器的好處是不用進行反矩陣運算,因此可以節省計算時間。另一個好處是在其結果之後,提供了類似卡尔曼滤波的直覺資訊。

概念

遞迴最小平方濾波器背後的概念是在收到新資料時,適當選擇濾波器係數𝐰n、更新濾波器,以及讓损失函数 C最小化。誤差信號e(n)和期望信號d(n)之間的關係,可以用以下的负反馈方塊圖來說明:

誤差會透過估測值d^(n),受到濾波器係數影響:

e(n)=d(n)d^(n)

加權最小方差函數C—希望可以最小化的費用函數—是e(n)的函數,因此也會受到濾波器係數的影響:

C(𝐰n)=i=0nλnie2(i)

其中0<λ1,是「遺忘因子」(forgetting factor),以指數的方式讓較舊的資料有較小的加權。

費用函數最小化的方式,是將係數向量𝐰n中的所有項次微分,並讓微分為零

C(𝐰n)wn(k)=i=0n2λnie(i)e(i)wn(k)=i=0n2λnie(i)x(ik)=0k=0,1,,p

接著,用以下的誤差信號來代替e(n)

i=0nλni[d(i)=0pwn()x(i)]x(ik)=0k=0,1,,p

將等式重組如下

=0pwn()[i=0nλnix(i)x(ik)]=i=0nλnid(i)x(ik)k=0,1,,p

可以表示為以下的矩陣

𝐑x(n)𝐰n=𝐫dx(n)

其中𝐑x(n)x(n)的加權Template:Link-en矩陣,而𝐫dx(n)d(n)x(n)互协方差的等效估計。依照上式可以找到最小化費用函數的係數

𝐰n=𝐑x1(n)𝐫dx(n)

如何選擇λ

λ越小,舊數據對協方差矩陣的影響越小,讓濾波器對最近的數據較敏感,這也會讓濾波器的co-efficients比較容易振盪。λ=1稱為growing window遞迴最小平方演算法。在實務上,會讓λ0.98介於1之間[1]。利用第二型的最大可能區間估測,可以用資料中估測到最佳的λ[2]

遞迴演算法

以上敘述的結論是可以決定費用函數的參數,使費用函數最小化的方程式。以下則說明如何找到此形式的遞迴解

𝐰n=𝐰n1+Δ𝐰n1

其中Δ𝐰n1是時間n1的修正因子。首先將互協方差𝐫dx(n)𝐫dx(n1)來表示

𝐫dx(n) =i=0nλnid(i)𝐱(i)
=i=0n1λnid(i)𝐱(i)+λ0d(n)𝐱(n)
=λ𝐫dx(n1)+d(n)𝐱(n)

其中𝐱(i)p+1維的資料向量

𝐱(i)=[x(i),x(i1),,x(ip)]T

接下來以相似的方式,用𝐑x(n1)表示𝐑x(n)

𝐑x(n) =i=0nλni𝐱(i)𝐱T(i)
=λ𝐑x(n1)+𝐱(n)𝐱T(n)

為了要找到其係數向量,接下來要關注的是決定性自協方差矩陣的反矩陣。這問題可以使用Template:Link-en。若

A =λ𝐑x(n1)(p+1)×(p+1)矩陣
U =𝐱(n)(p+1)×1(-{zh-tw:行; zh-cn:列;}-向量)
V =𝐱T(n)1×(p+1)(-{zh-tw:列; zh-cn:行;}-向量)
C =𝐈11×1 單位矩陣

依照伍德伯里矩陣恆等式,可得到下式

𝐑x1(n) = [λ𝐑x(n1)+𝐱(n)𝐱T(n)]1
= 1λ{𝐑x1(n1)𝐑x1(n1)𝐱(n)𝐱T(n)𝐑x1(n1)λ+𝐱T(n)𝐑x1(n1)𝐱(n)}

為了和標準的文獻一致,定義

𝐏(n) =𝐑x1(n)
=λ1𝐏(n1)𝐠(n)𝐱T(n)λ1𝐏(n1)

其中的增益向量g(n)

𝐠(n) =λ1𝐏(n1)𝐱(n){1+𝐱T(n)λ1𝐏(n1)𝐱(n)}1
=𝐏(n1)𝐱(n){λ+𝐱T(n)𝐏(n1)𝐱(n)}1

在往下推導之前,需要將𝐠(n)改為以下的形式

𝐠(n){1+𝐱T(n)λ1𝐏(n1)𝐱(n)} =λ1𝐏(n1)𝐱(n)
𝐠(n)+𝐠(n)𝐱T(n)λ1𝐏(n1)𝐱(n) =λ1𝐏(n1)𝐱(n)

等式兩側減去左邊的第二項,得到

𝐠(n) =λ1𝐏(n1)𝐱(n)𝐠(n)𝐱T(n)λ1𝐏(n1)𝐱(n)
=λ1[𝐏(n1)𝐠(n)𝐱T(n)𝐏(n1)]𝐱(n)

配合𝐏(n)的遞迴式定義,希望的形式如下

𝐠(n)=𝐏(n)𝐱(n)

此時就可以完成遞迴,如以上討論

𝐰n =𝐏(n)𝐫dx(n)
=λ𝐏(n)𝐫dx(n1)+d(n)𝐏(n)𝐱(n)

第二步是從𝐫dx(n)的遞迴式定義開始,接著使用𝐏(n)的遞迴式定義,配合調整後的𝐠(n),可以得到

𝐰n =λ[λ1𝐏(n1)𝐠(n)𝐱T(n)λ1𝐏(n1)]𝐫dx(n1)+d(n)𝐠(n)
=𝐏(n1)𝐫dx(n1)𝐠(n)𝐱T(n)𝐏(n1)𝐫dx(n1)+d(n)𝐠(n)
=𝐏(n1)𝐫dx(n1)+𝐠(n)[d(n)𝐱T(n)𝐏(n1)𝐫dx(n1)]

配合𝐰n1=𝐏(n1)𝐫dx(n1),可以得到以下的更新方程式

𝐰n =𝐰n1+𝐠(n)[d(n)𝐱T(n)𝐰n1]
=𝐰n1+𝐠(n)α(n)

其中α(n)=d(n)𝐱T(n)𝐰n1先驗誤差。將此和後驗誤差(在濾波器更新後計算的誤差)比較

e(n)=d(n)𝐱T(n)𝐰n

這就找到了修正因子

Δ𝐰n1=𝐠(n)α(n)

這個結論指出了修正係數直接和誤差和增益向量成正比,增益向量會透過加權因子λ影響想要的靈敏度,這個結論很符合直覺。

RLS演算法摘要

p階RLS濾波器的演算法可以摘要如下

參數: p=階數
λ=遺忘因子
δ=𝐏(0)的初始值
開始: 𝐰(0)=0,
x(k)=0,k=p,,1,
d(k)=0,k=p,,1
𝐏(0)=δI其中Ip+1階的單位矩陣
計算: 針對n=1,2,

𝐱(n)=[x(n)x(n1)x(np)]

α(n)=d(n)𝐱T(n)𝐰(n1)
𝐠(n)=𝐏(n1)𝐱(n){λ+𝐱T(n)𝐏(n1)𝐱(n)}1
𝐏(n)=λ1𝐏(n1)𝐠(n)𝐱T(n)λ1𝐏(n1)
𝐰(n)=𝐰(n1)+α(n)𝐠(n).

P的遞迴依照代數Riccati方程,也類似卡尔曼滤波的結果[3]

相關條目

書目

Template:Reflist

  • Template:Cite book
  • Simon Haykin, Adaptive Filter Theory, Prentice Hall, 2002, Template:ISBN
  • M.H.A Davis, R.B. Vinter, Stochastic Modelling and Control, Springer, 1985, Template:ISBN
  • Weifeng Liu, Jose Principe and Simon Haykin, Kernel Adaptive Filtering: A Comprehensive Introduction, John Wiley, 2010, Template:ISBN
  • R.L.Plackett, Some Theorems in Least Squares, Biometrika, 1950, 37, 149–157, Template:ISSN
  • C.F.Gauss, Theoria combinationis observationum erroribus minimis obnoxiae, 1821, Werke, 4. Gottinge
  1. Emannual C. Ifeacor, Barrie W. Jervis. Digital signal processing: a practical approach, second edition. Indianapolis: Pearson Education Limited, 2002, p. 718
  2. Steven Van Vaerenbergh, Ignacio Santamaría, Miguel Lázaro-Gredilla "Estimation of the forgetting factor in kernel recursive least squares", 2012 IEEE International Workshop on Machine Learning for Signal Processing, 2012, accessed June 23, 2016.
  3. Welch, Greg and Bishop, Gary "An Introduction to the Kalman Filter", Department of Computer Science, University of North Carolina at Chapel Hill, September 17, 1997, accessed July 19, 2011.