最小均方法(LMS)

2021-07-24 22:16:51 字數 957 閱讀 1629

最小均方(least mean square)可認為是機器學習裡面最基本也比較有用的演算法,神經網路中對引數的學習使用的就是lms的思想,在通訊訊號處理領域lms也非常常見,比如自適應濾波器。本文理論上介紹基於lms的梯度下降演算法(包括batch training/stochastic training)

假設有m組資料(三維空間上的點,形如:(x1,x2,y)),x表示輸入,y表示輸出,為了**新的輸入時,得到的輸出,假設模型為線性如下:

接下來的問題在於求解omega值。首先我們引入平方損失函式:

​該損失函式為最小二乘法中計算誤差的函式,損失函式值越小,說明模型與當前已知資料的擬合程度越好,否則越差。因此,求解omega的目標就是求解j(w)最小,這就用到了lms演算法。

​lms演算法是乙個搜尋演算法,假設w從某個給定的初始值開始迭代,逐漸使j(w)朝著最小的方向變化,直到達到乙個值使j(w)收斂。考慮梯度下降演算法(gradient descent algorithm),它通過給定的w值快速的執行如下的更新操作:

其中alpha為學習率(learning rate)。要對w更新,首先需要完成上面的求導,求導的結果帶入式子後如下(對乙個單一的訓練例項j):

按照上述的更新方法,對多個例項的更新規則為:

while convergence }

這種更新的梯度下降方法稱為batch gradient descent。還有一種更新的方式:採用隨機的樣本資料例項,如下​:

while convergence {

for every j{

這種方法稱為stochastic gradient descent (或者incremental gradient descent)。兩種方法的明顯區別是batch的訓練時間要比stochastic常,但效果可能更好。實際問題中,因為我們只需要找到乙個接近使j(w)最小的值即可,因此stochastic更常用。

lms到底能用來幹嘛,其實上面已經很清楚了:引數訓練中的求極值。​

最小均方演算法(LMS)

lms演算法是自適應濾波器中常用的一種演算法,與維納演算法不同的是,其系統的係數隨輸入序列而改變。維納演算法中擷取輸入序列自相關函式的一段構造系統的最佳係數。而lms演算法則是對初始化的濾波器係數依據最小均方誤差準則進行不斷修正來實現的。因此,理論上講lms演算法的效能在同等條件下要優於維納演算法,...

Python實現最小均方演算法 lms

lms演算法跟rosenblatt感知器相比,主要區別就是權值修正方法不一樣。lms採用的是批量修正演算法,rosenblatt感知器使用的 是單樣本修正演算法。兩種演算法都是單層感知器,也只適用於線性可分的情況。詳細 及說明如下 演算法 最小均方演算法 lms 均方誤差 樣本 輸出值與實際輸出值之...

最小均方演算法(LMS)的原理

最小均方演算法 least mean square,lms 是一種簡單 應用為廣泛的自適應濾波演算法,是在維納濾波理論上運用速下降法後的優化延伸,早是由 widrow 和 hoff 提出來的。該演算法不需要已知輸入訊號和期望訊號的統計特徵,當前時刻 的權係數是通過 上一 時刻 權係數再加上乙個負均方...