Dynamic Routing Between Capsules by S. Sabour, N. Frosst and G. - - PowerPoint PPT Presentation

dynamic routing between capsules
SMART_READER_LITE
LIVE PREVIEW

Dynamic Routing Between Capsules by S. Sabour, N. Frosst and G. - - PowerPoint PPT Presentation

Dynamic Routing Between Capsules by S. Sabour, N. Frosst and G. Hinton (NIPS 2017) presented by Karel Ha 27 th March 2018 Pattern Recognition and Computer Vision Reading Group Outline Motivation Capsule Routing by an Agreement Capsule


slide-1
SLIDE 1

Dynamic Routing Between Capsules

by S. Sabour, N. Frosst and G. Hinton (NIPS 2017)

presented by Karel Ha 27th March 2018

Pattern Recognition and Computer Vision Reading Group

slide-2
SLIDE 2

Outline

Motivation Capsule Routing by an Agreement Capsule Network Experiments Conclusion

1

slide-3
SLIDE 3

Motivation

slide-4
SLIDE 4

The pooling operation used in convolutional neural networks is a big mistake and the fact that it works so well is a disaster.

  • G. Hinton

http://condo.ca/wp-content/uploads/2017/03/ Vector-director-Institute-artificial-intelligence-Toronto-MaRS-Discovery-District-Hinton- ca_.jpg 1

slide-5
SLIDE 5

The pooling operation used in convolutional neural networks is a big mistake and the fact that it works so well is a disaster.

  • G. Hinton

[...] it makes much more sense to represent a pose as a small matrix that converts a vector of positional coordinates relative to the viewer into positional coordinates relative to the shape itself.

  • G. Hinton

http://condo.ca/wp-content/uploads/2017/03/ Vector-director-Institute-artificial-intelligence-Toronto-MaRS-Discovery-District-Hinton- ca_.jpg 1

slide-6
SLIDE 6

Part-Whole Geometric Relationships

“What is wrong with convolutional neural nets?”

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 2

slide-7
SLIDE 7

Part-Whole Geometric Relationships

“What is wrong with convolutional neural nets?” To a CNN (with MaxPool)...

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 2

slide-8
SLIDE 8

Part-Whole Geometric Relationships

“What is wrong with convolutional neural nets?” To a CNN (with MaxPool)...

  • ...both pictures are similar, since they both contain similar elements.

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 2

slide-9
SLIDE 9

Part-Whole Geometric Relationships

“What is wrong with convolutional neural nets?” To a CNN (with MaxPool)...

  • ...both pictures are similar, since they both contain similar elements.
  • ...a mere presence of objects can be a very strong indicator to consider a face in the image.

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 2

slide-10
SLIDE 10

Part-Whole Geometric Relationships

“What is wrong with convolutional neural nets?” To a CNN (with MaxPool)...

  • ...both pictures are similar, since they both contain similar elements.
  • ...a mere presence of objects can be a very strong indicator to consider a face in the image.
  • ...orientational and relative spatial relationships are not very important.

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 2

slide-11
SLIDE 11

Part-Whole Geometric Relationships

Scene Graphs from Computer Graphics

http://math.hws.edu/graphicsbook/c2/scene-graph.png 3

slide-12
SLIDE 12

Part-Whole Geometric Relationships

Scene Graphs from Computer Graphics ...takes into account relative positions of objects.

http://math.hws.edu/graphicsbook/c2/scene-graph.png 3

slide-13
SLIDE 13

Part-Whole Geometric Relationships

Scene Graphs from Computer Graphics ...takes into account relative positions of objects. The internal representation in computer memory:

http://math.hws.edu/graphicsbook/c2/scene-graph.png 3

slide-14
SLIDE 14

Part-Whole Geometric Relationships

Scene Graphs from Computer Graphics ...takes into account relative positions of objects. The internal representation in computer memory: a) arrays of geometrical objects

http://math.hws.edu/graphicsbook/c2/scene-graph.png 3

slide-15
SLIDE 15

Part-Whole Geometric Relationships

Scene Graphs from Computer Graphics ...takes into account relative positions of objects. The internal representation in computer memory: a) arrays of geometrical objects b) matrices representing their relative positions and orientations

http://math.hws.edu/graphicsbook/c2/scene-graph.png 3

slide-16
SLIDE 16

Part-Whole Geometric Relationships

Inverse (Computer) Graphics

https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2017/12/ CNN-Capsule-Networks-Edureka-442x300.png 4

slide-17
SLIDE 17

Part-Whole Geometric Relationships

Inverse (Computer) Graphics Inverse graphics:

https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2017/12/ CNN-Capsule-Networks-Edureka-442x300.png 4

slide-18
SLIDE 18

Part-Whole Geometric Relationships

Inverse (Computer) Graphics Inverse graphics:

  • from visual information received by eyes

https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2017/12/ CNN-Capsule-Networks-Edureka-442x300.png 4

slide-19
SLIDE 19

Part-Whole Geometric Relationships

Inverse (Computer) Graphics Inverse graphics:

  • from visual information received by eyes
  • deconstruct a hierarchical representation of the world around us

https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2017/12/ CNN-Capsule-Networks-Edureka-442x300.png 4

slide-20
SLIDE 20

Part-Whole Geometric Relationships

Inverse (Computer) Graphics Inverse graphics:

  • from visual information received by eyes
  • deconstruct a hierarchical representation of the world around us
  • and try to match it with already learned patterns and relationships stored in the brain

https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2017/12/ CNN-Capsule-Networks-Edureka-442x300.png 4

