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的启发,在此一并表示感谢!
更多内容,欢迎扫码关注“视觉边疆”微信订阅号