
1. 概要
Steerable CNNs とは
Steerable CNNs は、Taco S. Cohen と Max Welling が提案した、入力画像の平行移動・回転・鏡映の作用を保つような CNNs (Convolutional Neural Networks、畳み込みニューラルネットワーク) です。 このアイディアを発表した論文 [CW17] はICLR 2017 で採択されました。以下のような特徴があります。- 高精度である。WideResNet をベースにしたネットワークが CIFAR-100 でエラー率 18.82\% と、当時の最高精度を出した。
- 上記の精度は、水平反転と平行移動のみのデータオーグメンテーションで達成した。
- 少ないパラメータ数である。ResNet50 が 2000 万程度、2019 年 5 月現在最高精度の AmoebaNetB は 5.5 億程度あるのに対し、WideResNet ベースのネットワークは 920 万ほどで済んでいる (ただし、その後 EfficientNet-B0 では 400 万程度のパラメータで transfer-learning を使って より低いエラー率を出すなど CNN 自体もさらに進歩しています)。
詳しいことは後ほど見ていきますが、 [CW17] で導入された Steerable CNNs は p4mという群の作用に関して同変な CNNs です。群の作用に関して同変な CNNs は [CW17] の Steerable CNNs 以降急速に発展している分野で、様々な群を取り扱った CNNs が発表されています。例えば、[CGW19] により一般的な視点からの扱いが書かれているので参照してみてください。最近では、 [WC19] を元にして2次元データの群の作用に関して同変な CNNs を包括的に扱えるPyTorch 実装のライブラリ e2cnn が出ており、比較的手軽に試すことができます。
群の作用に関して同変な CNNs は、数学や物理で使われる群や表現論を背景にしており、現実に現れる様々な対称性を深層学習で上手く扱う工夫が見られる面白い分野ではないかと思います。
2. 用語説明
ここでは、数学や物理において空間の対称性を表すのに使われる、群、群の作用および群の表現について説明します。2.1. 群
群 とは、集合 G とその上の二項演算 \cdot\colon G\times G \to G の組 (G, \cdot) で結合法則・単位元の存在・逆元の存在を満たすものです。詳細は、例えば、[K07] や Wikipedia の群に関する記事 を参照してください。群を表す時に、定義されている演算が自明で混乱がない場合は (G, \cdot) と書かずに単に G と書きます。群 G の群演算を 部分集合 H へ制限したものに関してまた群になる時、 H を G の部分群と言います。
群は、例えば、図形を自身へ写す変換の集合を考えたときに自然に現れます。その場合、群は図形の対称性を表していると考えることができます。
2.2. 群の作用と群の表現
ある群について知りたい時に、そのものを直接調べるだけでけではなく、別の対象に「作用」させてその振る舞いを調べるということが行われます。群 (G, \cdot_G) と集合 V が与えられたとします。写像 \cdot \colon G\times V \to V が
- G の任意の元 g, h とV の任意の元 v に対して (g\cdot_G h)\cdot v=g\cdot(h\cdot v),
- G の単位元 e とV の任意の元 v に対して e\cdot v= v
次に、群 (G, \cdot_G) と集合 V が線型空間の場合を考えます。V の線型同型写像全体のなす集合 GL(V) は、写像の合成を演算とすると群になります。写像 \pi\colon G\to GL(V) が
- G の任意の元 g, h に対して \pi(g\cdot_G h)=\pi(g)\circ\pi(h) (\circ は写像の合成),
- G の単位元 e に対して \pi(e)= \mathrm{id}_V (\mathrm{id}_V は恒等写像)
表現によって定まる変換を書くときは、g\in G, v\in V に対して \pi(g)v と書くことにします。V の次元 \mathrm{dim} V を表現 \pi の次数または次元と言います。