论文:Harmonic Networks: Deep Translation and Rotation Equivariance

变换等变性 (Transformation Equivariance)

直接将输入变换与特征向量变换相关联的所追求的属性称为等变性。换另外一种说法,就是输入图片变换之后,feature map产生相应的变换,比如图片产生平移,feature map也发生了平移,图片旋转θ\theta度,feature map同样旋转θ\theta度,这种属性就叫做变换等变性。

等变性 vs 不变性
不变性不同于等变性,不变性是指特征向量在输入的所有变换下保持不变。比如无论输入图片怎么平移,输出的feature map都不变。不变性是等变性的一种特殊情况。

等变性可以保留变换后图片的大量细节特征,减少变换的损失,这些丰富的特征沿着网络传递下去,提高模型的性能。对于分类任务,不变性比较重要,但是对于定位任务、语义分割任务,等变性更加重要。

在计算机视觉任务中常考虑的两种等变性分别是平移等变性和旋转等变性。

平移等变性 (Translation Equivariance)

平移等变性的理解如下图所示
Harmonic Networks 笔记

输入图片II经过平移变换π\pi得到另外一张图片π[I]\pi [I]II通过CNN后得到feature map f(I)f(I),feature map f(I)f(I)同样经过相应的平移变换ψ\psi得到另一个feature map ψ[f(I)]\psi [f(I)]。平移等变性体现在f(π[I])=ψ[f(I)]f(\pi [I]) = \psi[f(I)]。注意两个平移变换π\piψ\psi是不相等的,因为卷积池化导致的空间上的不同。如果ψ\psi是自身映射函数,那么f(π[I])=f(I)f(\pi [I]) = f(I),这就是平移不变性。

因为卷积层的滑动窗体卷积的操作,平移等变性是CNN固有的属性。而旋转等变性却不是CNN固有的属性。

旋转等变性 (Rotation Equivariance)

旋转等变性的理解如下图所示
Harmonic Networks 笔记

和平移等变性一样,旋转等变性体现在f(π[F])=ψ[f(F)]f(\pi [F]) = \psi[f(F)]θ\theta是旋转角度。

为了让CNN有旋转等变性,有许多方法已经被提出来了。这些方法分为:编码全局旋转等变性和编码局部旋转等变性(patch-wise equivariance),这些方法或者旋转过滤器或者旋转feature map。

编码全局旋转等变性的方法是这样的,把训练图片旋转不同的角度,从而使卷积网络具有全局旋转等变性。但是这种方法得到的结果局部区域还是变化的,如下图所示:
Harmonic Networks 笔记

右下图从旋转得到的feature map中取出人脸部分并摆正,可以看到得到的feature map局部细节是不断产生变换的。理想的旋转等变性应该是这样的,变换的只是旋转角度,其他内容相对保持不变,因此理想的效果是右下图的人脸保持不变。

上述的方法也是旋转feature map的方法。编码局部旋转等变性的方法是旋转过滤器的方法,以捕获局部的旋转等变性。

这些方法通过旋转feature map或过滤器来获取旋转等变性,但是取的旋转角度是离散的,不是连续的,为了取得更好的效果,就要尝试更多的离散旋转角度。Harmonic Networks,或者说H-Nets不同于上面的方法,它采用了steerable filters,通过限制过滤器在圆形谐波族(circular harmonics family)中,把局部360°旋转等变性融入到模型中。Steerable filters指具有可操作性的过滤器,它可以在任何旋转处被构造为基础过滤器的有限线性组合。Steerable filters可以去掉对应不同旋转角度的过滤器,减少了网络的参数,因此,H-Nets可以被看作是使用无限旋转的过滤器的副本。

H-Nets的旋转等变性效果是
Harmonic Networks 笔记

CNN和H-Nets二者的等变性比较
Harmonic Networks 笔记

通过对比可知H-Nets的旋转等变性效果很好。

Prior Knowledge

首先了解读懂这篇论文的先验知识。

Complex number1

复数的一般表示为:a+bia+bi,在复数平面中,横轴表示实部,纵轴表示虚部,坐标为(a,b)(a, b)。复数还有其他表示形式。

极坐标表示形式

就是把复数平面转变成极坐标系。在极坐标中,复数z的绝对值或模r=z>0r=\left | z \right | > 0,z的夹角φ=argz\varphi = argz,坐标为(r,φ)(r, \varphi)

从极坐标形式到笛卡尔坐标形式的转换a=rcosφ,b=rsinφa=r \cos \varphi, b=r \sin \varphi,因此z在极坐标形式的符号是z=r(cosφ+isinφ)z=r(\cos\varphi + i\sin \varphi)