slide-21
SLIDE 21

Part-Whole Geometric Relationships

Inverse (Computer) Graphics Inverse graphics:

  • from visual information received by eyes
  • deconstruct a hierarchical representation of the world around us
  • and try to match it with already learned patterns and relationships stored in the brain
  • relationships between 3D objects using a “pose” (= translation plus rotation)

https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2017/12/ CNN-Capsule-Networks-Edureka-442x300.png 4

slide-22
SLIDE 22

Pose Equivariance and the Viewing Angle

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 5

slide-23
SLIDE 23

Pose Equivariance and the Viewing Angle

We have probably never seen these exact pictures, but we can still immediately recognize the object in it...

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 5

slide-24
SLIDE 24

Pose Equivariance and the Viewing Angle

We have probably never seen these exact pictures, but we can still immediately recognize the object in it...

  • internal representation in the brain: independent of the viewing angle

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 5

slide-25
SLIDE 25

Pose Equivariance and the Viewing Angle

We have probably never seen these exact pictures, but we can still immediately recognize the object in it...

  • internal representation in the brain: independent of the viewing angle
  • quite hard for a CNN: no built-in understanding of 3D space

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 5

slide-26
SLIDE 26

Pose Equivariance and the Viewing Angle

We have probably never seen these exact pictures, but we can still immediately recognize the object in it...

  • internal representation in the brain: independent of the viewing angle
  • quite hard for a CNN: no built-in understanding of 3D space
  • much easier for a CapsNet: these relationships are explicitly modeled

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 5

slide-27
SLIDE 27

Routing by an Agreement: High-Dimensional Coincidence

https://www.oreilly.com/ideas/introducing-capsule-networks 6

slide-28
SLIDE 28

Routing by an Agreement: High-Dimensional Coincidence

https://www.oreilly.com/ideas/introducing-capsule-networks 6

slide-29
SLIDE 29

Routing by an Agreement: High-Dimensional Coincidence

https://www.oreilly.com/ideas/introducing-capsule-networks 6

slide-30
SLIDE 30

Routing by an Agreement: Illustrative Overview

https://www.oreilly.com/ideas/introducing-capsule-networks 7

slide-31
SLIDE 31

Routing by an Agreement: Illustrative Overview

https://www.oreilly.com/ideas/introducing-capsule-networks 7

slide-32
SLIDE 32

Routing by an Agreement: Recognizing Ambiguity in Images

https://www.oreilly.com/ideas/introducing-capsule-networks 8

slide-33
SLIDE 33

Routing: Lower Levels Voting for Higher-Level Feature

(Sabour, Frosst and Hinton [2017]) 9

slide-34
SLIDE 34

How to do it? (mathematically)

9

slide-35
SLIDE 35

Capsule

slide-36
SLIDE 36

What Is a Capsule?

a group of neurons that:

perform some complicated internal computations on their

inputs

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-ii-how-capsules-work-153b6ade9f66 10

slide-37
SLIDE 37

What Is a Capsule?

a group of neurons that:

perform some complicated internal computations on their

inputs

encapsulate their results into a small vector of highly

informative outputs

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-ii-how-capsules-work-153b6ade9f66 10

slide-38
SLIDE 38

What Is a Capsule?

a group of neurons that:

perform some complicated internal computations on their

inputs

encapsulate their results into a small vector of highly

informative outputs

recognize an implicitly defined visual entity (over a limited

domain of viewing conditions and deformations)

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-ii-how-capsules-work-153b6ade9f66 10

slide-39
SLIDE 39

What Is a Capsule?

a group of neurons that:

perform some complicated internal computations on their

inputs

encapsulate their results into a small vector of highly

informative outputs

recognize an implicitly defined visual entity (over a limited

domain of viewing conditions and deformations)

encode the probability of the entity being present https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-ii-how-capsules-work-153b6ade9f66 10

slide-40
SLIDE 40

What Is a Capsule?

a group of neurons that:

perform some complicated internal computations on their

inputs

encapsulate their results into a small vector of highly

informative outputs

recognize an implicitly defined visual entity (over a limited

domain of viewing conditions and deformations)

encode the probability of the entity being present encode instantiation parameters

pose, lighting, deformation relative to entity’s (implicitly defined) canonical version

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-ii-how-capsules-work-153b6ade9f66 10

slide-41
SLIDE 41

Output As A Vector

https://www.oreilly.com/ideas/introducing-capsule-networks 11

slide-42
SLIDE 42

Output As A Vector

probability of presence: locally invariant

E.g. if 0, 3, 2, 0, 0 leads to 0, 1, 0, 0, then 0, 0, 3, 2, 0 should also lead to 0, 1, 0, 0.

https://www.oreilly.com/ideas/introducing-capsule-networks 11

slide-43
SLIDE 43

Output As A Vector

probability of presence: locally invariant

E.g. if 0, 3, 2, 0, 0 leads to 0, 1, 0, 0, then 0, 0, 3, 2, 0 should also lead to 0, 1, 0, 0.

instantiation parameters: equivariant

E.g. if 0, 3, 2, 0, 0 leads to 0, 1, 0, 0, then 0, 0, 3, 2, 0 might lead to 0, 0, 1, 0.

https://www.oreilly.com/ideas/introducing-capsule-networks 11

slide-44
SLIDE 44

Previous Version of Capsules

for illustration taken from “Transforming Auto-Encoders” (Hinton, Krizhevsky and Wang [2011])

(Hinton, Krizhevsky and Wang [2011]) 12

slide-45
SLIDE 45

