论文笔记:Group Equivariant Convolutional Networks
生活随笔
收集整理的這篇文章主要介紹了
论文笔记:Group Equivariant Convolutional Networks
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Group Equivariant Convolutional Networks
1、四個問題
- 對卷積神經網絡進行擴展,并提出一個在特定的變換(旋轉、平移等,也可表示為一個特殊的群)下具有等變性的網絡。
- 提出了一種新的卷積神經網絡結構——群等變卷積神經網絡(Group equivariant Convolutional Neural Network),簡寫為G-CNN。
- G-CNN中采用了群卷積(Group Convolution,簡寫為G-convolution)。
- 作者在帶有旋轉變換的MNIST和CIFAR數據上進行了實驗,證實旋轉群CNN能較好地抗旋轉。
- 實驗不夠充分,MNIST和CIFAR都是相對簡單的數據集,基本上準確率不會太低。
- 文中定義的旋轉群只是針對二維圖像,如果定義的旋轉群擴展到三維會怎么樣?
2、論文概述
2.1、簡介
- 盡管現階段的神經網絡還缺少理論支撐,但是許多經驗及實驗都驗證了:卷積權值共享(convolutional weight sharing)和網絡深度(depth)對于神經網絡的效果起到了重要作用。
- 卷積權值共享的有效性依賴于其在大多數感知任務中都具有平移不變性:預測標簽的函數和數據分布對于平移變換都近似于不變。
- 得益于平移不變性,共享權重的卷積核可以從圖像的局部區域提取特征,并且參數量遠少于全連接網絡,同時能夠學習更多有效的變換信息。
- **平移不變性(translation equivariant)**的定義:
- 將圖片平移后再送入若干卷積層得到的結果,與將原圖直接送入相同卷積層得到結果后再對特征圖進行平移所得到的結果一樣。
- CNN中已經具有了平移不變性,這篇論文的工作是將神經網絡拓展到更大的群上,引入更多的對稱性,如旋轉(rotation)和反射(reflection)。
2.2、結構化和等變特征表示
- 感覺這一段用原文更好理解:
- We construct representations that have the structure of a linear G-space, for some chosen group G. This means that each vector in the representation space has a pose associated with it, which can be transformed by the elements of some group of transformations G. This additional structure allows us to model data more efficiently: A filter in a G-CNN detects co-occurrences of features that have the preferred relative pose, and can match such a feature constellation in every global pose through an operation called the G-convolution.
- 對于一個網絡或是網絡的一層Φ\PhiΦ,將輸入特征映射到輸出特征,應該保留結構信息(structure preserving)。對于G空間上來說,Φ\PhiΦ具有等變性的定義如下:
- Φ(Tgx)=Tg′Φ(x)\Phi\left(T_{g} x\right)=T_{g}^{\prime} \Phi(x)Φ(Tg?x)=Tg′?Φ(x)
- 對輸入xxx進行變換ggg,用公式表示就是:TgxT_g xTg?x,然后將其送入函數Φ\PhiΦ中輸出結果Φ(Tgx)\Phi\left(T_{g} x\right)Φ(Tg?x)。
- 先將輸入xxx送入函數Φ\PhiΦ中,然后對其輸出的特征圖進行變換ggg,輸出的結構是Tg′Φ(x)T_{g}^{\prime} \Phi(x)Tg′?Φ(x)。
- 等變性(Equivariance)就意味著上述兩種變換是相等的。
- 變換操作TTT和T′T^{\prime}T′不需要完全相同,只需要它們對于任意兩種變換ggg和hhh來說都滿足:T(gh)=T(g)T(h)T(g h)=T(g) T(h)T(gh)=T(g)T(h)。(T′T^{\prime}T′同理)
- 在深度學習中,通常來說,等變性(equivariance)比不變性(invariance)更重要,因為我們無法根據不變特征判斷其空間關系(比如人臉的眼睛、鼻子、嘴巴的空間關系)。
2.3、數學框架
2.3.1、對稱群
- 對于一個對象來說,對稱性指的是,在一次變換前后,對象不變。
- 對于圖像上采樣的網格Z2\mathbb{Z}^{2}Z2來說,對其進行翻轉得到:?Z2={(?n,?m)∣(n,m)∈Z2}=Z2-\mathbb{Z}^{2} = \left\{(-n,-m) |(n, m) \in \mathbb{Z}^{2}\right\}=\mathbb{Z}^{2}?Z2={(?n,?m)∣(n,m)∈Z2}=Z2。。
- 所以翻轉對于采樣的網格來說是對稱的。
- 有以下性質的變換的集合被稱為對稱群(symmetry group):
- 如果有兩個對稱變換(symmetry transformations)ggg和hhh,將他們組合起來得到的結果ghghgh也是一個對稱變換。
- 逆變換g?1g^{-1}g?1也是一個對稱變換,將其與變換ggg組合起來,得到的是恒等變換。
- 一個簡單的例子就是2D圖片上的整數平移群,Z2\mathbb{Z}^{2}Z2。
- 群操作為平移。
- (n,m)+(p,q)=(n+p,m+q)(n, m) + (p, q) = (n+p, m+q)(n,m)+(p,q)=(n+p,m+q)
- 兩個平移變換之和依然是一個平移變換,對平移變換取逆也是一個平移變換,所以這是一個群。
2.3.2、p4p4p4群
- p4p4p4群是由繞方形網格的中心以90度角進行旋轉和平移變換組成的群。
- 這個群的元素至少采用三個整數rrr,uuu,vvv定義:
- g(r,u,v)=[cos?(rπ/2)?sin?(rπ/2)usin?(rπ/2)cos?(rπ/2)v001]g(r, u, v)=\left[\begin{array}{ccc}{\cos (r \pi / 2)} & {-\sin (r \pi / 2)} & {u} \\ {\sin (r \pi / 2)} & {\cos (r \pi / 2)} & {v} \\ {0} & {0} & {1}\end{array}\right]g(r,u,v)=???cos(rπ/2)sin(rπ/2)0??sin(rπ/2)cos(rπ/2)0?uv1????
- 其中0≤r<40 \leq r < 40≤r<4,并且(u,v)∈Z2(u, v) \in \mathbb{Z}^2(u,v)∈Z2。
- 這個群上的二元操作由矩陣乘法給出。
- p4p4p4群作用在$ \mathbb{Z}^2上的點,等于將矩陣上的點,等于將矩陣上的點,等于將矩陣g(r, u, v)與其次坐標特征向量與其次坐標特征向量與其次坐標特征向量x\left(u^{\prime}, v^{\prime}\right)$相乘:
- gx?[cos?(rπ/2)?sin?(rπ/2)usin?(rπ/2)cos?(rπ/2)v001][u′v′1]g x \simeq\left[\begin{array}{ccc}{\cos (r \pi / 2)} & {-\sin (r \pi / 2)} & {u} \\ {\sin (r \pi / 2)} & {\cos (r \pi / 2)} & {v} \\ {0} & {0} & {1}\end{array}\right]\left[\begin{array}{l}{u^{\prime}} \\ {v^{\prime}} \\ {1}\end{array}\right]gx????cos(rπ/2)sin(rπ/2)0??sin(rπ/2)cos(rπ/2)0?uv1???????u′v′1????
2.3.3、p4mp4mp4m群
- p4mp4mp4m群由以下操作組成:繞中心點的90度旋轉,鏡像,平移。
- 與p4p4p4群一樣,可以表示為矩陣形式:
- g(m,r,u,v)=[(?1)mcos?(rπ2)?(?1)msin?(rπ2)usin?(rπ2)cos?(rπ2)v001]g(m, r, u, v)=\left[\begin{array}{ccc}{(-1)^{m} \cos \left(\frac{r \pi}{2}\right)} & {-(-1)^{m} \sin \left(\frac{r \pi}{2}\right)} & {u} \\ {\sin \left(\frac{r \pi}{2}\right)} & {\cos \left(\frac{r \pi}{2}\right)} & {v} \\ {0} & {0} & {1}\end{array}\right]g(m,r,u,v)=???(?1)mcos(2rπ?)sin(2rπ?)0??(?1)msin(2rπ?)cos(2rπ?)0?uv1????
- 其中m∈{0,1}m \in \{ 0, 1 \}m∈{0,1},0≤r<40 \leq r < 40≤r<4,并且(u,v)∈Z2(u, v) \in \mathbb{Z}^2(u,v)∈Z2。
2.3.4、群上的函數
- 在CNN中的函數f:Z2→RKf : \mathbb{Z}^{2} \rightarrow \mathbb{R}^{K}f:Z2→RK通常是定義在一個有界域上(圖像–矩形域)。每一個像素坐標(p,q)∈Z2(p, q) \in \mathbb{Z}^{2}(p,q)∈Z2,對應著函數fff返回的特征圖上的一個KKK維特征向量f(p,q)f(p, q)f(p,q)。
- 定義在特征圖上的一種變換為ggg:
- [Lgf](x)=[f°g?1](x)=f(g?1x)\left[L_{g} f\right](x)=\left[f \circ g^{-1}\right](x)=f\left(g^{-1} x\right)[Lg?f](x)=[f°g?1](x)=f(g?1x)
- LgL_gLg?表示對特征圖進行ggg變換。
- 這個公式的意思是,要得到進行ggg變換后的特征圖LgfL_gfLg?f上xxx位置處的值,我們需要到原特征圖fff上的g?1xg^{-1}xg?1x位置上找值。
- 根據之前的定義,LgL_gLg?還需要滿足:LgLh=LghL_{g} L_{h}=L_{g h}Lg?Lh?=Lgh?。
- 如果變換ggg表示的是圖像上的平移變換t=(u,v)∈Z2t=(u, v) \in \mathbb{Z}^{2}t=(u,v)∈Z2,那么g?1xg^{-1} xg?1x就等于x?tx - tx?t。
- 如下圖所示,展示了p4p4p4群上的濾波器:
- rrr表示旋轉90度,總共有4種旋轉的結果,紅線表示了變換關系。
- 如下圖所示,展示了p4mp4mp4m群上的濾波器:
- rrr依然表示旋轉90度,紅線表示旋轉變換關系。mmm表示鏡像翻轉,用藍線表示。
- 定義特征圖的對合函數(involution):f?(g)=f(g?1)f^{*}(g)=f\left(g^{-1}\right)f?(g)=f(g?1)。在后面會用到。
2.4、CNN上的等變性
- 首先對傳統CNN的等變性進行分析。
- 在CNN的每一層lll上,輸入是一些特征圖f:Z2→RKlf : \mathbb{Z}^{2} \rightarrow \mathbb{R}^{K^{l}}f:Z2→RKl,然后使用Kl+1K^{l+1}Kl+1個卷積核ψi:Z2→RKl\psi^{i} : \mathbb{Z}^{2} \rightarrow \mathbb{R}^{K^{l}}ψi:Z2→RKl對特征圖做卷積(convolve)或是相關(corelate):
- 卷積:
- [f?ψi](x)=∑y∈Z2∑k=1Klfk(y)ψki(x?y)\left[f * \psi^{i}\right](x)=\sum_{y \in \mathbb{Z}^{2}} \sum_{k=1}^{K^{l}} f_{k}(y) \psi_{k}^{i}(x-y)[f?ψi](x)=∑y∈Z2?∑k=1Kl?fk?(y)ψki?(x?y)
- 相關:
- [f?ψi](x)=∑y∈Z2∑k=1Klfk(y)ψki(y?x)\left[f \star \psi^{i}\right](x)=\sum_{y \in \mathbb{Z}^{2}} \sum_{k=1}^{K^{l}} f_{k}(y) \psi_{k}^{i}(y-x)[f?ψi](x)=∑y∈Z2?∑k=1Kl?fk?(y)ψki?(y?x)
- 后續討論以相關為主,默認將兩種操作都稱作是卷積。
- 卷積:
- 將y→y+ty \rightarrow y+ty→y+t做替換,忽略特征圖上最后求和的那一步,我們可以證明相關對平移具有等變性:
- [[Ltf]?ψ](x)=∑yf(y?t)ψ(y?x)=∑yf(y)ψ(y+t?x)=∑yf(y)ψ(y?(x?t))=[Lt[f?ψ]](x)\begin{aligned}\left[\left[L_{t} f\right] \star \psi\right](x) &=\sum_{y} f(y-t) \psi(y-x) \\ &=\sum_{y} f(y) \psi(y+t-x) \\ &=\sum_{y} f(y) \psi(y-(x-t)) \\ &=\left[L_{t}[f \star \psi]\right](x) \end{aligned}[[Lt?f]?ψ](x)?=y∑?f(y?t)ψ(y?x)=y∑?f(y)ψ(y+t?x)=y∑?f(y)ψ(y?(x?t))=[Lt?[f?ψ]](x)?
- 于是我們可以說,“相關是平移群上的等變映射”;
- 原論文中的說法:correlation is an equivariant map for the translation group;或者說,correlation and translation commute。
- 以此類推,可以得到卷積也對平移具有等變性:[Ltf]?ψ=Lt[f?ψ]\left[L_{t} f\right] * \psi=L_{t}[f * \psi][Lt?f]?ψ=Lt?[f?ψ]。
- 盡管卷積對于平移具有等變性,但是卷積對于旋轉不具有等變性:[[Lrf]?ψ](x)=Lr[f?[Lr?1ψ]](x)\left[\left[L_{r} f\right] \star \psi\right](x)=L_{r}\left[f \star\left[L_{r^{-1}} \psi\right]\right](x)[[Lr?f]?ψ](x)=Lr?[f?[Lr?1?ψ]](x)。
2.5、群等變網絡
- 群等變網絡(Group Equivariant Network)由三種層組成:群卷積、群池化和非線性單元。
2.5.1、群等變相關(G-Equivariant correlation)
- 對于2D圖片上來說,相關就是通過平移濾波器,然后不斷計算濾波器與特征圖的點乘。
- [f?ψ](g)=∑y∈Z2∑kfk(y)ψk(g?1y)[f \star \psi](g)=\sum_{y \in \mathbb{Z}^{2}} \sum_{k} f_{k}(y) \psi_{k}\left(g^{-1} y\right)[f?ψ](g)=∑y∈Z2?∑k?fk?(y)ψk?(g?1y)
- 輸入圖像是fff,濾波器是ψ\psiψ,他們都是位于平面Z2\mathbb{Z}^2Z2上的函數,但是輸出的特征圖f?ψf \star \psif?ψ是離散群GGG上的一個函數。平移群是這里的離散GGG的一個子群。
- 將相關操作推廣到整個離散群GGG上:
- [f?ψ](g)=∑h∈G∑kfk(h)ψk(g?1h)[f \star \psi](g)=\sum_{h \in G} \sum_{k} f_{k}(h) \psi_{k}\left(g^{-1} h\right)[f?ψ](g)=∑h∈G?∑k?fk?(h)ψk?(g?1h)
- 類似地,可以做替換h→uhh \rightarrow u hh→uh,等變性證明如下:
- [[Luf]?ψ](g)=∑h∈G∑kfk(u?1h)ψ(g?1h)=∑h∈G∑kf(h)ψ(g?1uh)=∑h∈G∑kf(h)ψ((u?1g)?1h)=[Lu[f?ψ]](g)\begin{aligned}\left[\left[L_{u} f\right] \star \psi\right](g) &=\sum_{h \in G} \sum_{k} f_{k}\left(u^{-1} h\right) \psi\left(g^{-1} h\right) \\ &=\sum_{h \in G} \sum_{k} f(h) \psi\left(g^{-1} u h\right) \\ &=\sum_{h \in G} \sum_{k} f(h) \psi\left(\left(u^{-1} g\right)^{-1} h\right) \\ &=\left[L_{u}[f \star \psi]\right](g) \end{aligned}[[Lu?f]?ψ](g)?=h∈G∑?k∑?fk?(u?1h)ψ(g?1h)=h∈G∑?k∑?f(h)ψ(g?1uh)=h∈G∑?k∑?f(h)ψ((u?1g)?1h)=[Lu?[f?ψ]](g)?
- 注:在第一層相關層上(文中稱為first-layer G-correlation),fff和ψ\psiψ是平面Z2\mathbb{Z}^2Z2上的函數,LufL_u fLu?f也表示在Z2\mathbb{Z}^2Z2上的函數的變換。 在之后的相關層上(文中稱為full G-correlation),這些函數都是在群GGG上。
- 群GGG是不可交換的,對于G-卷積核和G-相關來說同理。但是特征圖之間存在對合關系(involution):
- f?ψ=(ψ?f)?f \star \psi=(\psi \star f)^{*}f?ψ=(ψ?f)?
- 因為對合(involution)是可逆的,所以f?ψf \star \psif?ψ和ψ?f\psi \star fψ?f中的信息內容是相同的。
- 我們通常還習慣給卷積層的特征圖加上一個偏差項。在G-卷積層上也可以這么做。
- 兩個具有在群GGG上的等變性的特征圖之和依然具有等變性,因此G-conv層可以被用在很多經典的神經網絡結構中。
2.5.2、非線性單元
- 我們可以把特征圖看做群GGG上的一個函數。在特征圖使用非線性單元ν:R→R\nu : \mathbb{R} \rightarrow \mathbb{R}ν:R→R,相當于多個函數的組合。定義組合操作子如下:
- Cνf(g)=[ν°f](g)=ν(f(g))C_{\nu} f(g)=[\nu \circ f](g)=\nu(f(g))Cν?f(g)=[ν°f](g)=ν(f(g))
- CνC_{\nu}Cν?是對函數f(g)f(g)f(g)的post-composing。
- 因為前面提到的變換操作子LLL是pre-composition,所以CCC和LLL可交換。
- CνLhf=ν°[f°h?1]=[ν°f]°h?1=LhCνfC_{\nu} L_{h} f=\nu \circ\left[f \circ h^{-1}\right]=[\nu \circ f] \circ h^{-1}=L_{h} C_{\nu} fCν?Lh?f=ν°[f°h?1]=[ν°f]°h?1=Lh?Cν?f
- 因此使用非線性單元(比如ReLU)處理后的特征圖依然可以繼承前一層的變換性質。
2.5.3、池化
- 為簡化分析,將池化分為兩步:不帶步長的池化和下采樣。
- 定義不考慮步長的最大池化操作為PPP,其作用在特征圖f:G→Rf : G \rightarrow \mathbb{R}f:G→R上:
- Pf(g)=max?k∈gUf(k)P f(g)=\max _{k \in g U} f(k)Pf(g)=maxk∈gU?f(k)
- gU={gu∣u∈U}g U=\{g u | u \in U\}gU={gu∣u∈U}是池化域U?GU \subset GU?G上的ggg變換。這里的池化域的簡單的理解就是鄰域。
- 在一個普通的卷積神經網絡中,UUU通常是一個2×22 \times 22×2或3×33 \times 33×3的方形區域,ggg是平移變換。
- 池化操作與LhL_hLh?是可交換的:
- PLh=LhPP L_{h}=L_{h} PPLh?=Lh?P
- 池化的作用是減少特征圖中的方差,同時對于下采樣也是很有效的,換句話說,就是帶有步長的池化。
- 在G-CNN中,步長的概念就表示一個下采樣群H?GH \subset GH?G。因此下采樣后的特征圖只對HHH等變,而不對GGG等變。
- 在一個標準的卷積神經網絡架構中,步長為2的池化等價于先做池化然后下采樣。
- 如果是在之前說到的p4p4p4群上,子群HHH包含所有4個旋轉方向還有平移2的倍數的像素,池化就相當于在這個子群HHH上做下采樣。
- 要保證池化在群GGG上的等變性,我們需要選擇一個合適的池化域UUU,這個池化域要是GGG的子群H?GH \subset GH?G。
2.6、具體實現
- 離散群上的G-convolution的計算無非就是算術上的索引和矩陣內積,所以它可以直接使用GPU來并行實現。
- 定義一個平面對稱群GGG。
- 如果在這個群GGG上的變換g∈Gg \in Gg∈G可以分解為一個平移t∈Z2t \in \mathbb{Z}^{2}t∈Z2和變換sss,就稱為可劃分的(論文中稱為split)。
- 對于群p4p4p4,變換g=tsg=tsg=ts可以分解為平移ttt和繞原點的旋轉sss。
- 對于群p4mp4mp4m,變換則可分解為平移和旋轉還有翻轉。
- 定義G-correlation操作如下:
- f?ψ(ts)=∑h∈X∑kfk(h)Lt[Lsψk(h)]f \star \psi(t s)=\sum_{h \in X} \sum_{k} f_{k}(h) L_{t}\left[L_{s} \psi_{k}(h)\right]f?ψ(ts)=∑h∈X?∑k?fk?(h)Lt?[Ls?ψk?(h)]
- 在第一層上X=Z2X=\mathbb{Z}^{2}X=Z2,之后的層上X=GX=GX=G。
- 實際計算時,要算群p4p4p4或者群p4mp4mp4m上的相關f?ψf \star \psif?ψ,我們要先計算四個旋轉角度下(或是加上翻轉的8種情況下)濾波器的變換LsψL_{s} \psiLs?ψ。因為相比于整幅圖像,對濾波器做變換的計算開銷更小。之后再在fff上做快速平面相關(卷積)即可。
2.6.1、濾波器變換
- 濾波器的維度為:Kl×Kl?1×Sl?1×n×nK^{l} \times K^{l-1} \times S^{l-1} \times n \times nKl×Kl?1×Sl?1×n×n。
- 其中KlK^lKl是第lll層的通道數。
- Sl?1S^{l-1}Sl?1表示群GGG上的變換種類對于。Z2\mathbb{Z}^2Z2、p4p4p4和p4mp4mp4m群來說,分別是1、4、8。
- nnn是濾波器的空間分辨率,換句話說就是平移群上的變換種類數。
- 對于2D圖像來說,S1=1S^1=1S1=1;對于p4p4p4群來說,Sl=4S^l=4Sl=4;對于p4mp4mp4m群來說,Sl=8S^l = 8Sl=8。
- 濾波器變換LSL_SLS?實際上相當于對整個Kl×Kl?1K^{l} \times K^{l-1}Kl×Kl?1的標量濾波器的輸入做了置換。
- 換句話說,因為群卷積是等變的,各個角度下的特征也是等變的。以旋轉為例,如果輸入就旋轉了90度,那么群卷積的輸出也都旋轉了90度,但是p4p4p4旋轉群上的旋轉是封閉的,旋轉(360+90)度的結果與旋轉90度相同,實際不同的旋轉就相當于讓對應的輸出特征的順序按照一定規則交換了一下。
- 如果對每個濾波器使用SlS^lSl種變換,那么輸出F+F^{+}F+就是:Kl×Sl×Kl?1×Sl?1×n×nK^{l} \times S^{l} \times K^{l-1} \times S^{l-1} \times n \times nKl×Sl×Kl?1×Sl?1×n×n。
- 論文中還給出了詳細的在編程上的實現描述,感興趣的可以參考論文。
2.6.2、平面卷積
- G-convolution的第二部分就是使用之前計算好的擴展濾波器F+F^{+}F+進行平面卷積計算。
- 主要是套用G-convolution的公式做矩陣點乘,與常規卷積一樣。
- 但是求和時有所不同,因為是定義在p4p4p4群和p4mp4mp4m群上,所以還額外要在SlS^{l}Sl上進行求和。將F+F^{+}F+的維度Kl×Sl×Kl?1×Sl?1×n×nK^{l} \times S^{l} \times K^{l-1} \times S^{l-1} \times n \times nKl×Sl×Kl?1×Sl?1×n×nreshape為SlKl×Sl?1Kl?1×n×nS^{l} K^{l} \times S^{l-1} K^{l-1} \times n \times nSlKl×Sl?1Kl?1×n×n。這一步操作就類似與經典的卷積神經網絡中輸入通道數為Sl?1Kl?1S^{l-1} K^{l-1}Sl?1Kl?1,輸出通道數為SlKlS^{l} K^{l}SlKl的情況。
2.7、實驗
3、參考資料
總結
以上是生活随笔為你收集整理的论文笔记:Group Equivariant Convolutional Networks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文笔记:Spherical CNN
- 下一篇: 论文笔记:PRIN: Pointwise