dynamic routing between capsules

30
Dynamic Routing Between Capsules 北海道大学大学院 情報科学研究科 情報理工学専攻 複雑系工学講座 調和系工学研究室 修士1平間友大

Upload: harmonylab

Post on 24-Jan-2018

84 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: Dynamic Routing Between Capsules

Dynamic Routing Between

Capsules

北海道大学大学院 情報科学研究科 情報理工学専攻

複雑系工学講座 調和系工学研究室

修士1年 平間友大

Page 2: Dynamic Routing Between Capsules

論文情報

タイトル

– Dynamic Routing Between Capsules

発表学会

– Advances in Neural Information Processing Systems 30

(NIPS2017)

著者

– Sara Sabour, Nicholas Frosst, Geoffrey E. Hinton

(Google Brain, Tront)

2

論文URL:https://papers.nips.cc/paper/6975-dynamic-routing-between-capsules

Page 3: Dynamic Routing Between Capsules

概要

・CNNをベースとしたCapsNetを提案

→従来のCNN構造の問題点を克服するアプローチ

・CapsNetの有効性を検証することが目的

3

Page 4: Dynamic Routing Between Capsules

従来のCNN構造

4

https://hackernoon.com/what-is-a-capsnet-or-capsule-network-2bfbe48769cc

畳み込みニューラルネットワーク(CNN)の構造

Page 5: Dynamic Routing Between Capsules

従来のCNN構造の改善点

5

プーリング層の仕組みに問題あり

https://hackernoon.com/what-is-a-capsnet-or-capsule-network-2bfbe48769cc

畳み込みニューラルネットワーク(CNN)の構造

Page 6: Dynamic Routing Between Capsules

プーリング層の役割と問題点

位置不変性を得る=頑健?

6

https://kndrck.co/posts/capsule_networks_explained/

位置関係は考慮していない

Page 7: Dynamic Routing Between Capsules

プーリング層の役割と問題点

位置不変性を得る=頑健?

7

https://kndrck.co/posts/capsule_networks_explained/

位置関係は考慮していない

Page 8: Dynamic Routing Between Capsules

プーリング層の役割と問題点

位置不変性を得る=頑健?

8

https://kndrck.co/posts/capsule_networks_explained/

Page 9: Dynamic Routing Between Capsules

プーリング層の役割と問題点

位置不変性を得る=頑健?

9

https://kndrck.co/posts/capsule_networks_explained/

Not Face!

Page 10: Dynamic Routing Between Capsules

プーリング層の役割と問題点

位置不変性を得る=頑健?

10

https://kndrck.co/posts/capsule_networks_explained/

Page 11: Dynamic Routing Between Capsules

従来CNNの問題点

11

・同一の画像でも角度が異なると分類できない

→姿勢や角度を考慮した空間認識能力がない

原因

・特徴の位置関係情報がプーリングによって失われている

・特徴をスカラーで表してるのが原因

Page 12: Dynamic Routing Between Capsules

提案手法

12

・CNNをベースとし、カプセル構造を持ったCapsNetを提案

-特徴をスカラー→ベクトルで表現

-各特徴ベクトル(カプセル)同士を繋ぐ

-画像内に存在するエンティティの特性を表現する

・ポーズ(位置,サイズ,方向)・幾何形状・速度

・反射特性・色合い・テクスチャ

Page 13: Dynamic Routing Between Capsules

CapsNetの基本構造

13

畳み込み層 畳み込みカプセル層 (l) DigitCaps (l+1)

畳み込み層:入力画像から256次元の特徴抽出畳み込みカプセル層: 32×8次元DigitCaps層: 16次元×10個(クラス)のベクトル

CNN

CapsNet

Page 14: Dynamic Routing Between Capsules

CapsNetのベクトル計算

14

v𝑗: カプセルjの出力ベクトル

s𝑗: 前の層からの全出力

カプセルの出力ベクトルの長さが、エンティティの存在確率を表す長さをより強調して学習しやすくなるようSquashing関数(1)を導入

Page 15: Dynamic Routing Between Capsules

CapsNetのベクトル計算

15

c𝑖𝑗: routing手法で決定される結合係数(softmax関数)

カプセルiとjの繋がりの強さを表す𝑏𝑖𝑗: 初期値0, 𝑏𝑖𝑗+( uj | i・v𝑗)

j:カプセルレイヤー l +1のカプセルi: カプセルレイヤー l のカプセル uj | i : l レイヤーのカプセルiの出力をu𝑖、jのカプセルとの変換行列W𝑖𝑗

