集積カプセルオートエンコーダー(3/6)

  • 2019.07.30
  • AI
集積カプセルオートエンコーダー(3/6)

1.集積カプセルオートエンコーダー(3/6)まとめ

・オブジェクトカプセルは、様々な種類のオブジェクトに特化して学習できる事がわかった
・MNISTとSVHNを対象にしたカプセルオブジェクトをクラスタ化すると最先端の結果が得られた
・より表現力のある画像再構成アプローチを模索して複雑なデータにスケールアップする事が計画されている

2.カプセルアクティベーションとは?

以下、akosiorek.github.ioより「Stacked Capsule Autoencoders」の意訳です。元記事の投稿は2019年6月23日、Adam Kosiorekさんによる投稿です。

なぜカプセルの解説を書いたのですか?
カプセルのような特徴表現を学ぶことが可能である事を私があなたに納得させることができたことを私は願っています。なぜそれは良い考えなのでしょうか?

この手法を複雑な実世界の画像に拡張する必要がありますが、最初の結果は非常に有望です。オブジェクトカプセルは、さまざまな種類のオブジェクトに特化して学習できることがわかりました。

オブジェクトカプセルの存在確率をクラスタ化したとき、驚いたことに、同じクラスのオブジェクトの特徴表現は密接にグループ化されていることがわかりました。

特定のクラスタ内のサンプルが対応しているラベルが何かを調べるだけで、MNIST(98.5%)とSVHN(55%)の2つのデータセットで最新の教師なし分類精度が得られました。

また、MNISTで訓練されたモデルを使用し、数字に対してアフィン変換を実行することによって目に見えない視点をシミュレートし、最先端の教師なしパフォーマンス(92.2%)を達成しました。

これは、学習した特徴表現が本当に視点の変化に対して頑健であることを示しています。Cifar10での結果はそれほど良くはありませんが、まだ有望です。今後の作業では、固定テンプレートを使用するのではなく、より表現力のある画像再構成アプローチを模索し、より複雑なデータにスケールアップすることを願っています。

技術的なお話
これで新しいカプセルネットワークの直感的な解説は終わりです。以下では、概要もありますが、いくつかの技術的な説明に進みます。あなたが技術的な部分に悩まされていないなら、これは読むのを止めるのに良い場所かもしれません。

以下では、私たちのモデルのデコードスタックについて説明します。あなたはそれを(決定論的な)生成モデルと考えることができます。次に、カプセルのような特徴表現を提供する推論ネットワークについて説明します。

オブジェクトのプロトタイプをイメージに変換する方法
カプセルとは何かを定義することから始めましょう。私達はカプセルを抽象エンティティ(パーツやオブジェクトなど)を記述するモデルの特殊部分として定義します。

以下では、「パーツからオブジェクトを認識するオブジェクトカプセル」と、「入力画像からパーツとポーズを抽出するパーツカプセル」を作成します。

カプセルアクティベーション(capsule activation)を単一のカプセルによって出力される変数のグループと定義します。

オブジェクトを記述するために、私たちは以下を知りたいです。
(1)それが存在するか?
(2)それがどのようなものか?
(3)それがどこにあるか?

それゆえ、オブジェクトカプセルkについて、そのアクティベーションとは、
(1)存在確率Ak
(2)特徴ベクトルCk
(3)姿勢行列OVk(物体と視点または中心座標系との幾何学的関係を表す)
から構成されます。

パーツを記述するために同様の特徴を使用することができますが、設定をわずかに単純化し、パーツは固定された外観を持ち、その姿勢のみが変化すると仮定します。

従って、m番目のカプセルの場合、そのアクティベーションは、そのパーツが存在する確率Dmと、画像内の特定のパーツの位置と方向を6次元で表すXmで構成されます。この記法によって示されるように、いくつかのオブジェクトカプセルおよび、それより多い数のパーツカプセルが潜在的に存在します。

全てのオブジェクトは複数のパーツを持つことができるので、オブジェクトカプセルのアクティベーションを複数のパーツカプセルのアクティベーションに変換するメカニズムが必要です。

この目的のために、あらゆるオブジェクトカプセルについて、オブジェクトとそのパーツとの間の幾何学的関係を表す1組の3行3列の変換行列OPkmを学習します。

これらの行列は定数であることが推奨されていますが、小さな歪みを捉えるためにオブジェクトの特徴Ckへの弱い依存を許容しています。

どのパーツも1つのオブジェクトにしか属することができないため、同じパーツカプセルに対応する全てのオブジェクトカプセルから予測を収集し、それらをミックスします。特定のオブジェクトが与えられたパーツに責任を持つべきとモデルが確信した場合、これはミックスした混合物の確率に反映されるでしょう。

この場合、混合物からのサンプリングは、割り当ての不確かさも考慮しながら、一番確率が高いものを取得することに似ています。

最後に、独立した混合ガウスモデルでパーツを説明します。これは、あるパーツに対する親の選択が他のパーツに対する親の選択に影響を与えるべきではないと言う単純化した仮定です。


図4
左図:学習したパーツ、またはテンプレート
中央:いくつかのアフィン変換されたパーツ。それらは完全なオブジェクトに構成されていません。
右:MNISTの数字は変換されたパーツから組み立てられました。

パーツのポーズを生成したら、パーツを取り出し、Spatial Transformerのように対応するポーズでパラメータ化されたアフィン変換を適用し、変換されたパーツを画像に組み立てることができます(図4)。

しかし、ちょっと待ってください。最初にパーツを入手する必要があります。私達はパーツが固定された外観を持つと仮定したので、勾配降下によって固定パーツを集めたパーツ銀行を学習させる事ができます。

それぞれのパーツは少しだけ小さい画像のようなもので、「テンプレート」として見ることができます。例を挙げれば、MNISTの数字の良いテンプレートは、Lake等による有名な論文「Human-level concept learning through probabilistic program induction」のようにストローク、または図4の左側です。

3.集積カプセルオートエンコーダー(3/6)関連リンク

1)akosiorek.github.io
Stacked Capsule Autoencoders

2)openreview.net
Matrix capsules with EM routing

3)arxiv.org
Group Equivariant Convolutional Networks
Spatial Transformer Networks

4)medium.com
Understanding Hinton’s Capsule Networks. Part I: Intuition.

5)science.sciencemag.org
Human-level concept learning through probabilistic program induction