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) (1) arg min w 1 2 n ‖ X T w − y ‖ 2 + λ 2 ‖ w ‖ 2
其中,
w w 表示待求解的滤波器,
n n 表示样本数目,
y y 表示样本标签。
现在,我们将公式(1)换一种方式进行表述,定义
r=XTw−y r = X T w − y ,那么最优化问题为
argminw,r12n∥r∥2+λ2∥w∥2s.t.r=XTw−y(2) (2) arg min w , r 1 2 n ‖ r ‖ 2 + λ 2 ‖ w ‖ 2 s . t . r = X T w − y
从公式(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) (3) L ( w , r , v ) = 1 2 n ‖ r ‖ 2 + λ 2 ‖ w ‖ 2 + v T ( r − X T w + y )
其中 v v 是拉格朗日乘数,这样,将损失函数进行梯度求解,首先对 w 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) (4) ∂ L ( w , r , v ) ∂ w = ∂ ( 1 2 n ‖ r ‖ 2 + λ 2 ‖ w ‖ 2 + v T ( r − X T w + y ) ) ∂ w = ∂ ( 1 2 n ‖ r ‖ 2 ) ∂ w + ∂ ( λ 2 ‖ w ‖ 2 ) ∂ w + ∂ ( v T ( r − X T w + y ) ) ∂ w = ∂ ( 1 2 n ‖ r ‖ 2 ) ∂ w + ∂ ( λ 2 ‖ w ‖ 2 ) ∂ w + ∂ ( v T ( X T w ) ) ∂ w = ∂ ( 1 2 n ‖ r ‖ 2 ) ∂ w + ∂ ( λ 2 ‖ w ‖ 2 ) ∂ w + ∂ ( v T X T w ) ∂ w = 0 + λ w + v T ( 0 − X T ) = λ w − ( v T X T ) T = λ w − X v
现在对 r 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) (5) ∂ L ( w , r , v ) ∂ r = ∂ ( 1 2 n ‖ r ‖ 2 + λ 2 ‖ w ‖ 2 + v T ( r − X T w + y ) ) ∂ r = ∂ ( 1 2 n ‖ r ‖ 2 ) ∂ r + ∂ ( λ 2 ‖ w ‖ 2 ) ∂ r + ∂ ( v T ( r − X T w + y ) ) ∂ r = 1 2 n ⋅ 2 r + 0 + ( v T ) T ( 1 − 0 + 0 ) = 1 n r + v
最后对 v 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) (6) ∂ L ( w , r , v ) ∂ v = ∂ ( 1 2 n ‖ r ‖ 2 + λ 2 ‖ w ‖ 2 + v T ( r − X T w + y ) ) ∂ v = ∂ ( 1 2 n ‖ r ‖ 2 ) ∂ v + ∂ ( λ 2 ‖ w ‖ 2 ) ∂ v + ∂ ( v T ( r − X T w + y ) ) ∂ v = 0 + 0 + ( r − X T w + y ) = r − X T w + y
现在,分别令上述三个偏导数为0,得
⎧⎩⎨⎪⎪λw−Xv=01nr+v=0r−XTw+y=0(7) (7) { λ w − X v = 0 1 n r + v = 0 r − X T w + y = 0
根据方程(7),首先求解 ,可以得到
w=1λXv(8) (8) w = 1 λ X v
接下来求解 v 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) (9) { w = 1 λ X v 1 n r + v = 0 r = X T w − y ⇒ 1 n ( X T w − y ) + v = 0 ⇒ 1 n ( X T 1 λ X v − y ) + v = 0 ⇒ 1 n ⋅ 1 λ X T X v − 1 n y + v = 0 ⇒ 1 n ⋅ 1 λ X T X v + v = 1 n y ⇒ 1 n ⋅ 1 λ X T X v + v = 1 n y ⇒ 1 n ⋅ 1 λ X T X v + v = 1 n y ⇒ 1 λ X T X v + n v = y ⇒ ( 1 λ X T X + n I ) v = y ⇒ ( X T X + λ n I ) v = λ y ⇒ v = λ y X T X + λ n I ⇒ v = λ n ( 1 n X T X + λ I ) y ⇒ v = λ n ( 1 n X T X + λ I ) − 1 y
最终,得到的解为
⎧⎩⎨⎪⎪⎪⎪⎪⎪w=1λXvv=λn(1nXTX+λI)−1y=v=λnK−1y(10) (10) { w = 1 λ X v v = λ n ( 1 n X T X + λ I ) − 1 y = v = λ n K − 1 y
其中, K=1nXTX+λI K = 1 n X T X + λ I 是正则化核矩阵。通常情况下,我们会引入一个scaled dual变量 α=1λv=1nK−1y α = 1 λ v = 1 n K − 1 y ,利用变量 α α ,可以将 w w 表示为某种加权组合
w=Xα=∑i=1nαixi(11) (11) w = X α = ∑ i = 1 n α i x i
2.2 相关滤波引入
根据相关滤波跟踪方法的特性,这里我们将上述变量 X X 定义为循环矩阵,满足 X[u,t]=X[u+tmodm] X [ u , t ] = X [ u + t mod m ] ,由于此时矩阵 X X 是对称矩阵,所以模板 w w 是通过互相关的方式获取的
w=Xα=α⋆x(12) (12) w = X α = α ⋆ x
注: ∗ ∗ 表示循环卷积操作, ⋆ ⋆ 表示循环互相关操作, ⊙ ⊙ 表示矩阵元素级乘法
关于正则化核矩阵 K=1nXTX+λI K = 1 n X T X + λ I ,关于它的线性映射等价于与base信号 k k 的卷积
Kz=k∗z(13) (13) K z = k ∗ z
其中 k=1nx⋆x+λδ k = 1 n x ⋆ x + λ δ ,由于
∀z:FXTXz=F((z⋆x)⋆x)=z^⊙x^∗⊙x^=F(z∗(x⋆x))(14) (14) ∀ z : F X T X z = F ( ( z ⋆ x ) ⋆ x ) = z ^ ⊙ x ^ ∗ ⊙ x ^ = F ( z ∗ ( x ⋆ x ) )
于是,有
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪k=1nx⋆x+λδk∗α=k∗1nK−1y=1nk∗K−1y=1nKK−1y=1nyw=α⋆x(15) (15) { k = 1 n x ⋆ x + λ δ k ∗ α = k ∗ 1 n K − 1 y = 1 n k ∗ K − 1 y = 1 n K K − 1 y = 1 n y w = α ⋆ x
放到傅里叶域中,其解为
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪k^=1n(x^∗⊙x^)+λIα^=1nk^−1⊙y^w^=α^∗⊙x^(16) (16) { k ^ = 1 n ( x ^ ∗ ⊙ x ^ ) + λ I α ^ = 1 n k ^ − 1 ⊙ y ^ w ^ = α ^ ∗ ⊙ x ^
公式(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) { d k = 1 n ( d x ⋆ x + x ⋆ d x ) d k ∗ α + k ∗ d α = 1 n d y d w = d α ⋆ x + α ⋆ d x
将公式(17)转换到傅里叶域,有
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪dkˆ=1n(dxˆ∗⊙x^+x^∗⊙dxˆ)dαˆ=k^−1⊙(1ndyˆ−dkˆ⊙α^)dwˆ=dαˆ∗⊙x^+α^∗⊙dxˆ(18) (18) { d k ^ = 1 n ( d x ^ ∗ ⊙ x ^ + x ^ ∗ ⊙ d x ^ ) d α ^ = k ^ − 1 ⊙ ( 1 n d y ^ − d k ^ ⊙ α ^ ) d w ^ = d α ^ ∗ ⊙ x ^ + α ^ ∗ ⊙ d x ^
3.2 计算反向传播
用 J1 J 1 表示映射 dx↦dk d x ↦ d k (这个映射就是公式(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) ⟨ F ( d k ) , F ( J 1 ( d x ) ) ⟩ = ⟨ d k ^ , 1 n ( d x ^ ∗ ⊙ x ^ + x ^ ∗ ⊙ d x ^ ) ⟩ = 1 n ⟨ d k ^ , d x ^ ∗ ⊙ x ^ ⟩ + 1 n ⟨ d k ^ , x ^ ∗ ⊙ d x ^ ⟩ = 1 n ⟨ d x ^ , d k ^ ∗ ⊙ x ^ ⟩ + 1 n ⟨ d x ^ , x ^ ∗ ⊙ d k ^ ⟩ = 1 n ⟨ d x ^ , d k ^ ∗ ⊙ x ^ ⟩ + 1 n ⟨ d x ^ , d k ^ ⊙ x ^ ∗ ⟩ = 1 n ⟨ d x ^ , d k ^ ∗ ⊙ x ^ + d k ^ ⊙ x ^ ∗ ⟩ = 1 n ⟨ d x ^ , d k ^ ∗ ⊙ x ^ + d k ^ ⊙ x ^ ∗ ⟩ = 1 n ⟨ d x ^ , 2 Re { d k ^ ∗ ⊙ x ^ } ⟩ = ⟨ d x ^ , 2 n Re { d k ^ ∗ ⊙ x ^ } ⟩ = ⟨ d x ^ , 2 n Re { d k ^ ∗ } ⊙ x ^ ⟩
根据公式(19),计算反向传播映射
∇xℓˆ=2nx^⊙Re{∇kℓˆ}(20) (20) ∇ x ℓ ^ = 2 n x ^ ⊙ Re { ∇ k ℓ ^ }
类似地,现在计算内积
⟨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) (21) ⟨ F ( d α ) , F ( J 2 ( d k , d y ) ) ⟩ = ⟨ d α ^ , k ^ − 1 ⊙ ( 1 n d y ^ − d k ^ ⊙ α ^ ) ⟩ = ⟨ d α ^ , k ^ − 1 ⊙ ( 1 n d y ^ ) ⟩ − ⟨ d α ^ , k ^ − 1 ⊙ ( d k ^ ⊙ α ^ ) ⟩ = ⟨ 1 n k ^ − 1 ⊙ d α ^ , d y ^ ⟩ + ⟨ − d α ^ , k ^ − 1 ⊙ ( d k ^ ⊙ α ^ ) ⟩ = ⟨ 1 n k ^ − 1 ⊙ d α ^ , d y ^ ⟩ + ⟨ − k ^ − 1 ⊙ α ^ ⊙ d α ^ , d k ^ ⟩ = ⟨ 1 n k ^ − ∗ ⊙ d α ^ , d y ^ ⟩ + ⟨ − k ^ − ∗ ⊙ α ^ ∗ ⊙ d α ^ , d k ^ ⟩
得到反向传播映射
⎧⎩⎨⎪⎪∇yℓˆ=1nk^−∗⊙∇αℓˆ∇kℓˆ=−k^−∗⊙α^∗⊙∇αℓˆ(22) (22) { ∇ y ℓ ^ = 1 n k ^ − ∗ ⊙ ∇ α ℓ ^ ∇ k ℓ ^ = − k ^ − ∗ ⊙ α ^ ∗ ⊙ ∇ α ℓ ^
类似地,计算内积
⟨F(dw),F(J3(dα,dx))⟩=⟨dwˆ,dαˆ∗⊙x^+α^∗⊙dxˆ⟩=⟨dwˆ,dαˆ∗⊙x^⟩+⟨dwˆ,α^∗⊙dxˆ⟩=⟨dαˆ∗,