前回の記事では、Equivariant Neural Networksというデータの対称性に着目した深層学習の設計の新しいパラダイムについて概観した。
今回は、2016年に登場したEquivariant Neural Networksの先駆け的な存在であるGroup Equivariant Convolution Networksの論文を解説する。
目次
論文紹介
タイトル:Group Equivariant Convolutional Networks(ICML 2016)
著者:Taco S. Cohen, Max Welling
アブストラクト和訳
我々は、対称性を利用することでサンプルの複雑さを軽減する畳み込みニューラルネットワークの自然な一般化であるGroup Equivariant Convolutional Neural Networks(G-CNNs)を紹介する。G-CNNsはG-convolutionsという新しいタイプの層を用い、通常の畳み込み層よりも実質的に高度な重みの共有を享受できる。G-convolutionsは、パラメータ数を増やすことなく、ネットワークの表現力を向上させる。G-convolutionsは使いやすく、並進、反射、回転によって生成される離散的な群に対して、無視できるほどの計算量で実装することが可能である。G-CNNはCIFAR10と回転したMNISTでSOTAの性能を達成した。
群論の予備知識
ここでは、論文を理解するために必要な群論の知識を簡単に説明する。
群の定義
空でない集合上に二項演算 が定義されていて、次の性質を満たすとき、を群という。
(1) 結合法則
任意のに対して、が成り立つ。
(2) 単位元の存在
あるが存在し、任意のに対して、を満たす。
元を単位元という。
(3) 逆元の存在
任意のに対して、を満たすが存在する。
元を逆元という。
群の具体例
1. 並進群(Translation group)
群の簡単な例として、2次元整数の並進の集合であるがある。 これは、元として2次元の座標、演算として単純な足し算を考える。 そうすると、結合法則を満たすことは自明であり、単位元は、逆元はとなることから、前述の群の定義を満たすことが確認できる。
2. p4m群
任意の並進移動と、任意の回転中心における90度の回転操作を元とした集合を考える場合、集合は、並進移動・回転操作の合成に対して群となる。また、p4群に鏡映操作を加えた群をp4m群と呼び、この二つの群が、論文中のG-CNNsで対象としている群である。
p4m群の演算は、4つの整数を用いて以下のように行列として表現できる。
ここで、、、である。
準同型写像
を群から群への写像とする。任意のに対して、
を満たす写像を準同型写像という。 ここで、は群上の演算であるが、は群上の演算であることに注意されたい。 準同型写像は、群の演算の性質が引き継がれていることを示しており、このことを「群の構造を保つ」という。
群の作用
群の本質は、それがある対象に「作用する」ことである。
(線形代数と群の表現Ⅰの「はじめに」より)
とあるように、作用というのは群論において重要な概念である。
を群、を集合とすると、がへ(左から)作用するとは、写像であり、次の二つの性質を満たすものである。
(1)
群の単位元に対応する上の置換は上の恒等変換である
(2)
群の二つの元の積に対応する上の置換は、およびにそれぞれ対応する置換の合成(合成写像)である。
(2)の条件は、式(1)の準同型写像と同じ形をしている。 すなわち、群が集合に作用するとは, の各元に対して、準同型写像の定理を満たす上の変換が与えられているときをいう。
同変性
入力について以下の式を満たすとき、「変換 は操作 に対して同変である」という。 同変性のより詳細な説明は前回の記事を参照。
従来のCNNの同変性
CNNの畳み込み層から得られる特徴マップは、各ピクセルの座標において、次元のベクトルを返す関数 と表現できる。はチャネル数を示している。
ここで、特徴マップにある群の元を作用させることを考えると、下式のように表せる。
ここでなぜの逆元が登場するかなど関数への作用については、線形代数と群の表現Ⅰの「8.2 群の関数への作用」の解説が直感的でわかりやすい。ここでは、操作をとして抽象化して書いているが、例えば、が並進を表現するのであれば、は単純にを意味する。
ここから、従来のCNNが並進移動に対して同変性を持つことを示す。フィルタを用いた畳み込み処理(正確には相互相関であるが、以降慣例に従い畳み込みと呼ぶ)は以下の式で表される。
はチャネルのインデックスを示している。ここで、一つのチャネルに着目すると、以下の式変形から並進移動の後に畳み込みをしたものは、畳み込みをした後に並進移動をしたものと同じであることがわかる。
2行目は、を代入している。この結果は、畳み込み処理は並進群に対して同変であることを意味している。 また、従来のCNNにおける特徴マップは、群上の関数と捉えることができる。 G-CNNsではこれを任意の群に対して一般化する。
Group equivariant Convolutional Neural Networks(G-CNNs)
G-CNNsとは
前述のように従来のCNNの畳み込み層はデータの並進移動に対する同変性を持つが、下図のように回転操作に対しては同変性を持たない。 つまり、入力画像を畳み込み処理して得られた特徴マップを左上に並進移動させたものは、入力画像を同様に左上に並進移動した画像を畳み込み処理して得られた特徴マップと一致するが、同様のことは回転操作に対しては成り立たない。
これは、例に挙げた手書き数字のように画像内の認識対象に上下左右の明確な向きがある場合には問題になりにくいが、同じ画像でも例えば衛星画像や顕微鏡画像など明確な向きが存在しないものも多く、この場合は回転しても画像の意味は変わらないため、回転に対する同変性が望まれる。 Group equivariant Convolutional Neural Networks(G-CNNs)では並進移動に加えて、鏡映および90度の倍数の回転操作に対する同変性を持つように一般化した畳み込み層(G-convolutions)を実現した。
群上の関数
G-CNNsにおける特徴マップは、群上の関数ではなく、任意の群上の関数であり、特に論文中では群p4およびp4m上の関数として定義されている。この群上の関数は非常にイメージしづらいが、論文のFigure 1では以下のようにp4群上の特徴マップのイメージが描かれている。
図の左のように、90度の倍数の回転に関連する4つの特徴マップを円上に描く。そうすると、この図の各ピクセルは回転座標(ピクセルが現れる特徴マップ)と2つの並進座標(特徴マップ内のピクセル位置)を持っている。p4上の関数に90度回転をかけると、各特徴マップはその赤い矢印に従って、同時に90度回転を行う。この操作の結果が図の右に示されている。
G-convolution:群同変な畳み込み層
G-CNNsでは独自に3つの層(G-convolution、G-pooling、nonlinearity)を定義しているが、ここではG-convolutionについてのみ解説する。 G-CNNsのp4群上の畳み込み層の処理の全体像が下のスライドにわかりやすくまとまっている。
ここで重要なポイントとして、G-CNNsの畳み込み層は第1層目と第2層目以降ではその性質が大きく異なる。なぜなら、第1層目のフィルタは上の関数であるが、第2層目以降では上の関数になるからである。
第1層目
式(4)の従来のCNNの畳み込み処理は、画像や特徴マップに対してフィルタをシフトさせ、内積を計算する。このフィルタのシフトをある群からの一般的な変換に置き換えることで、G-CNNの第1層で用いられるG-correlationを得ることができる。
上式の入力画像とフィルタはともに上の関数であるが、特徴マップは群上の関数である。
第2層目以降
第2層目以降では、入力の特徴マップが群上の関数であるため、フィルタも群上の関数である必要がある。
この式が群の作用に対して同変になることの証明は論文の式(12)にある。 従来のCNNやG-CNNsの畳み込み処理の式は、並べて比較してみると何が変わっているのかわかりやすい。
「CNN」から「G-CNNs第1層目」では、という並進移動が群の演算(例えば回転操作)に一般化されている。また「G-CNNs1層目」から「G-CNNs第2層目以降」では、特徴マップとフィルタがともに群上の関数となる。数式上では上のが上のに置き換えられているのみである。
これらの式を用いて、実際にG-CNNsの畳み込み層がどのように特徴マップを処理しているのかは、下の記事に視覚的に解説されているので非常に参考になる。
評価結果
論文の評価では、Rotated MNISTとCIFAR-10を用いた実験を行い、G-CNNsは当時のSOTA性能を達成した。
Rotated MNIST
データセットとして、ランダムに回転させたMNISTを用いた。ベースラインとなる通常のCNNモデルとして、3×3畳み込みの7層(最終層は4×4)、各層20チャネルのCNNを用いた(Z2CNN)。次に、各畳み込みをp4-Convolutionで置き換え、Z2CNNとパラメーター数をほぼ同一にするためにフィルタ数をで割った。最後の畳み込み層の後に回転に対するMax Poolingを追加した(P4CNN)。また、ネットワークアーキテクチャにおいて、中間層で同変性を持たせることが重要であり、早期に不変性を持つことは望ましくないという仮説の検証のために、P4CNNの各畳み込み層の後に、回転に対するMax Poolingを行ったモデルも比較した(P4CNNRotationPooling)。評価結果は、以下の表の通りである。
提案するP4CNNはZ2CNNの誤差を半減させることがわかった。また、各層が回転に対する不変性を持つP4CNNRotationPoolingは、Z2CNNよりも優れているが、P4CNNよりは誤差が大きいことから、中間層で同変性を持たせることが性能向上に寄与していることが示された。
CIFAR-10
モデルとして、p4、p4m、および標準的なの畳み込みを、2種類のベースラインアーキテクチャ(All-CNN、ResNet44)で比較した。またData Augmentationの影響を評価するために、CIFAR10のデータを水平反転と小さな平行移動により増強したCIFAR10+も合わせて評価した。評価結果を以下の表に示す。
CIFAR10、CIFAR10+のいずれにおいても、ResNet44のp4m-CNNが最も高い性能を示した。また、All-CNNをベースラインアーキテクチャとして用いた場合においても、パラメータ数は同等であるにもかかわらずp4m-CNNが高い性能を示した。
まとめ
今回の記事では、従来の畳み込み層をp4群やp4m群に対して同変性を持つように一般化したG-CNNsの論文について解説した。G-CNNsは、パラメータ数を増やすことなくネットワークの表現力を向上させることができ、回転したMNISTとCIFAR-10で従来のCNNを大きく上回る性能を達成した。G-CNNsの大きな制約としては、対象とする群が離散群に限られることである。また、計算量が群のサイズに比例して大きくなるため、サイズの大きな群に対する適用も難しい。しかし、G-CNNsの提案後に、計算量が群のサイズに依存しない同変なネットワークや連続群に適用可能なネットワークが提案されている。今後はそれらの論文についても見ていきたい。