と掛け合わせた予測ベクトルs𝑗: 前の層からの重み付け和

Page 16: Dynamic Routing Between Capsules

Routing Algorithm

16

Page 17: Dynamic Routing Between Capsules

CapsNetのベクトル計算

17

https://github.com/naturomics/CapsNet-Tensorflow

画像の空間情報を持ったベクトル

ラベルとの空間的な関連性の重み付け行列

ルーティング手法による各予測ベクトルの結合強度

Page 18: Dynamic Routing Between Capsules

・ベクトルの長さ v𝑘 がエンティティの存在確率を表す→そのクラスkに長いベクトルを持たせることを考える

𝑇𝑘: 数字の存在確率(𝑇𝑘=1or0)

k: クラス(k=0,1,2…9)

𝜆: 𝑇𝑘=0の時の損失の軽減(𝜆 =0.5)

𝑚+=0.9,𝑚−=0.1

損失関数 ヒンジ関数

18

Page 19: Dynamic Routing Between Capsules

CapsNetの基本構造

19

畳み込み層 畳み込みカプセル層 (l) DigitCaps (l+1)

CNN

CapsNet

-画像内に存在するエンティティの特性を表現する・ポーズ(位置,サイズ,方向)・幾何形状・速度・反射特性・色合い・テクスチャ

Page 20: Dynamic Routing Between Capsules

DigitCapsのデコーダー構造

20

DigitCaps層から数字の画像を復元するデコーダー構造

Page 21: Dynamic Routing Between Capsules

デコーダー構造の損失値も加えた場合

𝑙𝑜𝑠𝑠 = 𝐿𝑘 + 0.0005×R

R: (復元画素値 –入力値) **2

損失関数 二乗誤差

21

Page 22: Dynamic Routing Between Capsules

データセット

22

MNIST

0〜9の手書き数字の画像セット (28*28)

学習 60K テスト 10K

MultiMNIST

MNISTの画像を2つ重ね合わせた画像

各方向に4pixの範囲でスライドさせたもの (36*36)

学習 60M テスト 10M

affNIST4*

MNISTのデータをアフィン変換したもの

アフィン変換は回転・剪断・拡大縮小・移動の順 (40*40)

一枚の画像を32個にランダム変換 学習+テスト 2M

Cifar10

犬や猫から船など10クラスの画像セット (32*32)

http://www.cs.toronto.edu/~tijmen/affNIST/

Page 23: Dynamic Routing Between Capsules

Routing Algorithm

23

Page 24: Dynamic Routing Between Capsules

実験結果1

exp(𝑏𝑖𝑗)の値の推移

24

・ルーティングアルゴリズムの反復回数の検証

MNISTデータセットを用いた学習損失推移

最適化関数: Adam

パラメータ: TensorFlowのデフォルト

500epoch時のイテレーションごとの変化

Page 25: Dynamic Routing Between Capsules

実験結果2

Cifar10データセットを用いた学習損失推移

25

Page 26: Dynamic Routing Between Capsules

入力画像のデコード結果と精度

26

(l, p , r)

(正解ラベル,予測結果,復元ラベル)

Page 27: Dynamic Routing Between Capsules

アフィン変換に対するCapsNetのロバスト性

ロバスト性を検証する実験

MNISTデータが40*40になるようパディング

27

MNSIT affNIST

CapsNet 99.23% 79%

従来のCNN 99.22% 66%

従来手法とのロバスト性の精度比較

・各モデルのパラメータ数は同じ・学習の収束はCapsNetが早い

Page 28: Dynamic Routing Between Capsules

MultiMNISTを用いたデコーダーの精度検証

28

L: 入力された2つの数字のラベルR: 再構成に使用される2つの数字P: 予測

Page 29: Dynamic Routing Between Capsules

MultiMNISTを用いたデコーダーの精度実験

29

8を7と誤判別

9を0と誤判別

正解ラベルで復元を行うと情報を持っていることが分かる

Page 30: Dynamic Routing Between Capsules

まとめ

30

・CNNをベースとしたCapsNetを提案

-特徴表現をスカラー→ベクトルに変更することで、ベクトルをまとめたカプセル構造をつなぎ、その関係を学習することでCNNが持てなかった位置情報や構造を認識可能になった

-従来手法と同程度の精度

・計算速度の面や他のデータで検証をもっと行っていく必要がある