Convolutional Neural Networks�(CNN)
Convolution
2
Convolution
3
1D Convolution
4
Source: Dr. Francois Fleuret at EPFL
1 | 3 | 2 | 3 | 0 | -1 | 1 | 2 | 2 | 1 |
1 | 3 | 0 | -1 |
Input
Kernel
Output
|
L = W-w+1
7 |
W
w
1D Convolution
5
Source: Dr. Francois Fleuret at EPFL
1 | 3 | 2 | 3 | 0 | -1 | 1 | 2 | 2 | 1 |
1 | 3 | 0 | -1 |
Input
Kernel
Output
|
L = W-w+1
7 |
9 |
W
w
1D Convolution
6
Source: Dr. Francois Fleuret at EPFL
1 | 3 | 2 | 3 | 0 | -1 | 1 | 2 | 2 | 1 |
1 | 3 | 0 | -1 |
w
Input
Kernel
Output
|
L = W-w+1
7 |
9 |
12 |
2 |
-1 |
0 |
6 |
W
Example: 1D Convolution
7
De-noising a Piecewise Smooth Signal
8
De-noising a Piecewise Smooth Signal
9
Edge Detection
10
Smoothing and Detection of Abrupt Changes
11
Images
12
Images Are Numbers
13
Source: 6.S191 Intro. to Deep Learning at MIT
Colored Images
14
Original image
R
G
B
Grayscale image
2D Convolution
15
Convolution on Image (= Convolution in 2D)
16
Image
Kernel
Output
Convolution on Image (= Convolution in 2D)
17
image
Kernel
Feature Map
Convolution on Image
18
Kernel
Convolution on Image
19
Kernel
Convolution on Image
20
Kernel
Convolution on Image
21
Kernel
Convolution on Image
22
Kernel
Convolution on Image
23
Kernel
Convolution on Image
24
Kernel
Kernel
Convolution on Image
25
Kernel
Kernel
Convolution on Image
26
How to Find the Right Kernels
27
Learning Visual Features
28
Image Classification
29
ANN for Object Classification in Image
30
bird
Fully Connected Neural Network (= ANN)
31
Source: 6.S191 Intro. to Deep Learning at MIT
Convolution Mask + Neural Network
32
Fully connected
Locality
33
Locality
Fully connected
Locally connected
Locality
34
Locality
Fully connected
Locally connected
Weight Sharing
Convolution
Locality
35
Locality
Fully connected
Locally connected
Weight Sharing
Convolution
Locality
36
Locality
Fully connected
Locally connected
Weight Sharing
Convolution
Locality
37
Locality
Fully connected
Locally connected
Weight Sharing
Convolution
Convolution for Image Classification
38
Convolution
Convolution + Neural Network
39
Convolution
More on Convolution of CNN
40
Multiple Filters (or Kernels)
41
Multiple Channels
42
Source: Dr. Francois Fleuret at EPFL
Multi-channel 2D Convolution
43
Source: Dr. Francois Fleuret at EPFL
Input
W
H
C
Multi-channel 2D Convolution
44
Source: Dr. Francois Fleuret at EPFL
Input
W
H
C
Kernel
w
h
c
Multi-channel 2D Convolution
45
Kernel
w
h
c
Output
Input
W
H
C
Multi-channel 2D Convolution
46
Source: Dr. Francois Fleuret at EPFL
Input
W
H
C
Output
Kernel
w
h
c
Multi-channel 2D Convolution
47
Source: Dr. Francois Fleuret at EPFL
Kernel
w
h
c
Input
W
H
C
Output
Multi-channel 2D Convolution
48
Source: Dr. Francois Fleuret at EPFL
Kernel
w
h
c
Input
W
H
C
Output
Multi-channel 2D Convolution
49
Source: Dr. Francois Fleuret at EPFL
Input
W
H
C
Kernel
w
h
c
Output
Multi-channel 2D Convolution
50
Source: Dr. Francois Fleuret at EPFL
Input
W
H
C
Kernel
w
h
c
Output
Multi-channel 2D Convolution
51
Source: Dr. Francois Fleuret at EPFL
Input
W
H
C
Kernel
w
h
c
Output
Multi-channel 2D Convolution
52
Source: Dr. Francois Fleuret at EPFL
Input
W
H
C
Kernel
w
h
c
Output
Multi-channel 2D Convolution
53
Output
Input
W
H
C
Kernel
w
h
c
Source: Dr. Francois Fleuret at EPFL
Multi-channel 2D Convolution
54
Output
H – h + 1
W – w + 1
1
Input
W
H
C
Kernel
w
h
c
Source: Dr. Francois Fleuret at EPFL
Multi-channel and Multi-kernel 2D Convolution
55
Source: Dr. Francois Fleuret at EPFL
Output
H – h + 1
W – w + 1
D
w
h
c
Kernels
Input
W
H
C
D
Dealing with Shapes
56
Source: Dr. Francois Fleuret at EPFL
Multi-channel 2D Convolution
57
Padding and Stride
58
Strides
59
Example with kernel size 3×3 and a stride of 2 (image in blue)
Source: https://github.com/vdumoulin/conv_arithmetic
Padding
�
60
Source: https://github.com/vdumoulin/conv_arithmetic
Padding and Stride
61
Source: Dr. Francois Fleuret at EPFL
Input
Padding and Stride
62
Source: Dr. Francois Fleuret at EPFL
Input
Output
Padding and Stride
63
Source: Dr. Francois Fleuret at EPFL
Input
Output
Padding and Stride
64
Source: Dr. Francois Fleuret at EPFL
Input
Output
Padding and Stride
65
Source: Dr. Francois Fleuret at EPFL
Input
Output
Padding and Stride
66
Source: Dr. Francois Fleuret at EPFL
Input
Output
Padding and Stride
67
Source: Dr. Francois Fleuret at EPFL
Input
Output
Padding and Stride
68
Source: Dr. Francois Fleuret at EPFL
Input
Output
Padding and Stride
69
Source: Dr. Francois Fleuret at EPFL
Input
Output
Padding and Stride
70
Source: Dr. Francois Fleuret at EPFL
Input
Output
Nonlinear Activation Function
71
Pooling
72
Max Pooling
73
1
2
4
1
6
7
8
5
2
1
0
3
2
3
4
1
6
8
3
4
Average Pooling
74
3.25
5.25
2
2
1
2
4
1
6
7
8
5
2
1
0
3
2
3
4
1
Avg pool with 2×2 filters and stride 2
Global Average Pooling (GAP)
75
1
2
4
1
6
7
8
5
2
1
0
3
2
3
4
1
Global Avg pool
3.125
Max Pooling in 1D
76
Source: Dr. Francois Fleuret at EPFL
1 | 3 | 2 | 3 | 0 | -1 | 1 | 2 | 2 | 1 |
w
|
3 |
3 |
0 |
2 |
2 |
Input
r w
Output
r
Pooling: Invariance to Small Deformations
77
Source: Dr. Francois Fleuret at EPFL
Input
Output
Pooling: Invariance to Small Deformations
78
Source: Dr. Francois Fleuret at EPFL
Input
Output
Pooling Performs Separately on Each of Channels
79
Source: Dr. Francois Fleuret at EPFL
r w
s h
C
Input
Multi-channel Pooling
80
Input
r w
s h
C
Output
Multi-channel Pooling
81
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
82
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
83
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
84
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
85
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
86
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
87
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
88
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
89
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
90
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
91
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
92
Source: Dr. Francois Fleuret at EPFL
Output
Input
r w
s h
C
Multi-channel Pooling
93
Source: Dr. Francois Fleuret at EPFL
Input
r w
s h
C
Output
r
s
C
Convolution Layer Block
94
Inside the Convolution Layer Block
95
Convolution layer block
Input to layer
Next layer
Convolution Neural Network
96
Artificial Neural Networks
97
Class 2
Class 1
Convolutional Neural Networks
98
Class 2
Class 1
CNNs for Classification
99
Source: 6.S191 Intro. to Deep Learning at MIT
CNNs for Classification: Feature Learning
100
Source: 6.S191 Intro. to Deep Learning at MIT
CNNs for Classification: Class Probabilities
101
Source: 6.S191 Intro. to Deep Learning at MIT
CNN in TensorFlow
102
Lab: CNN with TensorFlow
103
CNN Structure
104
Loss and Optimizer
105
Test or Evaluation
106
CNN for Steel Surface Defects
107
Steel Surface Defects
108
CNN with TensorFlow
109