Previous Version of Capsules

for illustration taken from “Transforming Auto-Encoders” (Hinton, Krizhevsky and Wang [2011]) three capsules of a transforming auto-encoder (that models translation)

(Hinton, Krizhevsky and Wang [2011]) 12

slide-46
SLIDE 46

Capsule’s Vector Flow

https://cdn-images-1.medium.com/max/1250/1*GbmQ2X9NQoGuJ1M-EOD67g.png 13

slide-47
SLIDE 47

Capsule’s Vector Flow

https://cdn-images-1.medium.com/max/1250/1*GbmQ2X9NQoGuJ1M-EOD67g.png 13

slide-48
SLIDE 48

Capsule’s Vector Flow

Note: no bias (included in affine transformation matrices Wij ’s)

https://cdn-images-1.medium.com/max/1250/1*GbmQ2X9NQoGuJ1M-EOD67g.png 13

slide-49
SLIDE 49

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

slide-50
SLIDE 50

Routing by an Agreement

slide-51
SLIDE 51

Capsule Schema with Routing

(Sabour, Frosst and Hinton [2017]) 14

slide-52
SLIDE 52

Routing Softmax

cij = exp(bij)

  • k exp(bik)

(1)

(Sabour, Frosst and Hinton [2017]) 15

slide-53
SLIDE 53

Prediction Vectors

ˆ uj|i = Wijui (2)

(Sabour, Frosst and Hinton [2017]) 16

slide-54
SLIDE 54

Total Input

sj =

  • i

cijˆ uj|i (3)

(Sabour, Frosst and Hinton [2017]) 17

slide-55
SLIDE 55

Squashing: (vector) non-linearity

vj = ||sj||2 1 + ||sj||2 sj ||sj|| (4)

(Sabour, Frosst and Hinton [2017]) 18

slide-56
SLIDE 56

Squashing: (vector) non-linearity

vj = ||sj||2 1 + ||sj||2 sj ||sj|| (4)

(Sabour, Frosst and Hinton [2017]) 18

slide-57
SLIDE 57

Squashing: Plot for 1-D input

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-ii-how-capsules-work-153b6ade9f66 19

slide-58
SLIDE 58

Squashing: Plot for 1-D input

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-ii-how-capsules-work-153b6ade9f66 19

slide-59
SLIDE 59

Routing Algorithm

(Sabour, Frosst and Hinton [2017]) 20

slide-60
SLIDE 60

Routing Algorithm

Algorithm Dynamic Routing between Capsules

1: procedure Routing(ˆ

uj|i, r, l) (Sabour, Frosst and Hinton [2017]) 20

slide-61
SLIDE 61

Routing Algorithm

Algorithm Dynamic Routing between Capsules

1: procedure Routing(ˆ

uj|i, r, l)

2:

for all capsule i in layer l and capsule j in layer (l + 1): bij ← 0. (Sabour, Frosst and Hinton [2017]) 20

slide-62
SLIDE 62

Routing Algorithm

Algorithm Dynamic Routing between Capsules

1: procedure Routing(ˆ

uj|i, r, l)

2:

for all capsule i in layer l and capsule j in layer (l + 1): bij ← 0.

3:

for r iterations do (Sabour, Frosst and Hinton [2017]) 20

slide-63
SLIDE 63

Routing Algorithm

Algorithm Dynamic Routing between Capsules

1: procedure Routing(ˆ

uj|i, r, l)

2:

for all capsule i in layer l and capsule j in layer (l + 1): bij ← 0.

3:

for r iterations do

4:

for all capsule i in layer l: ci ← softmax(bi) ⊲ softmax from Eq. 1 (Sabour, Frosst and Hinton [2017]) 20

slide-64
SLIDE 64

Routing Algorithm

Algorithm Dynamic Routing between Capsules

1: procedure Routing(ˆ

uj|i, r, l)

2:

for all capsule i in layer l and capsule j in layer (l + 1): bij ← 0.

3:

for r iterations do

4:

for all capsule i in layer l: ci ← softmax(bi) ⊲ softmax from Eq. 1

5:

for all capsule j in layer (l + 1): sj ←

i cijˆ

uj|i ⊲ total input from Eq. 3 (Sabour, Frosst and Hinton [2017]) 20

slide-65
SLIDE 65

Routing Algorithm

Algorithm Dynamic Routing between Capsules

1: procedure Routing(ˆ

uj|i, r, l)

2:

for all capsule i in layer l and capsule j in layer (l + 1): bij ← 0.

3:

for r iterations do

4:

for all capsule i in layer l: ci ← softmax(bi) ⊲ softmax from Eq. 1

5:

for all capsule j in layer (l + 1): sj ←

i cijˆ

uj|i ⊲ total input from Eq. 3

6:

for all capsule j in layer (l + 1): vj ← squash(sj) ⊲ squash from Eq. 4 (Sabour, Frosst and Hinton [2017]) 20

slide-66
SLIDE 66

Routing Algorithm

Algorithm Dynamic Routing between Capsules

1: procedure Routing(ˆ

uj|i, r, l)

2:

for all capsule i in layer l and capsule j in layer (l + 1): bij ← 0.

3:

for r iterations do

4:

for all capsule i in layer l: ci ← softmax(bi) ⊲ softmax from Eq. 1

5:

for all capsule j in layer (l + 1): sj ←

i cijˆ

uj|i ⊲ total input from Eq. 3

6:

for all capsule j in layer (l + 1): vj ← squash(sj) ⊲ squash from Eq. 4

7:

