Upload
harmonylab
View
84
Download
0
Embed Size (px)
Citation preview
Dynamic Routing Between
Capsules
北海道大学大学院 情報科学研究科 情報理工学専攻
複雑系工学講座 調和系工学研究室
修士1年 平間友大
論文情報
タイトル
– 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
概要
・CNNをベースとしたCapsNetを提案
→従来のCNN構造の問題点を克服するアプローチ
・CapsNetの有効性を検証することが目的
3
従来のCNN構造
4
https://hackernoon.com/what-is-a-capsnet-or-capsule-network-2bfbe48769cc
畳み込みニューラルネットワーク(CNN)の構造
従来のCNN構造の改善点
5
プーリング層の仕組みに問題あり
https://hackernoon.com/what-is-a-capsnet-or-capsule-network-2bfbe48769cc
畳み込みニューラルネットワーク(CNN)の構造
プーリング層の役割と問題点
位置不変性を得る=頑健?
6
https://kndrck.co/posts/capsule_networks_explained/
位置関係は考慮していない
プーリング層の役割と問題点
位置不変性を得る=頑健?
7
https://kndrck.co/posts/capsule_networks_explained/
位置関係は考慮していない
プーリング層の役割と問題点
位置不変性を得る=頑健?
8
https://kndrck.co/posts/capsule_networks_explained/
プーリング層の役割と問題点
位置不変性を得る=頑健?
9
https://kndrck.co/posts/capsule_networks_explained/
Not Face!
プーリング層の役割と問題点
位置不変性を得る=頑健?
10
https://kndrck.co/posts/capsule_networks_explained/
従来CNNの問題点
11
・同一の画像でも角度が異なると分類できない
→姿勢や角度を考慮した空間認識能力がない
原因
・特徴の位置関係情報がプーリングによって失われている
・特徴をスカラーで表してるのが原因
提案手法
12
・CNNをベースとし、カプセル構造を持ったCapsNetを提案
-特徴をスカラー→ベクトルで表現
-各特徴ベクトル(カプセル)同士を繋ぐ
-画像内に存在するエンティティの特性を表現する
・ポーズ(位置,サイズ,方向)・幾何形状・速度
・反射特性・色合い・テクスチャ
CapsNetの基本構造
13
畳み込み層 畳み込みカプセル層 (l) DigitCaps (l+1)
畳み込み層:入力画像から256次元の特徴抽出畳み込みカプセル層: 32×8次元DigitCaps層: 16次元×10個(クラス)のベクトル
CNN
CapsNet
CapsNetのベクトル計算
14
v𝑗: カプセルjの出力ベクトル
s𝑗: 前の層からの全出力
カプセルの出力ベクトルの長さが、エンティティの存在確率を表す長さをより強調して学習しやすくなるようSquashing関数(1)を導入
CapsNetのベクトル計算
15
c𝑖𝑗: routing手法で決定される結合係数(softmax関数)
カプセルiとjの繋がりの強さを表す𝑏𝑖𝑗: 初期値0, 𝑏𝑖𝑗+( uj | i・v𝑗)
j:カプセルレイヤー l +1のカプセルi: カプセルレイヤー l のカプセル uj | i : l レイヤーのカプセルiの出力をu𝑖、jのカプセルとの変換行列W𝑖𝑗
と掛け合わせた予測ベクトルs𝑗: 前の層からの重み付け和
Routing Algorithm
16
CapsNetのベクトル計算
17
https://github.com/naturomics/CapsNet-Tensorflow
画像の空間情報を持ったベクトル
ラベルとの空間的な関連性の重み付け行列
ルーティング手法による各予測ベクトルの結合強度
・ベクトルの長さ v𝑘 がエンティティの存在確率を表す→そのクラスkに長いベクトルを持たせることを考える
𝑇𝑘: 数字の存在確率(𝑇𝑘=1or0)
k: クラス(k=0,1,2…9)
𝜆: 𝑇𝑘=0の時の損失の軽減(𝜆 =0.5)
𝑚+=0.9,𝑚−=0.1
損失関数 ヒンジ関数
18
CapsNetの基本構造
19
畳み込み層 畳み込みカプセル層 (l) DigitCaps (l+1)
CNN
CapsNet
-画像内に存在するエンティティの特性を表現する・ポーズ(位置,サイズ,方向)・幾何形状・速度・反射特性・色合い・テクスチャ
DigitCapsのデコーダー構造
20
DigitCaps層から数字の画像を復元するデコーダー構造
デコーダー構造の損失値も加えた場合
𝑙𝑜𝑠𝑠 = 𝐿𝑘 + 0.0005×R
R: (復元画素値 –入力値) **2
損失関数 二乗誤差
21
データセット
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/
Routing Algorithm
23
実験結果1
exp(𝑏𝑖𝑗)の値の推移
24
・ルーティングアルゴリズムの反復回数の検証
MNISTデータセットを用いた学習損失推移
最適化関数: Adam
パラメータ: TensorFlowのデフォルト
500epoch時のイテレーションごとの変化
実験結果2
Cifar10データセットを用いた学習損失推移
25
入力画像のデコード結果と精度
26
(l, p , r)
(正解ラベル,予測結果,復元ラベル)
アフィン変換に対するCapsNetのロバスト性
ロバスト性を検証する実験
MNISTデータが40*40になるようパディング
27
MNSIT affNIST
CapsNet 99.23% 79%
従来のCNN 99.22% 66%
従来手法とのロバスト性の精度比較
・各モデルのパラメータ数は同じ・学習の収束はCapsNetが早い
MultiMNISTを用いたデコーダーの精度検証
28
L: 入力された2つの数字のラベルR: 再構成に使用される2つの数字P: 予測
MultiMNISTを用いたデコーダーの精度実験
29
8を7と誤判別
9を0と誤判別
正解ラベルで復元を行うと情報を持っていることが分かる
まとめ
30
・CNNをベースとしたCapsNetを提案
-特徴表現をスカラー→ベクトルに変更することで、ベクトルをまとめたカプセル構造をつなぎ、その関係を学習することでCNNが持てなかった位置情報や構造を認識可能になった
-従来手法と同程度の精度
・計算速度の面や他のデータで検証をもっと行っていく必要がある