根据欧拉公式eix=cosx+isinxe^{ix} = \cos x+ i \sin x,z又可以写成z=reiφz=re^{i\varphi},这叫做“指数形式”。

矩阵表达式

复数a+bia+bi表示为矩阵表达形式:
[abba]=r[cosφsinφsinφcosφ]=rexp(φ[0110]) \begin{bmatrix} a & -b \\ b & a \end{bmatrix} = r \begin{bmatrix} \cos \varphi & -\sin \varphi \\ \sin \varphi & \cos \varphi \end{bmatrix} = r \exp \left( \varphi \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \right )

复数运算

复数加法
在复平面中,两个点A和B的和是点X = A + B使得顶点0, A, B的三角形和顶点A, B, X的三角形是全等的。

Harmonic Networks 笔记

A=a+bi,B=c+diA = a + bi, B = c + di,则X=(a+c)+i(b+d)X = (a+c) + i(b + d)

复数乘法
在复平面中,两个点A和B的积是点X = AB使得顶点0, 1, A的三角形和顶点0, B, X的三角形是相似的。
Harmonic Networks 笔记

A=a+bi,B=c+diA = a + bi, B = c + di,则X=(acbd)+i(ad+bc)X = (ac-bd) + i(ad + bc)。考虑极坐标形式,设A=rAeiψA,A=rBeiψBA=r_A e^{i \psi_A}, A=r_B e^{i \psi_B},则X=rArBei(ψA+ψB)X = r_A r_B e^{i(\psi_A + \psi_B)},从图可以看到X的角坐标等于A的角坐标ψA\psi_A加B的角坐标ψB\psi_B

复数共轭
点A的共轭复数是点X = A*使得顶点0, 1, A的三角形和顶点0, 1, X的三角形相互是镜像。
Harmonic Networks 笔记

A=a+biA = a + bi,则X=abiX = a - bi

复数在信号分析的应用

信号分析和其他领域使用复数可以方便的表示周期信号。模值z|z|表示信号的幅度,辐角argz\arg z表示给定频率的正玄波的相位。利用傅里叶变换可将实信号表示成一系列周期函数的和。这些周期函数通常用形式如下的复函数的实部表示:
f(t)=zeiwt=rei(wt+φ) f(t) = ze^{iwt} = r e^{i(wt+\varphi)}
其中w对应角频率,复数z包含了幅度和相位的信息。

Circular harmonics

圆谐波(Circular harmonics)是球谐波(Spherical harmonics)的在二维空间上的版本。
Spherical harmonics2: 球形谐波可以在3d中用于将照明环境投射到一小组系数中,这些系数紧凑地表示来自所有方向的射入光。
Circular harmonics2: 圆谐波就像球谐波的小兄弟,可以用来有效地编码基于单个角度而不是两个角度变化的值。就像球谐波一样,任何角度变换的有趣属性都可以用这种方法表示。

网上关于Circular Harmonics的介绍信息比较少,从YouTube3上看到了一个有意思的关于Circular Harmonics视频,我下载下来放在这里

上面的公式是
Φ(φ)=ei(mφ+ϕ0)\varPhi(\varphi) = e ^{i(m\varphi + \phi_0)}
其中m是旋转阶(rotation order),ϕ0\phi_0是相位,它等价于复数z,模z=1|z|=1,幅角argz=mφ+ϕ0argz=m\varphi + \phi_0。上面的图像是这样画出来的(个人理解),固定m和ϕ0\phi_0,在极坐标中,夹角为φ[0,2π)\varphi \in [0, 2\pi),半径为1cos(mφ+ϕ0)1*\cos (m\varphi + \phi_0),当m=0m=0时,随着ϕ0\phi_0的值增大,半径由1变为-1,再变为1,如此循环,红色的曲线表示正值,蓝色的曲线表示负值。当m1m \ge 1时,半径同时受到mφm\varphiϕ0\phi_0,当ϕ0=0\phi_0=0或者固定时,整个曲线是一个2叶草形状,随着ϕ0\phi_0增大,整个曲线图形逆时针旋转。当m变大后,就会出现4叶草,8叶草等形状。rotation order为m,图形为m2m^2叶草。

Rotation order的一种说法是,把图形旋转360,新图形与原图形重合的次数是rotation order。先不考虑m=0的情况,当m=1时,把上面的曲线图形旋转360度,重合了1次(注意曲线颜色),当m=2时,重合了2次,等等。考虑固定m和ϕ0\phi_0,一个点A,距离原点cos(mφ+ϕ0)cos(m\varphi+\phi_0),绕着原点旋转,与极轴的夹角是φ\varphi,当m=1时,A绕着原点旋转360度回到原来位置的次数是1,m=2时,A绕着原点旋转360度回到原来位置的次数是2。Rotation order还可以理解成A的旋转角速度,或者旋转频率,m越大,A绕着原点旋转的速度越大,A绕着原点旋转360度回到原来位置的次数也越多。

