1. 論文基本信息
這篇筆記主要針對濾波器求解的推導過程進行分析(拉格朗日乘子法),主要參考內容是原文的補充材料,關於論文其他部分創新點及其整體思路會在後續文章中進行分析。(筆記1的鏈接:http://blog.csdn.net/discoverer100/article/details/78182306)
2. 濾波器求解目標函數的構建
在多通道情況下,目標函數爲
argminh∑d=1Nd(∥fd⊙hd−g∥2+λ∥hd∥2)=argminh∑d=1Nd(∥∥h^Hddiag(f^d)−g^d∥∥2+λ∥∥h^d∥∥2)(1)
其中,
h 表示濾波器,
d=1toNd 表示
Nd 個通道,
g 表示期望的響應輸出,
λ 表示正則項用於防止過擬合(關於正則項爲什麼可以防止過擬合可以參考:
http://www.cnblogs.com/alexanderkun/p/6922428.html)
根據上述(1)式,爲簡化推導過程,將多通道情況改爲單通道情況模式,則目標函數爲
argminh∥f⊙h−g∥2+λ∥h∥2=argminh∥∥h^Hdiag(f^)−g^∥∥2+λ∥∥h^∥∥2(2)
引入變量
hc 並定義約束條件
hc−hm=0(3)
其中,
hm≡m⊙h ,而
m 表示論文中的空間置信圖(spatial reliability map),也可以理解爲一個mask,具體概念可以參考前面的一篇文章:
http://blog.csdn.net/discoverer100/article/details/78182306,上述(3)式中引入的變量
hc 可以先不理會其物理意義,它的主要作用是讓算法能夠收斂(論文原文表述:prohibits a closed-form solution),個人猜測:這裏的下標命名爲c,可能就是取constrained的第一個字母。
對(2)式引入上述約束條件,並進一步調整,得到最終的目標函數
argminhc,hm∥∥h^Hcdiag(f^)−g^∥∥2+λ2∥∥h^m∥∥2s.t.hc−hm=0(4)
上述的正則項前面多出了一個係數
1/2 ,其主要意圖是求導數後係數可以變爲
1 ,便於公式書寫。
這樣,公式(4)就是我們推導的起始表達式。
3. 構建Lagrange表達式
根據上述目標函數,以及Augmented Lagrangian方法(參考Distributed optimization and statistical learning via the alternating direction method of multipliers),構建Lagrang表達式,如下
L(h^c,h,I^|m)=∥∥h^Hcdiag(f^)−g^∥∥2+λ2∥hm∥2+[I^H(h^c−h^m)+I^H(h^c−h^m)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]+μ∥∥h^c−h^m∥∥2(5)
其中,字母
I 表示Lagrange乘數,字母上面的橫槓表示
共軛矩陣,字母右上方的
H 表示
共軛轉置矩陣,因此有規律:
A¯T=AH (後面的推導中可能同時存在兩種表示,需要留意)。將上述(5)式進行向量化表示,可得
L(h^c,h,I^|m)=∥∥h^Hcdiag(f^)−g^∥∥2+λ2∥hm∥2+[I^H(h^c−D−−√FMh)+I^H(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]+μ∥∥h^c−D−−√FMh∥∥2(6)
不難看出,上述(5)式到(6)式,主要變化就是將變量
h^m 的表達式替換爲
D−−√FMh ,其中
F 表示離散傅里葉變換矩陣,它相當於一個常量,
D 是
F 的大小(
F 是一個
D×D 的方陣),
M=diag(m)
將上述(6)式簡單表述爲四個項的和,爲
L(h^c,h,I^)=L1+L2+L3+L4(7)
其中,
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪L1=∥∥h^Hcdiag(f^)−g^∥∥2=(h^Hcdiag(f^)−g^)(h^Hcdiag(f^)−g^)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯TL2=λ2∥hm∥2L3=I^H(h^c−D−−√FMh)+I^H(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯L4=μ∥∥h^c−D−−√FMh∥∥2=μ(h^c−D−−√FMh)(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯T(8)
4. 開始優化,首先對h_c求偏導數
對上述公式(4)的優化可以表述爲下面的迭代過程
h^optc=argminhcL(h^c,h,I^)hopt=argminhL(h^optc,h,I^)(9)
現在看關於變量
h^c 的優化,需要令滿足
∇h^c¯¯¯¯¯¯L≡0 ,也就是
∇h^c¯¯¯¯¯¯L1+∇h^c¯¯¯¯¯¯L2+∇h^c¯¯¯¯¯¯L3+∇h^c¯¯¯¯¯¯L4≡0(10)
對各個分量求偏導數,有
∇h^c¯¯¯¯¯¯L1=∂∂h^c¯¯¯¯¯[(h^Hcdiag(f^)−g^)(h^Hcdiag(f^)−g^)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯T]=∂∂h^c¯¯¯¯¯[h^Hcdiag(f^)diag(f^)Hh^c−h^Hcdiag(f^)g^H−g^diag(f^)Hh^c+g^g^H]=diag(f^)diag(f^)Hh^c−diag(f^)g^H−0+0=diag(f^)diag(f^)Hh^c−diag(f^)g^H(11)
∇h^c¯¯¯¯¯¯L2=∇h^c¯¯¯¯¯¯[λ2∥hm∥2]=0(12)
∇h^c¯¯¯¯¯¯L3=∂∂h^c¯¯¯¯¯[I^H(h^c−D−−√FMh)+I^H(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]=∂∂h^c¯¯¯¯¯[I^Hh^c−I^HD−−√FMh+I^Th^c¯¯¯¯¯−I^TD−−√FMh¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]=0−0+I^T−0=I^(13)
∇h^c¯¯¯¯¯¯L4=∂∂h^c¯¯¯¯¯[μ(h^c−D−−√FMh)(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯T]=∂∂h^c¯¯¯¯¯[μ(h^c⋅h^Hc−h^c⋅D−−√hHMFH−D−−√FMhh^Hc+D−−√FMh⋅D−−√hHMFH)]=∂∂h^c¯¯¯¯¯[μ(h^c⋅h^Hc−h^c⋅D−−√hHMFH−D−−√FMhh^Hc+DFMhhHMFH)]=μ(h^c−0−D−−√FMh+0)=μh^c−μD−−√FMh(14)
於是,上述公式(10)可以寫成
diag(f^)diag(f^)Hh^c−diag(f^)g^H+0+I^+μ(h^c−0−D−−√FMh+0)≡0diag(f^)diag(f^)Hh^c−diag(f^)g^H+I^+μ(h^c−0−D−−√FMh+0)≡0(15)
回顧公式(6),我們曾將變量
h^m 的表達式替換爲
D−−√FMh ,現在我們將它替換回來,得
diag(f^)diag(f^)Hh^c−diag(f^)g^H+I^+μ(h^c−0−h^m+0)≡0(16)
針對
h^c 合併同類項,得
h^c⋅[diag(f^)diag(f^)H+μ]=μh^m+diag(f^)g^H−I^(17)
於是,
h^c=diag(f^)g^H+μh^m−I^diag(f^)diag(f^)H+μ(18)
根據對角矩陣的乘法性質以及相關濾波基礎概念,我們可以將上述(18)式的表達進行簡化,得
h^c=f^⊙g^∗+μh^m−I^f^⊙f^∗+μ(19)
由於右上角得星號表示共軛矩陣,爲與作者原文表述一致,也可用頂部的橫槓表示,有
h^c=f^⊙g^¯¯¯+μh^m−I^f^⊙f^¯¯¯+μ(20)
這樣就完成了對變量
h^c 的最優化求解,它對應論文官方源碼中的變量G(位於create_csr_filter.m中)
G = (Sxy + mu*H - L) ./ (Sxx + mu);
5. 對變量h求解偏導數
前面的公式(10)-(20)都是針對變量h^c 求解偏導數,由於論文提出的Lagrange表達式中含有兩個變量,現在還需要針對變量h¯¯¯ 求解偏導數,也就是
∇h¯¯¯¯L1+∇h¯¯¯¯L2+∇h¯¯¯¯L3+∇h¯¯¯¯L4≡0(21)
首先回顧(8)式,也就是L1、L2、L3和L4這四個優化項
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪L1=∥∥h^Hcdiag(f^)−g^∥∥2=(h^Hcdiag(f^)−g^)(h^Hcdiag(f^)−g^)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯TL2=λ2∥hm∥2L3=I^H(h^c−D−−√FMh)+I^H(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯L4=μ∥∥h^c−D−−√FMh∥∥2=μ(h^c−D−−√FMh)(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯T(8)
其關於變量
h¯¯¯ 的偏導數爲
∇h¯¯¯¯L1=∂∂h¯¯¯[(h^Hcdiag(f^)−g^)(h^Hcdiag(f^)−g^)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯T]=0(22)
∇h¯¯¯¯L2=∂∂h¯¯¯[λ2∥hm∥2]=∂∂h¯¯¯[λ2∥m⊙h∥2]=∂∂h¯¯¯[λ2(Mh)¯¯¯¯¯¯¯¯¯¯¯¯T(Mh)]=∂∂h¯¯¯[λ2hHMHMh](23)
觀察(23)式,由於其中的M 表示論文定義的mask(也就是Spatial reliability map)的對角線元素,這個矩陣中的所有元素僅爲0或者1,它們都是實數,因此(23)式中的MHM 可以簡化表示爲M ,於是,
∇h¯¯¯¯L2=∂∂h¯¯¯[λ2hHMh]=∂∂h¯¯¯[λ2((hHMh)T)T]=∂∂h¯¯¯[λ2(hTMTh¯¯¯)T]=(λ2(hTMT))T=λ2Mh(24)
2018年8月更新:特別注意,上述公式(24)推導過程有誤,應改爲如下(此處特別感謝CSDN網友weixin_41660496):
c∇h¯¯¯¯L2=∂∂h¯¯¯[λ2hHMh]=∂∂h¯¯¯[λ2(h¯¯¯)TMh]=λ2Mh(24)
∇h¯¯¯¯L3=∂∂h¯¯¯[I^H(h^c−D−−√FMh)+I^H(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]=∂∂h¯¯¯[I^Hh^c−I^HD−−√FMh+I^Th^c¯¯¯¯¯−I^TD−−√FMh¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]=0−0+0−I^TD−−√FM¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯=−D−−√⋅I^T⋅F¯¯¯¯⋅M¯¯¯¯¯¯=−D−−√⋅(I^)T⋅(FH)T⋅(MH)T=−D−−√(MHFHI^)T=−D−−√(MFHI^)T(25)
2018年8月更新:特別注意,上述公式(25)推導過程有誤,應改爲如下(此處特別感謝CSDN網友weixin_41660496):
∇h¯¯¯¯L3=∂∂h¯¯¯[I^H(h^c−D−−√FMh)+I^H(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]=∂∂h¯¯¯[I^H(h^c−D−−√FMh)+I^Hh^c¯¯¯¯¯¯¯¯¯¯¯−I^HD−−√FMh¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]=∂∂h¯¯¯[I^Hh^c−I^HD−−√FMh+I^Th^c¯¯¯¯¯−I^HD−−√FMh¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]=∂∂h¯¯¯[I^Hh^c−I^HD−−√FMh+I^Th^c¯¯¯¯¯−I^HD−−√FMh¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯]=∂∂h¯¯¯[I^Hh^c−I^HD−−√FMh+I^Th^c¯¯¯¯¯−I^H¯¯¯¯¯¯⋅D−−√¯¯¯¯¯¯¯¯¯⋅FMh¯¯¯¯¯¯¯¯¯¯¯¯]=∂∂h¯¯¯[I^Hh^c−I^HD−−√FMh+I^Th^c¯¯¯¯¯−I^H¯¯¯¯¯¯⋅D−−√⋅FMh¯¯¯¯¯¯¯¯¯¯¯¯]=∂∂h¯¯¯[I^Hh^c−I^HD−−√FMh+I^Th^c¯¯¯¯¯−I^H¯¯¯¯¯¯⋅D−−√⋅F¯¯¯¯⋅M¯¯¯¯¯¯⋅h¯¯¯]=0−0+0−(I^H¯¯¯¯¯¯⋅D−−√)⋅(F¯¯¯¯⋅M¯¯¯¯¯¯)T=0−0+0−(I^H¯¯¯¯¯¯⋅D−−√)⋅M¯¯¯¯¯¯T⋅F¯¯¯¯T=0−0+0−(I^⋅D−−√)⋅MT⋅FH=−D−−√MTFHI^=−D−−√MFHI^
上述(25)式中,利用了矩陣D−−√,M 爲實數矩陣的性質,所以有M¯¯¯¯¯¯=M , D¯¯¯¯¯=D ,另外M 也是一個對角矩陣,因此MT=M 。
最後是L4項
∇h¯¯¯¯L4=∂∂h¯¯¯[μ(h^c−D−−√FMh)(h^c−D−−√FMh)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯T]=∂∂h¯¯¯[μ(h^c⋅h^Hc−h^c⋅D−−√(F¯¯¯¯⋅M¯¯¯¯¯¯⋅h¯¯¯)T−D−−√FMhh^Hc+DFMh(F¯¯¯¯⋅M¯¯¯¯¯¯⋅h¯¯¯)T)]=∂∂h¯¯¯[μ(h^c⋅h^Hc−h^c⋅D−−√hHMFH−D−−√FMhh^Hc+DFMhhHMHFH)]=0−∂∂h¯¯¯[μ⋅h^c⋅D−−√hHMFH]−0+∂∂h¯¯¯[μ⋅DFMhhHMHFH]=−[∂∂hH[μ⋅h^c⋅D−−√hHMFH]]T+[∂∂hH[μ⋅DFMhhHMHFH]]T=−[∂∂hH[μ⋅D−−√⋅h^c⋅hHMFH]]T+[∂∂hH[μ⋅DFMh⋅hH⋅MHFH]]T=−μ⋅D−−√⋅[(h^c)T⋅(MFH)T]T+μ⋅D⋅[(FMh)T⋅(MHFH)T]T=−μ⋅D−−√⋅[(MFH)T]T⋅[(h^c)T]T+μ⋅D⋅[(MHFH)T]T⋅[(FMh)T]T=−μ⋅D−−√⋅MFH⋅h^c+μ⋅D⋅MHFH⋅FMh=−μ⋅D−−√⋅MFH⋅h^c+μ⋅D⋅MHIMh=−μ⋅D−−√⋅MFH⋅h^c+μ⋅D⋅(M⋅M)h=−μD−−√MFHh^c+μDMh(26)
上述(26)式末尾利用了
MM=M ,這是因爲
M 表示空間置信圖(Spatial reliability map),根據論文中的定義,矩陣
M 中的元素要麼爲1,要麼爲0,因此
MM=M
將上述(22)-(26)式代入到(21)式中,有
λ2Mh−D−−√MFHI^−μD−−√MFHh^c+μDMh=0(27)
對上式中的
Mh 進行合併同類項,有
(λ2+μD)MhMhMhMhMh=D−−√MFHI^+μD−−√MFHh^c=D−−√MFHI^+μD−−√MFHh^cλ2+μD=M⋅D−−√FH(I^+μh^c)λ2+μD=M⋅D√DFH(I^+μh^c)1D(λ2+μD)=M⋅1D√FH(I^+μh^c)λ2D+μ(28)
現在簡單回顧一下傅里葉逆變換的定義
F−1(x^)=1D−−√FHx^(29)
據此,可以將上述(28)式表示爲
Mh=M⋅F−1(I^+μh^c)λ2D+μdiag(m)h=diag(m)⋅F−1(I^+μh^c)λ2D+μm⊙h=m⊙F−1(I^+μh^c)λ2D+μ(30)
由於論文中最優化表達式的約束爲
m≡m⊙h (這裏左邊的
h 實際上也就是
hm ),因此上述(30)式也可以表示爲
h=m⊙F−1(I^+μh^c)λ2D+μ(31)
上述(31)式就對應論文原文中的公式(10),相應的代碼位於create_csr_filter.m中的變量H
H = fft2(real((1/(lambda + mu)) * bsxfun(@times, P, ifft2(mu*G + L))));
6. 小結
論文爲求解最優的濾波器值,在原始目標函數的基礎上,引入約束條件,利用Augmented Lagrangian方法構造最優化表達式,最後利用偏導數值爲0的情況進行求解,這種利用拉格朗日最優化方法進行目標跟蹤算法的建模思想值得我們學習,關於(25)式的轉置問題,也歡迎大家共同討論交流。
更多內容,請掃碼關注“視覺邊疆”微信訂閱號