for all capsule i in layer l and capsule j in layer (l + 1): bij ← bij + ˆ uj|i.vj (Sabour, Frosst and Hinton [2017]) 20

slide-67
SLIDE 67

Routing Algorithm

Algorithm Dynamic Routing between Capsules

1: procedure Routing(ˆ

uj|i, r, l)

2:

for all capsule i in layer l and capsule j in layer (l + 1): bij ← 0.

3:

for r iterations do

4:

for all capsule i in layer l: ci ← softmax(bi) ⊲ softmax from Eq. 1

5:

for all capsule j in layer (l + 1): sj ←

i cijˆ

uj|i ⊲ total input from Eq. 3

6:

for all capsule j in layer (l + 1): vj ← squash(sj) ⊲ squash from Eq. 4

7:

for all capsule i in layer l and capsule j in layer (l + 1): bij ← bij + ˆ uj|i.vj return vj (Sabour, Frosst and Hinton [2017]) 20

slide-68
SLIDE 68

https://youtu.be/rTawFwUvnLE?t=36m39s 20

slide-69
SLIDE 69

Average Change of Each Routing Logit bij

(by each routing iteration during training)

(Sabour, Frosst and Hinton [2017]) 21

slide-70
SLIDE 70

Average Change of Each Routing Logit bij

(by each routing iteration during training)

(Sabour, Frosst and Hinton [2017]) 21

slide-71
SLIDE 71

Log Scale of Final Differences

(Sabour, Frosst and Hinton [2017]) 22

slide-72
SLIDE 72

Training Loss of CapsNet on CIFAR10

(batch size of 128)

The CapsNet with 3 routing iterations optimizes the loss faster and converges to a lower loss at the end.

(Sabour, Frosst and Hinton [2017]) 23

slide-73
SLIDE 73

Training Loss of CapsNet on CIFAR10

(batch size of 128)

The CapsNet with 3 routing iterations optimizes the loss faster and converges to a lower loss at the end.

(Sabour, Frosst and Hinton [2017]) 23

slide-74
SLIDE 74

Training Loss of CapsNet on CIFAR10

(batch size of 128)

The CapsNet with 3 routing iterations optimizes the loss faster and converges to a lower loss at the end.

(Sabour, Frosst and Hinton [2017]) 23

slide-75
SLIDE 75

Capsule Network

slide-76
SLIDE 76

Architecture: Encoder-Decoder

encoder: (Sabour, Frosst and Hinton [2017]) 24

slide-77
SLIDE 77

Architecture: Encoder-Decoder

encoder: decoder: (Sabour, Frosst and Hinton [2017]) 24

slide-78
SLIDE 78

Encoder: CapsNet with 3 Layers

(Sabour, Frosst and Hinton [2017]) 25

slide-79
SLIDE 79

Encoder: CapsNet with 3 Layers

input: 28 by 28 MNIST digit image (Sabour, Frosst and Hinton [2017]) 25

slide-80
SLIDE 80

Encoder: CapsNet with 3 Layers

input: 28 by 28 MNIST digit image

  • utput: 16-dimensional vector of instantiation parameters

(Sabour, Frosst and Hinton [2017]) 25

slide-81
SLIDE 81

Encoder Layer 1: (Standard) Convolutional Layer

(Sabour, Frosst and Hinton [2017]) 26

slide-82
SLIDE 82

Encoder Layer 1: (Standard) Convolutional Layer

input: 28 × 28 image (one color channel) (Sabour, Frosst and Hinton [2017]) 26

slide-83
SLIDE 83

Encoder Layer 1: (Standard) Convolutional Layer

input: 28 × 28 image (one color channel)

  • utput: 20 × 20 × 256

(Sabour, Frosst and Hinton [2017]) 26

slide-84
SLIDE 84

Encoder Layer 1: (Standard) Convolutional Layer

input: 28 × 28 image (one color channel)

  • utput: 20 × 20 × 256

256 kernels with size of 9 × 9 × 1 (Sabour, Frosst and Hinton [2017]) 26

slide-85
SLIDE 85

Encoder Layer 1: (Standard) Convolutional Layer

input: 28 × 28 image (one color channel)

  • utput: 20 × 20 × 256

256 kernels with size of 9 × 9 × 1 stride 1 (Sabour, Frosst and Hinton [2017]) 26

slide-86
SLIDE 86

Encoder Layer 1: (Standard) Convolutional Layer

input: 28 × 28 image (one color channel)

  • utput: 20 × 20 × 256

256 kernels with size of 9 × 9 × 1 stride 1 ReLU activation (Sabour, Frosst and Hinton [2017]) 26

slide-87
SLIDE 87

Encoder Layer 2: PrimaryCaps

(Sabour, Frosst and Hinton [2017]) 27

slide-88
SLIDE 88

Encoder Layer 2: PrimaryCaps

input: 20 × 20 × 256

basic features detected by the convolutional layer

(Sabour, Frosst and Hinton [2017]) 27

slide-89
SLIDE 89

Encoder Layer 2: PrimaryCaps

input: 20 × 20 × 256

basic features detected by the convolutional layer

  • utput: 6 × 6 × 8 × 32

vector (activation) outputs of primary capsules

(Sabour, Frosst and Hinton [2017]) 27

slide-90
SLIDE 90

Encoder Layer 2: PrimaryCaps

input: 20 × 20 × 256

basic features detected by the convolutional layer

  • utput: 6 × 6 × 8 × 32

vector (activation) outputs of primary capsules

32 primary capsules (Sabour, Frosst and Hinton [2017]) 27

