狠狠撸

狠狠撸Share a Scribd company logo
Dynamic Routing Between
Capsules (NIPS 2017)
東京大学電子情報工学科
2017/11/12 B4 金子 真也
1
概要
? Back Propagation, Auto Encoderなどを生み出したHinton先生を
含むGoogle Brainによる論文.
? 画像の意味解釈の文脈で最も用いられている, CNNよりも位置不変
性などの面で優れたCapsule Networkを提案.
– Capsuleというニューロンの集合パーツを用いた
? 実際にMNISTでState-of-the-artの精度を達成.
2
Capsule
? 人間の視覚が得た光学的情報から物体を解釈する際に, 構文木のよ
うな構造を作成するという仮定から発想を得た.
– 細部を無視して動的に構造を変えられるような仕組み
? Capsuleという小さなニューロンの集合によってこれを実現
– 構文木の各ノードに相当する
– 反復ルーティングを利用して, 各Capsuleは一つ上層のCapsule
(Parent)を選択し, 木構造を構築(routing)
? Capsule内のニューロンの状態はベクトルでParentへ出力される
– ベクトルの長さによって内容の存在確率を表現
– ベクトルの向きによって性質を表現
3
ベクトルの出力
? Squash関数として非線形関数を利用
– ??は?番目のCapsuleへのトータルの入力
– ??は?番目のCapsuleからの出力
? 非線形関数によってベクトルの長さを1に圧縮
4
ベクトルの入力
? 先ほどの??は一つ前のCapsuleから出力された複数のベクトルに対
して重み付けを行った結果である
– ??は一つ前の?番目のCapsuleから出力されたベクトル
– ???は?番目のCapsuleと?番目のCapsuleとの間の重み付け
– 重み付けの結果に対してさらに, 反復ルーティングシステムに
よって構造木そのものの結合度合い???で重み付けが行われる
5
ルートの結合度合い
? ?番目のCapsuleが全体の構造木のルートの中でどのように結合され
ているかを表すため結合度合い???が計算される.
? そのために, ロジット???(0から1の間の値を持つ変数)が定義され,
以下のようにsoftmax関数で結合度合いが計算される.
? このロジットの値を最適化する方法が反復ルーティングであり,
これにより動的に構造木を変化させることができる.
6
反復ルーティング
? アルゴリズムとしては今まで解説した式を用いた形となる.
– 反復して???の値を更新していく形となっている.
Softmax関数(Eq.3) 厂辩耻补蝉丑関数(贰辩.1)
7
反復ルーティング
? どの程度反復を行えばよいのかを調査した結果が以下.
– MNISTに対して反復の回数を変えて, 最終的な誤り率を出力.
– 回数をこなせばこなすほど最終的な誤差率は下がる.
– ただ, 同時に過学習もしやすくなってしまう.
8
Lossの定義
? 結局出力されたベクトルの長さによってCapsuleの存在確率を表現
していた.
? 最終的なclassification結果をラベルに近づけるために以下のLossを
最適化する
– ?番目のclassが目標のラベルであれば, ?? = 1. 異なれば?? = 0.
– Marginとして?+ = 0.9, ?? = 0.1を用いる
– 重みを軽減する項として, ? = 0.5
– 最終的にこれらの和がLossとなる.
9
ネットワークの構造1
? 単純なCapsNetの構造が以下.(3層)
– Deep Conv(Chang and Chen[2015])に相当する性能を持つ
? PrimaryCapsでは32channel
– 各PrimaryCapは長さ8のベクトルを出力 (9 × 9 kernel, stride 2)
? DigitCapsへの入力は??(長さ8)(? ∈ (1,32 × 6 × 6))に対して,??? = [
8 × 16]をしたため, ??は長さ16のベクトルとなる(? ∈ (1,10))
今回はこの間のみ反復ルーティングが存在 (bij)
10
ネットワークの構造2
? 最終的にDigitCapsでのベクトルに対してDecoderを用い, 元の画像
を復元するように学習を行った
– 例えば以下の図ではMNISTに対して数字の「5」に当たるベク
トルのみを利用して, 元の画像をdecodeする.
11
再構成の結果
? 最小化するのは再構成した画像と元画像とのピクセル毎の二乗和
? 結果は以下のようになる
– ?:正解ラベル
– ?:予測されたラベル
– ?:再構成する目標のラベル
? 右の2つは認識に失敗したものを復元した結果. 5と3をどのように
間違えたかがわかる.
12
MNISTでの結果
? Classificationの結果が以下.
? 表の説明としては,
– Routingが反復ルーティングの回数
– Reconstructionが再構成での正規化Lossも用いたか?
? 結果としてBaseline(Wan et al.[2013])に比べて勝っている.
13
Capsuleベクトルの表現
? Capsuleベクトルのうち, 適当なある桁の値を範囲[-0.25,0.25]で
0.05の間隔で微調整した結果が以下.
? 16次元で表現されたCapsuleベクトルの中身は, ストロークの長さ,
スキュー, 幅などの情報を含むことが分かる.
14
CapsNetの頑強性
? アフィン変換に対する頑強性をテストするため以下の実験
– MNISTデータでまず訓練
– affNIST4データでモデルのテスト
? 従来のCNN(MaxPooling+Dropout)とCapsNetでこれを行い比較
– CapsNetの方が精度が良く, 頑強性を持つといえる.
dataset CNN CapsNet
MNIST 99.22% 99.23%
affNIST4 66% 79%
15
MultiMNISTでの結果
? 異なるクラスのMNISTの数字が重なっているデータセット
MultiMNISTを作成し, これで実験を行った.(1K dataset)
– Training:60M, Test:10M
? 同じくCapsNetの精度が高かった. また, decodeを用いて重複する
数字を復元した結果が以下.
– スタイルと位置を認識できることが分かる
16
他のdatasetでの結果
? CIFAR10では10.6%の誤差精度
– 反復ルーティングを24 × 24のパッチで3回+7つのアンサンブル
– MNISTと同様の単純な構造
– 従来のネットワークですぐに達成できる精度
– 背景が多彩過ぎて, MNISTに適用したような単純なモデルでは
困難
? smallNORBでは2.7%の誤差精度(state-of-the-art)
? SVHNでは4.3%の誤差精度
17
参考文献
? Dynamic Routing Between Capsules (NIPS2017) https://arxiv.
org/pdf/1710.09829.pdf
? What is a CapsNet or Capsule Network? https://hackernoon.c
om/what-is-a-capsnet-or-capsule-network-2bfbe48769cc

More Related Content

Dynamic Routing Between Capsules