说了那么多,可能对理解Harmonic networks有用,也可能没用。说了这么多也因为上面这个视频展示了Circular Harmonics的美妙。

Harmonic Networks

复数圆形谐波(circular harmonics)过滤器

H-Nets使用复数圆形谐波过滤器,它的形式是
Wm(r,ϕ;R,β)=R(r)ei(mϕ+β) \mathbf{W}_m (r,\phi;\mathbf{R},\beta) = R(r)e^{i(m \phi + \beta)}
其中r,ϕr,\phi是图片feature map在极坐标系的坐标。mZm \in \mathbb{Z}是rotation order。R:R+RR: \mathbb{R_{+} \to \mathbb{R}}是一个函数,叫做radial profile,控制过滤器的形状,β[0,2π)\beta \in [0, 2\pi)是相位偏移项,它给出了滤波器方向选择性。在训练时只学习radial profile和相位偏移项。

下图是一些复数高斯过滤器的实部和虚部的例子
Harmonic Networks 笔记

上图颜色越亮,表示数值越高,越暗表示数值越低。上图每幅图像都是在极坐标下的,每个点带入公式中,实部a=R(r)cos(mϕ)a = R(r) \cos (m\phi),虚部b=R(r)sin(mϕ)b=R(r) \sin (m\phi)。当m=0m=0,因为R(r)=er2R(r) = e^{-r^2},所以越靠近原点,实部a的值越大,因此颜色越亮。当m1m\ge1,带入公式中,便可以得到上面的图像。

H-Nets使用相关操作代替卷积操作,其实和CNN的卷积操作一样,因为CNN的卷积操作不是标准的卷积操作。定义相关操作的符号为\star,则
[WF](p,q)=W(pp,qq)F(p,q)dpdq [\mathbf{W} \star \mathbf{F}](p', q') = \int \mathbf{W}(p-p', q-q') \mathbf{F}(p, q) dpdq

假设在滑动框中坐标为(r,ϕ)(r, \phi)的一点,把图片F(r,ϕ)\mathbf{F}(r, \phi)绕着原点逆时针旋转θ\theta度,得到F(r,πθ[ϕ])=F(r,ϕθ)\mathbf{F}(r, \pi^{\theta}[\phi]) = \mathbf{F}(r, \phi - \theta)。根据数学推论
[WmFθ]=eimθ[WmF0] [\mathbf{W_m} \star \mathbf{F}^{\theta}] = e^{im\theta} [\mathbf{W_m} \star \mathbf{F}^{0}]
对比等变性的公式中,那么ψmθ[]=eimθ\psi_m^{\theta}[\bullet] = e^{im\theta} \cdot \bullet
Harmonic Networks 笔记

m=0m=0时,ψ\psi是自身映射函数,无论θ\theta怎么变化,即无论原图怎么旋转,feature map的结果都保持不变,此时表现出旋转不变性。当m=1m=1时,[WF0][\mathbf{W} \star \mathbf{F}^0]简写成fmf_m,那么ψ1θ[fm]=eiθfm\psi_1^{\theta}[f_m]=e^{i\theta}f_m,相当于对原feature map的每个点的复数逆时针旋转θ\theta度。其他的类似。根据上述的卷积公式,特征空间的变换依赖与谐波的rotation order,响应的相位随着频率为m的输入而旋转,所以我们说响应是一个m-等变的feature map。

复数圆形谐波(circular harmonics)过滤器的相位偏移项β\beta给出了过滤器的方向选择性,我认为是让过滤器带上了方向信息,论文中可视化了一些过滤器,如下图
Harmonic Networks 笔记
方向圆表示相位。

输入图片的局部旋转特征就可以被复数圆谐波过滤器捕获到。下图是训练MNIST的网络中的feature maps
Harmonic Networks 笔记

其中箭头表示相位β\beta,颜色表示幅度R(r)R(r)

等变性条件