slide-91
SLIDE 91

Encoder Layer 2: PrimaryCaps

input: 20 × 20 × 256

basic features detected by the convolutional layer

  • utput: 6 × 6 × 8 × 32

vector (activation) outputs of primary capsules

32 primary capsules each applies eight 9 × 9 × 256 convolutional kernels

to the 20 × 20 × 256 input to produce 6 × 6 × 8 output

(Sabour, Frosst and Hinton [2017]) 27

slide-92
SLIDE 92

Encoder Layer 3: DigitCaps

(Sabour, Frosst and Hinton [2017]) 28

slide-93
SLIDE 93

Encoder Layer 3: DigitCaps

input: 6 × 6 × 8 × 32

(6 × 6 × 32)-many 8-dimensional vector activations

(Sabour, Frosst and Hinton [2017]) 28

slide-94
SLIDE 94

Encoder Layer 3: DigitCaps

input: 6 × 6 × 8 × 32

(6 × 6 × 32)-many 8-dimensional vector activations

  • utput: 16 × 10

(Sabour, Frosst and Hinton [2017]) 28

slide-95
SLIDE 95

Encoder Layer 3: DigitCaps

input: 6 × 6 × 8 × 32

(6 × 6 × 32)-many 8-dimensional vector activations

  • utput: 16 × 10

10 digit capsules (Sabour, Frosst and Hinton [2017]) 28

slide-96
SLIDE 96

Encoder Layer 3: DigitCaps

input: 6 × 6 × 8 × 32

(6 × 6 × 32)-many 8-dimensional vector activations

  • utput: 16 × 10

10 digit capsules input vectors gets their own 8 × 16 weight matrix Wij

that maps 8-dimensional input space to the 16-dimensional capsule output space

(Sabour, Frosst and Hinton [2017]) 28

slide-97
SLIDE 97

Margin Loss

for a Digit Existence

https://medium.com/@pechyonkin/part-iv-capsnet-architecture-6a64422f7dce 29

slide-98
SLIDE 98

Margin Loss

to Train the Whole Encoder

In other words, each DigitCap c has loss:

(Sabour, Frosst and Hinton [2017]) 30

slide-99
SLIDE 99

Margin Loss

to Train the Whole Encoder

In other words, each DigitCap c has loss: Lc =

  • max(0, m+ − ||vc||)2

iff a digit of class c is present, λ max(0, ||vc|| − m−)2

  • therwise.

(Sabour, Frosst and Hinton [2017]) 30

slide-100
SLIDE 100

Margin Loss

to Train the Whole Encoder

In other words, each DigitCap c has loss: Lc =

  • max(0, m+ − ||vc||)2

iff a digit of class c is present, λ max(0, ||vc|| − m−)2

  • therwise.

m+ = 0.9:

The loss is 0 iff the correct DigitCap predicts the correct label with probability ≥ 0.9.

(Sabour, Frosst and Hinton [2017]) 30

slide-101
SLIDE 101

Margin Loss

to Train the Whole Encoder

In other words, each DigitCap c has loss: Lc =

  • max(0, m+ − ||vc||)2

iff a digit of class c is present, λ max(0, ||vc|| − m−)2

  • therwise.

m+ = 0.9:

The loss is 0 iff the correct DigitCap predicts the correct label with probability ≥ 0.9.

m− = 0.1:

The loss is 0 iff the mismatching DigitCap predicts an incorrect label with probability ≤ 0.1.

(Sabour, Frosst and Hinton [2017]) 30

slide-102
SLIDE 102

Margin Loss

to Train the Whole Encoder

In other words, each DigitCap c has loss: Lc =

  • max(0, m+ − ||vc||)2

iff a digit of class c is present, λ max(0, ||vc|| − m−)2

  • therwise.

m+ = 0.9:

The loss is 0 iff the correct DigitCap predicts the correct label with probability ≥ 0.9.

m− = 0.1:

The loss is 0 iff the mismatching DigitCap predicts an incorrect label with probability ≤ 0.1.

λ = 0.5 is down-weighting of the loss for absent digit classes.

It stops the initial learning from shrinking the lengths of the activity vectors.

(Sabour, Frosst and Hinton [2017]) 30

slide-103
SLIDE 103

Margin Loss

to Train the Whole Encoder

In other words, each DigitCap c has loss: Lc =

  • max(0, m+ − ||vc||)2

iff a digit of class c is present, λ max(0, ||vc|| − m−)2

  • therwise.

m+ = 0.9:

The loss is 0 iff the correct DigitCap predicts the correct label with probability ≥ 0.9.

m− = 0.1:

The loss is 0 iff the mismatching DigitCap predicts an incorrect label with probability ≤ 0.1.

λ = 0.5 is down-weighting of the loss for absent digit classes.

It stops the initial learning from shrinking the lengths of the activity vectors.

Squares?

Because there are L2 norms in the loss function?

(Sabour, Frosst and Hinton [2017]) 30

slide-104
SLIDE 104

Margin Loss

to Train the Whole Encoder

In other words, each DigitCap c has loss: Lc =

  • max(0, m+ − ||vc||)2

iff a digit of class c is present, λ max(0, ||vc|| − m−)2

  • therwise.

m+ = 0.9:

The loss is 0 iff the correct DigitCap predicts the correct label with probability ≥ 0.9.

m− = 0.1:

The loss is 0 iff the mismatching DigitCap predicts an incorrect label with probability ≤ 0.1.

λ = 0.5 is down-weighting of the loss for absent digit classes.

