SlideShare a Scribd company logo
Caps Net
カプセルとは
• 論文より、
「A capsule is a group of neurons whose activity vector represents
the instantiation parameters of a specific type of entity such as an z
object or an object part.」
• カプセルとは、
ニューロンの活性化ベクトルが位置、サイズ、方向、歪み、色相、
質感などを表現するようなニューロン群のこと。
CapsNet
Conv1
・畳み込み
PrimaryCaps
・畳み込み
・特徴マップを
ベクトルに変形
DigitCaps
・ベクトルの変換
・ルーティング
入力画像に対して畳み込みを行う
*
9×9
1チャンネル
ストライド1
256カーネル
20
20
256
28
28
9
9
入力画像
畳み込みカーネル
Conv1
28×28
1チャンネル
20×20
256チャンネル
256
ReLU
CapsNet
ReLU Conv1
・畳み込み
PrimaryCaps
・畳み込み
・特徴マップを
ベクトルに変形
DigitCaps
・ベクトルの変換
・ルーティング
さらに畳み込みを行う
*
9×9×256
ストライド2
パディングなし
8個のカーネル
9
9
畳み込みカーネル
256
8
20
20
256
Conv1
20×20×256
6
6
8
6×6×8
このオレンジの部分の操作を
32セット分行う。
20
20
Conv1
20×20×256
* 9
256
8
6
6
8
9
256
9×9×256
8個のカーネル
6×6×8
20×20×256の特徴マップに
9×9×256の8個のカーネルで畳み込みを行うと
6×6×8の特徴マップが得られる
20
20
Conv1
20×20×256
* 9
256
8
6
6
8
9
* 9
256
8
6
6
8
9256
9×9×256
8個のカーネル
2セット
6×6×8
2個
20×20×256の特徴マップに
9×9×256の8個のカーネル2セットで
畳み込みを行うと
6×6×8の特徴マップが2つ得られる
20
20
Conv1
20×20
256チャンネル
* 9
256
8
6
6
8
9
* 9
256
8
6
6
8
9256
9×9×256の8個のカーネルを
32セットで畳み込みを行うと
6×6×8の
特徴マップが
32個できる
20
20
Conv1
20×20×256
* 9
256
8
6
6
8
9
* 9
256
8
6
6
8
9
* 9
256
8
6
6
8
9
9×9×256
8個のカーネル
32セット
256
6×6×8
32個
ベクトルに変形
32
個
86
6
1152
8
32
個
8
𝒂 𝟎
𝒂 𝟏
𝒂 𝟐
𝒂 𝟏𝟏𝟓𝟏
36
・
・
・
6×6×8から
36×8に変形
32個の36×8を
縦に並べる
𝒂𝒊は8次元のベクトル
(8個の要素数を持つ)
・6×6×8の1チャンネル分を
縦に1列に並べている。
・8チャンネルあるので36×8になる
8
1
1
8
1152
𝒂 𝟎
𝒂 𝟏
𝒂 𝟐
𝒂 𝟏𝟏𝟓𝟏
・
・
・
𝒂𝒊は8次元のベクトル
(8個の要素数を持つ)
8
1152
𝒖 𝟎
𝒖 𝟏
𝒖 𝟐
𝒖 𝟏𝟏𝟓𝟏
・
・
・
𝒖𝒊は8次元のベクトル
(8個の要素数を持つ)
8
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒖𝒊 =
||𝒂𝒊||2
1 + ||𝒂𝒊||2
・
𝒂𝒊
||𝒂𝒊||
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔(𝒂 𝟎)
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔(𝒂 𝟏)
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔(𝒂 𝟐)
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔(𝒂 𝟏𝟏𝟓𝟏)
・
・
・
・
・
・
活性化関数
(スカッシュ関数)
1
8
1
8
• スカッシュ関数は非線形なベクトルを処理できる関数
• ベクトルの方向は保持しつつ、大きさが1を超えないベクトルを出力
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔: 𝒖𝒊 =
||𝒂𝒊||2
1 + ||𝒂𝒊||2
・
𝒂𝒊
||𝒂𝒊||
𝒖𝒊 =
||𝒂𝒊||2
1 + ||𝒂𝒊||2
・
𝒂𝒊
||𝒂𝒊||
1を超えない値 単位ベクトル
CapsNet
ReLU Conv1
・畳み込み
PrimaryCaps
・畳み込み
・特徴マップを
ベクトルに変形
DigitCaps
・ベクトルの変換
・ルーティング
ディジットカプセル
𝒗𝒋
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗𝒋 =
||𝒔𝒋||2
1 + ||𝒔𝒋||2 ・
𝒔𝒋
||𝒔𝒋||
𝒔𝒋= σ 𝒊 𝑐𝑖𝑗 ^𝒖𝒋|𝒊
^𝒖𝒋|𝟎
^𝒖𝒋|𝟏 ^𝒖𝒋|𝟐
^𝒖𝒋|𝟑 ^𝒖𝒋|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝒋 𝒘 𝟏,𝒋 𝒘 𝟐,𝒋 𝒘 𝟑,𝒋 𝒘 𝟏𝟏𝟓𝟏,𝒋
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏𝒖 𝟑𝒖 𝟐
𝑐0,𝑗 𝑐1,𝑗 𝑐2,𝑗 𝑐3,𝑗 𝑐1151,𝑗
・・・
• 分類したいクラスごとに計算を行う
• これで1クラス分のユニット
• これを分類したいクラス分用意する
• 今回はMNIST用に作成したので、10個
ディジットカプセルの計算
𝒘 𝟏𝟏𝟓𝟏,𝟎
𝒗 𝟎
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟎 =
||𝒔 𝟎||2
1 + ||𝒔 𝟎||2
・
𝒔 𝟎
||𝒔 𝟎||
𝒔 𝟎= σ𝒊 𝑐𝑖0ෝ𝒖 𝟎|𝒊
ෝ𝒖 𝟎|𝟎 ෝ𝒖 𝟎|𝟏 ෝ𝒖 𝟎|𝟐 ෝ𝒖 𝟎|𝟑 ෝ𝒖 𝟎|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟎 𝒘 𝟏,𝟎 𝒘 𝟐,𝟎 𝒘 𝟑,𝟎
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,0 𝑐1,0 𝑐2,0 𝑐3,0 𝑐1151,0
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟏
𝒗 𝟏
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟏 =
||𝒔 𝟏||2
1 + ||𝒔 𝟏||2
・
𝒔 𝟏
||𝒔 𝟏||
𝒔 𝟏= σ𝒊 𝑐𝑖1ෝ𝒖 𝟏|𝒋
ෝ𝒖 𝟏|𝟎 ෝ𝒖 𝟏|𝟏 ෝ𝒖 𝟏|𝟐 ෝ𝒖 𝟏|𝟑 ෝ𝒖 𝟏|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟏 𝒘 𝟏,𝟏 𝒘 𝟐,𝟏 𝒘 𝟑,𝟏
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,1 𝑐1,1 𝑐2,1 𝑐3,1 𝑐1151,1
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟗
𝒗 𝟗
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟗 =
||𝒔 𝟗||2
1 + ||𝒔 𝟗||2
・
𝒔 𝟗
||𝒔 𝟗||
𝒔 𝟗= σ𝒊 𝑐𝑖9ෝ𝒖 𝟗|𝒊
ෝ𝒖 𝟗|𝟎 ෝ𝒖 𝟗|𝟏 ෝ𝒖 𝟗|𝟐 ෝ𝒖 𝟗|𝟑 ෝ𝒖 𝟗|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟗 𝒘 𝟏,𝟗 𝒘 𝟐,𝟗 𝒘 𝟑,𝟗
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,9 𝑐1,9 𝑐2,9 𝑐3,9 𝑐1151,9
・・・
・・・
つまり、ユニットが10個
ディジットカプセルの計算
𝒘 𝟏𝟏𝟓𝟏,𝟎
𝒗 𝟎
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟎 =
||𝒔 𝟎||2
1 + ||𝒔 𝟎||2
・
𝒔 𝟎
||𝒔 𝟎||
𝒔 𝟎= σ𝒊 𝑐𝑖0ෝ𝒖 𝟎|𝒊
ෝ𝒖 𝟎|𝟎 ෝ𝒖 𝟎|𝟏 ෝ𝒖 𝟎|𝟐 ෝ𝒖 𝟎|𝟑 ෝ𝒖 𝟎|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟎 𝒘 𝟏,𝟎 𝒘 𝟐,𝟎 𝒘 𝟑,𝟎
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,0 𝑐1,0 𝑐2,0 𝑐3,0 𝑐1151,0
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟏
𝒗 𝟏
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟏 =
||𝒔 𝟏||2
1 + ||𝒔 𝟏||2
・
𝒔 𝟏
||𝒔 𝟏||
𝒔 𝟏= σ𝒊 𝑐𝑖1ෝ𝒖 𝟏|𝒋
ෝ𝒖 𝟏|𝟎 ෝ𝒖 𝟏|𝟏 ෝ𝒖 𝟏|𝟐 ෝ𝒖 𝟏|𝟑 ෝ𝒖 𝟏|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟏 𝒘 𝟏,𝟏 𝒘 𝟐,𝟏 𝒘 𝟑,𝟏
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,1 𝑐1,1 𝑐2,1 𝑐3,1 𝑐1151,1
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟗
𝒗 𝟗
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟗 =
||𝒔 𝟗||2
1 + ||𝒔 𝟗||2
・
𝒔 𝟗
||𝒔 𝟗||
𝒔 𝟗= σ𝒊 𝑐𝑖9ෝ𝒖 𝟗|𝒊
ෝ𝒖 𝟗|𝟎 ෝ𝒖 𝟗|𝟏 ෝ𝒖 𝟗|𝟐 ෝ𝒖 𝟗|𝟑 ෝ𝒖 𝟗|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟗 𝒘 𝟏,𝟗 𝒘 𝟐,𝟗 𝒘 𝟑,𝟗
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,9 𝑐1,9 𝑐2,9 𝑐3,9 𝑐1151,9
・・・
・・・
𝑏𝑖,𝑗 ← 𝑏𝑖,𝑗+ ෝ𝒖𝒋|𝒊・𝒗𝒋
𝑐𝑖,𝑗=
𝑒𝑥𝑝(𝑏 𝑖,𝑗)
σ 𝑘 𝑒𝑥𝑝(𝑏 𝑖,𝑘)
𝐷𝑦𝑛𝑎𝑚𝑖𝑐 𝑟𝑜𝑜𝑡𝑖𝑛𝑔
𝒖𝒊: 𝟖 × 𝟏
𝒘𝒊,𝒋: 𝟏𝟔 × 𝟖
ෝ𝒖𝒋|𝒊: 𝟏𝟔 × 𝟏
𝒔𝒋: 𝟏𝟔 × 𝟏
𝒗𝒋: 𝟏𝟔 × 𝟏
ベクトルの次元
橙色はスカラー値
ディジットカプセルの出力ベクトル𝒗𝒋の長さが
一番長いベクトルを出力したクラスが
正解クラス
ユニットが10個
ディジットカプセルの計算
𝒘 𝟏𝟏𝟓𝟏,𝟎
𝒗 𝟎
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟎 =
||𝒔 𝟎||2
1 + ||𝒔 𝟎||2
・
𝒔 𝟎
||𝒔 𝟎||
𝒔 𝟎= σ𝒊 𝑐𝑖0ෝ𝒖 𝟎|𝒊
ෝ𝒖 𝟎|𝟎 ෝ𝒖 𝟎|𝟏 ෝ𝒖 𝟎|𝟐 ෝ𝒖 𝟎|𝟑 ෝ𝒖 𝟎|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟎 𝒘 𝟏,𝟎 𝒘 𝟐,𝟎 𝒘 𝟑,𝟎
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,0 𝑐1,0 𝑐2,0 𝑐3,0 𝑐1151,0
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟏
𝒗 𝟏
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟏 =
||𝒔 𝟏||2
1 + ||𝒔 𝟏||2
・
𝒔 𝟏
||𝒔 𝟏||
𝒔 𝟏= σ𝒊 𝑐𝑖1ෝ𝒖 𝟏|𝒋
ෝ𝒖 𝟏|𝟎 ෝ𝒖 𝟏|𝟏 ෝ𝒖 𝟏|𝟐 ෝ𝒖 𝟏|𝟑 ෝ𝒖 𝟏|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟏 𝒘 𝟏,𝟏 𝒘 𝟐,𝟏 𝒘 𝟑,𝟏
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,1 𝑐1,1 𝑐2,1 𝑐3,1 𝑐1151,1
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟗
𝒗 𝟗
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟗 =
||𝒔 𝟗||2
1 + ||𝒔 𝟗||2
・
𝒔 𝟗
||𝒔 𝟗||
𝒔 𝟗= σ𝒊 𝑐𝑖9ෝ𝒖 𝟗|𝒊
ෝ𝒖 𝟗|𝟎 ෝ𝒖 𝟗|𝟏 ෝ𝒖 𝟗|𝟐 ෝ𝒖 𝟗|𝟑 ෝ𝒖 𝟗|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟗 𝒘 𝟏,𝟗 𝒘 𝟐,𝟗 𝒘 𝟑,𝟗
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,9 𝑐1,9 𝑐2,9 𝑐3,9 𝑐1151,9
・・・
・・・
𝑏𝑖,𝑗 ← 𝑏𝑖,𝑗+ ෝ𝒖𝒋|𝒊・𝒗𝒋
𝑐𝑖,𝑗=
𝑒𝑥𝑝(𝑏 𝑖,𝑗)
σ 𝑘 𝑒𝑥𝑝(𝑏 𝑖,𝑘)
𝐷𝑦𝑛𝑎𝑚𝑖𝑐 𝑟𝑜𝑜𝑡𝑖𝑛𝑔
𝒖𝒊: 𝟖 × 𝟏
𝒘𝒊,𝒋: 𝟏𝟔 × 𝟖
ෝ𝒖𝒋|𝒊: 𝟏𝟔 × 𝟏
𝒔𝒋: 𝟏𝟔 × 𝟏
𝒗𝒋: 𝟏𝟔 × 𝟏
ベクトルの次元
橙色はスカラー値
ユニットが10個
ディジットカプセルの計算
𝒘 𝟏𝟏𝟓𝟏,𝟎
ෝ𝒖 𝟎|𝟎 ෝ𝒖 𝟎|𝟏 ෝ𝒖 𝟎|𝟐 ෝ𝒖 𝟎|𝟑 ෝ𝒖 𝟎|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟎 𝒘 𝟏,𝟎 𝒘 𝟐,𝟎 𝒘 𝟑,𝟎
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟏
ෝ𝒖 𝟏|𝟎 ෝ𝒖 𝟏|𝟏 ෝ𝒖 𝟏|𝟐 ෝ𝒖 𝟏|𝟑 ෝ𝒖 𝟏|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟏 𝒘 𝟏,𝟏 𝒘 𝟐,𝟏 𝒘 𝟑,𝟏
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟗
ෝ𝒖 𝟗|𝟎 ෝ𝒖 𝟗|𝟏 ෝ𝒖 𝟗|𝟐 ෝ𝒖 𝟗|𝟑 ෝ𝒖 𝟗|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟗 𝒘 𝟏,𝟗 𝒘 𝟐,𝟗 𝒘 𝟑,𝟗
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
・・・
• 赤枠の部分はどれも同じベクトル
• (例えば左の𝒖 𝟏 と真中の𝒖 𝟏 と右の𝒖 𝟏は同じ)
ෝ𝒖𝒋|𝒊 = 𝒘𝒊,𝒋 𝒖𝒊
𝒖𝒊: 𝟖 × 𝟏
𝒘𝒊,𝒋: 𝟏𝟔 × 𝟖
ෝ𝒖𝒋|𝒊: 𝟏𝟔 × 𝟏
𝒔𝒋: 𝟏𝟔 × 𝟏
𝒗𝒋: 𝟏𝟔 × 𝟏
ベクトルの次元
橙色はスカラー値
・・・
ディジットカプセルの計算
𝒘 𝟏𝟏𝟓𝟏,𝟎
ෝ𝒖 𝟎|𝟎 ෝ𝒖 𝟎|𝟏 ෝ𝒖 𝟎|𝟐 ෝ𝒖 𝟎|𝟑 ෝ𝒖 𝟎|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟎 𝒘 𝟏,𝟎 𝒘 𝟐,𝟎 𝒘 𝟑,𝟎
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟏
ෝ𝒖 𝟏|𝟎 ෝ𝒖 𝟏|𝟏 ෝ𝒖 𝟏|𝟐 ෝ𝒖 𝟏|𝟑 ෝ𝒖 𝟏|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟏 𝒘 𝟏,𝟏 𝒘 𝟐,𝟏 𝒘 𝟑,𝟏
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟗
ෝ𝒖 𝟗|𝟎 ෝ𝒖 𝟗|𝟏 ෝ𝒖 𝟗|𝟐 ෝ𝒖 𝟗|𝟑 ෝ𝒖 𝟗|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟗 𝒘 𝟏,𝟗 𝒘 𝟐,𝟗 𝒘 𝟑,𝟗
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
・・・
• 𝒘𝒊,𝒋と𝒖𝒊の積を求めて、ベクトルෝ𝒖𝒋|𝒊を得る
• 青枠一つが1クラス分のユニットであった
• 𝒖𝒊ベクトルは1152個あるので、𝒘𝒊𝒋 も1152個ある
• これが10クラス分あるので、 𝒘𝒊𝒋 は1152×10個あり、
すべて異なる行列になる
ෝ𝒖𝒋|𝒊 = 𝒘𝒊,𝒋 𝒖𝒊
𝒖𝒊: 𝟖 × 𝟏
𝒘𝒊,𝒋: 𝟏𝟔 × 𝟖
ෝ𝒖𝒋|𝒊: 𝟏𝟔 × 𝟏
𝒔𝒋: 𝟏𝟔 × 𝟏
𝒗𝒋: 𝟏𝟔 × 𝟏
ベクトルの次元
橙色はスカラー値
・・・
ディジットカプセルの計算
𝒘 𝟏𝟏𝟓𝟏,𝟎
ෝ𝒖 𝟎|𝟎 ෝ𝒖 𝟎|𝟏 ෝ𝒖 𝟎|𝟐 ෝ𝒖 𝟎|𝟑 ෝ𝒖 𝟎|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟎 𝒘 𝟏,𝟎 𝒘 𝟐,𝟎 𝒘 𝟑,𝟎
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟏
ෝ𝒖 𝟏|𝟎 ෝ𝒖 𝟏|𝟏 ෝ𝒖 𝟏|𝟐 ෝ𝒖 𝟏|𝟑 ෝ𝒖 𝟏|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟏 𝒘 𝟏,𝟏 𝒘 𝟐,𝟏 𝒘 𝟑,𝟏
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟗
ෝ𝒖 𝟗|𝟎 ෝ𝒖 𝟗|𝟏 ෝ𝒖 𝟗|𝟐 ෝ𝒖 𝟗|𝟑 ෝ𝒖 𝟗|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟗 𝒘 𝟏,𝟗 𝒘 𝟐,𝟗 𝒘 𝟑,𝟗
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
・・・
ෝ𝒖𝒋|𝒊
𝒖𝒊
𝒘𝒊,𝒋
• 論文より、上の式はレンダリングプロセスの逆を
行っており、ෝ𝒖𝒋|𝒊は予測ベクトルと呼ばれている
• つまり、 ෝ𝒖𝒋|𝒊はレンダリングを行う前の高次元の情
報を予測したベクトル
• 上の計算で一部から全体を予測している
ෝ𝒖𝒋|𝒊 = 𝒘𝒊,𝒋 𝒖𝒊
𝒖𝒊: 𝟖 × 𝟏
𝒘𝒊,𝒋: 𝟏𝟔 × 𝟖
ෝ𝒖𝒋|𝒊: 𝟏𝟔 × 𝟏
𝒔𝒋: 𝟏𝟔 × 𝟏
𝒗𝒋: 𝟏𝟔 × 𝟏
ベクトルの次元
橙色はスカラー値
それぞれの位置の
特徴ベクトル
オブジェクト全体を構成
するようなベクトル
変換行列
・・・
ディジットカプセルの計算
𝒘 𝟏𝟏𝟓𝟏,𝟎
𝒗 𝟎
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟎 =
||𝒔 𝟎||2
1 + ||𝒔 𝟎||2
・
𝒔 𝟎
||𝒔 𝟎||
𝒔 𝟎= σ𝒊 𝑐𝑖0ෝ𝒖 𝟎|𝒊
ෝ𝒖 𝟎|𝟎 ෝ𝒖 𝟎|𝟏 ෝ𝒖 𝟎|𝟐 ෝ𝒖 𝟎|𝟑 ෝ𝒖 𝟎|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟎 𝒘 𝟏,𝟎 𝒘 𝟐,𝟎 𝒘 𝟑,𝟎
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,0 𝑐1,0 𝑐2,0 𝑐3,0 𝑐1151,0
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟏
𝒗 𝟏
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟏 =
||𝒔 𝟏||2
1 + ||𝒔 𝟏||2
・
𝒔 𝟏
||𝒔 𝟏||
𝒔 𝟏= σ𝒊 𝑐𝑖1ෝ𝒖 𝟏|𝒋
ෝ𝒖 𝟏|𝟎 ෝ𝒖 𝟏|𝟏 ෝ𝒖 𝟏|𝟐 ෝ𝒖 𝟏|𝟑 ෝ𝒖 𝟏|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟏 𝒘 𝟏,𝟏 𝒘 𝟐,𝟏 𝒘 𝟑,𝟏
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,1 𝑐1,1 𝑐2,1 𝑐3,1 𝑐1151,1
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟗
𝒗 𝟗
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟗 =
||𝒔 𝟗||2
1 + ||𝒔 𝟗||2
・
𝒔 𝟗
||𝒔 𝟗||
𝒔 𝟗= σ𝒊 𝑐𝑖9ෝ𝒖 𝟗|𝒊
ෝ𝒖 𝟗|𝟎 ෝ𝒖 𝟗|𝟏 ෝ𝒖 𝟗|𝟐 ෝ𝒖 𝟗|𝟑 ෝ𝒖 𝟗|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟗 𝒘 𝟏,𝟗 𝒘 𝟐,𝟗 𝒘 𝟑,𝟗
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,9 𝑐1,9 𝑐2,9 𝑐3,9 𝑐1151,9
・・・
・・・
𝑏𝑖,𝑗 ← 𝑏𝑖,𝑗+ ෝ𝒖𝒋|𝒊・𝒗𝒋
𝑐𝑖,𝑗=
𝑒𝑥𝑝(𝑏 𝑖,𝑗)
σ 𝑘 𝑒𝑥𝑝(𝑏 𝑖,𝑘)
𝐷𝑦𝑛𝑎𝑚𝑖𝑐 𝑟𝑜𝑜𝑡𝑖𝑛𝑔
𝒖𝒊: 𝟖 × 𝟏
𝒘𝒊,𝒋: 𝟏𝟔 × 𝟖
ෝ𝒖𝒋|𝒊: 𝟏𝟔 × 𝟏
𝒔𝒋: 𝟏𝟔 × 𝟏
𝒗𝒋: 𝟏𝟔 × 𝟏
ベクトルの次元
橙色はスカラー値
ユニットが10個
ディジットカプセルの計算
𝒔 𝟎= σ𝒊 𝑐𝑖0ෝ𝒖 𝟎|𝒊
ෝ𝒖 𝟎|𝟎 ෝ𝒖 𝟎|𝟏 ෝ𝒖 𝟎|𝟐 ෝ𝒖 𝟎|𝟑 ෝ𝒖 𝟎|𝟏𝟏𝟓𝟏
𝑐0,0 𝑐1,0 𝑐2,0 𝑐3,0 𝑐1151,0
𝒔 𝟏= σ𝒊 𝑐𝑖1ෝ𝒖 𝟏|𝒋
ෝ𝒖 𝟏|𝟎 ෝ𝒖 𝟏|𝟏 ෝ𝒖 𝟏|𝟐 ෝ𝒖 𝟏|𝟑 ෝ𝒖 𝟏|𝟏𝟏𝟓𝟏
𝑐0,1 𝑐1,1 𝑐2,1 𝑐3,1 𝑐1151,1
𝒔 𝟗= σ𝒊 𝑐𝑖9ෝ𝒖 𝟗|𝒊
ෝ𝒖 𝟗|𝟎 ෝ𝒖 𝟗|𝟏 ෝ𝒖 𝟗|𝟐 ෝ𝒖 𝟗|𝟑 ෝ𝒖 𝟗|𝟏𝟏𝟓𝟏
𝑐0,9 𝑐1,9 𝑐2,9 𝑐3,9 𝑐1151,9
・・・ 𝒖𝒊: 𝟖 × 𝟏
𝒘𝒊,𝒋: 𝟏𝟔 × 𝟖
ෝ𝒖𝒋|𝒊: 𝟏𝟔 × 𝟏
𝒔𝒋: 𝟏𝟔 × 𝟏
𝒗𝒋: 𝟏𝟔 × 𝟏
ベクトルの次元
橙色はスカラー値
𝒔𝒋= σ𝒊 𝑐𝑖𝑗 ෝ𝒖𝒋|𝒊
• 𝑐𝑖𝑗はdynamic routingによって変化するスカラー値
• 𝒔𝒋は𝑐𝑖𝑗とෝ𝒖𝒋|𝒊の積の合計である
• 紫の枠内(つまりクラスのユニットごと)に 𝑐𝑖𝑗ෝ𝒖𝒋|𝒊
の和を計算。
ディジットカプセルの計算
𝒘 𝟏𝟏𝟓𝟏,𝟎
𝒗 𝟎
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟎 =
||𝒔 𝟎||2
1 + ||𝒔 𝟎||2
・
𝒔 𝟎
||𝒔 𝟎||
𝒔 𝟎= σ𝒊 𝑐𝑖0ෝ𝒖 𝟎|𝒊
ෝ𝒖 𝟎|𝟎 ෝ𝒖 𝟎|𝟏 ෝ𝒖 𝟎|𝟐 ෝ𝒖 𝟎|𝟑 ෝ𝒖 𝟎|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟎 𝒘 𝟏,𝟎 𝒘 𝟐,𝟎 𝒘 𝟑,𝟎
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,0 𝑐1,0 𝑐2,0 𝑐3,0 𝑐1151,0
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟏
𝒗 𝟏
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟏 =
||𝒔 𝟏||2
1 + ||𝒔 𝟏||2
・
𝒔 𝟏
||𝒔 𝟏||
𝒔 𝟏= σ𝒊 𝑐𝑖1ෝ𝒖 𝟏|𝒋
ෝ𝒖 𝟏|𝟎 ෝ𝒖 𝟏|𝟏 ෝ𝒖 𝟏|𝟐 ෝ𝒖 𝟏|𝟑 ෝ𝒖 𝟏|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟏 𝒘 𝟏,𝟏 𝒘 𝟐,𝟏 𝒘 𝟑,𝟏
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,1 𝑐1,1 𝑐2,1 𝑐3,1 𝑐1151,1
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟗
𝒗 𝟗
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟗 =
||𝒔 𝟗||2
1 + ||𝒔 𝟗||2
・
𝒔 𝟗
||𝒔 𝟗||
𝒔 𝟗= σ𝒊 𝑐𝑖9ෝ𝒖 𝟗|𝒊
ෝ𝒖 𝟗|𝟎 ෝ𝒖 𝟗|𝟏 ෝ𝒖 𝟗|𝟐 ෝ𝒖 𝟗|𝟑 ෝ𝒖 𝟗|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟗 𝒘 𝟏,𝟗 𝒘 𝟐,𝟗 𝒘 𝟑,𝟗
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,9 𝑐1,9 𝑐2,9 𝑐3,9 𝑐1151,9
・・・
・・・
𝑏𝑖,𝑗 ← 𝑏𝑖,𝑗+ ෝ𝒖𝒋|𝒊・𝒗𝒋
𝑐𝑖,𝑗=
𝑒𝑥𝑝(𝑏 𝑖,𝑗)
σ 𝑘 𝑒𝑥𝑝(𝑏 𝑖,𝑘)
𝐷𝑦𝑛𝑎𝑚𝑖𝑐 𝑟𝑜𝑜𝑡𝑖𝑛𝑔
𝒖𝒊: 𝟖 × 𝟏
𝒘𝒊,𝒋: 𝟏𝟔 × 𝟖
ෝ𝒖𝒋|𝒊: 𝟏𝟔 × 𝟏
𝒔𝒋: 𝟏𝟔 × 𝟏
𝒗𝒋: 𝟏𝟔 × 𝟏
ベクトルの次元
橙色はスカラー値
ユニットが10個
ディジットカプセルの計算
𝒗 𝟏
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟏 =
||𝒔 𝟏||2
1 + ||𝒔 𝟏||2
・
𝒔 𝟏
||𝒔 𝟏||
𝒔 𝟏= σ𝒊 𝑐𝑖1ෝ𝒖 𝟏|𝒋
𝒗 𝟗
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟗 =
||𝒔 𝟗||2
1 + ||𝒔 𝟗||2
・
𝒔 𝟗
||𝒔 𝟗||
𝒔 𝟗= σ𝒊 𝑐𝑖9ෝ𝒖 𝟗|𝒊
𝒗 𝟎
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟎 =
||𝒔 𝟎||2
1 + ||𝒔 𝟎||2
・
𝒔 𝟎
||𝒔 𝟎||
𝒔 𝟎= σ𝒊 𝑐𝑖0ෝ𝒖 𝟎|𝒊
・・・
𝒖𝒊: 𝟖 × 𝟏
𝒘𝒊,𝒋: 𝟏𝟔 × 𝟖
ෝ𝒖𝒋|𝒊: 𝟏𝟔 × 𝟏
𝒔𝒋: 𝟏𝟔 × 𝟏
𝒗𝒋: 𝟏𝟔 × 𝟏
ベクトルの次元
橙色はスカラー値
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔: 𝒗𝒋 =
||𝒔𝒋||2
1 + ||𝒔𝒋||2
・
𝒔𝒋
||𝒔𝒋||
1を超えない値 単位ベクトル
• ベクトルの方向は保持しつつ、
大きさが1を超えないベクトルを出力。
• クラスごとに𝒗𝒋を計算
ディジットカプセルの計算
𝒘 𝟏𝟏𝟓𝟏,𝟎
𝒗 𝟎
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟎 =
||𝒔 𝟎||2
1 + ||𝒔 𝟎||2
・
𝒔 𝟎
||𝒔 𝟎||
𝒔 𝟎= σ𝒊 𝑐𝑖0ෝ𝒖 𝟎|𝒊
ෝ𝒖 𝟎|𝟎 ෝ𝒖 𝟎|𝟏 ෝ𝒖 𝟎|𝟐 ෝ𝒖 𝟎|𝟑 ෝ𝒖 𝟎|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟎 𝒘 𝟏,𝟎 𝒘 𝟐,𝟎 𝒘 𝟑,𝟎
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,0 𝑐1,0 𝑐2,0 𝑐3,0 𝑐1151,0
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟏
𝒗 𝟏
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟏 =
||𝒔 𝟏||2
1 + ||𝒔 𝟏||2
・
𝒔 𝟏
||𝒔 𝟏||
𝒔 𝟏= σ𝒊 𝑐𝑖1ෝ𝒖 𝟏|𝒋
ෝ𝒖 𝟏|𝟎 ෝ𝒖 𝟏|𝟏 ෝ𝒖 𝟏|𝟐 ෝ𝒖 𝟏|𝟑 ෝ𝒖 𝟏|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟏 𝒘 𝟏,𝟏 𝒘 𝟐,𝟏 𝒘 𝟑,𝟏
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,1 𝑐1,1 𝑐2,1 𝑐3,1 𝑐1151,1
・・・ 𝒘 𝟏𝟏𝟓𝟏,𝟗
𝒗 𝟗
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗 𝟗 =
||𝒔 𝟗||2
1 + ||𝒔 𝟗||2
・
𝒔 𝟗
||𝒔 𝟗||
𝒔 𝟗= σ𝒊 𝑐𝑖9ෝ𝒖 𝟗|𝒊
ෝ𝒖 𝟗|𝟎 ෝ𝒖 𝟗|𝟏 ෝ𝒖 𝟗|𝟐 ෝ𝒖 𝟗|𝟑 ෝ𝒖 𝟗|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝟗 𝒘 𝟏,𝟗 𝒘 𝟐,𝟗 𝒘 𝟑,𝟗
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏
𝒖 𝟑𝒖 𝟐
𝑐0,9 𝑐1,9 𝑐2,9 𝑐3,9 𝑐1151,9
・・・
・・・
𝑏𝑖,𝑗 ← 𝑏𝑖,𝑗+ ෝ𝒖𝒋|𝒊・𝒗𝒋
𝑐𝑖,𝑗=
𝑒𝑥𝑝(𝑏 𝑖,𝑗)
σ 𝑘 𝑒𝑥𝑝(𝑏 𝑖,𝑘)
𝐷𝑦𝑛𝑎𝑚𝑖𝑐 𝑟𝑜𝑜𝑡𝑖𝑛𝑔
𝒖𝒊: 𝟖 × 𝟏
𝒘𝒊,𝒋: 𝟏𝟔 × 𝟖
ෝ𝒖𝒋|𝒊: 𝟏𝟔 × 𝟏
𝒔𝒋: 𝟏𝟔 × 𝟏
𝒗𝒋: 𝟏𝟔 × 𝟏
ベクトルの次元
橙色はスカラー値
ディジットカプセルの計算
𝒗𝒋
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗𝒋 =
||𝒔𝒋||2
1 + ||𝒔𝒋||2
・
𝒔𝒋
||𝒔𝒋||
𝒔𝒋= σ 𝒊 𝑐𝑖𝑗 ^𝒖𝒋|𝒊
^𝒖𝒋|𝟎
^𝒖𝒋|𝟏 ^𝒖𝒋|𝟐 ^𝒖𝒋|𝟑 ^𝒖𝒋|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝒋 𝒘 𝟏,𝒋 𝒘 𝟐,𝒋 𝒘 𝟑,𝒋
𝒘 𝟏𝟏𝟓𝟏,𝒋
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏𝒖 𝟑𝒖 𝟐
𝑐0,𝑗 𝑐1,𝑗 𝑐2,𝑗 𝑐3,𝑗 𝑐1151,𝑗
𝑏𝑖,𝑗 ← 𝑏𝑖,𝑗+ ^𝒖𝒋|𝒊・𝒗𝒋
𝑐𝑖,𝑗=
𝑒𝑥𝑝(𝑏 𝑖,𝑗)
σ 𝑘 𝑒𝑥𝑝(𝑏 𝑖,𝑘)
𝐷𝑦𝑛𝑎𝑚𝑖𝑐 𝑟𝑜𝑢𝑡𝑖𝑛𝑔
・・・
𝑏𝑖,𝑗 ← 𝑏𝑖,𝑗+ ^𝒖𝒋|𝒊・𝒗𝒋
• ^𝒖𝒋|𝒊 ・𝒗𝒋は内積
• 内積は2つのベクトル(^𝒖𝒋|𝒊 , 𝒗𝒋)の
類似度を表している
• 𝑏𝑖𝑗は2つのベクトルの類似度で変化
する
• それぞれのクラス内の^𝒖𝒋|𝒊と𝒗𝒋
に対して𝑏𝑖𝑗を計算する
𝑐𝑖,𝑗=
𝒆𝒙𝒑(𝑏 𝑖,𝑗)
σ 𝒌 𝒆𝒙𝒑(𝑏 𝑖,𝑘)
・𝑐𝑖𝑗の式はソフトマックス関数
・𝑐𝑖𝑗の式の分母は、同じiの𝑏𝑖,𝑗 を足し合わせている
・つまり、
𝑐0,0、𝑐0,1、𝑐0,2、𝑐0,3 … 𝑐0,9の和が1
𝑐1,0、𝑐1,1、𝑐1,2、𝑐1,3 … 𝑐1,9の和が1
𝑐1151,0、𝑐1151,1、𝑐1151,2、𝑐1151,3 … 𝑐1151,9の和が1
・もし入力画像の中に0が含まれていれば
ෝ𝒖 𝟎|𝒊が同じような方向を向いたベクトルになり、そのෝ𝒖 𝟎|𝒊に
関係する𝒄𝒊𝟎(𝑐0,0, 𝑐1,0, 𝑐2,0, 𝑐3,0 … 𝑐1151,0)が大きくなり、
𝒗 𝟎のベクトルの長さが大きくなる。
^𝒖 𝟎|𝟎 ^𝒖 𝟎|𝟏 ^𝒖 𝟎|𝟐 ^𝒖 𝟎|𝟑 ^𝒖 𝟎|𝟏𝟏𝟓𝟏
𝒔 𝟎= σ 𝒊 𝒄𝒊𝟎 ^𝒖𝒊|𝟎
𝑐1151,0𝑐0,0 𝑐1,0 𝑐2,0 𝑐3,0
… ^𝒖 𝟏|𝟎 ^𝒖 𝟏|𝟏 ^𝒖 𝟏|𝟐 ^𝒖 𝟏|𝟑 ^𝒖 𝟏|𝟏𝟏𝟓𝟏
𝒔 𝟏= σ 𝒊 𝒄𝒊𝟏 ^𝒖𝒊|𝟏
𝑐1151,1𝑐0,1 𝑐1,1 𝑐2,1 𝑐3,1
… ^𝒖 𝟐|𝟎 ^𝒖 𝟐|𝟏 ^𝒖 𝟐|𝟐 ^𝒖 𝟐|𝟑 ^𝒖 𝟐|𝟏𝟏𝟓𝟏
𝒔 𝟐= σ 𝒊 𝒄𝒊𝟐 ^𝒖𝒊|𝟐
𝑐1151,2𝑐0,2 𝑐1,2 𝑐2,2 𝑐3,2
… ^𝒖 𝟗|𝟎 ^𝒖 𝟗|𝟏 ^𝒖 𝟗|𝟐 ^𝒖 𝟗|𝟑 ^𝒖 𝟗|𝟏𝟏𝟓𝟏
𝒔1151= σ 𝒊 𝒄𝒊,𝟗 ^𝒖𝒊|𝟗
𝑐1151,9𝑐0,9 𝑐1,9 𝑐2,9 𝑐3,9
…
…
ディジットカプセルの計算
𝒗𝒋
𝑠𝑞𝑢𝑎𝑠ℎ𝑖𝑛𝑔
𝒗𝒋 =
||𝒔𝒋||2
1 + ||𝒔𝒋||2
・
𝒔𝒋
||𝒔𝒋||
𝒔𝒋= σ 𝒊 𝑐𝑖𝑗 ^𝒖𝒋|𝒊
^𝒖𝒋|𝟎
^𝒖𝒋|𝟏 ^𝒖𝒋|𝟐 ^𝒖𝒋|𝟑 ^𝒖𝒋|𝟏𝟏𝟓𝟏
𝒘 𝟎,𝒋 𝒘 𝟏,𝒋 𝒘 𝟐,𝒋 𝒘 𝟑,𝒋
𝒘 𝟏𝟏𝟓𝟏,𝒋
𝒖 𝟎 𝒖 𝟏 𝒖 𝟏𝟏𝟓𝟏𝒖 𝟑𝒖 𝟐
𝑐0,𝑗 𝑐1,𝑗 𝑐2,𝑗 𝑐3,𝑗 𝑐1151,𝑗
𝑏𝑖,𝑗 ← 𝑏𝑖,𝑗+ ^𝒖𝒋|𝒊・𝒗𝒋
𝑐𝑖,𝑗=
𝑒𝑥𝑝(𝑏 𝑖,𝑗)
σ 𝑘 𝑒𝑥𝑝(𝑏 𝑖,𝑘)
𝐷𝑦𝑛𝑎𝑚𝑖𝑐 𝑟𝑜𝑢𝑡𝑖𝑛𝑔
・・・
𝒗𝒋を求める
𝑏𝑖,𝑗を求める
𝑐𝑖,𝑗を求める
𝒔𝒋を求める
𝒗𝒋を求める
3回繰り返す
・𝑏𝑖,𝑗→𝑐𝑖,𝑗→ 𝒔𝒋 → 𝒗𝒋 を3回繰り返す操作
をDynamic routingという。
・ルーティングは、予測(^𝒖𝒋|𝒊 )を集めて
クラスごとの予測の一致度を調べている。
CapsNet
ReLU Conv1
・畳み込み
PrimaryCaps
・畳み込み
・特徴マップを
ベクトルに変形
DigitCaps
・ベクトルの変換
・ルーティング
• 𝑚+
= 0.9
• 𝑚− = 0.1
• λはトレーニング中の数値安定性のための変数( λ =0.5)
• ラベルが示す正解クラスと同じクラスは 𝑇𝑐 =1
それ以外のクラスに対して𝑇𝑐 =0
𝐿𝑜𝑠𝑠: 𝐿 𝑐=𝑇𝑐 𝑚𝑎𝑥(0, 𝑚+
− | 𝒗 𝒄 |)2
+ λ(1 − 𝑇𝑐)𝑚𝑎𝑥(0, | 𝑣𝑐 | − 𝑚−
)2
ロス関数
正解クラス 正解でないクラス
• 𝑇𝑐 𝑚𝑎𝑥(0, 𝑚+
− | 𝒗 𝒄 |)2
について
𝑚+ − | 𝒗 𝒄 |は| 𝒗 𝒄 |が0.9以上になるまで誤差を出力、0.9以上では0で誤差
を出力しない
• λ(1 − 𝑇𝑐)𝑚𝑎𝑥(0, | 𝑣𝑐 | − 𝑚−
)2
について
| 𝑣𝑐 | − 𝑚−は| 𝑣𝑐 | が0.1以下になるまで誤差を出力、0.1以下で0で誤差を
出力しない
• つまり、正解クラスはベクトルの長さが0.9以上になるように、
不正解のクラスは0.1以下になるようにするためにこの誤差関数を
使用している。
𝐿𝑜𝑠𝑠: 𝐿 𝑐=𝑇𝑐 𝑚𝑎𝑥(0, 𝑚+
− | 𝒗 𝒄 |)2
+ λ(1 − 𝑇𝑐)𝑚𝑎𝑥(0, | 𝑣𝑐 | − 𝑚−
)2
ロス関数
正解クラス 正解でないクラス
デコーダー
• デコーダーは16次元で10個のベクトルを入力として、ベクトル
を数字の画像にデコードすることを学習する。
• 訓練中は正しいディジットカプセルのベクトルのみを使用する。
• 入力として正しいディジットカプセルの出力を扱い、
再構成画像が入力画像に近づくように学習する。
デコーダー
• ディジットカプセルの出力ベクトル10×16を、
正解のベクトル(一番長さの大きいベクトル)のみ値を残し、
他の9×16のベクトルはすべて0に置き換える。
• 10×16のベクトルは、160個のスカラー値として、
バイアス項を持つ全結合層のニューロンに入力する。
• それぞれのノード数は、512、1024、784個で
ReLU関数に通したスカラー値を出力する。
MNISTを使用した実験
• 画像はMNISTであるが、様々な方向に2ピクセルシフトさせ、
必要な部分に0パディングを行った画像を使用した。
• データの拡大及び変形は行っていない。
• データセットは、訓練用で60000枚、テスト用10000枚の画像である。
• 比較するCNNは、256、256、180のチャンネルの3つの畳み込み層を持つ
基本的なCNNであり、それぞれの畳み込み層は5×5カーネルで
ストライドが1である。
• 最後の畳み込み層は382、192のサイズの2つの全結合層によって構成され、
最後の全結合層は、ドロップアウトを挟んで10クラスに分かれた
クロスエントロピー誤差を持つソフトマックス層へつながっている。
MNISTを使用した実験
• CNNは、カプセルネットと近い計算量を保つと同時に
MNIST上でベストパフォーマンスを達成できるように作られている。
• パラメータ数について
• CapsNetは復元のネットワークを除けば6.8Mパラメータである。
パラメータ数
CNN 35.4M
CapsNet 8.2M
• CNN(Baseline)のテストエラー率は0.39%であった。
• 復元を行わない場合のルーティング回数による違いがほぼなかった。
• 一方デコーダ使用時のCapsNetは0.25%でCNNよりも精度が良かった。
結果
Method ルーディング回数 復元を行うか 誤り率(%)
Baseline(CNN) - - 0.39
CapsNet 1 No 0.34
CapsNet 1 Yes 0.29
CapsNet 3 No 0.35
CapsNet 3 Yes 0.25
復元画像
• (l,p,r)は(ラベル、予測値、復元目標)を表している。
• 2つの右端の列は失敗例の2つの復元を示している。
• モデルが5と3を混乱していることがわかる。
• 正しい分類をしているものは、ノイズをスムージングしている一方で、
たくさんの特徴を失わずに復元している。
カプセルが出力したベクトルの要素は何を示しているのか
• デコーダネットワークの部分のみを使用することで個々の特徴
をどのように表すのかを確認する。
• 16次元の要素の1つを、-0.25から0.25の範囲で0.05間隔で
変化させたときの復元の様子を確認する。
• 出力されたベクトルの要素値の変化によって、大きさ、幅、長さなど
の数字特有の変化が見られた。
• これよりカプセルの出力ベクトルの要素は特徴の規則性を
とらえていることがわかる。
大きさと太さ
一部のパーツ
ストロークの長さと太さ
一部の歪み
幅と変形
一部のパーツ
アフィン変換による実験
• 伝統的な畳み込みネットワークよりも、カプセルが堅牢な表現を
学習することを示すための実験。
• 黒の背景にランダムに置かれたサイズ40×40のMNISTの数字の
パディングと変形が行われた訓練データセットでカプセルネットと
伝統的なCNN(マックスプーリングとドロップアウト含む)を訓練させ
た。
• また、それぞれランダムな小さいアフィン変換を持つMNISTの数字であ
るaffNISTデータセットでこのネットワークをテストした。
アフィン変換による頑健性
拡張MNIST affNIST
CNN 99.22% 79%
CapsNet 99.23% 66%
• 拡張MNISTとaffNISTのテストデータでの精度を示す。
• CNNに比べて、小さいアフィン変換に対して精度が良いことがわかる。
複雑に重なった数字のセグメンテーション
• MNISTの数字の上に別の数字を重ねることでMultiMNISTの
訓練データセットとテストデータセットを作成した。
• 2つの数字はそれぞれの方向に4ピクセルずつずらしてある。
• それぞれの数字の重複度は80%である。
• 画像サイズは36×36画像になっている。
• 訓練データの枚数は60000でテストデータの枚数は10000である。
比較するCNNについて
• 2つの畳み込み層と一番上の層に2つの全結合層を持つ、
畳み込みニューラルネットワークである。
• 初めの畳み込み層はサイズ9×9でストライドが1の512個の畳み込み
カーネルで、
2層目はサイズが5×5でストライドが1の256カーネルを持っている。
• 各畳み込みの後、サイズが2×2でストライドが2のプーリング層を
持っている。
• 3層目は1024次元の全結合層になっている。
• すべての層は非線形のReLU関数を持っている。
• ルーティングの回数によって精度が変化していることから、
重複した画像のセグメンテーションにおいて、
カプセルがルーティングを行う重要性を強調している。
• 「Ba」 が 2014年に発表した「sequential attention model」は、
数字同士の重複が4%とかなりすくないかなり簡単なタスクで達成したが、
CapsNetは80%と高度に重なった数字のペアでカプセルの誤分類率は
5.0%を達成している。
結果 Method ルーディング回数 パラメータ数 誤り率(%)
Baseline(CNN) - 24.56M 8.1
CapsNet 1 11.36M 7.5
CapsNet 3 11.36M 5.2
• L:(l1,l2)はラベル、R(r1,r2)は復元目標を表している。
• 上の画像は入力画像で、下の画像は復元画像である。
• 復元画像は2つの数字を緑と赤で色分けしてある。
• 複雑な重複に対して綺麗に分類できている。
成功例
失敗例
• カプセルが予測を間違ってしまった例。
• それぞれの画像の右側は正しくできたとき、左側はカプセルが予測を
間違えたときになる。
• 入力画像の8と0の数字は人でもわかりにくい画像であった。
• カプセルは予測を間違えたが、間違った数字は正しく復元できている。
• 予測も復元もできなかった例。
• 復元の際にカプセルの出力した最も活性化した2つのベクトルに適合する
数字を発見できなかったことがわかる。
• 出力した2つのベクトルの差が大きいときに起こるのではないか。
• 復元できなかったほうは、もう片方は認識できるレベルではないが、2番
目に大きいベクトルだったため、選ばれていしまったのではないか。
失敗例
CIFAR10の検証
• 画像を24×24パッチで3回の反復ルーティングで学習された7個のモデル
を
組み合わせたカプセルモデルでテストを行う。
• それぞれのモデルは、RGBの3チャンネルで、64の異なる種類の
プライマリカプルを使用していることを除いては、MNISTに対して
使用したモデルと同じ。
• エラー率は10.6%を達成した。
• この数値は初めてCIFAR10 (Zeiler and Fergus [2013])を適用した時の
スタンダードなCNNが達成するものと同等である。
・論文より、CIFAR-10を合理的なサイズでCapsNetをモデル化するには
背景がかなり多様的であり、パフォーマンス低下の原因はそこにある。
smallNORB• でMNISTに対して使用するときにさっきのものと全く同じ
アーキテクチャで検証した。
smallNORB• データセットは96×96のグレースケールイメージから
構成されている。
最先端• の研究(Cire ̧san et al.[2011])と同等の2.7%の誤り率を達成した。
SmallNORBの検証
• より小さいネットワークにたった73257枚の画像で構成されている小さ
い訓練セットSVHN訓練させた。
• 初めの畳み込み層のチャンネル数を64に減らし、プライマリカプセル層を
166次元のカプセルに減らし、最後に8次元のカプセル層を持たせた。
• テストデータセットで4.3%の誤り率を達成した。
• SVHN(The Street View House Numbers )Dataset
SVHNの検証
まとめ
カプセルネットは
• 単純な画像に対してはCNNに比べて精度がいい。
• セグメンテーションすることに優れている。
• CIFAR-10のような背景が複雑な画像に対しては、まだ工夫が必要。
• CIFAR-10やMNISTは画像が小さいので大きく複雑な画像に対して
どのような結果になるのかわからない。
• 全体的にCNNを超えるには、まだまだ工夫が必要。
参考文献
• Dynamic Routing Between Caps
https://arxiv.org/abs/1710.09829

