Group Equivariant Convolutional Networks
Cohen T, Welling M. Group equivariant convolutional networks[C]//International conference on machine learning. 2016: 2990-2999.
https://github.com/tscohen/gconv_experiments
传统的卷积具有平移不变性(translation symmetry):对输入图片进行平移后再输入网络,得到的输出与未平移的输出仍然满足平移关系
提取不变性的数学表达式:
x表示输入,
T
g
T_g
Tg表示变换,
Φ
\Phi
Φ表示特征提取过程(即卷积过程),上式的含义是输入x经过平移变换得到
T
g
x
T_gx
Tgx,对
T
g
x
T_gx
Tgx提取特征,等价于:直接对x提取特征再进行
T
g
′
T_g'
Tg′变换。对于平移不变性而言,这边的变换
T
g
T_g
Tg和
T
g
′
T_g'
Tg′等价,均为平移变换。
进一步理解不变性:
根据上图,有两张脸x和y,两者经过特征提取之后映射到同一个点
Φ
(
x
)
=
Φ
(
y
)
\Phi(x)=\Phi(y)
Φ(x)=Φ(y),假设对这两张脸进行变换
T
g
1
T_g^1
Tg1,得到旋转后的脸
T
g
1
x
T_g^1x
Tg1x和
T
g
1
y
T_g^1y
Tg1y,再进行特征提取,得到
Φ
(
T
g
1
x
)
\Phi(T_g^1x)
Φ(Tg1x)和
Φ
(
T
g
1
y
)
\Phi(T_g^1y)
Φ(Tg1y),根据变换不变性:
Φ
(
T
g
x
)
=
T
g
′
Φ
(
x
)
\Phi(T_gx)=T_g'\Phi(x)
Φ(Tgx)=Tg′Φ(x),有:
Φ ( T g 1 x ) = T g 2 Φ ( x ) \Phi(T_g^1x)=T_g^2\Phi(x) Φ(Tg1x)=Tg2Φ(x)
Φ ( T g 1 y ) = T g 2 Φ ( y ) \Phi(T_g^1y)=T_g^2\Phi(y) Φ(Tg1y)=Tg2Φ(y)
又因为 Φ ( x ) = Φ ( y ) \Phi(x)=\Phi(y) Φ(x)=Φ(y),所以得到 Φ ( T g 1 x ) = Φ ( T g 1 y ) \Phi(T_g^1x)=\Phi(T_g^1y) Φ(Tg1x)=Φ(Tg1y),即:旋转之后再提取特征,两张脸还是能够被映射到同一个点,即具有旋转不变性
那么,为什么传统的CNN会具有平移不变性呢? 作者对此进行了如下推导:
首先传统CNN的卷积过程可以表示为:
上面的式子表示卷积,下面的式子表示相关(correlation),两者应用于CNN时从训练结果上讲是等价的。x表示坐标,f表示特征图, l l l表示第 l l l层, K l K^l Kl表示通道数, ψ \psi ψ表示卷积核,上式表现了一个卷积核 ψ \psi ψ在特征图上卷积的过程。
那么,假设对输入的特征图f做位移:
y
→
y
+
t
y\rightarrow y+t
y→y+t,可以得到以下推导过程:
L t L_t Lt表示进行位移t的变换,上式表明:先对特征图f进行位移t的变换再通过卷积核 ψ \psi ψ提取特征,等价于:先通过卷积核 ψ \psi ψ提取特征,再进行位于t的变换。由此,得到位移不变性。
那么,为什么传统的CNN没有旋转不变性呢? 作者进行了对应的旋转变换的推导证明 [ [ L r f ] ∗ ψ ] ( x ) = L r [ f ∗ [ L r − 1 ψ ] ] ( x ) [[L_rf]*\psi](x) = L_r[f*[L_{r^{-1}}\psi]](x) [[Lrf]∗ψ](x)=Lr[f∗[Lr−1ψ]](x):
[ [ L r f ] ⋆ ψ ] ( x ) = ∑ y f ( A r y ) ψ ( y − x ) = ∑ y f ( y ) ψ ( A r − 1 y − x ) = ∑ y f ( y ) ψ ( A r − 1 ( y − A r x ) ) = L r [ f ⋆ [ L r − 1 ψ ] ] ( x ) [[L_rf]\star\psi](x) =\sum_{y}f(A_ry)\psi(y-x)=\sum_{y}f(y)\psi(A^{-1}_ry-x)=\sum_{y}f(y)\psi(A^{-1}_r(y-A_rx))=L_r[f\star[L_{r^{-1}}\psi]](x) [[Lrf]⋆ψ](x)=∑yf(Ary)ψ(y−x)=∑yf(y)ψ(Ar−1y−x)=∑yf(y)ψ(Ar−1(y−Arx))=Lr[f⋆[Lr−1ψ]](x)
其中,
A
r
A_r
Ar表示旋转矩阵。
直观上理解,若对特征图进行旋转之后再进行卷积,等价于:对卷积核做反向的旋转,再对原始特征图进行卷积,再把卷积得到的结果旋转回来。这与不变性的定义不符(按照不变性的定义,应该是等价于:特征图直接与卷积核卷积,再进行旋转),因此,传统的CNN没有旋转不变性。
以下是脑洞(存在问题):
假设我们定义一个新的卷积操作:
[ f ⋄ ψ i ] ( θ ) = ∑ y ∈ Z 2 ∑ k = 1 K l f k ( y ) ψ k i ( A θ − 1 y ) [f\diamond\psi^i](\theta)=\sum_{y\in \mathbb{Z}^2}\sum_{k=1}^{K^l}f_k(y)\psi_k^i(A_\theta^{-1} y) [f⋄ψi](θ)=∑y∈Z2∑k=1Klfk(y)ψki(Aθ−1y)
其中, A θ A_\theta Aθ表示旋转角度为 θ \theta θ的旋转矩阵。
根据这个卷积操作,推导旋转不变性:
[ [ L r f ] ⋄ ψ ] ( θ ) = ∑ y f ( A r y ) ψ ( A θ − 1 y ) = ∑ y f ( y ) ψ ( A r − 1 A θ − 1 y ) = ∑ y f ( y ) ψ ( A ( θ + r ) − 1 y ) = L r [ f ⋄ ψ ] ( θ ) [[L_rf]\diamond\psi](\theta) =\sum_{y}f(A_ry)\psi(A_\theta^{-1} y)=\sum_{y}f(y)\psi(A^{-1}_rA_\theta^{-1} y)=\sum_{y}f(y)\psi(A_{(\theta+r)}^{-1} y)=L_r[f\diamond\psi](\theta) [[Lrf]⋄ψ](θ)=∑yf(Ary)ψ(Aθ−1y)=∑yf(y)ψ(Ar−1Aθ−1y)=∑yf(y)ψ(A(θ+r)−1y)=Lr[f⋄ψ](θ)
作者由此提出了G-CNN,定义了一个新的卷积操作:
其中
g
∈
G
g\in G
g∈G,表示变换的集合,在第一层之后,上式各函数可以定义在离散集合
G
G
G上:
推导不变性,
h
→
u
h
h\rightarrow uh
h→uh:
这篇文章的主要思想如上。