It stops the initial learning from shrinking the lengths of the activity vectors.

Squares?

Because there are L2 norms in the loss function?

The total loss is the sum of the losses of all digit capsules. (Sabour, Frosst and Hinton [2017]) 30

slide-105
SLIDE 105

Margin Loss

Function Value for Positive and for Negative Class

  • For the correct DigitCap, the loss is 0 iff it predicts the correct label with probability ≥ 0.9.
  • For the mismatching DigitCap, the loss is 0 iff it predicts an incorrect label with probability ≤ 0.1.

https://medium.com/@pechyonkin/part-iv-capsnet-architecture-6a64422f7dce 31

slide-106
SLIDE 106

Margin Loss

Function Value for Positive and for Negative Class

  • For the correct DigitCap, the loss is 0 iff it predicts the correct label with probability ≥ 0.9.
  • For the mismatching DigitCap, the loss is 0 iff it predicts an incorrect label with probability ≤ 0.1.

https://medium.com/@pechyonkin/part-iv-capsnet-architecture-6a64422f7dce 31

slide-107
SLIDE 107

Decoder: Regularization of CapsNets

(Sabour, Frosst and Hinton [2017]) 32

slide-108
SLIDE 108

Decoder: Regularization of CapsNets

Decoder is used for regularization:

decodes input from DigitCaps

to recreate an image of a (28 × 28)-pixels digit

(Sabour, Frosst and Hinton [2017]) 32

slide-109
SLIDE 109

Decoder: Regularization of CapsNets

Decoder is used for regularization:

decodes input from DigitCaps

to recreate an image of a (28 × 28)-pixels digit

with the loss function being the Euclidean distance (Sabour, Frosst and Hinton [2017]) 32

slide-110
SLIDE 110

Decoder: Regularization of CapsNets

Decoder is used for regularization:

decodes input from DigitCaps

to recreate an image of a (28 × 28)-pixels digit

with the loss function being the Euclidean distance ignores the negative classes (Sabour, Frosst and Hinton [2017]) 32

slide-111
SLIDE 111

Decoder: Regularization of CapsNets

Decoder is used for regularization:

decodes input from DigitCaps

to recreate an image of a (28 × 28)-pixels digit

with the loss function being the Euclidean distance ignores the negative classes forces capsules to learn features useful for reconstruction (Sabour, Frosst and Hinton [2017]) 32

slide-112
SLIDE 112

Decoder: 3 Fully Connected Layers

(Sabour, Frosst and Hinton [2017]) 33

slide-113
SLIDE 113

Decoder: 3 Fully Connected Layers

Layer 4: from 16 × 10 input to 512 output, ReLU activations (Sabour, Frosst and Hinton [2017]) 33

slide-114
SLIDE 114

Decoder: 3 Fully Connected Layers

Layer 4: from 16 × 10 input to 512 output, ReLU activations Layer 5: from 512 input to 1024 output, ReLU activations (Sabour, Frosst and Hinton [2017]) 33

slide-115
SLIDE 115

Decoder: 3 Fully Connected Layers

Layer 4: from 16 × 10 input to 512 output, ReLU activations Layer 5: from 512 input to 1024 output, ReLU activations Layer 6: from 1024 input to 784 output, sigmoid activations

(after reshaping it produces a (28 × 28)-pixels decoded image)

(Sabour, Frosst and Hinton [2017]) 33

slide-116
SLIDE 116

Architecture: Summary

https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2017/12/ Capsule-Neural-Network-Architecture-Capsule-Networks-Edureka.png 34

slide-117
SLIDE 117

Experiments

slide-118
SLIDE 118

MNIST Reconstructions (CapsNet, 3 routing iterations)

Label: 8 5 5 5 Prediction: 8 5 3 3 Reconstruction: 8 5 5 3 Input: Output:

(Sabour, Frosst and Hinton [2017]) 35

slide-119
SLIDE 119

Dimension Perturbations

  • ne of the 16 dimensions, by intervals of 0.05 in the range

[−0.25, 0.25]:

(Sabour, Frosst and Hinton [2017]) 36

slide-120
SLIDE 120

Dimension Perturbations

  • ne of the 16 dimensions, by intervals of 0.05 in the range

[−0.25, 0.25]: Interpretation Reconstructions after perturbing “scale and thickness” “localized part”

(Sabour, Frosst and Hinton [2017]) 36

slide-121
SLIDE 121

Dimension Perturbations

  • ne of the 16 dimensions, by intervals of 0.05 in the range

[−0.25, 0.25]: Interpretation Reconstructions after perturbing “scale and thickness” “localized part” “stroke thickness” “localized skew”

(Sabour, Frosst and Hinton [2017]) 36

slide-122
SLIDE 122

Dimension Perturbations

  • ne of the 16 dimensions, by intervals of 0.05 in the range

[−0.25, 0.25]: Interpretation Reconstructions after perturbing “scale and thickness” “localized part” “stroke thickness” “localized skew” “width and translation” “localized part”

(Sabour, Frosst and Hinton [2017]) 36

slide-123
SLIDE 123

Dimension Perturbations: Latent Codes of 0 and 1

rows: DigitCaps dimensions columns (from left to right): + {−0.25, −0.2, −0.15, −0.1, −0.05, 0, 0.05, 0.1, 0.15, 0.2, 0.25}

https://github.com/XifengGuo/CapsNet-Keras 37

slide-124
SLIDE 124

Dimension Perturbations: Latent Codes of 2 and 3