More Related Content

PPTX
Gmm勉強会
Hayato Ohya
 
PPTX
PRML第9章「混合モデルとEM」
Keisuke Sugawara
 
PDF
星野「調査観察データの統計科学」第3章
Shuyo Nakatani
 
PDF
強化学習その3
nishio
 
PDF
強化学習その2
nishio
 
PDF
強化学習その1
nishio
 
PDF
強化学習その4
nishio
 
PDF
Bayesian Efficient Multiple Kernel Learning
Junya Saito
 
Gmm勉強会
Hayato Ohya
 
PRML第9章「混合モデルとEM」
Keisuke Sugawara
 
星野「調査観察データの統計科学」第3章
Shuyo Nakatani
 
強化学習その3
nishio
 
強化学習その2
nishio
 
強化学習その1
nishio
 
強化学習その4
nishio
 
Bayesian Efficient Multiple Kernel Learning
Junya Saito
 

Similar to Dynamic Routing Between Capsules (20)

PDF
読書会 「トピックモデルによる統計的潜在意味解析」 第2回 3.2節 サンプリング近似法
健児 青木
 
PPTX
PRML第6章「カーネル法」
Keisuke Sugawara
 
PPTX
強束縛模型における多体電子状態の第2量子化表現
Kazu Ghalamkari
 
