1. 論文信息
論文題目:End-to-end representation learning for Correlation Filter based tracking
論文出處:CVPR 2017
論文作者:Jack Valmadre,Luca Bertinetto等人
論文主頁:http://www.robots.ox.ac.uk/~luca/cfnet.html
源碼鏈接:https://github.com/bertinetto/cfnet
2. 濾波器求解——論文公式(7)推導過程
2.1 最優化求解
首先,定義最優化問題
argminw12n∥∥XTw−y∥∥2+λ2∥w∥2(1)
其中,
w 表示待求解的濾波器,
n 表示樣本數目,
y 表示樣本標籤。
現在,我們將公式(1)換一種方式進行表述,定義
r=XTw−y ,那麼最優化問題爲
argminw,r12n∥r∥2+λ2∥w∥2s.t.r=XTw−y(2)
從公式(2)開始,利用拉格朗日乘子法進行優化,具體可以參考
Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers一書中
Chapter 2.1 Dual Ascent中的描述(PDF鏈接:
https://web.stanford.edu/~boyd/papers/pdf/admm_distr_stats.pdf),首先構建拉格朗日表達式:
L(w,r,v)=12n∥r∥2+λ2∥w∥2+vT(r−XTw+y)(3)
其中v 是拉格朗日乘數,這樣,將損失函數進行梯度求解,首先對w 求偏導數,得
∂L(w,r,v)∂w=∂(12n∥r∥2+λ2∥w∥2+vT(r−XTw+y))∂w=∂(12n∥r∥2)∂w+∂(λ2∥w∥2)∂w+∂(vT(r−XTw+y))∂w=∂(12n∥r∥2)∂w+∂(λ2∥w∥2)∂w+∂(vT(XTw))∂w=∂(12n∥r∥2)∂w+∂(λ2∥w∥2)∂w+∂(vTXTw)∂w=0+λw+vT(0−XT)=λw−(vTXT)T=λw−Xv(4)
現在對r 求偏導數,得
∂L(w,r,v)∂r=∂(12n∥r∥2+λ2∥w∥2+vT(r−XTw+y))∂r=∂(12n∥r∥2)∂r+∂(λ2∥w∥2)∂r+∂(vT(r−XTw+y))∂r=12n⋅2r+0+(vT)T(1−0+0)=1nr+v(5)
最後對v 求偏導數,得
∂L(w,r,v)∂v=∂(12n∥r∥2+λ2∥w∥2+vT(r−XTw+y))∂v=∂(12n∥r∥2)∂v+∂(λ2∥w∥2)∂v+∂(vT(r−XTw+y))∂v=0+0+(r−XTw+y)=r−XTw+y(6)
現在,分別令上述三個偏導數爲0,得
⎧⎩⎨⎪⎪λw−Xv=01nr+v=0r−XTw+y=0(7)
根據方程(7),首先求解 ,可以得到
w=1λXv(8)
接下來求解v ,有
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪w=1λXv1nr+v=0r=XTw−y⇒1n(XTw−y)+v=0⇒1n(XT1λXv−y)+v=0⇒1n⋅1λXTXv−1ny+v=0⇒1n⋅1λXTXv+v=1ny⇒1n⋅1λXTXv+v=1ny⇒1n⋅1λXTXv+v=1ny⇒1λXTXv+nv=y⇒(1λXTX+nI)v=y⇒(XTX+λnI)v=λy⇒v=λyXTX+λnI⇒v=λn(1nXTX+λI)y⇒v=λn(1nXTX+λI)−1y(9)
最終,得到的解爲
⎧⎩⎨⎪⎪⎪⎪⎪⎪w=1λXvv=λn(1nXTX+λI)−1y=v=λnK−1y(10)
其中,K=1nXTX+λI 是正則化核矩陣。通常情況下,我們會引入一個scaled dual變量α=1λv=1nK−1y ,利用變量α ,可以將w 表示爲某種加權組合
w=Xα=∑i=1nαixi(11)
2.2 相關濾波引入
根據相關濾波跟蹤方法的特性,這裏我們將上述變量X 定義爲循環矩陣,滿足X[u,t]=X[u+tmodm] ,由於此時矩陣X 是對稱矩陣,所以模板w 是通過互相關的方式獲取的
w=Xα=α⋆x(12)
注: ∗ 表示循環卷積操作,⋆ 表示循環互相關操作, ⊙ 表示矩陣元素級乘法
關於正則化核矩陣K=1nXTX+λI ,關於它的線性映射等價於與base信號k 的卷積
Kz=k∗z(13)
其中k=1nx⋆x+λδ ,由於
∀z:FXTXz=F((z⋆x)⋆x)=z^⊙x^∗⊙x^=F(z∗(x⋆x))(14)
於是,有
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪k=1nx⋆x+λδk∗α=k∗1nK−1y=1nk∗K−1y=1nKK−1y=1nyw=α⋆x(15)
放到傅里葉域中,其解爲
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪k^=1n(x^∗⊙x^)+λIα^=1nk^−1⊙y^w^=α^∗⊙x^(16)
公式(16)即爲論文中的公式(7),這樣,相關濾波的求解表達式就完成了。
注:公式中的互相關,在傅里葉域中會帶上一個共軛符號,其中一種出處:
不管如何,與直接卷積相差一個負號。這時,看清楚了,相關函數在頻域也不完全是乘積,是一個信號的共軛再與原信號乘積,這就是與“時域卷積頻域相乘不同的地方”。
所以,請記住這個有用的結論:兩個信號的互相關函數的頻域等於X信號頻域的共軛乘以Y信號的頻域。
https://blog.csdn.net/xiahouzuoxin/article/details/19286077
3. 反向傳播公式推導過程
3.1 計算微分
由於論文將相關濾波器作爲深度神經網絡中的一層,因此在定義網絡結構時,有必要確定網絡的反向傳播表達式。
首先,根據公式(15),求解微分
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪dk=1n(dx⋆x+x⋆dx)dk∗α+k∗dα=1ndydw=dα⋆x+α⋆dx(17)
將公式(17)轉換到傅里葉域,有
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪dkˆ=1n(dxˆ∗⊙x^+x^∗⊙dxˆ)dαˆ=k^−1⊙(1ndyˆ−dkˆ⊙α^)dwˆ=dαˆ∗⊙x^+α^∗⊙dxˆ(18)
3.2 計算反向傳播
用J1 表示映射dx↦dk (這個映射就是公式(17),如果放到傅里葉域就是公式(18)),首先計算內積
⟨F(dk),F(J1(dx))⟩=⟨dkˆ,1n(dxˆ∗⊙x^+x^∗⊙dxˆ)⟩=1n⟨dkˆ,dxˆ∗⊙x^⟩+1n⟨dkˆ,x^∗⊙dxˆ⟩=1n⟨dxˆ,dkˆ∗⊙x^⟩+1n⟨dxˆ,x^∗⊙dkˆ⟩=1n⟨dxˆ,dkˆ∗⊙x^⟩+1n⟨dxˆ,dkˆ⊙x^∗⟩=1n⟨dxˆ,dkˆ∗⊙x^+dkˆ⊙x^∗⟩=1n⟨dxˆ,dkˆ∗⊙x^+dkˆ⊙x^∗⟩=1n⟨dxˆ,2Re{dkˆ∗⊙x^}⟩=⟨dxˆ,2nRe{dkˆ∗⊙x^}⟩=⟨dxˆ,2nRe{dkˆ∗}⊙x^⟩(19)
根據公式(19),計算反向傳播映射
∇xℓˆ=2nx^⊙Re{∇kℓˆ}(20)
類似地,現在計算內積
⟨F(dα),F(J2(dk,dy))⟩=⟨dαˆ,k^−1⊙(1ndyˆ−dkˆ⊙α^)⟩=⟨dαˆ,k^−1⊙(1ndyˆ)⟩−⟨dαˆ,k^−1⊙(dkˆ⊙α^)⟩=⟨1nk^−1⊙dαˆ,dyˆ⟩+⟨−dαˆ,k^−1⊙(dkˆ⊙α^)⟩=⟨1nk^−1⊙dαˆ,dyˆ⟩+⟨−k^−1⊙α^⊙dαˆ,dkˆ⟩=⟨1nk^−∗⊙dαˆ,dyˆ⟩+⟨−k^−∗⊙α^∗⊙dαˆ,dkˆ⟩(21)
得到反向傳播映射
⎧⎩⎨⎪⎪∇yℓˆ=1nk^−∗⊙∇αℓˆ∇kℓˆ=−k^−∗⊙α^∗⊙∇αℓˆ(22)
類似地,計算內積
⟨F(dw),F(J3(dα,dx))⟩=⟨dwˆ,dαˆ∗⊙x^+α^∗⊙dxˆ⟩=⟨dwˆ,dαˆ∗⊙x^⟩+⟨dwˆ,α^∗⊙dxˆ⟩=⟨dαˆ∗,dwˆ⊙x^⟩+⟨dxˆ,α^∗⊙dwˆ⟩=⟨dαˆ,dwˆ∗⊙x^⟩+⟨dxˆ,α^∗⊙dwˆ⟩(23)
也可以得到反向傳播映射
{∇αℓˆ=x^⊙∇wℓˆ∗∇xℓˆ=α^∗⊙∇wℓˆ(24)
最後,綜合上述公式(20)、(22)和(24),可以得到CFNet最終的反向傳播映射
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪∇αℓˆ=x^⊙∇wℓˆ∗∇yℓˆ=1nk^−∗⊙∇αℓˆ∇kℓˆ=−k^−∗⊙α^∗⊙∇αℓˆ∇xℓˆ=2nx^⊙Re{∇kℓˆ}+α^∗⊙∇wℓˆ(25)
最後,本推導筆記離不開富民同學的耐心幫助和CSDN博主的xiahouzuoxin的啓發,在此一併表示感謝!
更多內容,歡迎掃碼關注“視覺邊疆”微信訂閱號