rows: DigitCaps dimensions columns (from left to right): + {−0.25, −0.2, −0.15, −0.1, −0.05, 0, 0.05, 0.1, 0.15, 0.2, 0.25}

https://github.com/XifengGuo/CapsNet-Keras 38

slide-125
SLIDE 125

Dimension Perturbations: Latent Codes of 4 and 5

rows: DigitCaps dimensions columns (from left to right): + {−0.25, −0.2, −0.15, −0.1, −0.05, 0, 0.05, 0.1, 0.15, 0.2, 0.25}

https://github.com/XifengGuo/CapsNet-Keras 39

slide-126
SLIDE 126

Dimension Perturbations: Latent Codes of 6 and 7

rows: DigitCaps dimensions columns (from left to right): + {−0.25, −0.2, −0.15, −0.1, −0.05, 0, 0.05, 0.1, 0.15, 0.2, 0.25}

https://github.com/XifengGuo/CapsNet-Keras 40

slide-127
SLIDE 127

Dimension Perturbations: Latent Codes of 8 and 9

rows: DigitCaps dimensions columns (from left to right): + {−0.25, −0.2, −0.15, −0.1, −0.05, 0, 0.05, 0.1, 0.15, 0.2, 0.25}

https://github.com/XifengGuo/CapsNet-Keras 41

slide-128
SLIDE 128

MultiMNIST Reconstructions (CapsNet, 3 routing iterations)

R:(2, 7) R:(6, 0) R:(6, 8) R:(7, 1) L:(2, 7) L:(6, 0) L:(6, 8) L:(7, 1)

(Sabour, Frosst and Hinton [2017]) 42

slide-129
SLIDE 129

MultiMNIST Reconstructions (CapsNet, 3 routing iterations)

R:(2, 7) R:(6, 0) R:(6, 8) R:(7, 1) L:(2, 7) L:(6, 0) L:(6, 8) L:(7, 1) *R:(5, 7) *R:(2, 3) R:(2, 8) R:P:(2, 7) L:(5, 0) L:(4, 3) L:(2, 8) L:(2, 8)

(Sabour, Frosst and Hinton [2017]) 42

slide-130
SLIDE 130

MultiMNIST Reconstructions (CapsNet, 3 routing iterations)

R:(8, 7) R:(9, 4) R:(9, 5) R:(8, 4) L:(8, 7) L:(9, 4) L:(9, 5) L:(8, 4)

(Sabour, Frosst and Hinton [2017]) 43

slide-131
SLIDE 131

MultiMNIST Reconstructions (CapsNet, 3 routing iterations)

R:(8, 7) R:(9, 4) R:(9, 5) R:(8, 4) L:(8, 7) L:(9, 4) L:(9, 5) L:(8, 4) *R:(0, 8) *R:(1, 6) R:(4, 9) R:P:(4, 0) L:(1, 8) L:(7, 6) L:(4, 9) L:(4, 9)

(Sabour, Frosst and Hinton [2017]) 43

slide-132
SLIDE 132

Results on MNIST and MultiMNIST

CapsNet classification test accuracy:

(Sabour, Frosst and Hinton [2017]) 44

slide-133
SLIDE 133

Results on MNIST and MultiMNIST

CapsNet classification test accuracy: Method Routing Reconstruction MNIST (%) MultiMNIST (%) Baseline

  • 0.39

8.1 CapsNet 1 no 0.34±0.032

  • CapsNet

1 yes 0.29±0.011 7.5 CapsNet 3 no 0.35±0.036

  • CapsNet

3 yes 0.25±0.005 5.2

(The MNIST average and standard deviation results are reported from 3 trials.)

(Sabour, Frosst and Hinton [2017]) 44

slide-134
SLIDE 134

Results on Other Datasets

CIFAR10

10.6% test error (Sabour, Frosst and Hinton [2017]) 45

slide-135
SLIDE 135

Results on Other Datasets

CIFAR10

10.6% test error ensemble of 7 models (Sabour, Frosst and Hinton [2017]) 45

slide-136
SLIDE 136

Results on Other Datasets

CIFAR10

10.6% test error ensemble of 7 models 3 routing iterations (Sabour, Frosst and Hinton [2017]) 45

slide-137
SLIDE 137

Results on Other Datasets

CIFAR10

10.6% test error ensemble of 7 models 3 routing iterations 24 × 24 patches of the image (Sabour, Frosst and Hinton [2017]) 45

slide-138
SLIDE 138

Results on Other Datasets

CIFAR10

10.6% test error ensemble of 7 models 3 routing iterations 24 × 24 patches of the image about what standard convolutional nets achieved when they

were first applied to CIFAR10 (Zeiler and Fergus [2013])

(Sabour, Frosst and Hinton [2017]) 45

slide-139
SLIDE 139

Conclusion

slide-140
SLIDE 140

Benefits:

a new building block usable in deep learning to better model

hierarchical relationships

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 46

slide-141
SLIDE 141

Benefits:

a new building block usable in deep learning to better model

hierarchical relationships

representations similar to scene graphs in computer graphics https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 46

slide-142
SLIDE 142

Benefits:

a new building block usable in deep learning to better model

hierarchical relationships

representations similar to scene graphs in computer graphics no algorithm to implement and train a capsule network: https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 46

slide-143
SLIDE 143

Benefits:

a new building block usable in deep learning to better model

hierarchical relationships

representations similar to scene graphs in computer graphics no algorithm to implement and train a capsule network:

  • now dynamic routing algorithm

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 46

slide-144
SLIDE 144

Benefits:

a new building block usable in deep learning to better model

hierarchical relationships