PPTX
超複素数
Horiguchi Shuhei
 
PDF
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
TakaakiYonekura
 
PDF
数を篩にかけてみよう(第11回ロマンティック数学ナイト)
崇之 禰寝
 
PDF
ELBO型VAEのダメなところ
KCS Keio Computer Society
 
PPTX
Prml 最尤推定からベイズ曲線フィッティング
takutori
 
PDF
表現論 ゼミ資料
HanpenRobot
 
PDF
行列計算アルゴリズム
Takuo Tachibana
 
PDF
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
Deep Learning JP
 
PDF
PRML復々習レーン#9 6.3-6.3.1
sleepy_yoshi
 
PDF
グラフニューラルネットワーク入門
ryosuke-kojima
 
PDF
Computing for Isogeny Kernel Problem by Groebner Basis
Yasu Math
 
PDF
暗号技術の実装と数学
MITSUNARI Shigeo
 
PPTX
これならわかる最適化数学8章_動的計画法
kenyanonaka
 
PDF
場の量子論
M M
 
PDF
スパースモデリングによる多次元信号・画像復元
Shogo Muramatsu
 
PDF
退化拡散項をもつ放物・放物型Keller--Segel系の解の有限時刻爆発について
Takahiro Hashira
 
PDF
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
Zansa
 