Circular harmonics有以下性质:
(1)rotation order为m1,m2m_1,m_2的链式互相关操作产生新的rotation order为m1+m2m_1 + m_2的响应。两个Circular harmonics相乘,Φ1(φ)Φ2(φ)=r1ei(m1φ+ϕ1)r2ei(m2φ+ϕ2)=r1r2ei((m1+m2)φ+(ϕ1+ϕ2))\varPhi_1(\varphi) \varPhi_2(\varphi) = r_1e ^{i(m_1 \varphi + \phi_1)} r_2e ^{i(m_2 \varphi + \phi_2)} = r_1 r_2 e^{i((m_1 + m_2)\varphi + (\phi_1 + \phi_2))}
(2)逐点非线性函数h:CCh: \mathbb{C} \to \mathbb{C},仅作用于幅度保持旋转等效,因此可以使用经典CNN的非线性函数作用在互相关操作之后,来适应复数域。因此自操作之后的**函数是
C-ReLUb(Xeiϕ)=ReLU(X+b)eiϕ \mathbb{C}\text{-ReLU}_b (Xe^{i\phi}) = \text{ReLU} (X+b)e^{i\phi}
其中b是偏置。
(3)两个rotation order为m的响应相加得到的响应的rotation order还是m。

在H-Net中,如果只用rotation order为m的filters,那么feature map的rotation order会越来越大,因此,网络中不可能只使用一种rotation order,也需要其他rotation order,比如0,1,2,1,20, 1, 2, -1, -2等。为了是网络的输出结果是我们想要的M-等变性feature map,那么就需要网络的路径上的filters的rotation order mim_i满足下面的式子:
i=1Nmi=M\sum_{i=1}^{N} m_i = M
这叫做等变性的条件。

layer

H-Net的每个层都是不同rotation order的feature map的集合,如下图。
Harmonic Networks 笔记

不同rotation order的复数特征合并会导致响应纠缠,响应的rotation order不好计算,不知道响应是?-等变性。为了解决这个问题,H-Net分成几个数据流,有几个路径,如上图,同时保证网络满足等变性条件。有许多不同的响应合成feature map的方法,根据上述Circular harmonics第3条性质,直接把响应加起来,这是最简单的方法。

这里有一个限制条件(等变性条件),输出的feature map的rotation order是M,那么每条路径上rotation order的和要等于M,
i=1Nmi=M \sum_{i=1}^{N} m_i = M

Implementation

之前研究的都是连续域下的运算,当实际实现是,图片的像素是离散的,因此互相关操作也是离散的。论文中通过高斯重采样在互相关之前对过滤器进行限制和重采样,如下图
Harmonic Networks 笔记

Wm(rj)=i=1IR(rj)[IcosβIsinβIsinβIcosβ][cosmΦrjisinmΦrj] W_m(\mathbf{r}_j) = \sum_{i=1}^I R(r_j) \begin{bmatrix} \mathbf{I}\cos \beta & -\mathbf{I}\sin \beta \\ \mathbf{I}\sin \beta & \mathbf{I}\cos \beta \end{bmatrix} \begin{bmatrix} \cos m \mathbf{\varPhi_{r_j}} \\ i \sin m \mathbf{\varPhi_{r_j}} \end{bmatrix}

复数的互相关操作可以实现为
WmReFReWmImFImreal response+i(WmReFIm+WmImFRe)imaginary response \underbrace{\mathbf{W}_{m}^{\text{Re}} \star \mathbf{F}^{\text{Re}} - \mathbf{W}_{m}^{\text{Im}} \star \mathbf{F}^{\text{Im}}}_{\text{real response}} + i \underbrace{\left ( \mathbf{W}_{m}^{\text{Re}} \star \mathbf{F}^{\text{Im}} + \mathbf{W}_{m}^{\text{Im}} \star \mathbf{F}^{\text{Re}} \right )}_{\text{imaginary response}}

Experiment

论文中进行两次实验,一次实验是rotated MNIST识别,另外一次实验是边界检测,使用的网络如下
Harmonic Networks 笔记

其中CNN和H-Net用于第一次实验,DSN和H-DSN用于第二次实验,CNN和DSN是对比网络。实验的结果是
Harmonic Networks 笔记
Harmonic Networks 笔记

可以看到H-NET表现效果比对比的网络好。


  1. 维基百科复数https://zh.wikipedia.org/wiki/%E5%A4%8D%E6%95%B0_(%E6%95%B0%E5%AD%A6) ↩︎

  2. Circular Harmonics http://blackpawn.com/texts/ch/default.html ↩︎ ↩︎

  3. Circular Harmonics https://www.youtube.com/watch?v=wC-hRT0uHDQ ↩︎

相关文章:

  • 2021-12-31
  • 2021-06-18
  • 2021-08-14
  • 2021-10-31
  • 2021-12-14
  • 2021-10-15
  • 2021-12-28
  • 2021-04-15
猜你喜欢
  • 2021-08-17
  • 2022-01-03
  • 2021-05-31
  • 2021-11-05
  • 2021-12-30
  • 2021-05-23
相关资源
相似解决方案