representations similar to scene graphs in computer graphics no algorithm to implement and train a capsule network:

  • now dynamic routing algorithm
  • ne of the reasons: computers not powerful enough in the pre-GPU-based era

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 46

slide-145
SLIDE 145

Benefits:

a new building block usable in deep learning to better model

hierarchical relationships

representations similar to scene graphs in computer graphics no algorithm to implement and train a capsule network:

  • now dynamic routing algorithm
  • ne of the reasons: computers not powerful enough in the pre-GPU-based era

capable of learning to achieve state-of-the art performance

by only using a fraction of the data compared to CNN

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 46

slide-146
SLIDE 146

Benefits:

a new building block usable in deep learning to better model

hierarchical relationships

representations similar to scene graphs in computer graphics no algorithm to implement and train a capsule network:

  • now dynamic routing algorithm
  • ne of the reasons: computers not powerful enough in the pre-GPU-based era

capable of learning to achieve state-of-the art performance

by only using a fraction of the data compared to CNN

  • task of telling digits apart: the human brain needs a couple of dozens of examples (hundreds at

most).

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 46

slide-147
SLIDE 147

Benefits:

a new building block usable in deep learning to better model

hierarchical relationships

representations similar to scene graphs in computer graphics no algorithm to implement and train a capsule network:

  • now dynamic routing algorithm
  • ne of the reasons: computers not powerful enough in the pre-GPU-based era

capable of learning to achieve state-of-the art performance

by only using a fraction of the data compared to CNN

  • task of telling digits apart: the human brain needs a couple of dozens of examples (hundreds at

most).

  • On the other hand, CNNs typically need tens of thousands of them.

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 46

slide-148
SLIDE 148

Benefits:

a new building block usable in deep learning to better model

hierarchical relationships

representations similar to scene graphs in computer graphics no algorithm to implement and train a capsule network:

  • now dynamic routing algorithm
  • ne of the reasons: computers not powerful enough in the pre-GPU-based era

capable of learning to achieve state-of-the art performance

by only using a fraction of the data compared to CNN

  • task of telling digits apart: the human brain needs a couple of dozens of examples (hundreds at

most).

  • On the other hand, CNNs typically need tens of thousands of them.

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 46

slide-149
SLIDE 149

Benefits:

a new building block usable in deep learning to better model

hierarchical relationships

representations similar to scene graphs in computer graphics no algorithm to implement and train a capsule network:

  • now dynamic routing algorithm
  • ne of the reasons: computers not powerful enough in the pre-GPU-based era

capable of learning to achieve state-of-the art performance

by only using a fraction of the data compared to CNN

  • task of telling digits apart: the human brain needs a couple of dozens of examples (hundreds at

most).

  • On the other hand, CNNs typically need tens of thousands of them.

Downsides:

current implementations: much slower than other modern

deep learning models

https://medium.com/ai-theory-practice-business/ understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b 46

slide-150
SLIDE 150

Thank you! Questions?

46

slide-151
SLIDE 151

Backup Slides

slide-152
SLIDE 152

Results on Other Datasets

smallNORB (LeCun et al. [2004])

2.7% test error (Sabour, Frosst and Hinton [2017])

slide-153
SLIDE 153

Results on Other Datasets

smallNORB (LeCun et al. [2004])

2.7% test error 96 × 96 stereo grey-scale images

resized to 48 × 48; during training processed random 32 × 32 crops; during test the central 32 × 32 patch

(Sabour, Frosst and Hinton [2017])

slide-154
SLIDE 154

Results on Other Datasets

smallNORB (LeCun et al. [2004])

2.7% test error 96 × 96 stereo grey-scale images

resized to 48 × 48; during training processed random 32 × 32 crops; during test the central 32 × 32 patch

same CapsNet architecture as for MNIST (Sabour, Frosst and Hinton [2017])

slide-155
SLIDE 155

Results on Other Datasets

smallNORB (LeCun et al. [2004])

2.7% test error 96 × 96 stereo grey-scale images

resized to 48 × 48; during training processed random 32 × 32 crops; during test the central 32 × 32 patch

same CapsNet architecture as for MNIST

  • n-par with the state-of-the-art (Ciresan et al. [2011])

(Sabour, Frosst and Hinton [2017])

slide-156
SLIDE 156

Results on Other Datasets

SVHN (Netzer et al. [2011])

4.3% test error (Sabour, Frosst and Hinton [2017])

slide-157
SLIDE 157

Results on Other Datasets

SVHN (Netzer et al. [2011])

4.3% test error

  • nly 73257 images!

(Sabour, Frosst and Hinton [2017])

slide-158
SLIDE 158

Results on Other Datasets

SVHN (Netzer et al. [2011])

4.3% test error

  • nly 73257 images!

the number of first convolutional layer channels reduced to 64 (Sabour, Frosst and Hinton [2017])

slide-159
SLIDE 159

Results on Other Datasets

SVHN (Netzer et al. [2011])

4.3% test error

  • nly 73257 images!

the number of first convolutional layer channels reduced to 64 the primary capsule layer: to 16 6D-capsules (Sabour, Frosst and Hinton [2017])

slide-160
SLIDE 160

Results on Other Datasets

SVHN (Netzer et al. [2011])

4.3% test error

  • nly 73257 images!

the number of first convolutional layer channels reduced to 64 the primary capsule layer: to 16 6D-capsules final capsule layer: 8D-capsules (Sabour, Frosst and Hinton [2017])

slide-161
SLIDE 161

Further Reading i

slide-162
SLIDE 162

References i