読書会 「トピックモデルによる統計的潜在意味解析」 第2回 3.2節 サンプリング近似法
健児 青木
 
PRML第6章「カーネル法」
Keisuke Sugawara
 
強束縛模型における多体電子状態の第2量子化表現
Kazu Ghalamkari
 
超複素数
Horiguchi Shuhei
 
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
TakaakiYonekura
 
数を篩にかけてみよう(第11回ロマンティック数学ナイト)
崇之 禰寝
 
ELBO型VAEのダメなところ
KCS Keio Computer Society
 
Prml 最尤推定からベイズ曲線フィッティング
takutori
 
表現論 ゼミ資料
HanpenRobot
 
行列計算アルゴリズム
Takuo Tachibana
 
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
Deep Learning JP
 
PRML復々習レーン#9 6.3-6.3.1
sleepy_yoshi
 
グラフニューラルネットワーク入門
ryosuke-kojima
 
Computing for Isogeny Kernel Problem by Groebner Basis
Yasu Math
 
暗号技術の実装と数学
MITSUNARI Shigeo
 
これならわかる最適化数学8章_動的計画法
kenyanonaka
 
場の量子論
M M
 
スパースモデリングによる多次元信号・画像復元
Shogo Muramatsu
 
退化拡散項をもつ放物・放物型Keller--Segel系の解の有限時刻爆発について
Takahiro Hashira
 
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
Zansa
 
Ad

More from yukihiro domae (9)

PPTX
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
yukihiro domae
 
PPTX
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
yukihiro domae
 
PPTX
Graph U-Net
yukihiro domae
 
PPTX
Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...
yukihiro domae
 
PPTX
Learning Depthwise Separable Graph Convolution from Data Manifold
yukihiro domae
 
PPTX
Texture-Aware Superpixel Segmentation
yukihiro domae
 
PPTX
Superpixel Sampling Networks
yukihiro domae
 
PPTX
Graph LSTM解説
yukihiro domae
 
PPTX
Graph convolution (スペクトルアプローチ)
yukihiro domae
 
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
yukihiro domae
 
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
yukihiro domae
 
Graph U-Net
yukihiro domae
 
Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...
yukihiro domae
 
Learning Depthwise Separable Graph Convolution from Data Manifold
yukihiro domae
 
Texture-Aware Superpixel Segmentation
yukihiro domae
 
Superpixel Sampling Networks
yukihiro domae
 
Graph LSTM解説
yukihiro domae
 
Graph convolution (スペクトルアプローチ)
yukihiro domae
 
Ad

Dynamic Routing Between Capsules