论文笔记—Group Equivariante Convolutional Networks
前言
提到等变性就不得不提不变性这一性质。在卷积神经网络诞生之初,大家普遍认为使得其性能如此之好的原因之一便是其具有一定的平移不变性。起初人们为了增强其拥有的不变性,普遍采用的一些trick都是属于数据增强的类别,而非通过设计网络结构使得网络内在地具有不变性。之后,慢慢有人提出了一些具有不变性的结构或权值共享方式等。但是随着一些新的任务如语义分割和大家对卷积神经网络的讨论,人们认为卷积神经网络应当拥有的是等变性。这时候,对于平移、旋转、对称和缩放等对称变换群下的等边性的讨论也慢慢展开了。这里我们做介绍的是Taco S. Cohen和Max Welling 首次提出的群等边神经网络,其通过数学的表达,利用群论作为工具分析了卷积神经网络下的等变性结构的表达方式,同时提出了群等变卷积和群等变池化等操作。而这篇文章很有意义的一点,我觉得是通过数学表达高度抽象出了一套分析等变性的体系,从而之前很多的一些关于等变性的结构都可以被抽象到这套体系之中。
论文信息
文章名称:Group Equivariante Convolutional Networks
文章作者:Taco S. Cohen, Max Welling
收录情况:Accepted by ICML 2016
文章链接:http://proceedings.mlr.press/v48/cohenc16.pdf
代码链接:https://github.com/tscohen/gconv_experiments
简要总结
1.论文目的
- 希望通过对卷积神经网络的改进,使其在特定变换群下具有等变性的网络
2.论文方法
- 提出了全新的卷积方式:群等边卷积
- 提出了全新的池化方式:子群池化和陪集池化
3.实现效果
- 在带有旋转变换的MNIST和CIFAR数据上进行了实验,旋转群等边卷积网络具有一定的抗旋转性
4.论文展望
- 从二维图像推广到三维图像
- 能否应对更为复杂的数据集
论文讲解
1.等变性的定义
对于一个网络或是网络的一层 Φ \Phi Φ,将输入特征映射到输出特征,应该保留结构信息。对于G空间上来说, Φ \Phi Φ具有等变性的定义如下: Φ ( T g x ) = T g ′ Φ ( x ) \Phi(T_gx)=T_g'\Phi(x) Φ(Tgx)=Tg′Φ(x)
-
T g x T_gx Tgx表示对输入 x x x进行变换 T g T_g Tg,然后再进入函数 Φ \Phi Φ得到输出。这时的 T g T_g Tg是作用在输入x的空间上的变换。
-
T g ′ Φ ( x ) T'_g\Phi(x) Tg′Φ(x)表示对原始的输入x在经过函数 Φ \Phi Φ后,再进行变换 T g ′ T_g' Tg′。此时的 T g ′ T_g' Tg′是作用在 Φ ( x ) \Phi(x) Φ(x)的空间上的变换。
-
等变性就意味着,对于作用在函数 Φ \Phi Φ输入空间上的变换 T g T_g Tg有一个对应的作用在 Φ \Phi Φ输出空间上的变换 T g ′ T_g' Tg′使得,对于输入空间中的任意的元素都满足以上等式。此时,函数 Φ \Phi Φ对变换 T g T_g Tg具有等变性。注意, T g T_g Tg和 T g ′ T'_g Tg′不一定一样,且二者是作用在不同空间上的。
-
不变性则是等变性的一种特定情况。即 Φ ( T g x ) = Φ ( x ) \Phi(T_gx)=\Phi(x) Φ(Tgx)=Φ(x)
-
当函数 Φ \Phi Φ对一个变换群 G G G中任意的变换 T g T_g Tg都满足等变性时,则称这个函数 Φ \Phi Φ对群 G G G满足等变性。
-
根据大家的讨论,如今普遍认为一个良好的模型应该拥有的是等变性。因为仅仅拥有不变性的话,那么模型无法对图片中特征的位置进行分析。比如在人脸检测中,一张照片里的五官是打乱位置的,但由于不变性无法对位置进行分析,依然判定是人脸。但等变性则是能够保留位置的不同信息的。如图:
等变性与不变性示意图
传统的神经网络讲第一张图和第二张图都认做成了Person而把第三张图让你成了Coal black color,显然是错误的。而这种错误,就是因为其在特征提取阶段缺少等变性而造成的。注意:对于图像检测模型来说,我们希望的是在特征提取阶段获得等变性,从而使得整个模型的输出结果具有不变性。就是在图片进行一定的变换后,我们依然可以正确识别它,和不变换具有相同的结果。当图片的变换不合理时,我们也能够检测到这种不合理的从而有输出相应的结果。如果模型在特征提取阶段不具有等变性只具有不变性,那么无论照片进行怎么样的变换,整个模型的输出结果都将是一样的结果,这是不合理的。
2.数学框架
2.1 对称群和各类对称群介绍
这里作者介绍了两个作用在 Z 2 \mathbb{Z^2} Z2上的对称变换群,以及其矩阵表示形式:
-
p4群:包含所有的平移变换以及绕网格中任意旋转中心旋转90度的旋转变换。其矩阵表示如下: g ( r , u , v ) = [ c o s ( r π / 2 ) − s i n ( r π / 2 ) u s i n ( r π / 2 ) c o s ( r π / 2 ) v 0 0 1 ] g(r,u,v)=\left[\begin{matrix} cos(r\pi/2)&-sin(r\pi/2)&u \\ sin(r\pi/2)&cos(r\pi/2)&v \\ 0&0&1\end{matrix}\right] g(r,u,v)=⎣⎡cos(rπ/2)sin(rπ/2)0−sin(rπ/2)cos(rπ/2)0uv1⎦⎤
其中 r , u , v r,u,v r,u,v均为整数,且 0 ≤ r < 4 , ( u , v ) ∈ Z 2 0\le r<4,\ (u,v)\in \mathbb{Z^2} 0≤r<4, (u,v)∈Z2
其左右在点 x ∈ Z 2 x\in\mathbb{Z^2} x∈Z2(像素的坐标)上的具体方式,通过左乘矩阵 g ( r , u , v ) g(r,u,v) g(r,u,v)和 x x x的坐标向量 x ( u ′ , v ′ ) x(u',v') x(u′,v′): g x ≃ [ c o s ( r π / 2 ) − s i n ( r π / 2 ) u s i n ( r π / 2 ) c o s ( r π / 2 ) v 0 0 1 ] [ u ′ v ′ 1 ] gx\simeq\left[\begin{matrix}cos(r\pi/2)&-sin(r\pi/2)&u\\ sin(r\pi/2)&cos(r\pi/2)&v\\ 0&0&1\end{matrix}\right]\left[\begin{matrix}u'\\v'\\1\end{matrix}\right] gx≃⎣⎡cos(rπ/2)sin(rπ/2)0−sin(rπ/2)cos(rπ/2)0uv1⎦⎤⎣⎡u′v′1⎦⎤ -
p4m群:包含所有的平移变换、镜像反转变换和绕网格中任意旋转中心旋转90度的旋转变换。其矩阵表示如下: g ( m , r , u , v ) = [ ( − 1 ) m c o s ( r π / 2 ) − ( − 1 ) m − s i n ( r π / 2 ) u s i n ( r π / 2 ) c o s ( r π / 2 ) v 0 0 1 ] g(m,r,u,v)=\left[\begin{matrix} (-1)^mcos(r\pi/2)&-(-1)^m-sin(r\pi/2)&u \\ sin(r\pi/2)&cos(r\pi/2)&v \\ 0&0&1\end{matrix}\right] g(m,r,u,v)=⎣⎡(−1)mcos(rπ/2)sin(rπ/2)0−(−1)m−sin(rπ/2)cos(rπ/2)0uv1⎦⎤
其中 m , r , u , v m,r,u,v m,r,u,v均为整数,且 m ∈ { 0 , 1 } , 0 ≤ r < 4 , ( u , v ) ∈ Z 2 m\in\{0,1\},\ 0\le r<4,\ (u,v)\in \mathbb{Z^2} m∈{0,1}, 0≤r<4, (u,v)∈Z2
其左右在点 x ∈ Z 2 x\in\mathbb{Z^2} x∈Z2(像素的坐标)上的具体方式,通过左乘矩阵 g ( r , u , v ) g(r,u,v) g(r,u,v)和 x x x的坐标向量 x ( u ′ , v ′ ) x(u',v') x(u′,v′): g x ≃ [ ( − 1 ) m c o s ( r π / 2 ) − ( − 1 ) m s i n ( r π / 2 ) u s i n ( r π / 2 ) c o s ( r π / 2 ) v 0 0 1 ] [ u ′ v ′ 1 ] gx\simeq\left[\begin{matrix}(-1)^mcos(r\pi/2)&-(-1)^msin(r\pi/2)&u\\ sin(r\pi/2)&cos(r\pi/2)&v\\ 0&0&1\end{matrix}\right]\left[\begin{matrix}u'\\v'\\1\end{matrix}\right] gx≃⎣⎡(−1)mcos(rπ/2)sin(rπ/2)0−(−1)msin(rπ/2)cos(rπ/2)0uv1⎦⎤⎣⎡u′v′1⎦⎤
2.2 群上的函数
在传统的卷积神经网络中,我们把图片和特征图(Feature Map:也称称作特征映射)当作一种函数 f : Z 2 → R k f:\mathbb{Z}^2\to\mathbb{R}^k f:Z2→Rk当你在一个RGB图片上输入一个点的坐标 ( p , q ) ∈ Z 2 (p,q)\in\mathbb{Z}^2 (p,q)∈Z2返回的是图片在这个坐标点的三个通道的值 f ( p , q ) ∈ R 3 f(p,q)\in\mathbb{R}^3 f(p,q)∈R3。当你在一个有 k k k个通道的特征图返回这个坐标点的 k k k个通道的值 f ( p , q ) ∈ R k f(p,q)\in\mathbb{R}^k f(p,q)∈Rk。同时,虽然我们在使用中往往是把Feature Map存在一个有限的数组中,即其定义域是一个有限的区域,但实际上我们可以把它扩展到整个 Z 2 \mathbb{Z}^2 Z2上去。
作者同时定义了作用在特征图上的函数的数学形式:
[
L
g
f
]
(
x
)
=
[
f
∘
g
−
1
]
(
x
=
f
(
g
−
1
(
x
)
)
[L_gf](x)=[f\circ g^{-1}](x=f(g^{-1}(x))
[Lgf](x)=[f∘g−1](x=f(g−1(x))
- L g L_g Lg是作用在特征图上的变换,是对函数的变换。
- L g L_g Lg还必须满足 L g L h = L g h L_gL_h=L_{gh} LgLh=Lgh
- 公式表达的意思是对特征图进行 L g L_g Lg变换之后的特征图在 x x x点的值等于原本未经变换的特征图 f f f在 g − 1 x g^{-1}x g−1x点的值
- 如果变换 g g g表示的是在图像上的平移变换 t = ( u , v ) ∈ Z 2 t=(u,v)\in\mathbb{Z}^2 t=(u,v)∈Z2,那么 g − 1 x , x = ( p , q ) g^{-1}x,\ x=(p,q) g−1x, x=(p,q)就是 x − t x-t x−t
- 如果变换 g g g表示的是图像上以中心旋转90度的旋转变换 g ( r = 1 , u = 0 , v = 0 ) = [ c o s ( π / 2 ) − s i n ( π / 2 ) 0 s i n ( π / 2 ) c o s ( π / 2 ) 0 0 0 1 ] g(r=1,u=0,v=0)=\left[\begin{matrix} cos(\pi/2)&-sin(\pi/2)&0 \\ sin(\pi/2)&cos(\pi/2)&0 \\ 0&0&1\end{matrix}\right] g(r=1,u=0,v=0)=⎣⎡cos(π/2)sin(π/2)0−sin(π/2)cos(π/2)0001⎦⎤,那么 g − 1 x , x = ( p , q ) g^{-1}x,\ x=(p,q) g−1x, x=(p,q)就是 [ c o s ( π / 2 ) s i n ( π / 2 ) 0 − s i n ( π / 2 ) c o s ( π / 2 ) 0 0 0 1 ] [ p q 1 ] \left[\begin{matrix} cos(\pi/2)&sin(\pi/2)&0 \\ -sin(\pi/2)&cos(\pi/2)&0 \\ 0&0&1\end{matrix}\right]\left[\begin{matrix}p\\q\\1\end{matrix}\right] ⎣⎡cos(π/2)−sin(π/2)0sin(π/2)cos(π/2)0001⎦⎤⎣⎡pq1⎦⎤
这部分作者在尝试可视化群上的特征图,注意是群上的特征图,并非是是传统的 f : Z 2 → R f:\mathbb{Z}^2\to\mathbb{R} f:Z2→R,而是 f : G → R f:\mathbb{G}\to\mathbb{R} f:G→R。事实上关于这部分,作者具体的介绍在6.1章才有具体的介绍,所以这个地方的可视化看起来会有一点困惑,可以先往之后看再回过头看这部分可视化来理解。
3.CNNs上的等变性
3.1 卷积和相关的数学表达形式
首先,卷积(convolve)和相关(corelate)是两个不同的操作,但在卷积神经网络中,因为二者在训练中实际上是等价的,所以大家往往混为一谈。作者在这里较为详细的介绍了二者的数学形式之不同,但在之后作者默认的是相关(corelate)操作。(实际上,很多文章中默认的卷积操作实际上都是相关)
在CNNs的每一层
l
l
l上,输入是一叠特征图
f
:
Z
→
R
K
l
f:\mathbb{Z}\to\mathbb{R}^{K^l}
f:Z→RKl,
K
l
K^l
Kl是第
l
l
l层的通道数。然后使用
K
l
+
1
K^{l+1}
Kl+1个滤波器
ψ
i
:
Z
2
→
R
K
l
\psi^i:\mathbb{Z}^2\to\mathbb{R}^{K^l}
ψi:Z2→RKl: 卷积:
[
f
∗
ψ
i
]
(
x
)
=
∑
y
∈
Z
2
∑
k
=
1
K
l
f
k
(
y
)
ψ
k
i
(
x
−
y
)
[f*\psi^i](x)=\sum\limits_{y\in\mathbb{Z}^2}\sum\limits_{k=1}^{K^l}f_k(y)\psi_k^i(x-y)
[f∗ψi](x)=y∈Z2∑k=1∑Klfk(y)ψki(x−y)
相关:
[
f
∗
ψ
i
]
(
x
)
=
∑
y
∈
Z
2
∑
k
=
1
K
l
f
k
(
y
)
ψ
k
i
(
y
−
x
)
[f*\psi^i](x)=\sum\limits_{y\in\mathbb{Z}^2}\sum\limits_{k=1}^{K^l}f_k(y)\psi_k^i(y-x)
[f∗ψi](x)=y∈Z2∑k=1∑Klfk(y)ψki(y−x)
-
首先注意到滤波器的形式为 ψ i : Z 2 → R K l \psi^i:\mathbb{Z}^2\to\mathbb{R}^{K^l} ψi:Z2→RKl, i i i表示的是 K l K^l Kl个滤波器的第 i i i个。其表达的是在输入一个坐标后,得到在这个坐标的 K l K^l Kl个通道的权值。举个例子: [ [ 0 1 0 1 − 4 1 0 1 0 ] [ 1 0 3 1 − 2 3 − 2 1 0 ] [ 2 − 1 − 1 3 1 − 1 − 1 1 − 3 ] ] \left[\left[\begin{matrix}0&1&0\\1&-4&1\\0&1&0\end{matrix}\right]\left[\begin{matrix}1&0&3\\1&-2&3\\-2&1&0\end{matrix}\right]\left[\begin{matrix}2&-1&-1\\3&1&-1\\-1&1&-3\end{matrix}\right]\right] ⎣⎡⎣⎡0101−41010⎦⎤⎣⎡11−20−21330⎦⎤⎣⎡23−1−111−1−1−3⎦⎤⎦⎤
这是一个作用在拥有三个通道的第 l l l层上的一堆滤波器的第 i i i个,假设说我们把这个滤波器理解成上面的数学公式那样的形式,同时注明滤波器最中心的点的坐标为 ( 0 , 0 ) (0,0) (0,0)。那么 ψ 1 i ( 0 ) = − 4 , ψ 1 i ( 0 ) = − 2 , ψ 1 i ( 0 ) = 1 \psi_1^i(0)=-4,\ \psi_1^i(0)=-2,\ \psi_1^i(0)=1 ψ1i(0)=−4, ψ1i(0)=−2, ψ1i(0)=1,得到的实际上就是滤波器的权值。 -
f k ( y ) f_k(y) fk(y)表示的是第 l l l层的第 k k k个通道在 y y y这个坐标点的值
-
注意到求和时是 ∑ y ∈ Z 2 \sum\limits_{y\in\mathbb{Z}^2} y∈Z2∑且滤波器内 x − y , y − x ∈ Z 2 x-y,\ y-x\in\mathbb{Z}^2 x−y, y−x∈Z2。作者在之前就已经说过,要把特征图和滤波器拓展到整个 Z 2 \mathbb{Z}^2 Z2上,虽然我们的特征图和滤波器在实际操作中是存放在一个有限的数组中。拓展方法就是,超出我们存放区域以外的值均取 0 0 0,即可。
3.2 卷积的平移等变性
- 这时作者为何要将特征图和滤波器都拓展到 Z 2 \mathbb{Z}^2 Z2上的优点就表现出来了。在证明中可以看到由于这种表达形式,导致其数学证明简洁了许多。
- 作者这里也说明了一个问题就是,在原始的特征图上进行变换之后再卷积 等于对滤波器进行逆变换之后再卷积然后再对输出的特征图进行变换。
4.群等变网络
群等变网络(Group Equivariante Networks)主要有三种层组成:群卷积、群池化和非线性单元。同时这些层都与作用在图像域上的G-transformations可交换,所以其具有等变性。
4.1 群等变相关(G-Equivariante correlation)
作用在第一层原始图片上的相关操作: [ f ⋆ ψ ] ( g ) = ∑ y ∈ Z 2 ∑ k f k ( y ) ψ k ( g − 1 y ) [f\star \psi](g)=\sum\limits_{y\in\mathbb{Z}^2}\sum\limits_kf_k(y)\psi_k(g^{-1}y) [f⋆ψ](g)=y∈Z2∑k∑fk(y)ψk(g−1y) 作用在之后特征图上的相关操作: [ f ⋆ ψ ] ( g ) = ∑ h ∈ G ∑ k f k ( y ) ψ k ( g − 1 h ) [f\star \psi](g)=\sum\limits_{h\in G}\sum\limits_kf_k(y)\psi_k(g^{-1}h) [f⋆ψ](g)=h∈G∑k∑fk(y)ψk(g−1h)
- 这一个地方理解起来有些抽象,我们举一个例子。对于传统的卷积来说,相关就是平移滤波器,然后滤波器的权值和特征图相乘求和的过程。用以上数学形式表示第一层就是, g − 1 y = y + x , x ∈ Z 2 g^{-1}y=y+x, x\in\mathbb{Z}^2 g−1y=y+x,x∈Z2。那么我们原始的对于其的理解就变了,变成了作用在一个变换 g g g上了。我们求出来的每一个坐标卷积后的结果,变成了每一个平移变换卷积后的结果。而对坐标 x ∈ Z 2 x\in\mathbb{Z}^2 x∈Z2进行相关和对平移变换群中的每一个变换 g ∈ G g\in G g∈G是一个双射。
- 所以在第二层开始,所有的卷积操作都变成定义在变换群 G G G上了。
4.2 群等变相关的性质
这种抽象复杂的定义模式主要目的便是为了保证卷积操作对于变换群
G
G
G是等变的。其证明如下:
注意到当群不具有可交换性的时候,卷积或相关也不具有了可交换性。即 f ⋆ ψ ≠ ψ ⋆ f f\star \psi \ne \psi\star f f⋆ψ=ψ⋆f。但是作者通过定义对合函数,证明了特征图之间具有对合关系,所以 f ⋆ ψ , ψ ⋆ f f\star \psi,\ \psi\star f f⋆ψ, ψ⋆f二者所存储的信息内容时一样的。具体数学形式如下:
- 所以通过这种方式,作者也证明了,通过旋转图片再卷积和旋转卷积核在原图片进行卷积二者的结果是等价的。
- 作者之后也提到了像大多数传统卷积方式一样,群等变卷积也会为卷积后的特征图上加一个偏置项目。
- 两个在群 G G G上具有等变性的特征图之和也在群 G G G上具有等变性,所以其在很多经典的神经网络结构比如残差网络结构,依然保留群等变性。
4.3 非线形单元
我们可以把体征图看作群
G
G
G上的一个函数。所以在特征图上应用非线性单元
v
:
R
→
R
v:\mathbb{R}\to\mathbb{R}
v:R→R相当于函数的复合。所以作者定义了复合算子如下:
C
v
f
(
g
)
=
[
v
∘
f
]
(
g
)
=
v
(
f
(
g
)
)
C_vf(g)=[v\circ f](g)=v(f(g))
Cvf(g)=[v∘f](g)=v(f(g))
C
v
C_v
Cv作用在函数
f
f
f上时是post-composing的 因为之前提到的变换操作
L
L
L是pre-composition,所以
C
C
C和
L
L
L可交换。
C
v
L
h
f
=
v
∘
[
f
∘
h
−
1
]
=
[
v
∘
f
]
∘
h
−
1
=
L
h
C
v
f
C_vL_hf=v\circ[f\circ h^{-1}]=[v\circ f]\circ h^{-1}=L_hC_vf
CvLhf=v∘[f∘h−1]=[v∘f]∘h−1=LhCvf
- 这个地方作者说的我觉得有点令人困惑。我个人的理解是,非线性单元是可逆的,所以才保证了其等变性。
4.4 子群池化和陪集池化
子群池化和陪集池化
为了简化分析,作者将池化分为了两步:不带步长的池化和下采样。定义不考虑步长的最大池化操作为
P
P
P,其作用在特征图
f
:
G
→
R
f:G\to\mathbb{R}
f:G→R上:
P
f
(
g
)
=
max
k
∈
g
U
f
(
k
)
Pf(g)=\max\limits_{k\in{gU}}f(k)
Pf(g)=k∈gUmaxf(k)
- 池化操作和 L h L_h Lh是可交换的,证明在补充材料中,具体如下:
P L h f ( g ) = max k ∈ g U L h f ( k ) = max k ∈ g U f ( h − 1 k ) = max h k ∈ g U f ( k ) = max k ∈ h − 1 g U f ( k ) = P f ( h − 1 g ) = L h P f ( g ) \begin{aligned} PL_hf(g)&=\max\limits_{k\in {gU}}L_hf(k)\\ &=\max\limits_{k\in {gU}}f(h^{-1}k)\\ &=\max\limits_{hk\in {gU}}f(k)\\ &=\max\limits_{k\in {h^{-1}gU}}f(k)\\ &=Pf(h^{-1}g)\\ &=L_hPf(g) \end{aligned} PLhf(g)=k∈gUmaxLhf(k)=k∈gUmaxf(h−1k)=hk∈gUmaxf(k)=k∈h−1gUmaxf(k)=Pf(h−1g)=LhPf(g)
-
g U = { g u ∣ u ∈ U } gU=\{gu|u\in U\} gU={gu∣u∈U}是池化域 U ⊂ G U\subset G U⊂G上的 g g g变换。这个池化域放在普通的池化中就可以理解成领域。比如传统的最大池化中,我们会选择池化域为一个 2 × 2 2\times2 2×2或者 3 × 3 3\times 3 3×3的方形区域,然后整个区域的点取这个域内最大的值的。这便是不带步长的池化。在整个特征图上都如此操作之后,我们再通过下采样的方式将特征图的尺寸变小,这便是传统的最大池化中的下采样。比如步长为2的池化等价于先做池化然后下采样。
-
将传统池化延伸到这种群等变池化中,因为特征图不再是定义在 Z 2 \mathbb{Z}^2 Z2上的了,所以池化域就不能简单的理解成领域了,而应该是 G G G的一个子集。而下采样的过程也变成了并不计算全部的变换 g g g池化后的结果,而是只计算 g ∈ H , H ⊂ G g\in H,\ H\subset G g∈H, H⊂G的结果。但此时有个问题,就是下采样之后的特征图是定义在 H H H上的,所以此时下采样之后的特征图只是对 H H H等变而非对 G G G等变。
-
举个例子,在 p 4 p4 p4-CNN中,我们选取的子群 H H H为旋转的四种变换。然后下采样为步长为2的平移变换。但此时输出的特征图就不是对 p 4 p4 p4等变了,而是对其子群 H H H等变。
- 但之后作者也用陪集的表示说明了,实际上在池化域上池化就已经包括了下采样。比如:对于 p 4 p4 p4-CNN,我们的池化域为由四种旋转组成的子群 H H H,然后我们对每一个变换都进行池化。则若 g 1 = g 2 ∘ r , r ∈ H g_1=g_2\circ r, r\in H g1=g2∘r,r∈H,那么 P f ( g 1 ) = P f ( g 2 ) Pf(g_1)=Pf(g_2) Pf(g1)=Pf(g2)。这实际上,已经等同于下采样了。
4.5 总结
经过以上证明,所有的层都具有等变性。因此随意堆叠这些层所建成的群等变卷积网络(G-CNNs)都对群 G G G等变。
5.具体实现
5.1 G G G的分解
- 作者定义了一个概念叫做可划分。即一个平面的对称变化群可以被分解成一个平移变换 t t t和一个保证原点不变的变换 s s s那么这个群被成成为可划分的。
- 对于群 p 4 p4 p4,变换 g = t s g=ts g=ts可以分解为平移 t t t和绕原点的旋转 s s s
- 对于群 p 4 m p4m p4m,变换 g = t s g=ts g=ts可以分解为平移 t t t和绕原点的旋转和镜像翻转 s s s
- 则最终定义的G-correlation如下: KaTeX parse error: \tag works only in display equations 其中在第一层 X = Z 2 X=\mathbb{Z}^2 X=Z2,在之后的层中 X = G X=G X=G。
- 实际计算时,要算群 p 4 p4 p4或者群 p 4 m p4m p4m上的相关 f ⋆ ψ f\star \psi f⋆ψ,我们要先计算四个旋转角度下(或是加上翻转的8种情况下)滤波器的变换 L s ψ L_s\psi Lsψ。因为相比于整幅图像,对滤波器做变换的计算开销更小。之后再在 f f f上做快速平面相关(卷积)即可。
5.2 滤波器的变换
滤波器组被储存在一个数组 F [ ⋅ ] F[·] F[⋅]中,其维度为: K l × K l − 1 × S l − 1 × n × n K^l\times K^{l-1}\times S^{l-1}\times n \times n Kl×Kl−1×Sl−1×n×n
- 其中 K l K^l Kl表示的是第 l l l层的特征图的通道数。 S l − 1 S^{l-1} Sl−1表示群 G G G上保留原点不变性的变换 L s L_s Ls种类数。对于 Z 2 \mathbb{Z}^2 Z2、 p 4 p4 p4、 p 4 m p4m p4m群来说,分别是1、4、8。 n n n是滤波器的空间分辨率,就是平移群作用在滤波器 ψ \psi ψ上的边界。比如 n = 3 n=3 n=3时,对滤波器 ψ \psi ψ输入平移超过3个像素的变换,输出的权值就是0。
- 因为我们要对每个滤波器都使用 L s L_s Ls变换,其共有 S l S^l Sl种变换,那么输出 F + F^+ F+就是: K l × S l × K l − 1 × S l − 1 × n × n K^l\times S^l\times K^{l-1}\times S^{l-1}\times n\times n Kl×Sl×Kl−1×Sl−1×n×n。
- 滤波器变换 L s L_s Ls实际上就是对整个 K l × K l − 1 K^l\times K^{l-1} Kl×Kl−1的标量滤波器的输入做了置换。比如,如果滤波器的输入就旋转了90度,那么群卷积的输出也都旋转了90度,但是 p 4 p4 p4旋转群上的旋转是封闭的,旋转(360+90)度的结果与旋转90度相同,实际不同的旋转就相当于让对应的输出特征的顺序按照一定规则交换了一下。
- 因为上面说了,比如你在第一层旋转90度卷积核得到结果,再让第二层旋转90度卷积核得到的结果,和第一层不旋转,第二层旋转180度得到的结果实际上是一样的,只不过二者的索引变了。