4. Steerable CNNsの構造
Steerable CNNs では、各層において入力特徴量の平行移動・回転・鏡映をした際に、出力特徴量マップが入力特徴量マップによらずに予測可能な変換をされるように、各層を設計します。この章ではより詳細に、convolution 層についてどのように設計するかを、 に分けて説明します。
以降、特に断りがない限り、 G は p4m を表し、 H は D_4 を p4m へ自然に埋め込んで得られる部分群を表すことにします。
4.1. Convolution 層の同変なフィルタバンク
ここでは、convolution 層の同変なフィルタの集まり (フィルタバンク) の設計方法と、convolution 層のパラメータが何になるかを説明します。入力特徴量マップのなす空間と出力特徴量マップのなす空間を、各々 \mathcal{F}(C) 、 \mathcal{F}(C') とします。また、 H の \mathbb{R}^C 上の有限次元表現 \rho を 1 つとり、 \rho から誘導される G の \mathcal{F}(C) 上の表現 を \pi とします。同様に、 H の \mathbb{R}^{C'} 上の有限次元表現 \rho' を 1 つとり、 \mathcal{F}(C') 上の誘導表現を \pi' とします。
やりたいことは、convolution 層 \Psi\star が \pi と \pi' に関して G-同変になるようにすること、つまり、
\pi'(g)(\Psi \star f)=\Psi\star \pi(g)f,\ \forall g\in G,\ \forall f \in \mathcal{F}(C)\ (2)
が成り立つようにすることです。図式で書くと、任意の g\in G について
以降この章では、Convolution 層のフィルタサイズを k\times kとします。 k は奇数とします。
4.1.1. Convolution 層の同変なフィルタバンクの設計
フィルタバンクの設計に入る前に、まず、convolution 層のフィルタと correlation と呼ばれる関数の操作の関係について整理しておきます。サイズ k\times k の 1 枚のフィルタは、原点中心の k\times k のパッチ( \left[- \frac{k-1}{2}, \frac{k-1}{2}\right]^2\cap \mathbb{Z}^2 ) の外側では 0 である関数 \psi\colon \mathbb{Z}^2 \to \mathbb{R}^{c} と考えます。
1 枚のフィルタを持つ convolution 層を定義するには、 \mathcal{F}(C)\to \mathcal{F}(1) を作る必要があります。これは、 \psi から correlation と呼ばれる以下の操作で作ります。
\psi\star\colon \mathcal{F}(C)\to \mathcal{F}(1),\ (\psi \star f)(x)=\sum_{y\in \mathbb{Z}^2}\psi(y)\cdot f(y + x ),
ここで、\cdot はベクトルの内積です。Correlation の式は、フィルタ 1 枚のストライド 1 の convolution 層に対応します。出力チャネル数を C' にするには、 C' 枚のフィルタ \Psi=(\psi_1, \psi_2, \cdots, \psi_{C'})\colon \mathbb{Z}^2\to \mathbb{R}^{C'} を使います。\mathbb{R}^{C'} の成分ごとに correlation を考えて
\Psi\star\colon \mathcal{F}(C)\to \mathcal{F}(C'),
(\Psi \star f)(x) =\left(\sum_{y\in \mathbb{Z}^2}\psi_1(y)\cdot f(y + x), \sum_{y\in \mathbb{Z}^2}\psi_2(y)\cdot f(y + x), \dots, \sum_{y\in \mathbb{Z}^2}\psi_{C'}(y)\cdot f(y + x) \right)
C' 枚のフィルタ \Psi=(\psi_1, \psi_2, \cdots, \psi_{C'}) を使って、線型写像
\Psi'\colon \mathcal{F}(C)\to \mathbb{R}^{C'},\ \Psi'(f)=\left(\sum_{y\in \mathbb{Z}^2}\psi_1(y)\cdot f(y), \sum_{y\in \mathbb{Z}^2}\psi_2(y)\cdot f(y), \dots, \sum_{y\in \mathbb{Z}^2}\psi_{K'}(y)\cdot f(y)\right)
を考えることができます。記号を簡単にするために \Psi' も \Psi と書くことにします。式 (1) の形で作用が与えられるとすると、任意の \pi と x\in \mathbb{Z}^2 に対して、
(\Psi \star f)(x)=\Psi(\pi((x, 1))^{-1}f)
と書けます。フィルタバンクの設計に入ります。Steerable CNNs の convolution 層では、 \Psi\colon \mathcal{F}(C)\to \mathbb{R}^{C'} を H -同変にするように設計します。つまり、
\Psi(\pi(h)f)=\rho'(h)\Psi(f),\ \forall h\in H, f\in \mathcal{F}(C)
が成り立つようにします。図式で書くと、任意の h\in H について
\Psi\colon \mathcal{F}(C)\to \mathbb{R}^{C'} が何であったかを思い出してみると、convolution 層のフィルタ C' 枚を空間方向には動かさずに適用することだったので、これは convolution 層のフィルタ C' 枚をまとめた変換を H-同変になるように設計していることに他なりません。


上記のような \Psi\colon \mathcal{F}(C)\to \mathbb{R}^{C'} の設計で \Psi\star が \pi と \pi' に関して G-同変になることは、実際に計算をすることで確かめることができます。[CW17] の Appendix A に計算がありますが、この記事の補足の補足1. 同変なフィルタバンクと steerability にも載せてあります。
Steerable CNNs の convolution 層のパラメータについて考えやすくするために、 \Psi\colon \mathcal{F}(C)\to \mathbb{R}^{C'} が H -同変であることを少しだけ言い換えておきます。
Convolution 層のフィルタは空間方向には k\times k のパッチ上以外は 0 で、 H の表現で k\times k のパッチは自身に移されます。 \mathbb{Z}^2 の原点を中心とする k\times k のパッチの外で 0 となる特徴量マップのなす空間を \mathcal{F}_P(C) とすると、 \mathcal{F}_P(C) は \mathcal{F}(C) の部分空間で、 H の表現で自身に写ります。さらに、 \mathcal{F}_P(C) を \mathbb{R}^{k^2C} と同一視します。結局上記のように、 \Psi を H-同変にすることは、任意の h \in H について

ここから分かることは、Steerabel CNNs の convolution 層のパラメータは、 H の有限次元表現の間の H-同変な線型写像 \Psi をパラメトライズする分だけあれば良いということです。
4.1.2. Convolution 層のパラメータ
通常の convolution 層のパラメータ数は、フィルタサイズ k\times k・入力チャネル数 C・出力チャネル数 C' に対して k^2CC' です。Steerable CNNs では同変であるという条件があることによって、線型変換が制限され、パラメータ数を k^2CC' 以下にすることが可能です。Intertwiners
一般に有限群 K の 2 つの有限次元表現 \phi と \phi' に関して同変な線型写像は、 intertwiner と呼ばれます。Intertwiner の集合は、自然に線型空間となります。 \mathrm{Hom}_K(\phi, \phi') のように書きます。Intertiwner を定めるには、線型空間 \mathrm{Hom}_K(\phi, \phi') の基底を 1 つ固定して、その係数を定めれば良いです。Convolution 層の同変なフィルタバンクを定めることは、 H の \mathbb{R}^{k^2C} 上の表現 \pi と H の \mathbb{R}^{C'} 上の表現 \rho' に関して H-同変な線型写像を定めることです。つまり、 \mathrm{Hom}_H(\pi, \rho') の元である intertwiner を定めることです。Steerable CNNs の convolution 層のパラメータは、同変なフィルタバンクのなす線型空間 \mathrm{Hom}_H(\pi, \rho') の基底を固定した時の係数となります。
パラメータ数
必要なパラメータ数は \mathrm{Hom}_H(\pi, \rho') の次元の数 \mathrm{dim}\ \mathrm{Hom}_H(\pi, \rho') となります。 \mathrm{dim}\ \mathrm{Hom}_H(\pi, \rho') は実際に計算することができます。 H\simeq D_4 の既約表現 (の同値類) は \mathrm{A1}, \mathrm{A2}, \mathrm{B1}, \mathrm{B2}, \mathrm{E} の 5 個でした。 \pi, \rho' の既約表現による直和分解を考え、そこに現れる各既約表現の重複度を、各々順番に (m_{\mathrm{A1}}, m_{\mathrm{A2}}, \dots, m_{\mathrm{E}}), (m_{\mathrm{A1}}', m_{\mathrm{A2}}', \dots, m_{\mathrm{E}}') とします。すると\mathrm{dim}\ \mathrm{Hom}_H(\pi, \rho') = \sum_{i\in \{\mathrm{ A1, A2, B1, B2, E}\}} m_i m_i'
が成り立ちます。異なる既約表現の間に 0 以外の intertwiner がないという性質 ( Schur の補題) から従います。通常の CNN の convolution 層と Steerable CNNs の convolution 層のパラメータ数を比較するために
\mu = \frac{k^2CC'}{\mathrm{dim}\ \mathrm{Hom}_H(\pi, \rho')}
とおきます。分子が通常の CNN、分母が Steerable CNNs の convolution 層のパラメータ数です。 \mathrm{Hom}_H(\pi, \rho') は convolution 層のフィルタ全体のなす空間の部分空間であることから必ず \mu \geq 1 となります。\mu は表現の取り方によって変わってきます。例えば、既約表現 \mathrm{A1}, \mathrm{A2}, \mathrm{B1}, \mathrm{B2}, \mathrm{E} と剰余類を用いた置換表現 \mathrm{regular}, \mathrm{qm}, \mathrm{qmr2}, \mathrm{qmr3}を用いて、
- \pi を \rho \simeq \mathrm{regular} \oplus \mathrm{qm} \oplus \mathrm{qmr2} \oplus \mathrm{qmr3} から誘導される表現
- \pi' を \rho' \simeq \mathrm{A1} \oplus \mathrm{A2} \oplus \mathrm{B1} \oplus \mathrm{B2} \oplus \mathrm{E} \oplus \mathrm{E} から誘導される表現
- フィルタサイズ 3\times 3
4.2. 同変な活性化関数
活性化関数の出力が特徴量マップが、 G と活性化関数について steerable になるようにします。つまり、以下の図式が可換になるような活性化関数 \mu と表現 \pi' を指定します。
非線型写像 \tilde{\nu}\colon \mathbb{R}^{C} \to \mathbb{R}^{C'} が H の表現 \rho と \rho' に対して同変であれば、 \mu(f) = \tilde{\nu} \circ f,\ f \in \mathcal{F}(C) によって定義される \mu\colon \mathcal{F}(C) \to \mathcal{F}(C') は G の表現 \pi と \pi' の間の同変な写像になります。このことは、 \pi と \pi' がそれぞれ \rho と \rho' によって式 (1) で作られたものであることと \mu の定義から従います。よって、以降では、 H の表現 \rho と \rho' および、 非線型写像 \tilde{\nu}\colon \mathbb{R}^C \to \mathbb{R}^{C'} について考えます。
H = D_4 の既約表現の行列は、基底を適当に選ぶことによって、符号付き置換行列 (各行各列に 1 か -1 が1回ずつ表れ残りは 0) となることを既に見ました。このことから、任意の H の表現は、適当な基底を選ぶことによって、符号付き置換行列にできます。
要素ごとに非線型な関数は、置換行列に対応する表現に関して同変ですが、符号付き置換行列に対応する表現に関しては一般には同変になりません。これは、例えば、 1 を ReLU に入れて符号を逆にしたもの -\mathrm{ReLU}(1)=-1 と符号を逆にして ReLU に入れたもの \mathrm{ReLU}(-1) = 0 が違うことから分かります。
そこで、まず、ReLU を concatenate した CReLU (Concatenated Rectified Linear Units) 関数
\mathrm{CReLU}\colon \mathbb{R}\to \mathbb{R}^2,\ \mathrm{CReLU}(x) =\begin{pmatrix}\mathrm{ReLU}(x)\\ \mathrm{ReLU(−x)}\end{pmatrix}
を考えます。CReLU 成分ごとに施して、\widetilde{\mathrm{CReLU}}\colon \mathbb{R}^C\to \mathbb{R}^{2C},\ \widetilde{\mathrm{CReLU}} \left(\begin{pmatrix}x_1\\ x_2\\ \vdots\\ x_C \end{pmatrix} \right)=\begin{pmatrix}\mathrm{CReLU}(x_1)\\ \mathrm{CReLU}(x_2)\\ \vdots\\ \mathrm{CReLU}(x_C) \end{pmatrix}
とします。次に、 x \in \mathbb{R} に対して、 0 以上の部分や 0 以下の部分を取り出す関数
x_+ = \max\{0, x\}, \ x_- = (-x)_+
を考えます。符号付き置換行列 R=(r_{ij})_{ij} で表される表現 \rho に対して、R'=\begin{pmatrix}R_{11}' & R_{12}' & \cdots & R_{1C}' \\ R_{21}' & \ddots & & \vdots\\ \vdots & & \ddots & \vdots\\ R_{C1}' & \cdots & \cdots & R_{CC}'\end{pmatrix},\ R'_{ij} =\begin{pmatrix}r_{ij+} & r_{ij-}\\ r_{ij-} & r_{ij+}\end{pmatrix},
とします。\rho' として R' で表される表現を使うと \widetilde{\operatorname{CReLU}} は \rho と \rho' に関して同変になります。このことは、成分ごとの計算によって確かめられます。 ReLU 以外の関数でも適切な関数を選べば、 似たように concatenate を使って、表現 \rho' と同変な写像を定めることができます。