本文轉載自:http://www.cnblogs.com/xingshansi/p/6654372.html
西蒙.赫金的《自適應濾波器原理》第四版第四章:最速下降算法。優化求解按照有/無約束分類:如投影梯度下降算法((Gradient projection)便是有約束的優化求解;按照一階二階分類:梯度下降(Gradient descent)、Newton法等;按照偏導存在與否分類:如梯度下降、次梯度下降(Subgradient descent)等.本文主要整理:梯度下降法在維納濾波中的應用.
一、原理思想
對於準則函數:
需要尋找最優解,使它對所有滿足。可以利用迭代下降的思路求解:
從初始值出發, 產生一系列權向量,...,使得準則函數每一次迭代都是下降的:,其中是權向量的過去值,是更新值。
定義梯度:
負梯度方向爲減小方向:
爲了說明準則函數隨着迭代下降,從一階泰勒展開可以觀察:
二、應用實例
仍然藉助維納濾波一文的例子:
已知:
含有噪聲的正弦波:.
其中爲歸一化頻率[-1/2, 1/2],θ爲正弦波相位,服從[0, 2π]的均勻分佈,爲具有零均值和方差的高斯白噪聲。
求:
時域維納濾波器。假設濾波器爲時域濾波器時M=2.
首先求解相關矩陣:
爲廣義平穩隨機過程,可以計算其自相關函數:
得到關於均方誤差的準則函數:
代入數值:
迭代的時候,可以保留矩陣的形式,也可以利用代數的形式,形式不同但本質相同,以矩陣爲例:
得到梯度.
對應搜索代碼:
r_yd = [0.5 0.154]';
R_yy = [2.5 0.154;0.154 2.5];
h_est = [0 0]';
deltaJold = Inf;
mu = 0.001;
for i = 1:2000
deltaJ = -2*r_yd+2*R_yy*h_est;
if abs(deltaJ-deltaJold)<1e-5
break;
end
h_est = h_est - mu*deltaJ
deltaJold = deltaJ;
end
三、穩定性
上文中μ取0.001,μ如何取值才能保證梯度正常下降呢?事實上,如果μ過大結果會往外發散而不是收斂於最優點。
藉助維納濾波一文可以知道,
從而有:
記:
對於正定矩陣,存在正交矩陣:
即,爲此保證最大特徵值小於1即可保證收斂:
如對應上面h的求解,,用上面的程序容易驗證μ=0.37時滿足條件,可以收斂;μ=0.38則發散,無法得到最優值。
四、理論擴展
如果沿着曲線直接尋優,我們稱爲:精確直線搜索。如計算::
這是就是Δx與x固定後,該問題就是t的函數,易求解。但實際情況中,準則函數並不總是這麼理想,因此藉助近似的思路去尋優,成了一種更普適的方式,梯度下降法、牛頓法都是基於該思路。
這裏給出一個更簡單的例子y=kx的擬合問題,其中k未知。
首先給出結果圖:
100組隨機試驗,未添加噪聲。
給出code:
N = 100;
a = zeros(1,N);
mu =0.002;
flag = 2;
for k = 1:N
xold = linspace(-10,10,60);
nums = randperm(length(xold));
x = xold(nums);
y = 3*x +2*randn(1,length(x));
switch flag
case 1
a_est = 0;
batch = 10;
for i=1:batch:length(x)
a_est = a_est+mu*(x(i:i+batch-1)*(y(i:i+batch-1)-a_est*x(i:i+batch-1)).');
end
case 2
a_est = 0;
batch = 1;
for i=1:batch:length(x)
a_est = a_est+mu*(x(i:i+batch-1)*(y(i:i+batch-1)-a_est*x(i:i+batch-1)).');
end
end
a(k) = a_est;
end
與之對應的統計誤差也不再是均方意義上,假設時間換空間的序列長N:
簡單來說:當N較大時,對應的梯度下降稱之爲——批量(Batch)梯度下降,當N=1即每次來一個樣本,對應稱之爲——隨機梯度下降。
通過上面的小程序可以得出兩點結論:
- 初始值
- 迭代步長
- 特徵尺寸(一維無此問題)
二者都對尋優產生影響。事實上對於高維數據,不同特徵尺寸不同,對尋優也有影響,通常需要分別對特徵進行歸一化。
A-批量梯度下降
仍然以線性迴歸爲例:
這裏,給出準則函數,便於求導通常添加1/2:
求偏導:
從而:
可以寫爲:
迭代至滿足收斂條件即可求解。
B-隨機梯度下降
對應批量梯度下降,當m=1即一次只接受/處理一個樣本,對應爲隨機梯度下降。
事實上,當引入噪聲時,時間換空間只能是一種近似,即批量/隨機梯度下降的最優解,通常不是維納濾波的最優解。基於隨機梯度的最小均方誤差(Least mean square, LMS)通常稱爲LMS算法,以示與梯度下降的區別。
C-Newton-Raphson法
梯度下降法基於一階近似,如果二階逼近收斂是否會更快一些?即尋找梯度的梯度——走一步想兩步。
再次給出梯度下降的一階Taylor近似:
給出二階Taylor近似:
對應的矩陣稱爲Hessian矩陣,該方法成爲牛頓法(Newton),也稱Newton-Raphson法。
對於點,選擇下降方向:
參考:
- Simon Haykin 《Adaptive Filter Theory Fourth Edition》.
- Philipos C.Loizou《speech enhancement theory and practice》.
- 張賢達《矩陣分析與應用》.