SlideShare a Scribd company logo
Convolutional Neural Network
Yeungnam Univ.
MSP-LAB
Ki Dae Hwan
2018.03.12
Multimedia Signal Processing Laboratory
Index
• Convolution Neural Network
Convolution
Filter
Stride
Padding
Pooling
• Backpropagtion
2
Multimedia Signal Processing Laboratory
Convolutional Neural Network
3
• Like Perceptron imitated neural networks, CNN imitated cat
experiments.
• When viewing a particular image, only a portion of the optic
nerve was activated.
Multimedia Signal Processing Laboratory
Convolutional Neural Network
4
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• How to get these features
5
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• What is convolution
두개의 함수 𝑓와 𝑔가 있을 때 두 함수의 합성곱을 수학 기호로는
𝑓 ∗ 𝑔와 같이 표현한다.
1D Convolution: 𝑓 ∗ 𝑔 𝑡 =
−∞
∞
𝑓 𝑥 𝑔 𝑡 − 𝑥 𝑑𝑥
2D Convolution: 𝑓 ∗ 𝑔 𝑥, 𝑦 =
𝑦=−𝑁
𝑁
𝑥=−𝑁
𝑁
𝑓 𝑥, 𝑦 𝑔(𝑡 − 𝑥, 𝑡 − 𝑦)
-wikipedia
6
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• What is convolution
함수 f에 대하여 함수 g가 얼마나 겹치는가
7
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Convolution은 어떤 System
Function에 대해서 입력 Input
Function을 주었을 때, 어떠한
output이 나오는지를 연산해주는 연
산자가 됩니다.
8
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Image
9
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Cross-correlation
Given an Image 𝐼 and a filter (kernel)𝐾 of dimensions 𝑘1 × 𝑘2, the cross-
correlation operation is given by:
𝐼 ⊗ 𝐾 𝑖𝑗 =
𝑚=0
𝑘1−1
𝑛=0
𝑘2−1
𝐼 𝑖 + 𝑚, 𝑗 + 𝑛 𝐾(𝑚, 𝑛) (1)
10
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Convolution
Given an Image 𝐼 and a filter (kernel)𝐾 of dimensions 𝑘1 × 𝑘2, the convolution
operation is given by:
𝐼 ∗ 𝐾 𝑖𝑗 =
𝑚=0
𝑘1−1
𝑛=0
𝑘2−1
𝐼 𝑖 − 𝑚, 𝑗 − 𝑛 𝐾(𝑚, 𝑛) (2)
=
𝑚=0
𝑘1−1
𝑛=0
𝑘2−1
𝐼 𝑖 + 𝑚, 𝑗 + 𝑛 𝐾(−𝑚, −𝑛) (3)
From Eq.3 it is easy to see that convolution is the same as cross-correlation
with a flipped kernel i.e for a kernel 𝐾 where 𝐾 −𝑚, −𝑛 = 𝐾 𝑚, 𝑛
11
Multimedia Signal Processing Laboratory
Convolutional Neural Network
12
Cross-correlation convolution
Image Kernel Image Kernel
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Convolution, cross-correlation
문서에 따라 이 둘을 모두 convolution이라고 칭하는 문서도 많습니다.
뒤의 모든 예제는 correlation으로 forward 할 것입니다.
13
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Image
주위 값들을 반영해 중앙의 값을 변화시킵니다.
Filter ∶
1 0 1
0 1 0
1 0 1
14
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Filter(Kernel)
필터는 그 특징이 데이터에 있는지 없는지를 검출해주는 함수입
니다.
15
Multimedia Signal Processing Laboratory
Convolutional Neural Network
16
∗ Filter →
Sharpen
blur
Edge
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 아래와 같은 곡선을 검출하는 필터가 있다고 해 봅시다.
17
Multimedia Signal Processing Laboratory
Convolutional Neural Network
18
• 필터와 비슷한 곡선에 대해 convolution을 하면 큰 결과 값을 가집니
다.
Multimedia Signal Processing Laboratory
• 필터와 상이한 곳과 convolution을 하면 결과 값이 0과 가까워 집니
다.
Convolutional Neural Network
19
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 새로 생긴 이미지는 원 이미지에서 부분 특징을 뽑아낸 것입니
다.
• 부분 부분에서 특징을 알 수 있기 때문에 전체 이미지에서 특징
을 분석하는 것보다 좋은 학습효과를 낼 수 있습니다.
• 이런 특징들을 잘 뽑아내야 합니다.
20
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 이미지는 여러가지의 특징이 있기 때문에 하나의 필터가 아닌
여러 개의 다중 필터를 적용하게 됩니다.
21
Multimedia Signal Processing Laboratory
Convolutional Neural Network
22
Multimedia Signal Processing Laboratory
Convolutional Neural Network
23
Multimedia Signal Processing Laboratory
• Stride
필터를 적용하는 간격의 크기를 stride라고 합니다.
아래의 예제에서의 stride는 1입니다.
필터를 적용해서 얻어진 결과를 feature map 또는 activation
map이라고 합니다.
Convolutional Neural Network
24
Multimedia Signal Processing Laboratory
• Stride
Output size = (input image size – filter size) / stride + 1
Convolutional Neural Network
25
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Padding
필터를 적용한 feature map은 원본 이미지에 비해 크기가 줄어들
게 됩니다.
CNN 네트워크는 여러 단계에 걸쳐서 필터를 적용합니다. 그러면
서 계속 크기가 작아지면 처음에 비해 특징들이 유실 될 수 있습
니다.
이를 방지하기 위해 padding이라는 기법을 사용합니다.
26
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Padding
결과 값이 작아지는 것을 줄이기 위해 입력 이미지 주위로 0 값을
넣어서 입력 이미지의 크기를 인위적으로 키웁니다.
0으로 몇 겹 둘러싸여 있는지가 Padding의 크기가 됩니다.
27
Multimedia Signal Processing Laboratory
• 32x32x3 입력 값이 있을 때, 5x5x3필터를 적용하면(stride = 1)
결과 값의 크기는 28x28x3이 되는데 사이즈가 작아지는 것을
막으려면 padding을 2를 주면 됩니다.
Convolutional Neural Network
28
Multimedia Signal Processing Laboratory
• Padding
Output size = (input size – Filter size +2*padding size) / stride + 1
Convolutional Neural Network
29
Multimedia Signal Processing Laboratory
• Padding
Padding은 결과 값이 작아지는 것을 막아서 특징이 유실 되
는 것을 막는 것 뿐만 아니라 모서리의 정보를 전달합니다.
또한 원래의 데이터에 0이라는 노이즈를 넣음으로써 오버피
팅을 방지할 수 있습니다.
Convolutional Neural Network
30
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Pooling
CNN에서 추출된 특징들은 필요에 따라서 sub sampling과정을
거칩니다.
필요한 특징들이 추출이 되면 고해상도가 아닌 저해상도에서도
판단할 수 있는 원리와 같습니다.
31
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Pooling
보통 max pooling을 가장 많이 사용합니다.(average pooling도 존재)
아래 예제는 4x4 image를 2x2 max pooling filter를 stride 2로 하여
pooling한 결과 입니다.
32
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Pooling
Max pooling은 특징의 값이 큰 값이 다른 값들을 대표한다는 개
념을 기반으로 합니다.
데이터의 사이즈를 줄임으로서 네트워크 연산 속도가 빨라집니다.
데이터의 크기를 줄이면서 소실이 발생하기 때문에 오버피팅이
줄어듭니다.
33
Multimedia Signal Processing Laboratory
Convolutional Neural Network
FC = fully connected layer, ReLU = Rectified Linear Unit 34
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• ReLU(Rectified Linear Function)
𝑓 𝑥 = max(0, 𝑥)
자세한 것은 gradient vanishing problem을 설명할 때 하도록 하겠습니다.
35
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Summary
CNN에서는 MLP와 달리 weight들을 공유
공유되는 weight들로 convolution filter연산을 한다
Pooling으로 down sampling을 하여서 공간의 크기를 줄여 연산의 양과
파라미터 개수를 줄인다
Convolution layer와 pooling layer사이에는 activation layer가 있고
Convolution activation pooling layer를 계속 거치면 이미지의 사이즈는
줄어들고 복잡한 feature들이 추출됨
36
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 1D convolution
Padding = 0, Stride = 1, Kernel = 3
37
𝒙 𝟎 𝒙 𝟏 𝒙 𝟐 ⋯ ⋯ ⋯ ⋯ 𝒙 𝑵−𝟑 𝒙 𝑵−𝟐 𝒙 𝑵−𝟏
∗
𝒘 𝟎 𝒘 𝟏 𝒘 𝟐 𝒃
=
𝒚 𝟎 𝒚 𝟏 𝒚 𝟐 ⋯ 𝒚 𝑵−𝟓 𝒚 𝑵−𝟔 𝒚 𝑵−𝟕
𝑦0 = 𝑤0 ∙ 𝑥0 + 𝑤1 ∙ 𝑥1 + 𝑤2 ∙ 𝑥2 + 𝑏
𝑦𝑖 = 𝑤0 ∙ 𝑥𝑖 + 𝑤1 ∙ 𝑥𝑖+1 + 𝑤2 ∙ 𝑥𝑖+2 + 𝑏 (4)
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 1D convolution
38
𝑥0
𝑥1
𝑥2
𝑥3
𝑏0
𝑏1
𝑤0
0
𝑤1
0
𝑤2
0
𝑤 𝑏
0
𝜎0
0
𝑓0
0
𝜎1
0 𝑓1
0
𝜎0
1
𝑓0
1
𝑦
𝑤00
1
𝑤10
1
𝑤 𝑏0
1
Multimedia Signal Processing Laboratory
• 1D convolution
Convolutional Neural Network
39
𝑥0
𝑥1
𝑥2
𝑥3
𝑤0
0
𝑤1
0
𝑤2
0
𝑤 𝑏
0
𝜎0
0
𝑓0
0
𝜎1
0 𝑓1
0
𝜎0
1
𝑓0
1
𝑦
𝑤00
1
𝑤10
1
𝑤 𝑏0
1
Convolution layer Neural Network layer
𝑏0
𝑏1
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 1D convolution
40
𝑥0
𝑥1
𝑥2
𝑥3
𝑤0
0
𝑤1
0
𝑤2
0
𝑤 𝑏
0
𝜎0
0
𝑓0
0
𝜎1
0 𝑓1
0
𝜎0
1
𝑓0
1
𝑦
𝑤00
1
𝑤10
1
𝑤 𝑏0
1
Convolution layer Neural Network layer
𝑏0
𝑏1
Multimedia Signal Processing Laboratory
Convolutional Neural Network
𝑦 = 𝑓0
1
𝜎0
1
= 𝑓0
1
𝑤00
1
∙ 𝑓0
0
+ 𝑤10
1
∙ 𝑓1
0
+ 𝑤 𝑏0
1
∙ 𝑏1
= 𝑓0
1
(𝑤00
1
∙ 𝑓0
0
(𝜎0
0
) + 𝑤10
1
∙ 𝑓1
0
(𝜎1
0
) + 𝑤 𝑏0
1
∙ 𝑏1
)
= 𝑓0
1
(𝑤00
1
∙ 𝑓0
0
(𝑤0
0
∙ 𝑥0 + 𝑤1
0
∙ 𝑥1 + 𝑤2
0
∙ 𝑥2 + 𝑤 𝑏
0
∙ 𝑏0
) +
𝑤10
1
∙ 𝑓1
0
(𝑤0
0
∙ 𝑥1 + 𝑤1
0
∙ 𝑥2 + 𝑤2
0
∙ 𝑥3 + 𝑤 𝑏
0
∙ 𝑏0) + 𝑤 𝑏0
1
∙ 𝑏1)
41
Multimedia Signal Processing Laboratory
Convolutional Neural Network
𝑦 = 𝑓0
1
(𝑤00
1
∙ 𝑓0
0
(𝑤0
0
∙ 𝑥0 + 𝑤1
0
∙ 𝑥1 + 𝑤2
0
∙ 𝑥2 + 𝑤 𝑏
0
∙ 𝑏0
) +
𝑤10
1
∙ 𝑓1
0
(𝑤0
0
∙ 𝑥1 + 𝑤1
0
∙ 𝑥2 + 𝑤2
0
∙ 𝑥3 + 𝑤 𝑏
0
∙ 𝑏0) + 𝑤 𝑏0
1
∙ 𝑏1)
𝜕𝑦
𝜕𝑤0
0 =
𝜕𝑓0
1
𝜕𝜎0
1 ∙
𝜕𝜎0
1
𝜎𝑓0
0 ∙
𝜕𝑓0
0
𝜕𝜎0
0 ∙
𝜕𝜎0
0
𝜕𝑤0
0 +
𝜕𝜎0
1
𝜎𝑓1
0 ∙
𝜕𝑓1
0
𝜕𝜎1
0 ∙
𝜕𝜎1
0
𝜕𝑤0
0 (5)
=
𝜕𝑓0
1
𝜕𝜎0
1 ∙ 𝑤00
1
∙
𝜕𝑓0
0
𝜕𝜎0
0 ∙ 𝑥0 + 𝑤10
1
∙
𝜕𝑓1
0
𝜕𝜎1
0 ∙ 𝑥1 (6)
=
𝜕𝑓0
1
𝜕𝜎0
1 ∙
𝜕𝜎0
1
𝜎𝑓0
0 ∙
𝜕𝑓0
0
𝜕𝜎0
0 ∙ 𝑥0 +
𝜕𝜎0
1
𝜎𝑓1
0 ∙
𝜕𝑓1
0
𝜕𝜎1
0 ∙ 𝑥1 =
𝜕𝑓0
1
𝜕𝜎0
0 ∙ 𝑥0 +
𝜕𝑓0
1
𝜕𝜎1
0 ∙ 𝑥1 =
𝑖
𝜕𝑓0
1
𝜕𝜎0
1 ∙ 𝑥𝑖 (7)
42
Multimedia Signal Processing Laboratory
Convolutional Neural Network
15 x 15
Max pooling
6 x 6
12 x 12
4x4
2x2
4x4
kernel
2x2
Input layer
3x3
kernel
Max pooling
2x2
3
x
1
4x3
weight
Conv layer pooling layer Conv layer pooling layer FC layer
Picture (1)
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Notation
1. All of index start with 0
2. 𝑙 is the 𝑙 𝑡ℎ
layer where 𝑙 = 1 is the first layer and 𝑙 = 𝐿 is the last layer
3. 𝐸 is the loss function
𝐸 =
1
2
𝑟
𝑡 𝑟 − 𝑦𝑟
2
4. 𝑤𝑖,𝑗
𝑙
is the weight element connecting neurons of layer 𝑙 with neurons of layer 𝑙 − 1
5. 𝑏 𝑙
is the bias unit at layer 𝑙
6. 𝑥𝑖,𝑗
𝑙
is the weighted sum at layer 𝑙 plus the bias represented as
𝑥𝑖,𝑗
𝑙
=
𝑚 𝑛
𝑤 𝑚,𝑛
𝑙
𝑜𝑖+𝑚,𝑗+𝑛
𝑙−1
+ 𝑏 𝑙
7. 𝑜𝑖,𝑗
𝑙
is the output vector at layer 𝑙 given by
𝑜𝑖,𝑗
𝑙
= 𝑓(𝑥𝑖,𝑗
𝑙
)
8. 𝑓(∙) is the activation function. Application of the activation layer to the convolved input vector at
layer 𝑙 is given by 𝑓(𝑥𝑖,𝑗
𝑙
)
44
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• MLP Backpropagation
𝛿𝑗
𝐿
=
𝜕𝐸
𝜕𝑓(𝑥𝑗
𝐿
)
𝜕𝑓(𝑥𝑗
𝐿
)
𝜕𝑥𝑗
𝐿 =
𝜕𝐸
𝜕𝑓(𝑥𝑗
𝐿
)
𝑓′ 𝑥𝑗
𝐿
𝛿𝑗
𝑙
=
𝑘
𝑤 𝑘,𝑗
𝑙+1
𝛿 𝑘
𝑙+1
𝑓′(𝑥𝑗
𝑙
)
𝜕𝐸
𝜕𝑏𝑗
𝑙 = 𝛿𝑗
𝑙
𝜕𝐸
𝜕𝑤𝑗,𝑘
𝑙 = 𝑜 𝑘
𝑙−1
𝛿𝑗
𝑙
CNN에서는 (BP2), (BP3),(BP4)가 바뀌어야 합니다.
45
(BP1)
(BP2)
(BP3)
(BP4)
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 아래의 식은 CNN에서 𝑙번째 convolution 층에서 가중 합 결과 입니다.
𝑥𝑖,𝑗
𝑙
=
𝑚 𝑛
𝑤 𝑚,𝑛
𝑙 𝑜𝑖+𝑚,𝑗+𝑛
𝑙−1
+ 𝑏 𝑙
• 마지막 FC층에서의 가중 합은 아래와 같습니다.
𝑥𝑗
𝐿
=
𝑖
𝑤𝑖,𝑗
𝐿−1
𝑜𝑖
𝐿−2
46
(1)
(2)
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 식(1)을 사용해서 네트워크 전체를 forwarding 하고 마지막 FC layer는 식(2)를 사
용합니다.
• 마지막 출력층의 𝛿 𝐿
을 (BP1)을 통하여 구합니다. CNN에서의 출력층은 MLP와 같
은 모델이기 때문에 기존 식과 달라질 것이 없습니다.
𝛿𝑗
𝐿
=
𝜕𝐸
𝜕𝑓(𝑥𝑗
𝐿
)
𝜕𝑓(𝑥𝑗
𝐿
)
𝜕𝑥𝑗
𝐿 =
𝜕𝐸
𝜕𝑓(𝑥𝑗
𝐿
)
𝑓′
𝑥𝑗
𝐿
(CBP1)
47
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• FC layer의 bias는 𝑤0로 표현할 것이기 때문에 weight에 대한 편미분만 계산하면
됩니다. 여기서 𝑙은 FC layer의 𝑙번 째 층입니다.
𝜕𝐸
𝜕𝑤𝑖𝑗
𝑙 = 𝛿𝑗
𝑙
𝑜𝑖
𝑙−1
(3)
• Picture(1)에서의 출력층에 대한 𝛿𝑗
𝐿
는 (CBP1)을 통해서 구하였고 𝑥𝑖
𝑙−1
또한
forward 과정으로 이미 알고 있는 값이다.
• Picture(1)의 마지막 Convolution layer의 2x2의 출력 값을 1x4로 바꿔야 하는데
그 공식은 다음과 같다.
𝑖 = 𝑛′
𝑀 + 𝑚′
48
0,0 0,1
1,0 1,1 0 1 2 3
𝑚′
𝑛′ 𝑖
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 이제 convolution layer의 𝛿 𝑙을 구할 차례입니다. Convolution layer는 FC layer 연
결이 다르기 때문에
𝜕𝐸
𝜕𝑊
를 먼저 유도하여 풀도록 하겠습니다.
• NxN의 크기를 가지는 𝑙 − 1 번 째 층의 결과는 𝑙번 째 층의 입력이 되고 mxm 크기
의 kernel w를 적용하여 (N-m+1)x(N-m+1)크기의 출력층을 만드는 convolution
layer에 대한 식입니다.
𝑥𝑖,𝑗
𝑙
=
𝑎=0
𝑚−1
𝑏=0
𝑚−1
𝑤 𝑎𝑏
𝑙
𝑜𝑖+𝑎,𝑗+𝑏
𝑙−1
+ 𝑏 𝑙 (4)
𝜕𝐸
𝜕𝑏 𝑙
=
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝜕𝐸
𝜕𝑥𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
𝜕𝑏 𝑙
(5)
49
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 식(5)에서
𝜕𝑥 𝑖𝑗
𝑙
𝜕𝑏 𝑙 은 1인 것을 식 (4)를 통해 확인 할 수 있습니다.
𝜕𝐸
𝜕𝑏 𝑙
=
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝜕𝐸
𝜕𝑥𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
𝜕𝑏 𝑙
=
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝛿𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
𝜕𝑏 𝑙
=
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝛿𝑖𝑗
𝑙
(6)
• Convolution layer에서
𝜕𝐸
𝜕𝑏 𝑙는 모든 𝛿를 더하는 것과 같습니다.
𝜕𝐸
𝜕𝑏 𝑙 =
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝛿𝑖𝑗
𝑙
(CBP3)
50
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 이제
𝜕𝐸
𝜕𝑤 𝑎𝑏
𝑙 를 구할 차례입니다. 이 역시 chain rule을 통하여 나타낼 수 있습니다.
𝜕𝐸
𝜕𝑤 𝑎𝑏
𝑙 =
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝜕𝐸
𝜕𝑥𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
𝜕𝑤 𝑎𝑏
𝑙 (7)
• 식(7)에서의
𝜕𝑥 𝑖𝑗
𝑙
𝜕𝑤 𝑎𝑏
𝑙 는 식(4)에 의해 식(8)이 됩니다.
𝜕𝐸
𝜕𝑤 𝑎𝑏
𝑙 = 𝑜𝑖+𝑎,𝑗+𝑏
𝑙−1
(8)
• 식(7)을 다시 정리하면
𝜕𝐸
𝜕𝑤 𝑎𝑏
𝑙 =
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝜕𝐸
𝜕𝑥𝑖𝑗
𝑙 𝑜𝑖+𝑎,𝑗+𝑏
𝑙−1
=
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝛿𝑖𝑗
𝑙
𝑜𝑖+𝑎,𝑗+𝑏
𝑙−1
(9)
51
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 식(9)는 바로 𝑙 − 1 번 째 층의 활성 값 𝑥 𝑙−1
과 𝛿 𝑙
을 correlation한 값입니다. MLP의
(BP4)와 비교해보면 (BP4)는 x와 𝛿를 행렬곱한 식이고 convolution층에서는 x와 𝛿
를 correlation한 것입니다. 따라서 (CBP4)는 다음과 같습니다.
𝜕𝐸
𝜕𝑤 𝑎𝑏
𝑙 =
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝛿𝑖𝑗
𝑙
𝑜𝑖+𝑎,𝑗+𝑏
𝑙−1
(CBP4)
52
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 이제 convolution layer에서의 𝛿 𝑙
만 구하면 (CBP3),(CBP4)를 통해
𝜕𝐸
𝜕𝑏 𝑙 ,
𝜕𝐸
𝜕𝑤 𝑎𝑏
𝑙 를 구할
수 있습니다.
𝛿𝑖𝑗
𝑙
=
𝜕𝐸
𝜕𝑥𝑖𝑗
𝑙
=
𝑟 𝑖′ 𝑗′
𝜕E
𝜕𝑥 𝑟
𝑙+1
𝜕𝑥 𝑟
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙 (10)
위 식에서 𝑖′, 𝑗′은 convolution layer다음 max pooling layer의 index
53
Multimedia Signal Processing Laboratory
Convolutional Neural Network
𝛿𝑖𝑗
𝑙
=
𝜕𝐸
𝜕𝑥𝑖𝑗
𝑙
=
𝑟 𝑖′ 𝑗′
𝜕E
𝜕𝑥 𝑟
𝑙+1
𝜕𝑥 𝑟
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
(10)
54
𝑥𝑖𝑗
𝑙
𝑓()
𝑜𝑖𝑗
𝑙
𝑥 𝑙+1
𝜕𝑥 𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙
Max pooling
𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝐸
𝜕𝑥 𝑙+1
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 식(10)의 인덱스 𝑖′
, 𝑗′은 𝑞로도 쓸 수 있으므로 다음과 같이 표현 가능합니다.
𝛿𝑖𝑗
𝑙
=
𝜕𝐸
𝜕𝑥𝑖𝑗
𝑙 =
𝑟 𝑞
𝜕E
𝜕𝑥 𝑟
𝑙+1
𝜕𝑥 𝑟
𝑙+1
𝜕𝑜 𝑞
𝑙
𝜕𝑜 𝑞
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙 (11)
𝑞 = 𝑖′
𝐽 + 𝑗′
55
Multimedia Signal Processing Laboratory
Convolutional Neural Network
𝛿𝑖𝑗
𝑙
=
𝜕𝐸
𝜕𝑥𝑖𝑗
𝑙 =
𝑟 𝑞
𝜕E
𝜕𝑥 𝑟
𝑙+1
𝜕𝑥 𝑟
𝑙+1
𝜕𝑜 𝑞
𝑙
𝜕𝑜 𝑞
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙 (11)
56
𝑥𝑖𝑗
𝑙
𝑓()
𝑜𝑖𝑗
𝑙
𝑥 𝑙+1
𝜕𝑥 𝑙+1
𝜕𝑜 𝑞
𝑙
Max pooling
𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜 𝑞
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝐸
𝜕𝑥 𝑙+1
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 식(11)에서 𝑥 𝑝
𝑙+1
은 다음과 같습니다.
𝑥 𝑟
𝑙+1 =
𝑟
𝑤 𝑞𝑟
𝑙+1 𝑜 𝑞
𝑙 + 𝑏 𝑟
𝑙+1 (12)
• 식 (12)에 의해 식(10)의
𝜕𝑥 𝑟
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙 는 인덱스 𝑖′
, 𝑗′
가 𝑞가 될 때를 제외하고는 모두 0입니
다. 따라서 다음과 같이 나타낼 수 있습니다.
𝜕𝑥 𝑟
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙 =
𝜕 𝑟 𝑤 𝑞𝑟
𝑙+1
𝑜 𝑞
𝑙
+ 𝑏 𝑟
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙 = 𝑤 𝑞𝑟
𝑙+1
(13)
57
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 식(13)과 𝛿의 정의를 이용해서 식(10)을 다시 정리해보면 다음과 같습니다.
𝛿𝑖𝑗
𝑙
=
𝑟 𝑖′ 𝑗′
𝛿 𝑟
𝑙+1 𝑤 𝑞𝑟
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝑓′(𝑥𝑖𝑗
𝑙
) 14
• Index 𝑞는 𝑖′, j′으로 이루어져 있기 때문에 문제가 되지 않습니다.
• (BP2)와 비교해 보면
𝜕𝑜
𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙 항이 새로 생긴 것을 확인할 수 있습니다.
𝛿𝑗
𝑙
=
𝑘
𝑤 𝑘,𝑗
𝑙+1
𝛿 𝑘
𝑙+1
𝑓′(𝑥𝑗
𝑙
)
58
Multimedia Signal Processing Laboratory
Convolutional Neural Network
•
𝜕𝑜
𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙 항이 무엇인지 확인하기 앞서 Max pooling의 경우를 놓고 생각해보도록 하
겠습니다. 그림으로 나타내면 아래와 같습니다.
• 2x2 Max pooling이고 색이 진한 부분이 같은 색의 영역에서 가장 큰 값입니다.
59
Multimedia Signal Processing Laboratory
Convolutional Neural Network
•
𝜕𝑜
𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙 항은 max 함수를 미분한 것과 같습니다. 𝑜𝑖′ 𝑗′
𝑙
는 𝑜𝑖𝑗
𝑙
를 max pooling 한 것이
기 때문입니다. 수식으로 표현하면 다음과 같습니다.
𝑜𝑖′ 𝑗′
𝑙
= max nb(𝑜𝑖𝑗
𝑙
) (15)
60
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 식에서 nb(𝑜𝑖𝑗
𝑙
)는 주어진 𝑜𝑖𝑗
𝑙
와 함께 pooling되는 이웃들을 나타냅니다. 2x2
pooling의 nb(𝑜11
𝑙
)는 𝑜00
𝑙
. 𝑜01
𝑙
. 𝑜10
𝑙
. 𝑜11
𝑙
이 됩니다. 그럼
𝜕𝑜
𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙 항에서 분모의 이웃들
이 분자와 아무런 관계가 없다면 0이 됩니다. 예를 들어
𝜕𝑜
0′0′
𝑙
𝜕𝑜02
𝑙 은 0입니다. 이런 식
으로 식(14)는 대부분의 경우 0이 되고 인덱스 𝑖, 𝑗와 관련 있는 𝑖′
, 𝑗′에 대해서만
생각하면 됩니다.여기에 수식을 입력하십시오.
𝑜′
= 𝑜/2 , 𝑝′
= 𝑝/2
61
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• ∙ 은 바닥 함수입니다. 정의는 다음과 같습니다.
𝑥 = max 𝑛 ≤ 𝑥 , floor 𝑥 , 𝑖𝑛𝑡(𝑥)
5.2 = 5, −5.2 = −6, 3 = 3
62
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 식(14)는 식(16)으로 나타낼 수 있습니다.
𝛿𝑖𝑗
𝑙
=
𝑟
(𝑤
𝑟,
𝑖
𝑠
𝐽+
𝑗
𝑠
𝑙+1
𝛿 𝑟
𝑙+1)
𝜕𝑜 𝑖
𝑠
𝑗
𝑠
𝑙
𝜕𝑜𝑖𝑗
𝑙 𝑓′ 𝑥𝑖𝑗
𝑙
(16)
• 이제 식(16)은 좌변과 우변 모두 인덱스 𝑖, 𝑗만 남게 되었습니다(𝑟은 시그마에 의해
서 사라집니다.). 즉 식(16)에 𝑖, 𝑗만 넣으면 𝛿𝑖𝑗
𝑙
를 구할 수 있습니다.
63
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 이제
𝜕𝑜 𝑖
2
𝑗
2
𝑙
𝜕𝑜𝑖𝑗
𝑙 항만 처리를 하면 됩니다.
𝜕𝑜 𝑖
2
𝑗
2
𝑙
𝜕𝑜𝑖𝑗
𝑙 항의 의미는 max 함수에 대한 미분이
고 max와 mean을 미분하면 다음과 같습니다.
𝑔 𝑥 = max 𝑥 ,
𝜕𝑔
𝜕𝑥
=
1, if 𝑥𝑖 = max(𝑥)
0, otherwise
(17)
𝑔 𝑥 =
𝑘=1
𝑚
𝑥 𝑘
𝑚
,
𝜕𝑔
𝜕𝑥
=
1
𝑚
(18)
64
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 다시 한 번 backpropagation 관점에서 식(10)과 식(16)을 보면
𝛿𝑖𝑗
𝑙
=
𝑟 𝑖′ 𝑗′
𝜕E
𝜕𝑥 𝑟
𝑙+1
𝜕𝑥 𝑟
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
𝛿𝑖𝑗
𝑙
=
𝑟
(𝑤
𝑟,(
𝑖
2 𝐽+
𝑗
2 )
𝑙+1
𝛿 𝑟
𝑙+1
)
𝜕𝑜 𝑖
2
𝑗
2
𝑙
𝜕𝑜𝑖𝑗
𝑙 𝑓′
𝑥𝑖𝑗
𝑙
65
Pooling layer 앞 까지의 gradient Pooling layer의 max 함수 미분
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 아래의 그림에서 𝑟 𝑤 𝑞𝑟
𝑙+1
𝛿 𝑟
𝑙+1
은 모두 계산이 된 상태입니다. Max 함수를 미분하
면 입력된 값이 최대일 경우는 1, 나머지는 0이 됩니다.
66
0 0
0 0 0
0
0
0
0
0
0 0
𝑟
(𝑤0,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
𝑟
(𝑤1,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
𝑟
(𝑤2,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
𝑟
(𝑤3,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
𝑟
(𝑤1,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
𝑟
(𝑤0,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
𝑟
(𝑤2,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
𝑟
(𝑤3,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 위의 그림을 보면 값을 특정 위치로 보내주는 것과 같습니다. Stanford cs231 수
업에선 이를 “the max gate route the gradient”라고 표현했습니다. Mean
pooling의 경우는 다음과 같습니다.
67
𝑟
(𝑤0,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
𝑟
(𝑤1,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
𝑟
(𝑤2,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
𝑟
(𝑤3,𝑟
𝑙+1
𝛿 𝑟
𝑙+1)
𝑟 𝑤1,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤0,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤2,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤3,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤0,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤0,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤0,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤1,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤1,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤1,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤2,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤2,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤2,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤3,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤3,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
𝑟 𝑤3,𝑟
𝑙+1
𝛿 𝑟
𝑙+1
4
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Forwarding 할 때 pooling이 sub sampling역할을 했다면 backpropagation에서
pooling layer는 gradient를 up sampling하는 것과 같습니다.
• 식(16)을 up sampling으로 표현하면 다음과 같습니다.
𝛿𝑖𝑗
𝑙
=
𝑟
(𝑤
𝑟,
𝑖
2 𝐽+
𝑗
2
𝑙+1
𝛿 𝑟
𝑙+1
)
𝜕𝑜 𝑖
2
𝑗
2
𝑙
𝜕𝑜𝑖𝑗
𝑙 𝑓′
𝑥𝑖𝑗
𝑙
𝛿 𝑙 = Upsampling[(𝑊 𝑙) 𝑇 𝛿 𝑙+1]𝑓′ 𝑥 𝑙 (19)
68
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 앞에서 미뤄두었던 nb()도 정식화 하면 다음과 같습니다.
𝛿𝑖𝑗
𝑙
=
𝑟
(𝑤
𝑟,
𝑖
𝑠
𝐽+
𝑗
𝑠
𝑙+1
𝛿 𝑟
𝑙+1
)
𝜕𝑜 𝑖
𝑠
𝑗
𝑠
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝑓′
𝑥𝑖𝑗
𝑙
𝜕𝑜 𝑖
𝑠
𝑗
𝑠
𝑙
𝜕𝑜𝑖𝑗
𝑙 =
1, if 𝑜𝑖𝑗
𝑙
= max(nb(𝑜𝑖𝑗
𝑙
))
0, otherwise
nb 𝑜𝑖𝑗
𝑙
= 𝑜𝑡∈𝑅1,𝑗∈𝑅2
𝑙
(20)
𝑅1 = 𝑖 − 𝑖%𝑠 , 𝑖 − 𝑖%𝑠 + 𝑠 − 1
𝑅2 = [𝑗 − 𝑗%𝑠 , 𝑗 − 𝑗%𝑠 + (𝑠 − 1)]
s는 pooling layer의 size 69
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 예를 들어 𝑜21
𝑙
에 대한 nb 𝑜21
𝑙
은 𝑅1 = 2,3 , 𝑅2 = [0,1]이므로 𝑜20
𝑙
, 𝑜21
𝑙
, 𝑜30
𝑙
, 𝑜31
𝑙
이
되고 이들은 𝑜21
𝑙
과 함께 pooling되는 곳임을 알 수 있습니다. 이제 𝛿𝑖𝑗
𝑙
를 완전히
구했으므로 (CBP3),(CBP4)를 통해
𝜕𝐸
𝜕𝑏 𝑙,
𝜕𝐸
𝜕𝑤 𝑎𝑏
𝑙 를 구할 수 있습니다.
𝜕𝐸
𝜕𝑏 𝑙
=
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝛿𝑖𝑗
𝑙
(CBP3)
𝜕𝐸
𝜕𝑤 𝑎𝑏
𝑙 =
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝛿𝑖𝑗
𝑙
𝑜𝑖+𝑎,𝑗+𝑏
𝑙−1
(CBP4)
70
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 지금까지 구한 𝛿𝑖𝑗
𝑙
은 𝑙번 째 층의 pooling 다음 layer가 FC layer일 때 입니다. 그
럼 pooling 다음이 convolution layer일 때도 계산해 보도록 합시다. 𝛿𝑖𝑗
𝑙
는 다음식
과 같이 변합니다.
𝛿𝑖𝑗
𝑙
=
𝜕𝐸
𝜕𝑥𝑖𝑗
𝑙 =
𝑖′ 𝑗′ 𝑚 𝑛
𝜕E
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙 (21)
71
Multimedia Signal Processing Laboratory
Convolutional Neural Network
𝛿𝑖𝑗
𝑙
=
𝜕𝐸
𝜕𝑥𝑖𝑗
𝑙
=
𝑖′ 𝑗′ 𝑚 𝑛
𝜕E
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
72
𝑥𝑖𝑗
𝑙
𝑓()
𝑜𝑖𝑗
𝑙
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙
Max pooling
𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝐸
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
Convolution
𝑥 𝑚𝑛
𝑙+1
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Backpropagation 관점에서 보면 다음과 같습니다.
𝛿𝑖𝑗
𝑙
=
𝜕𝐸
𝜕𝑥𝑖𝑗
𝑙 =
𝑖′ 𝑗′ 𝑚 𝑛
𝜕E
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
73
Pooling layer 앞 까지의 gradient Pooling layer의 max 함수 미분
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 앞의 식의 𝑥 𝑚𝑛
𝑙+1
은 다음과 같습니다.
𝑥 𝑚𝑛
𝑙+1 =
𝑐=0
𝐶−1
𝑑=0
𝐷−1
𝑤 𝑐𝑑
𝑙+1
𝑜 𝑚+𝑐 𝑛+𝑑
𝑙
+ 𝑏 𝑙+1 (22)
• 이전과 같은 논리로
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙 는 식(23)을 만족하는 경우를 제외하고 모두 0입니다.
𝑖′
= 𝑚 + 𝑐
𝑗′
= 𝑛 + 𝑑
74
(23)
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• 식(23)에 의해 𝑐 = 𝑖′
− 𝑚, 𝑑 = 𝑗′
− 𝑛이므로
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙 은 식(24)와 같습니다.
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙
= 𝑤(𝑖′−𝑚)(𝑗′−𝑛)
𝑙+1
(24)
• 식(24)를 이용해서 식(21)을 다시 정리하면
𝛿𝑖𝑗
𝑙
=
𝑖′ 𝑗′ 𝑚 𝑛
𝛿 𝑚𝑛
𝑙+1
𝑤 𝑖′−𝑚 𝑗′−𝑛
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙 𝑓′
𝑥𝑖𝑗
𝑙
(25)
75
Multimedia Signal Processing Laboratory
•
𝜕𝑜
𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙 을 처리하면 𝑖′
= 𝑖/𝑠 , 𝑗′
= 𝑗/𝑠 인 경우를 제외하면 모두 0입니다.
𝛿𝑖𝑗
𝑙
=
𝑚 𝑛
(𝑤
(
𝑖
𝑠 −𝑚),(
𝑗
𝑠 −𝑛)
𝑙+1
𝛿 𝑚𝑛
𝑙+1
)
𝜕𝑜 𝑖
𝑠
𝑗
𝑠
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝑓′
𝑥𝑖𝑗
𝑙
(26)
76
Convolutional Neural Network
Multimedia Signal Processing Laboratory
• 식 16 과 비교하면 큰 차이는 없지만 빨간 부분만 변경된 것을 확인할 수 있습니
다.
𝛿𝑖𝑗
𝑙
=
𝑚 𝑛
(𝑤
(
𝑖
𝑠
−𝑚),(
𝑗
𝑠
−𝑛)
𝑙+1
𝛿 𝑚𝑛
𝑙+1)
𝜕𝑜 𝑖
𝑠
𝑗
𝑠
𝑙
𝜕𝑜𝑖𝑗
𝑙 𝑓′ 𝑥𝑖𝑗
𝑙
(26)
𝛿𝑖𝑗
𝑙
=
𝑟
(𝑤
𝑟,
𝑖
𝑠 𝐽+
𝑗
𝑠
𝑙+1
𝛿 𝑟
𝑙+1
)
𝜕𝑜 𝑖
𝑠
𝑗
𝑠
𝑙
𝜕𝑜𝑖𝑗
𝑙 𝑓′
𝑥𝑖𝑗
𝑙
(16)
77
Convolutional Neural Network
Multimedia Signal Processing Laboratory
• 식 26 의 빨간 부분을 full convolution으로 볼 수 있습니다.
𝛿𝑖𝑗
𝑙
=
𝑚 𝑛
(𝑤
(
𝑖
𝑠 −𝑚),(
𝑗
𝑠 −𝑛)
𝑙+1
𝛿 𝑚𝑛
𝑙+1)
𝜕𝑜 𝑖
𝑠
𝑗
𝑠
𝑙
𝜕𝑜𝑖𝑗
𝑙 𝑓′ 𝑥𝑖𝑗
𝑙
(26)
78
Convolutional Neural Network
𝑤
𝛿
Output size : (m+s-1)x(n+s-1)
Multimedia Signal Processing Laboratory
• 결국 식(27)이 의미하는 바는 𝑤 𝑙+1에 𝛿 𝑙+1을 full convolution한 것과 같다는 것입
니다. 밑의 예제와 같다면 full conv의 결과는 6x6이 되고 pooling layer미분 값과
곱하면 입력 크기인 12x12와 같아 집니다.
• Convolution-pooling-FC인 경우 max pooling에 대한 미분이 up sampling시켜
gradient가 입력 이미지의 크기 와 같아지는 것을 알고 있습니다.
79
Convolutional Neural Network
𝑥𝑖𝑗
𝑙
𝑓()
𝑜𝑖𝑗
𝑙
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙 = 𝑤 𝑙+1
Max pooling
𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝐸
𝜕𝑥 𝑚𝑛
𝑙+1 = 𝛿 𝑙+1𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
Convolution
𝑥 𝑚𝑛
𝑙+1
4 × 4
3 × 3
6 × 6
12 × 1212 × 12
Multimedia Signal Processing Laboratory
• 𝑙 + 1층 다음이 FC layer라면 𝛿 𝑙+1의 크기는 4x4가 될 것이고 180도 뒤집어도 4x4
입니다. 거기에
80
Convolutional Neural Network
𝑥𝑖𝑗
𝑙
𝑓()
𝑜𝑖𝑗
𝑙
𝜕𝑥 𝑚𝑛
𝑙+1
𝜕𝑜𝑖′ 𝑗′
𝑙 = 𝑤 𝑙+1
Max pooling
𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖′ 𝑗′
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝜕𝐸
𝜕𝑥 𝑚𝑛
𝑙+1 = 𝛿 𝑙+1𝜕𝑜𝑖𝑗
𝑙
𝜕𝑥𝑖𝑗
𝑙
Convolution
𝑥 𝑚𝑛
𝑙+1
4 × 4
3 × 3
6 × 6
12 × 1212 × 12
Multimedia Signal Processing Laboratory
• 𝛿 𝑙
을 행렬 형태로 식을 수정하면 다음과 같습니다.
𝛿 𝑙
= Upsampling 𝑤 𝑙+1
𝛿 𝑙+1
𝑓′
𝑥 𝑙
(28)
• 만약 convolution layer간에 pooling layer가 없다면 𝛿 𝑙은 다음과 같습니다.
𝛿 𝑙 =
𝑚 𝑛
(𝑤
(
𝑖
𝑠 −𝑚),(
𝑗
𝑠 −𝑛)
𝑙+1
𝛿 𝑚𝑛
𝑙+1) 𝑓′ 𝑥𝑖𝑗
𝑙
(29)
81
Convolutional Neural Network
Multimedia Signal Processing Laboratory
• 모든 식을 정리하면 다음과 같습니다.
• (CBP1)=(BP1)
𝛿𝑗
𝐿
=
𝜕𝐸
𝜕𝑓(𝑥𝑗
𝐿
)
𝜕𝑓(𝑥𝑗
𝐿
)
𝜕𝑥𝑗
𝐿 =
𝜕𝐸
𝜕𝑓(𝑥𝑗
𝐿
)
𝑓′
𝑥𝑗
𝐿
• (CBP2)
Conv-pool-FC인 경우
𝛿𝑖𝑗
𝑙
=
𝑟
(𝑤
𝑟,
𝑖
𝑠
𝐽+
𝑗
𝑠
𝑙+1
𝛿 𝑟
𝑙+1)
𝜕𝑜 𝑖
𝑠
𝑗
𝑠
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝑓′ 𝑥𝑖𝑗
𝑙
Conv-pool-Conv인 경우
𝛿𝑖𝑗
𝑙
=
𝑚 𝑛
(𝑤
(
𝑖
𝑠
−𝑚),(
𝑗
𝑠
−𝑛)
𝑙+1
𝛿 𝑚𝑛
𝑙+1)
𝜕𝑜 𝑖
𝑠
𝑗
𝑠
𝑙
𝜕𝑜𝑖𝑗
𝑙
𝑓′ 𝑥𝑖𝑗
𝑙
(26)
82
Convolutional Neural Network
Multimedia Signal Processing Laboratory
• (CBP2)
𝜕𝑜 𝑖
𝑠
𝑗
𝑠
𝑙
𝜕𝑜𝑖𝑗
𝑙
=
1, if 𝑜𝑖𝑗
𝑙
= max(nb(𝑜𝑖𝑗
𝑙
))
0, otherwise
nb 𝑜𝑖𝑗
𝑙
= 𝑜𝑡∈𝑅1,𝑗∈𝑅2
𝑙
𝑅1 = 𝑖 − 𝑖%𝑠 , 𝑖 − 𝑖%𝑠 + 𝑠 − 1
𝑅2 = [𝑗 − 𝑗%𝑠 , 𝑗 − 𝑗%𝑠 + (𝑠 − 1)]
s는 pooling layer의 size
83
Convolutional Neural Network
Multimedia Signal Processing Laboratory
• (CBP3)
𝜕𝐸
𝜕𝑏 𝑙
=
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝛿𝑖𝑗
𝑙
• (CBP4)
𝜕𝐸
𝜕𝑤 𝑎𝑏
𝑙
=
𝑖=0
𝑁−𝑚
𝑗=0
𝑁−𝑚
𝛿𝑖𝑗
𝑙
𝑜𝑖+𝑎,𝑗+𝑏
𝑙−1
84
Convolutional Neural Network
Multimedia Signal Processing Laboratory
Convolutional Neural Network
• Reference
1. https://ratsgo.github.io/deep%20learning/2017/04/05/CNNbackprop/
2. http://www.jefkine.com/general/2016/09/05/backpropagation-in-convolutional-
neural-networks/
3. https://blog.naver.com/atelierjpro/220882326143
4. https://metamath1.github.io/cnn/index.html
85
Thank you.

More Related Content

What's hot

Modern Convolutional Neural Network techniques for image segmentation
Modern Convolutional Neural Network techniques for image segmentationModern Convolutional Neural Network techniques for image segmentation
Modern Convolutional Neural Network techniques for image segmentation
Gioele Ciaparrone
 
Recent Progress in RNN and NLP
Recent Progress in RNN and NLPRecent Progress in RNN and NLP
Recent Progress in RNN and NLP
hytae
 
Dilated rnn
Dilated rnnDilated rnn
Dilated rnn
naoto moriyama
 
TensorFlow Tutorial | Deep Learning With TensorFlow | TensorFlow Tutorial For...
TensorFlow Tutorial | Deep Learning With TensorFlow | TensorFlow Tutorial For...TensorFlow Tutorial | Deep Learning With TensorFlow | TensorFlow Tutorial For...
TensorFlow Tutorial | Deep Learning With TensorFlow | TensorFlow Tutorial For...
Simplilearn
 
14_cnn complete.pptx
14_cnn complete.pptx14_cnn complete.pptx
14_cnn complete.pptx
FaizanNadeem10
 
Batch normalization presentation
Batch normalization presentationBatch normalization presentation
Batch normalization presentation
Owin Will
 
LeNet to ResNet
LeNet to ResNetLeNet to ResNet
LeNet to ResNet
Somnath Banerjee
 
Resnet
ResnetResnet
Convolutional neural networks 이론과 응용
Convolutional neural networks 이론과 응용Convolutional neural networks 이론과 응용
Convolutional neural networks 이론과 응용
홍배 김
 
Why Batch Normalization Works so Well
Why Batch Normalization Works so WellWhy Batch Normalization Works so Well
Why Batch Normalization Works so Well
Chun-Ming Chang
 
PRML 5.5
PRML 5.5PRML 5.5
PRML 5.5
Ryuta Shitomi
 
Introduction to Deep learning
Introduction to Deep learningIntroduction to Deep learning
Introduction to Deep learning
leopauly
 
ShuffleNet - PR054
ShuffleNet - PR054ShuffleNet - PR054
ShuffleNet - PR054
Jinwon Lee
 
Fisher Vectorによる画像認識
Fisher Vectorによる画像認識Fisher Vectorによる画像認識
Fisher Vectorによる画像認識
Takao Yamanaka
 
Introduction to CNN
Introduction to CNNIntroduction to CNN
Introduction to CNN
Shuai Zhang
 
Densely Connected Convolutional Networks
Densely Connected Convolutional NetworksDensely Connected Convolutional Networks
Densely Connected Convolutional Networks
harmonylab
 
Yurii Pashchenko: Zero-shot learning capabilities of CLIP model from OpenAI
Yurii Pashchenko: Zero-shot learning capabilities of CLIP model from OpenAIYurii Pashchenko: Zero-shot learning capabilities of CLIP model from OpenAI
Yurii Pashchenko: Zero-shot learning capabilities of CLIP model from OpenAI
Lviv Startup Club
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobile
yusuke shibui
 
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
Deep Learning JP
 

What's hot (20)

Modern Convolutional Neural Network techniques for image segmentation
Modern Convolutional Neural Network techniques for image segmentationModern Convolutional Neural Network techniques for image segmentation
Modern Convolutional Neural Network techniques for image segmentation
 
Recent Progress in RNN and NLP
Recent Progress in RNN and NLPRecent Progress in RNN and NLP
Recent Progress in RNN and NLP
 
Dilated rnn
Dilated rnnDilated rnn
Dilated rnn
 
TensorFlow Tutorial | Deep Learning With TensorFlow | TensorFlow Tutorial For...
TensorFlow Tutorial | Deep Learning With TensorFlow | TensorFlow Tutorial For...TensorFlow Tutorial | Deep Learning With TensorFlow | TensorFlow Tutorial For...
TensorFlow Tutorial | Deep Learning With TensorFlow | TensorFlow Tutorial For...
 
14_cnn complete.pptx
14_cnn complete.pptx14_cnn complete.pptx
14_cnn complete.pptx
 
Batch normalization presentation
Batch normalization presentationBatch normalization presentation
Batch normalization presentation
 
LeNet to ResNet
LeNet to ResNetLeNet to ResNet
LeNet to ResNet
 
Resnet
ResnetResnet
Resnet
 
Convolutional neural networks 이론과 응용
Convolutional neural networks 이론과 응용Convolutional neural networks 이론과 응용
Convolutional neural networks 이론과 응용
 
Why Batch Normalization Works so Well
Why Batch Normalization Works so WellWhy Batch Normalization Works so Well
Why Batch Normalization Works so Well
 
rnn BASICS
rnn BASICSrnn BASICS
rnn BASICS
 
PRML 5.5
PRML 5.5PRML 5.5
PRML 5.5
 
Introduction to Deep learning
Introduction to Deep learningIntroduction to Deep learning
Introduction to Deep learning
 
ShuffleNet - PR054
ShuffleNet - PR054ShuffleNet - PR054
ShuffleNet - PR054
 
Fisher Vectorによる画像認識
Fisher Vectorによる画像認識Fisher Vectorによる画像認識
Fisher Vectorによる画像認識
 
Introduction to CNN
Introduction to CNNIntroduction to CNN
Introduction to CNN
 
Densely Connected Convolutional Networks
Densely Connected Convolutional NetworksDensely Connected Convolutional Networks
Densely Connected Convolutional Networks
 
Yurii Pashchenko: Zero-shot learning capabilities of CLIP model from OpenAI
Yurii Pashchenko: Zero-shot learning capabilities of CLIP model from OpenAIYurii Pashchenko: Zero-shot learning capabilities of CLIP model from OpenAI
Yurii Pashchenko: Zero-shot learning capabilities of CLIP model from OpenAI
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobile
 
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
 

Similar to 03.12 cnn backpropagation

neural network 기초
neural network 기초neural network 기초
neural network 기초
Dea-hwan Ki
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
Jinwon Lee
 
Lecture 4: Neural Networks I
Lecture 4: Neural Networks ILecture 4: Neural Networks I
Lecture 4: Neural Networks I
Sang Jun Lee
 
Convolutional neural network
Convolutional neural networkConvolutional neural network
Convolutional neural network
rlawjdgns
 
Convolutional neural networks
Convolutional neural networksConvolutional neural networks
Convolutional neural networks
HyunjinBae3
 
[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pub[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pub
Jaewook. Kang
 
Deep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural NetworkDeep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural Network
agdatalab
 
DL from scratch(1~3)
DL from scratch(1~3)DL from scratch(1~3)
DL from scratch(1~3)
Park Seong Hyeon
 
Cnn 강의
Cnn 강의Cnn 강의
Cnn 강의
재연 윤
 
HistoryOfCNN
HistoryOfCNNHistoryOfCNN
HistoryOfCNN
Tae Young Lee
 
인공신경망
인공신경망인공신경망
인공신경망
종열 현
 
Cnn 발표자료
Cnn 발표자료Cnn 발표자료
Cnn 발표자료
종현 최
 
LeNet & GoogLeNet
LeNet & GoogLeNetLeNet & GoogLeNet
EveryBody Tensorflow module2 GIST Jan 2018 Korean
EveryBody Tensorflow module2 GIST Jan 2018 KoreanEveryBody Tensorflow module2 GIST Jan 2018 Korean
EveryBody Tensorflow module2 GIST Jan 2018 Korean
Jaewook. Kang
 
Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2
KyeongUkJang
 
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
Sumin Byeon
 
Deep learning overview
Deep learning overviewDeep learning overview
Deep learning overview
강민국 강민국
 
Nationality recognition
Nationality recognitionNationality recognition
Nationality recognition
준영 박
 
[데이터 분석 소모임] Convolution Neural Network 김려린
[데이터 분석 소모임] Convolution Neural Network 김려린[데이터 분석 소모임] Convolution Neural Network 김려린
[데이터 분석 소모임] Convolution Neural Network 김려린
dkuplusalpha
 
Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명
홍배 김
 

Similar to 03.12 cnn backpropagation (20)

neural network 기초
neural network 기초neural network 기초
neural network 기초
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
 
Lecture 4: Neural Networks I
Lecture 4: Neural Networks ILecture 4: Neural Networks I
Lecture 4: Neural Networks I
 
Convolutional neural network
Convolutional neural networkConvolutional neural network
Convolutional neural network
 
Convolutional neural networks
Convolutional neural networksConvolutional neural networks
Convolutional neural networks
 
[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pub[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pub
 
Deep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural NetworkDeep Learning & Convolutional Neural Network
Deep Learning & Convolutional Neural Network
 
DL from scratch(1~3)
DL from scratch(1~3)DL from scratch(1~3)
DL from scratch(1~3)
 
Cnn 강의
Cnn 강의Cnn 강의
Cnn 강의
 
HistoryOfCNN
HistoryOfCNNHistoryOfCNN
HistoryOfCNN
 
인공신경망
인공신경망인공신경망
인공신경망
 
Cnn 발표자료
Cnn 발표자료Cnn 발표자료
Cnn 발표자료
 
LeNet & GoogLeNet
LeNet & GoogLeNetLeNet & GoogLeNet
LeNet & GoogLeNet
 
EveryBody Tensorflow module2 GIST Jan 2018 Korean
EveryBody Tensorflow module2 GIST Jan 2018 KoreanEveryBody Tensorflow module2 GIST Jan 2018 Korean
EveryBody Tensorflow module2 GIST Jan 2018 Korean
 
Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2
 
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
 
Deep learning overview
Deep learning overviewDeep learning overview
Deep learning overview
 
Nationality recognition
Nationality recognitionNationality recognition
Nationality recognition
 
[데이터 분석 소모임] Convolution Neural Network 김려린
[데이터 분석 소모임] Convolution Neural Network 김려린[데이터 분석 소모임] Convolution Neural Network 김려린
[데이터 분석 소모임] Convolution Neural Network 김려린
 
Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명
 

03.12 cnn backpropagation

  • 1. Convolutional Neural Network Yeungnam Univ. MSP-LAB Ki Dae Hwan 2018.03.12
  • 2. Multimedia Signal Processing Laboratory Index • Convolution Neural Network Convolution Filter Stride Padding Pooling • Backpropagtion 2
  • 3. Multimedia Signal Processing Laboratory Convolutional Neural Network 3 • Like Perceptron imitated neural networks, CNN imitated cat experiments. • When viewing a particular image, only a portion of the optic nerve was activated.
  • 4. Multimedia Signal Processing Laboratory Convolutional Neural Network 4
  • 5. Multimedia Signal Processing Laboratory Convolutional Neural Network • How to get these features 5
  • 6. Multimedia Signal Processing Laboratory Convolutional Neural Network • What is convolution 두개의 함수 𝑓와 𝑔가 있을 때 두 함수의 합성곱을 수학 기호로는 𝑓 ∗ 𝑔와 같이 표현한다. 1D Convolution: 𝑓 ∗ 𝑔 𝑡 = −∞ ∞ 𝑓 𝑥 𝑔 𝑡 − 𝑥 𝑑𝑥 2D Convolution: 𝑓 ∗ 𝑔 𝑥, 𝑦 = 𝑦=−𝑁 𝑁 𝑥=−𝑁 𝑁 𝑓 𝑥, 𝑦 𝑔(𝑡 − 𝑥, 𝑡 − 𝑦) -wikipedia 6
  • 7. Multimedia Signal Processing Laboratory Convolutional Neural Network • What is convolution 함수 f에 대하여 함수 g가 얼마나 겹치는가 7
  • 8. Multimedia Signal Processing Laboratory Convolutional Neural Network • Convolution은 어떤 System Function에 대해서 입력 Input Function을 주었을 때, 어떠한 output이 나오는지를 연산해주는 연 산자가 됩니다. 8
  • 9. Multimedia Signal Processing Laboratory Convolutional Neural Network • Image 9
  • 10. Multimedia Signal Processing Laboratory Convolutional Neural Network • Cross-correlation Given an Image 𝐼 and a filter (kernel)𝐾 of dimensions 𝑘1 × 𝑘2, the cross- correlation operation is given by: 𝐼 ⊗ 𝐾 𝑖𝑗 = 𝑚=0 𝑘1−1 𝑛=0 𝑘2−1 𝐼 𝑖 + 𝑚, 𝑗 + 𝑛 𝐾(𝑚, 𝑛) (1) 10
  • 11. Multimedia Signal Processing Laboratory Convolutional Neural Network • Convolution Given an Image 𝐼 and a filter (kernel)𝐾 of dimensions 𝑘1 × 𝑘2, the convolution operation is given by: 𝐼 ∗ 𝐾 𝑖𝑗 = 𝑚=0 𝑘1−1 𝑛=0 𝑘2−1 𝐼 𝑖 − 𝑚, 𝑗 − 𝑛 𝐾(𝑚, 𝑛) (2) = 𝑚=0 𝑘1−1 𝑛=0 𝑘2−1 𝐼 𝑖 + 𝑚, 𝑗 + 𝑛 𝐾(−𝑚, −𝑛) (3) From Eq.3 it is easy to see that convolution is the same as cross-correlation with a flipped kernel i.e for a kernel 𝐾 where 𝐾 −𝑚, −𝑛 = 𝐾 𝑚, 𝑛 11
  • 12. Multimedia Signal Processing Laboratory Convolutional Neural Network 12 Cross-correlation convolution Image Kernel Image Kernel
  • 13. Multimedia Signal Processing Laboratory Convolutional Neural Network • Convolution, cross-correlation 문서에 따라 이 둘을 모두 convolution이라고 칭하는 문서도 많습니다. 뒤의 모든 예제는 correlation으로 forward 할 것입니다. 13
  • 14. Multimedia Signal Processing Laboratory Convolutional Neural Network • Image 주위 값들을 반영해 중앙의 값을 변화시킵니다. Filter ∶ 1 0 1 0 1 0 1 0 1 14
  • 15. Multimedia Signal Processing Laboratory Convolutional Neural Network • Filter(Kernel) 필터는 그 특징이 데이터에 있는지 없는지를 검출해주는 함수입 니다. 15
  • 16. Multimedia Signal Processing Laboratory Convolutional Neural Network 16 ∗ Filter → Sharpen blur Edge
  • 17. Multimedia Signal Processing Laboratory Convolutional Neural Network • 아래와 같은 곡선을 검출하는 필터가 있다고 해 봅시다. 17
  • 18. Multimedia Signal Processing Laboratory Convolutional Neural Network 18 • 필터와 비슷한 곡선에 대해 convolution을 하면 큰 결과 값을 가집니 다.
  • 19. Multimedia Signal Processing Laboratory • 필터와 상이한 곳과 convolution을 하면 결과 값이 0과 가까워 집니 다. Convolutional Neural Network 19
  • 20. Multimedia Signal Processing Laboratory Convolutional Neural Network • 새로 생긴 이미지는 원 이미지에서 부분 특징을 뽑아낸 것입니 다. • 부분 부분에서 특징을 알 수 있기 때문에 전체 이미지에서 특징 을 분석하는 것보다 좋은 학습효과를 낼 수 있습니다. • 이런 특징들을 잘 뽑아내야 합니다. 20
  • 21. Multimedia Signal Processing Laboratory Convolutional Neural Network • 이미지는 여러가지의 특징이 있기 때문에 하나의 필터가 아닌 여러 개의 다중 필터를 적용하게 됩니다. 21
  • 22. Multimedia Signal Processing Laboratory Convolutional Neural Network 22
  • 23. Multimedia Signal Processing Laboratory Convolutional Neural Network 23
  • 24. Multimedia Signal Processing Laboratory • Stride 필터를 적용하는 간격의 크기를 stride라고 합니다. 아래의 예제에서의 stride는 1입니다. 필터를 적용해서 얻어진 결과를 feature map 또는 activation map이라고 합니다. Convolutional Neural Network 24
  • 25. Multimedia Signal Processing Laboratory • Stride Output size = (input image size – filter size) / stride + 1 Convolutional Neural Network 25
  • 26. Multimedia Signal Processing Laboratory Convolutional Neural Network • Padding 필터를 적용한 feature map은 원본 이미지에 비해 크기가 줄어들 게 됩니다. CNN 네트워크는 여러 단계에 걸쳐서 필터를 적용합니다. 그러면 서 계속 크기가 작아지면 처음에 비해 특징들이 유실 될 수 있습 니다. 이를 방지하기 위해 padding이라는 기법을 사용합니다. 26
  • 27. Multimedia Signal Processing Laboratory Convolutional Neural Network • Padding 결과 값이 작아지는 것을 줄이기 위해 입력 이미지 주위로 0 값을 넣어서 입력 이미지의 크기를 인위적으로 키웁니다. 0으로 몇 겹 둘러싸여 있는지가 Padding의 크기가 됩니다. 27
  • 28. Multimedia Signal Processing Laboratory • 32x32x3 입력 값이 있을 때, 5x5x3필터를 적용하면(stride = 1) 결과 값의 크기는 28x28x3이 되는데 사이즈가 작아지는 것을 막으려면 padding을 2를 주면 됩니다. Convolutional Neural Network 28
  • 29. Multimedia Signal Processing Laboratory • Padding Output size = (input size – Filter size +2*padding size) / stride + 1 Convolutional Neural Network 29
  • 30. Multimedia Signal Processing Laboratory • Padding Padding은 결과 값이 작아지는 것을 막아서 특징이 유실 되 는 것을 막는 것 뿐만 아니라 모서리의 정보를 전달합니다. 또한 원래의 데이터에 0이라는 노이즈를 넣음으로써 오버피 팅을 방지할 수 있습니다. Convolutional Neural Network 30
  • 31. Multimedia Signal Processing Laboratory Convolutional Neural Network • Pooling CNN에서 추출된 특징들은 필요에 따라서 sub sampling과정을 거칩니다. 필요한 특징들이 추출이 되면 고해상도가 아닌 저해상도에서도 판단할 수 있는 원리와 같습니다. 31
  • 32. Multimedia Signal Processing Laboratory Convolutional Neural Network • Pooling 보통 max pooling을 가장 많이 사용합니다.(average pooling도 존재) 아래 예제는 4x4 image를 2x2 max pooling filter를 stride 2로 하여 pooling한 결과 입니다. 32
  • 33. Multimedia Signal Processing Laboratory Convolutional Neural Network • Pooling Max pooling은 특징의 값이 큰 값이 다른 값들을 대표한다는 개 념을 기반으로 합니다. 데이터의 사이즈를 줄임으로서 네트워크 연산 속도가 빨라집니다. 데이터의 크기를 줄이면서 소실이 발생하기 때문에 오버피팅이 줄어듭니다. 33
  • 34. Multimedia Signal Processing Laboratory Convolutional Neural Network FC = fully connected layer, ReLU = Rectified Linear Unit 34
  • 35. Multimedia Signal Processing Laboratory Convolutional Neural Network • ReLU(Rectified Linear Function) 𝑓 𝑥 = max(0, 𝑥) 자세한 것은 gradient vanishing problem을 설명할 때 하도록 하겠습니다. 35
  • 36. Multimedia Signal Processing Laboratory Convolutional Neural Network • Summary CNN에서는 MLP와 달리 weight들을 공유 공유되는 weight들로 convolution filter연산을 한다 Pooling으로 down sampling을 하여서 공간의 크기를 줄여 연산의 양과 파라미터 개수를 줄인다 Convolution layer와 pooling layer사이에는 activation layer가 있고 Convolution activation pooling layer를 계속 거치면 이미지의 사이즈는 줄어들고 복잡한 feature들이 추출됨 36
  • 37. Multimedia Signal Processing Laboratory Convolutional Neural Network • 1D convolution Padding = 0, Stride = 1, Kernel = 3 37 𝒙 𝟎 𝒙 𝟏 𝒙 𝟐 ⋯ ⋯ ⋯ ⋯ 𝒙 𝑵−𝟑 𝒙 𝑵−𝟐 𝒙 𝑵−𝟏 ∗ 𝒘 𝟎 𝒘 𝟏 𝒘 𝟐 𝒃 = 𝒚 𝟎 𝒚 𝟏 𝒚 𝟐 ⋯ 𝒚 𝑵−𝟓 𝒚 𝑵−𝟔 𝒚 𝑵−𝟕 𝑦0 = 𝑤0 ∙ 𝑥0 + 𝑤1 ∙ 𝑥1 + 𝑤2 ∙ 𝑥2 + 𝑏 𝑦𝑖 = 𝑤0 ∙ 𝑥𝑖 + 𝑤1 ∙ 𝑥𝑖+1 + 𝑤2 ∙ 𝑥𝑖+2 + 𝑏 (4)
  • 38. Multimedia Signal Processing Laboratory Convolutional Neural Network • 1D convolution 38 𝑥0 𝑥1 𝑥2 𝑥3 𝑏0 𝑏1 𝑤0 0 𝑤1 0 𝑤2 0 𝑤 𝑏 0 𝜎0 0 𝑓0 0 𝜎1 0 𝑓1 0 𝜎0 1 𝑓0 1 𝑦 𝑤00 1 𝑤10 1 𝑤 𝑏0 1
  • 39. Multimedia Signal Processing Laboratory • 1D convolution Convolutional Neural Network 39 𝑥0 𝑥1 𝑥2 𝑥3 𝑤0 0 𝑤1 0 𝑤2 0 𝑤 𝑏 0 𝜎0 0 𝑓0 0 𝜎1 0 𝑓1 0 𝜎0 1 𝑓0 1 𝑦 𝑤00 1 𝑤10 1 𝑤 𝑏0 1 Convolution layer Neural Network layer 𝑏0 𝑏1
  • 40. Multimedia Signal Processing Laboratory Convolutional Neural Network • 1D convolution 40 𝑥0 𝑥1 𝑥2 𝑥3 𝑤0 0 𝑤1 0 𝑤2 0 𝑤 𝑏 0 𝜎0 0 𝑓0 0 𝜎1 0 𝑓1 0 𝜎0 1 𝑓0 1 𝑦 𝑤00 1 𝑤10 1 𝑤 𝑏0 1 Convolution layer Neural Network layer 𝑏0 𝑏1
  • 41. Multimedia Signal Processing Laboratory Convolutional Neural Network 𝑦 = 𝑓0 1 𝜎0 1 = 𝑓0 1 𝑤00 1 ∙ 𝑓0 0 + 𝑤10 1 ∙ 𝑓1 0 + 𝑤 𝑏0 1 ∙ 𝑏1 = 𝑓0 1 (𝑤00 1 ∙ 𝑓0 0 (𝜎0 0 ) + 𝑤10 1 ∙ 𝑓1 0 (𝜎1 0 ) + 𝑤 𝑏0 1 ∙ 𝑏1 ) = 𝑓0 1 (𝑤00 1 ∙ 𝑓0 0 (𝑤0 0 ∙ 𝑥0 + 𝑤1 0 ∙ 𝑥1 + 𝑤2 0 ∙ 𝑥2 + 𝑤 𝑏 0 ∙ 𝑏0 ) + 𝑤10 1 ∙ 𝑓1 0 (𝑤0 0 ∙ 𝑥1 + 𝑤1 0 ∙ 𝑥2 + 𝑤2 0 ∙ 𝑥3 + 𝑤 𝑏 0 ∙ 𝑏0) + 𝑤 𝑏0 1 ∙ 𝑏1) 41
  • 42. Multimedia Signal Processing Laboratory Convolutional Neural Network 𝑦 = 𝑓0 1 (𝑤00 1 ∙ 𝑓0 0 (𝑤0 0 ∙ 𝑥0 + 𝑤1 0 ∙ 𝑥1 + 𝑤2 0 ∙ 𝑥2 + 𝑤 𝑏 0 ∙ 𝑏0 ) + 𝑤10 1 ∙ 𝑓1 0 (𝑤0 0 ∙ 𝑥1 + 𝑤1 0 ∙ 𝑥2 + 𝑤2 0 ∙ 𝑥3 + 𝑤 𝑏 0 ∙ 𝑏0) + 𝑤 𝑏0 1 ∙ 𝑏1) 𝜕𝑦 𝜕𝑤0 0 = 𝜕𝑓0 1 𝜕𝜎0 1 ∙ 𝜕𝜎0 1 𝜎𝑓0 0 ∙ 𝜕𝑓0 0 𝜕𝜎0 0 ∙ 𝜕𝜎0 0 𝜕𝑤0 0 + 𝜕𝜎0 1 𝜎𝑓1 0 ∙ 𝜕𝑓1 0 𝜕𝜎1 0 ∙ 𝜕𝜎1 0 𝜕𝑤0 0 (5) = 𝜕𝑓0 1 𝜕𝜎0 1 ∙ 𝑤00 1 ∙ 𝜕𝑓0 0 𝜕𝜎0 0 ∙ 𝑥0 + 𝑤10 1 ∙ 𝜕𝑓1 0 𝜕𝜎1 0 ∙ 𝑥1 (6) = 𝜕𝑓0 1 𝜕𝜎0 1 ∙ 𝜕𝜎0 1 𝜎𝑓0 0 ∙ 𝜕𝑓0 0 𝜕𝜎0 0 ∙ 𝑥0 + 𝜕𝜎0 1 𝜎𝑓1 0 ∙ 𝜕𝑓1 0 𝜕𝜎1 0 ∙ 𝑥1 = 𝜕𝑓0 1 𝜕𝜎0 0 ∙ 𝑥0 + 𝜕𝑓0 1 𝜕𝜎1 0 ∙ 𝑥1 = 𝑖 𝜕𝑓0 1 𝜕𝜎0 1 ∙ 𝑥𝑖 (7) 42
  • 43. Multimedia Signal Processing Laboratory Convolutional Neural Network 15 x 15 Max pooling 6 x 6 12 x 12 4x4 2x2 4x4 kernel 2x2 Input layer 3x3 kernel Max pooling 2x2 3 x 1 4x3 weight Conv layer pooling layer Conv layer pooling layer FC layer Picture (1)
  • 44. Multimedia Signal Processing Laboratory Convolutional Neural Network • Notation 1. All of index start with 0 2. 𝑙 is the 𝑙 𝑡ℎ layer where 𝑙 = 1 is the first layer and 𝑙 = 𝐿 is the last layer 3. 𝐸 is the loss function 𝐸 = 1 2 𝑟 𝑡 𝑟 − 𝑦𝑟 2 4. 𝑤𝑖,𝑗 𝑙 is the weight element connecting neurons of layer 𝑙 with neurons of layer 𝑙 − 1 5. 𝑏 𝑙 is the bias unit at layer 𝑙 6. 𝑥𝑖,𝑗 𝑙 is the weighted sum at layer 𝑙 plus the bias represented as 𝑥𝑖,𝑗 𝑙 = 𝑚 𝑛 𝑤 𝑚,𝑛 𝑙 𝑜𝑖+𝑚,𝑗+𝑛 𝑙−1 + 𝑏 𝑙 7. 𝑜𝑖,𝑗 𝑙 is the output vector at layer 𝑙 given by 𝑜𝑖,𝑗 𝑙 = 𝑓(𝑥𝑖,𝑗 𝑙 ) 8. 𝑓(∙) is the activation function. Application of the activation layer to the convolved input vector at layer 𝑙 is given by 𝑓(𝑥𝑖,𝑗 𝑙 ) 44
  • 45. Multimedia Signal Processing Laboratory Convolutional Neural Network • MLP Backpropagation 𝛿𝑗 𝐿 = 𝜕𝐸 𝜕𝑓(𝑥𝑗 𝐿 ) 𝜕𝑓(𝑥𝑗 𝐿 ) 𝜕𝑥𝑗 𝐿 = 𝜕𝐸 𝜕𝑓(𝑥𝑗 𝐿 ) 𝑓′ 𝑥𝑗 𝐿 𝛿𝑗 𝑙 = 𝑘 𝑤 𝑘,𝑗 𝑙+1 𝛿 𝑘 𝑙+1 𝑓′(𝑥𝑗 𝑙 ) 𝜕𝐸 𝜕𝑏𝑗 𝑙 = 𝛿𝑗 𝑙 𝜕𝐸 𝜕𝑤𝑗,𝑘 𝑙 = 𝑜 𝑘 𝑙−1 𝛿𝑗 𝑙 CNN에서는 (BP2), (BP3),(BP4)가 바뀌어야 합니다. 45 (BP1) (BP2) (BP3) (BP4)
  • 46. Multimedia Signal Processing Laboratory Convolutional Neural Network • 아래의 식은 CNN에서 𝑙번째 convolution 층에서 가중 합 결과 입니다. 𝑥𝑖,𝑗 𝑙 = 𝑚 𝑛 𝑤 𝑚,𝑛 𝑙 𝑜𝑖+𝑚,𝑗+𝑛 𝑙−1 + 𝑏 𝑙 • 마지막 FC층에서의 가중 합은 아래와 같습니다. 𝑥𝑗 𝐿 = 𝑖 𝑤𝑖,𝑗 𝐿−1 𝑜𝑖 𝐿−2 46 (1) (2)
  • 47. Multimedia Signal Processing Laboratory Convolutional Neural Network • 식(1)을 사용해서 네트워크 전체를 forwarding 하고 마지막 FC layer는 식(2)를 사 용합니다. • 마지막 출력층의 𝛿 𝐿 을 (BP1)을 통하여 구합니다. CNN에서의 출력층은 MLP와 같 은 모델이기 때문에 기존 식과 달라질 것이 없습니다. 𝛿𝑗 𝐿 = 𝜕𝐸 𝜕𝑓(𝑥𝑗 𝐿 ) 𝜕𝑓(𝑥𝑗 𝐿 ) 𝜕𝑥𝑗 𝐿 = 𝜕𝐸 𝜕𝑓(𝑥𝑗 𝐿 ) 𝑓′ 𝑥𝑗 𝐿 (CBP1) 47
  • 48. Multimedia Signal Processing Laboratory Convolutional Neural Network • FC layer의 bias는 𝑤0로 표현할 것이기 때문에 weight에 대한 편미분만 계산하면 됩니다. 여기서 𝑙은 FC layer의 𝑙번 째 층입니다. 𝜕𝐸 𝜕𝑤𝑖𝑗 𝑙 = 𝛿𝑗 𝑙 𝑜𝑖 𝑙−1 (3) • Picture(1)에서의 출력층에 대한 𝛿𝑗 𝐿 는 (CBP1)을 통해서 구하였고 𝑥𝑖 𝑙−1 또한 forward 과정으로 이미 알고 있는 값이다. • Picture(1)의 마지막 Convolution layer의 2x2의 출력 값을 1x4로 바꿔야 하는데 그 공식은 다음과 같다. 𝑖 = 𝑛′ 𝑀 + 𝑚′ 48 0,0 0,1 1,0 1,1 0 1 2 3 𝑚′ 𝑛′ 𝑖
  • 49. Multimedia Signal Processing Laboratory Convolutional Neural Network • 이제 convolution layer의 𝛿 𝑙을 구할 차례입니다. Convolution layer는 FC layer 연 결이 다르기 때문에 𝜕𝐸 𝜕𝑊 를 먼저 유도하여 풀도록 하겠습니다. • NxN의 크기를 가지는 𝑙 − 1 번 째 층의 결과는 𝑙번 째 층의 입력이 되고 mxm 크기 의 kernel w를 적용하여 (N-m+1)x(N-m+1)크기의 출력층을 만드는 convolution layer에 대한 식입니다. 𝑥𝑖,𝑗 𝑙 = 𝑎=0 𝑚−1 𝑏=0 𝑚−1 𝑤 𝑎𝑏 𝑙 𝑜𝑖+𝑎,𝑗+𝑏 𝑙−1 + 𝑏 𝑙 (4) 𝜕𝐸 𝜕𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝜕𝐸 𝜕𝑥𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 𝜕𝑏 𝑙 (5) 49
  • 50. Multimedia Signal Processing Laboratory Convolutional Neural Network • 식(5)에서 𝜕𝑥 𝑖𝑗 𝑙 𝜕𝑏 𝑙 은 1인 것을 식 (4)를 통해 확인 할 수 있습니다. 𝜕𝐸 𝜕𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝜕𝐸 𝜕𝑥𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 𝜕𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝛿𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 𝜕𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝛿𝑖𝑗 𝑙 (6) • Convolution layer에서 𝜕𝐸 𝜕𝑏 𝑙는 모든 𝛿를 더하는 것과 같습니다. 𝜕𝐸 𝜕𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝛿𝑖𝑗 𝑙 (CBP3) 50
  • 51. Multimedia Signal Processing Laboratory Convolutional Neural Network • 이제 𝜕𝐸 𝜕𝑤 𝑎𝑏 𝑙 를 구할 차례입니다. 이 역시 chain rule을 통하여 나타낼 수 있습니다. 𝜕𝐸 𝜕𝑤 𝑎𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝜕𝐸 𝜕𝑥𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 𝜕𝑤 𝑎𝑏 𝑙 (7) • 식(7)에서의 𝜕𝑥 𝑖𝑗 𝑙 𝜕𝑤 𝑎𝑏 𝑙 는 식(4)에 의해 식(8)이 됩니다. 𝜕𝐸 𝜕𝑤 𝑎𝑏 𝑙 = 𝑜𝑖+𝑎,𝑗+𝑏 𝑙−1 (8) • 식(7)을 다시 정리하면 𝜕𝐸 𝜕𝑤 𝑎𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝜕𝐸 𝜕𝑥𝑖𝑗 𝑙 𝑜𝑖+𝑎,𝑗+𝑏 𝑙−1 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝛿𝑖𝑗 𝑙 𝑜𝑖+𝑎,𝑗+𝑏 𝑙−1 (9) 51
  • 52. Multimedia Signal Processing Laboratory Convolutional Neural Network • 식(9)는 바로 𝑙 − 1 번 째 층의 활성 값 𝑥 𝑙−1 과 𝛿 𝑙 을 correlation한 값입니다. MLP의 (BP4)와 비교해보면 (BP4)는 x와 𝛿를 행렬곱한 식이고 convolution층에서는 x와 𝛿 를 correlation한 것입니다. 따라서 (CBP4)는 다음과 같습니다. 𝜕𝐸 𝜕𝑤 𝑎𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝛿𝑖𝑗 𝑙 𝑜𝑖+𝑎,𝑗+𝑏 𝑙−1 (CBP4) 52
  • 53. Multimedia Signal Processing Laboratory Convolutional Neural Network • 이제 convolution layer에서의 𝛿 𝑙 만 구하면 (CBP3),(CBP4)를 통해 𝜕𝐸 𝜕𝑏 𝑙 , 𝜕𝐸 𝜕𝑤 𝑎𝑏 𝑙 를 구할 수 있습니다. 𝛿𝑖𝑗 𝑙 = 𝜕𝐸 𝜕𝑥𝑖𝑗 𝑙 = 𝑟 𝑖′ 𝑗′ 𝜕E 𝜕𝑥 𝑟 𝑙+1 𝜕𝑥 𝑟 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 (10) 위 식에서 𝑖′, 𝑗′은 convolution layer다음 max pooling layer의 index 53
  • 54. Multimedia Signal Processing Laboratory Convolutional Neural Network 𝛿𝑖𝑗 𝑙 = 𝜕𝐸 𝜕𝑥𝑖𝑗 𝑙 = 𝑟 𝑖′ 𝑗′ 𝜕E 𝜕𝑥 𝑟 𝑙+1 𝜕𝑥 𝑟 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 (10) 54 𝑥𝑖𝑗 𝑙 𝑓() 𝑜𝑖𝑗 𝑙 𝑥 𝑙+1 𝜕𝑥 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 Max pooling 𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝐸 𝜕𝑥 𝑙+1 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙
  • 55. Multimedia Signal Processing Laboratory Convolutional Neural Network • 식(10)의 인덱스 𝑖′ , 𝑗′은 𝑞로도 쓸 수 있으므로 다음과 같이 표현 가능합니다. 𝛿𝑖𝑗 𝑙 = 𝜕𝐸 𝜕𝑥𝑖𝑗 𝑙 = 𝑟 𝑞 𝜕E 𝜕𝑥 𝑟 𝑙+1 𝜕𝑥 𝑟 𝑙+1 𝜕𝑜 𝑞 𝑙 𝜕𝑜 𝑞 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 (11) 𝑞 = 𝑖′ 𝐽 + 𝑗′ 55
  • 56. Multimedia Signal Processing Laboratory Convolutional Neural Network 𝛿𝑖𝑗 𝑙 = 𝜕𝐸 𝜕𝑥𝑖𝑗 𝑙 = 𝑟 𝑞 𝜕E 𝜕𝑥 𝑟 𝑙+1 𝜕𝑥 𝑟 𝑙+1 𝜕𝑜 𝑞 𝑙 𝜕𝑜 𝑞 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 (11) 56 𝑥𝑖𝑗 𝑙 𝑓() 𝑜𝑖𝑗 𝑙 𝑥 𝑙+1 𝜕𝑥 𝑙+1 𝜕𝑜 𝑞 𝑙 Max pooling 𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜 𝑞 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝐸 𝜕𝑥 𝑙+1 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙
  • 57. Multimedia Signal Processing Laboratory Convolutional Neural Network • 식(11)에서 𝑥 𝑝 𝑙+1 은 다음과 같습니다. 𝑥 𝑟 𝑙+1 = 𝑟 𝑤 𝑞𝑟 𝑙+1 𝑜 𝑞 𝑙 + 𝑏 𝑟 𝑙+1 (12) • 식 (12)에 의해 식(10)의 𝜕𝑥 𝑟 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 는 인덱스 𝑖′ , 𝑗′ 가 𝑞가 될 때를 제외하고는 모두 0입니 다. 따라서 다음과 같이 나타낼 수 있습니다. 𝜕𝑥 𝑟 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 = 𝜕 𝑟 𝑤 𝑞𝑟 𝑙+1 𝑜 𝑞 𝑙 + 𝑏 𝑟 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 = 𝑤 𝑞𝑟 𝑙+1 (13) 57
  • 58. Multimedia Signal Processing Laboratory Convolutional Neural Network • 식(13)과 𝛿의 정의를 이용해서 식(10)을 다시 정리해보면 다음과 같습니다. 𝛿𝑖𝑗 𝑙 = 𝑟 𝑖′ 𝑗′ 𝛿 𝑟 𝑙+1 𝑤 𝑞𝑟 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′(𝑥𝑖𝑗 𝑙 ) 14 • Index 𝑞는 𝑖′, j′으로 이루어져 있기 때문에 문제가 되지 않습니다. • (BP2)와 비교해 보면 𝜕𝑜 𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 항이 새로 생긴 것을 확인할 수 있습니다. 𝛿𝑗 𝑙 = 𝑘 𝑤 𝑘,𝑗 𝑙+1 𝛿 𝑘 𝑙+1 𝑓′(𝑥𝑗 𝑙 ) 58
  • 59. Multimedia Signal Processing Laboratory Convolutional Neural Network • 𝜕𝑜 𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 항이 무엇인지 확인하기 앞서 Max pooling의 경우를 놓고 생각해보도록 하 겠습니다. 그림으로 나타내면 아래와 같습니다. • 2x2 Max pooling이고 색이 진한 부분이 같은 색의 영역에서 가장 큰 값입니다. 59
  • 60. Multimedia Signal Processing Laboratory Convolutional Neural Network • 𝜕𝑜 𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 항은 max 함수를 미분한 것과 같습니다. 𝑜𝑖′ 𝑗′ 𝑙 는 𝑜𝑖𝑗 𝑙 를 max pooling 한 것이 기 때문입니다. 수식으로 표현하면 다음과 같습니다. 𝑜𝑖′ 𝑗′ 𝑙 = max nb(𝑜𝑖𝑗 𝑙 ) (15) 60
  • 61. Multimedia Signal Processing Laboratory Convolutional Neural Network • 식에서 nb(𝑜𝑖𝑗 𝑙 )는 주어진 𝑜𝑖𝑗 𝑙 와 함께 pooling되는 이웃들을 나타냅니다. 2x2 pooling의 nb(𝑜11 𝑙 )는 𝑜00 𝑙 . 𝑜01 𝑙 . 𝑜10 𝑙 . 𝑜11 𝑙 이 됩니다. 그럼 𝜕𝑜 𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 항에서 분모의 이웃들 이 분자와 아무런 관계가 없다면 0이 됩니다. 예를 들어 𝜕𝑜 0′0′ 𝑙 𝜕𝑜02 𝑙 은 0입니다. 이런 식 으로 식(14)는 대부분의 경우 0이 되고 인덱스 𝑖, 𝑗와 관련 있는 𝑖′ , 𝑗′에 대해서만 생각하면 됩니다.여기에 수식을 입력하십시오. 𝑜′ = 𝑜/2 , 𝑝′ = 𝑝/2 61
  • 62. Multimedia Signal Processing Laboratory Convolutional Neural Network • ∙ 은 바닥 함수입니다. 정의는 다음과 같습니다. 𝑥 = max 𝑛 ≤ 𝑥 , floor 𝑥 , 𝑖𝑛𝑡(𝑥) 5.2 = 5, −5.2 = −6, 3 = 3 62
  • 63. Multimedia Signal Processing Laboratory Convolutional Neural Network • 식(14)는 식(16)으로 나타낼 수 있습니다. 𝛿𝑖𝑗 𝑙 = 𝑟 (𝑤 𝑟, 𝑖 𝑠 𝐽+ 𝑗 𝑠 𝑙+1 𝛿 𝑟 𝑙+1) 𝜕𝑜 𝑖 𝑠 𝑗 𝑠 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′ 𝑥𝑖𝑗 𝑙 (16) • 이제 식(16)은 좌변과 우변 모두 인덱스 𝑖, 𝑗만 남게 되었습니다(𝑟은 시그마에 의해 서 사라집니다.). 즉 식(16)에 𝑖, 𝑗만 넣으면 𝛿𝑖𝑗 𝑙 를 구할 수 있습니다. 63
  • 64. Multimedia Signal Processing Laboratory Convolutional Neural Network • 이제 𝜕𝑜 𝑖 2 𝑗 2 𝑙 𝜕𝑜𝑖𝑗 𝑙 항만 처리를 하면 됩니다. 𝜕𝑜 𝑖 2 𝑗 2 𝑙 𝜕𝑜𝑖𝑗 𝑙 항의 의미는 max 함수에 대한 미분이 고 max와 mean을 미분하면 다음과 같습니다. 𝑔 𝑥 = max 𝑥 , 𝜕𝑔 𝜕𝑥 = 1, if 𝑥𝑖 = max(𝑥) 0, otherwise (17) 𝑔 𝑥 = 𝑘=1 𝑚 𝑥 𝑘 𝑚 , 𝜕𝑔 𝜕𝑥 = 1 𝑚 (18) 64
  • 65. Multimedia Signal Processing Laboratory Convolutional Neural Network • 다시 한 번 backpropagation 관점에서 식(10)과 식(16)을 보면 𝛿𝑖𝑗 𝑙 = 𝑟 𝑖′ 𝑗′ 𝜕E 𝜕𝑥 𝑟 𝑙+1 𝜕𝑥 𝑟 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 𝛿𝑖𝑗 𝑙 = 𝑟 (𝑤 𝑟,( 𝑖 2 𝐽+ 𝑗 2 ) 𝑙+1 𝛿 𝑟 𝑙+1 ) 𝜕𝑜 𝑖 2 𝑗 2 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′ 𝑥𝑖𝑗 𝑙 65 Pooling layer 앞 까지의 gradient Pooling layer의 max 함수 미분
  • 66. Multimedia Signal Processing Laboratory Convolutional Neural Network • 아래의 그림에서 𝑟 𝑤 𝑞𝑟 𝑙+1 𝛿 𝑟 𝑙+1 은 모두 계산이 된 상태입니다. Max 함수를 미분하 면 입력된 값이 최대일 경우는 1, 나머지는 0이 됩니다. 66 0 0 0 0 0 0 0 0 0 0 0 0 𝑟 (𝑤0,𝑟 𝑙+1 𝛿 𝑟 𝑙+1) 𝑟 (𝑤1,𝑟 𝑙+1 𝛿 𝑟 𝑙+1) 𝑟 (𝑤2,𝑟 𝑙+1 𝛿 𝑟 𝑙+1) 𝑟 (𝑤3,𝑟 𝑙+1 𝛿 𝑟 𝑙+1) 𝑟 (𝑤1,𝑟 𝑙+1 𝛿 𝑟 𝑙+1) 𝑟 (𝑤0,𝑟 𝑙+1 𝛿 𝑟 𝑙+1) 𝑟 (𝑤2,𝑟 𝑙+1 𝛿 𝑟 𝑙+1) 𝑟 (𝑤3,𝑟 𝑙+1 𝛿 𝑟 𝑙+1)
  • 67. Multimedia Signal Processing Laboratory Convolutional Neural Network • 위의 그림을 보면 값을 특정 위치로 보내주는 것과 같습니다. Stanford cs231 수 업에선 이를 “the max gate route the gradient”라고 표현했습니다. Mean pooling의 경우는 다음과 같습니다. 67 𝑟 (𝑤0,𝑟 𝑙+1 𝛿 𝑟 𝑙+1) 𝑟 (𝑤1,𝑟 𝑙+1 𝛿 𝑟 𝑙+1) 𝑟 (𝑤2,𝑟 𝑙+1 𝛿 𝑟 𝑙+1) 𝑟 (𝑤3,𝑟 𝑙+1 𝛿 𝑟 𝑙+1) 𝑟 𝑤1,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤0,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤2,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤3,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤0,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤0,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤0,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤1,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤1,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤1,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤2,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤2,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤2,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤3,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤3,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4 𝑟 𝑤3,𝑟 𝑙+1 𝛿 𝑟 𝑙+1 4
  • 68. Multimedia Signal Processing Laboratory Convolutional Neural Network • Forwarding 할 때 pooling이 sub sampling역할을 했다면 backpropagation에서 pooling layer는 gradient를 up sampling하는 것과 같습니다. • 식(16)을 up sampling으로 표현하면 다음과 같습니다. 𝛿𝑖𝑗 𝑙 = 𝑟 (𝑤 𝑟, 𝑖 2 𝐽+ 𝑗 2 𝑙+1 𝛿 𝑟 𝑙+1 ) 𝜕𝑜 𝑖 2 𝑗 2 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′ 𝑥𝑖𝑗 𝑙 𝛿 𝑙 = Upsampling[(𝑊 𝑙) 𝑇 𝛿 𝑙+1]𝑓′ 𝑥 𝑙 (19) 68
  • 69. Multimedia Signal Processing Laboratory Convolutional Neural Network • 앞에서 미뤄두었던 nb()도 정식화 하면 다음과 같습니다. 𝛿𝑖𝑗 𝑙 = 𝑟 (𝑤 𝑟, 𝑖 𝑠 𝐽+ 𝑗 𝑠 𝑙+1 𝛿 𝑟 𝑙+1 ) 𝜕𝑜 𝑖 𝑠 𝑗 𝑠 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′ 𝑥𝑖𝑗 𝑙 𝜕𝑜 𝑖 𝑠 𝑗 𝑠 𝑙 𝜕𝑜𝑖𝑗 𝑙 = 1, if 𝑜𝑖𝑗 𝑙 = max(nb(𝑜𝑖𝑗 𝑙 )) 0, otherwise nb 𝑜𝑖𝑗 𝑙 = 𝑜𝑡∈𝑅1,𝑗∈𝑅2 𝑙 (20) 𝑅1 = 𝑖 − 𝑖%𝑠 , 𝑖 − 𝑖%𝑠 + 𝑠 − 1 𝑅2 = [𝑗 − 𝑗%𝑠 , 𝑗 − 𝑗%𝑠 + (𝑠 − 1)] s는 pooling layer의 size 69
  • 70. Multimedia Signal Processing Laboratory Convolutional Neural Network • 예를 들어 𝑜21 𝑙 에 대한 nb 𝑜21 𝑙 은 𝑅1 = 2,3 , 𝑅2 = [0,1]이므로 𝑜20 𝑙 , 𝑜21 𝑙 , 𝑜30 𝑙 , 𝑜31 𝑙 이 되고 이들은 𝑜21 𝑙 과 함께 pooling되는 곳임을 알 수 있습니다. 이제 𝛿𝑖𝑗 𝑙 를 완전히 구했으므로 (CBP3),(CBP4)를 통해 𝜕𝐸 𝜕𝑏 𝑙, 𝜕𝐸 𝜕𝑤 𝑎𝑏 𝑙 를 구할 수 있습니다. 𝜕𝐸 𝜕𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝛿𝑖𝑗 𝑙 (CBP3) 𝜕𝐸 𝜕𝑤 𝑎𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝛿𝑖𝑗 𝑙 𝑜𝑖+𝑎,𝑗+𝑏 𝑙−1 (CBP4) 70
  • 71. Multimedia Signal Processing Laboratory Convolutional Neural Network • 지금까지 구한 𝛿𝑖𝑗 𝑙 은 𝑙번 째 층의 pooling 다음 layer가 FC layer일 때 입니다. 그 럼 pooling 다음이 convolution layer일 때도 계산해 보도록 합시다. 𝛿𝑖𝑗 𝑙 는 다음식 과 같이 변합니다. 𝛿𝑖𝑗 𝑙 = 𝜕𝐸 𝜕𝑥𝑖𝑗 𝑙 = 𝑖′ 𝑗′ 𝑚 𝑛 𝜕E 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 (21) 71
  • 72. Multimedia Signal Processing Laboratory Convolutional Neural Network 𝛿𝑖𝑗 𝑙 = 𝜕𝐸 𝜕𝑥𝑖𝑗 𝑙 = 𝑖′ 𝑗′ 𝑚 𝑛 𝜕E 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 72 𝑥𝑖𝑗 𝑙 𝑓() 𝑜𝑖𝑗 𝑙 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 Max pooling 𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝐸 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 Convolution 𝑥 𝑚𝑛 𝑙+1
  • 73. Multimedia Signal Processing Laboratory Convolutional Neural Network • Backpropagation 관점에서 보면 다음과 같습니다. 𝛿𝑖𝑗 𝑙 = 𝜕𝐸 𝜕𝑥𝑖𝑗 𝑙 = 𝑖′ 𝑗′ 𝑚 𝑛 𝜕E 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 73 Pooling layer 앞 까지의 gradient Pooling layer의 max 함수 미분
  • 74. Multimedia Signal Processing Laboratory Convolutional Neural Network • 앞의 식의 𝑥 𝑚𝑛 𝑙+1 은 다음과 같습니다. 𝑥 𝑚𝑛 𝑙+1 = 𝑐=0 𝐶−1 𝑑=0 𝐷−1 𝑤 𝑐𝑑 𝑙+1 𝑜 𝑚+𝑐 𝑛+𝑑 𝑙 + 𝑏 𝑙+1 (22) • 이전과 같은 논리로 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 는 식(23)을 만족하는 경우를 제외하고 모두 0입니다. 𝑖′ = 𝑚 + 𝑐 𝑗′ = 𝑛 + 𝑑 74 (23)
  • 75. Multimedia Signal Processing Laboratory Convolutional Neural Network • 식(23)에 의해 𝑐 = 𝑖′ − 𝑚, 𝑑 = 𝑗′ − 𝑛이므로 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 은 식(24)와 같습니다. 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 = 𝑤(𝑖′−𝑚)(𝑗′−𝑛) 𝑙+1 (24) • 식(24)를 이용해서 식(21)을 다시 정리하면 𝛿𝑖𝑗 𝑙 = 𝑖′ 𝑗′ 𝑚 𝑛 𝛿 𝑚𝑛 𝑙+1 𝑤 𝑖′−𝑚 𝑗′−𝑛 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′ 𝑥𝑖𝑗 𝑙 (25) 75
  • 76. Multimedia Signal Processing Laboratory • 𝜕𝑜 𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 을 처리하면 𝑖′ = 𝑖/𝑠 , 𝑗′ = 𝑗/𝑠 인 경우를 제외하면 모두 0입니다. 𝛿𝑖𝑗 𝑙 = 𝑚 𝑛 (𝑤 ( 𝑖 𝑠 −𝑚),( 𝑗 𝑠 −𝑛) 𝑙+1 𝛿 𝑚𝑛 𝑙+1 ) 𝜕𝑜 𝑖 𝑠 𝑗 𝑠 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′ 𝑥𝑖𝑗 𝑙 (26) 76 Convolutional Neural Network
  • 77. Multimedia Signal Processing Laboratory • 식 16 과 비교하면 큰 차이는 없지만 빨간 부분만 변경된 것을 확인할 수 있습니 다. 𝛿𝑖𝑗 𝑙 = 𝑚 𝑛 (𝑤 ( 𝑖 𝑠 −𝑚),( 𝑗 𝑠 −𝑛) 𝑙+1 𝛿 𝑚𝑛 𝑙+1) 𝜕𝑜 𝑖 𝑠 𝑗 𝑠 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′ 𝑥𝑖𝑗 𝑙 (26) 𝛿𝑖𝑗 𝑙 = 𝑟 (𝑤 𝑟, 𝑖 𝑠 𝐽+ 𝑗 𝑠 𝑙+1 𝛿 𝑟 𝑙+1 ) 𝜕𝑜 𝑖 𝑠 𝑗 𝑠 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′ 𝑥𝑖𝑗 𝑙 (16) 77 Convolutional Neural Network
  • 78. Multimedia Signal Processing Laboratory • 식 26 의 빨간 부분을 full convolution으로 볼 수 있습니다. 𝛿𝑖𝑗 𝑙 = 𝑚 𝑛 (𝑤 ( 𝑖 𝑠 −𝑚),( 𝑗 𝑠 −𝑛) 𝑙+1 𝛿 𝑚𝑛 𝑙+1) 𝜕𝑜 𝑖 𝑠 𝑗 𝑠 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′ 𝑥𝑖𝑗 𝑙 (26) 78 Convolutional Neural Network 𝑤 𝛿 Output size : (m+s-1)x(n+s-1)
  • 79. Multimedia Signal Processing Laboratory • 결국 식(27)이 의미하는 바는 𝑤 𝑙+1에 𝛿 𝑙+1을 full convolution한 것과 같다는 것입 니다. 밑의 예제와 같다면 full conv의 결과는 6x6이 되고 pooling layer미분 값과 곱하면 입력 크기인 12x12와 같아 집니다. • Convolution-pooling-FC인 경우 max pooling에 대한 미분이 up sampling시켜 gradient가 입력 이미지의 크기 와 같아지는 것을 알고 있습니다. 79 Convolutional Neural Network 𝑥𝑖𝑗 𝑙 𝑓() 𝑜𝑖𝑗 𝑙 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 = 𝑤 𝑙+1 Max pooling 𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝐸 𝜕𝑥 𝑚𝑛 𝑙+1 = 𝛿 𝑙+1𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 Convolution 𝑥 𝑚𝑛 𝑙+1 4 × 4 3 × 3 6 × 6 12 × 1212 × 12
  • 80. Multimedia Signal Processing Laboratory • 𝑙 + 1층 다음이 FC layer라면 𝛿 𝑙+1의 크기는 4x4가 될 것이고 180도 뒤집어도 4x4 입니다. 거기에 80 Convolutional Neural Network 𝑥𝑖𝑗 𝑙 𝑓() 𝑜𝑖𝑗 𝑙 𝜕𝑥 𝑚𝑛 𝑙+1 𝜕𝑜𝑖′ 𝑗′ 𝑙 = 𝑤 𝑙+1 Max pooling 𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖′ 𝑗′ 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝜕𝐸 𝜕𝑥 𝑚𝑛 𝑙+1 = 𝛿 𝑙+1𝜕𝑜𝑖𝑗 𝑙 𝜕𝑥𝑖𝑗 𝑙 Convolution 𝑥 𝑚𝑛 𝑙+1 4 × 4 3 × 3 6 × 6 12 × 1212 × 12
  • 81. Multimedia Signal Processing Laboratory • 𝛿 𝑙 을 행렬 형태로 식을 수정하면 다음과 같습니다. 𝛿 𝑙 = Upsampling 𝑤 𝑙+1 𝛿 𝑙+1 𝑓′ 𝑥 𝑙 (28) • 만약 convolution layer간에 pooling layer가 없다면 𝛿 𝑙은 다음과 같습니다. 𝛿 𝑙 = 𝑚 𝑛 (𝑤 ( 𝑖 𝑠 −𝑚),( 𝑗 𝑠 −𝑛) 𝑙+1 𝛿 𝑚𝑛 𝑙+1) 𝑓′ 𝑥𝑖𝑗 𝑙 (29) 81 Convolutional Neural Network
  • 82. Multimedia Signal Processing Laboratory • 모든 식을 정리하면 다음과 같습니다. • (CBP1)=(BP1) 𝛿𝑗 𝐿 = 𝜕𝐸 𝜕𝑓(𝑥𝑗 𝐿 ) 𝜕𝑓(𝑥𝑗 𝐿 ) 𝜕𝑥𝑗 𝐿 = 𝜕𝐸 𝜕𝑓(𝑥𝑗 𝐿 ) 𝑓′ 𝑥𝑗 𝐿 • (CBP2) Conv-pool-FC인 경우 𝛿𝑖𝑗 𝑙 = 𝑟 (𝑤 𝑟, 𝑖 𝑠 𝐽+ 𝑗 𝑠 𝑙+1 𝛿 𝑟 𝑙+1) 𝜕𝑜 𝑖 𝑠 𝑗 𝑠 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′ 𝑥𝑖𝑗 𝑙 Conv-pool-Conv인 경우 𝛿𝑖𝑗 𝑙 = 𝑚 𝑛 (𝑤 ( 𝑖 𝑠 −𝑚),( 𝑗 𝑠 −𝑛) 𝑙+1 𝛿 𝑚𝑛 𝑙+1) 𝜕𝑜 𝑖 𝑠 𝑗 𝑠 𝑙 𝜕𝑜𝑖𝑗 𝑙 𝑓′ 𝑥𝑖𝑗 𝑙 (26) 82 Convolutional Neural Network
  • 83. Multimedia Signal Processing Laboratory • (CBP2) 𝜕𝑜 𝑖 𝑠 𝑗 𝑠 𝑙 𝜕𝑜𝑖𝑗 𝑙 = 1, if 𝑜𝑖𝑗 𝑙 = max(nb(𝑜𝑖𝑗 𝑙 )) 0, otherwise nb 𝑜𝑖𝑗 𝑙 = 𝑜𝑡∈𝑅1,𝑗∈𝑅2 𝑙 𝑅1 = 𝑖 − 𝑖%𝑠 , 𝑖 − 𝑖%𝑠 + 𝑠 − 1 𝑅2 = [𝑗 − 𝑗%𝑠 , 𝑗 − 𝑗%𝑠 + (𝑠 − 1)] s는 pooling layer의 size 83 Convolutional Neural Network
  • 84. Multimedia Signal Processing Laboratory • (CBP3) 𝜕𝐸 𝜕𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝛿𝑖𝑗 𝑙 • (CBP4) 𝜕𝐸 𝜕𝑤 𝑎𝑏 𝑙 = 𝑖=0 𝑁−𝑚 𝑗=0 𝑁−𝑚 𝛿𝑖𝑗 𝑙 𝑜𝑖+𝑎,𝑗+𝑏 𝑙−1 84 Convolutional Neural Network
  • 85. Multimedia Signal Processing Laboratory Convolutional Neural Network • Reference 1. https://ratsgo.github.io/deep%20learning/2017/04/05/CNNbackprop/ 2. http://www.jefkine.com/general/2016/09/05/backpropagation-in-convolutional- neural-networks/ 3. https://blog.naver.com/atelierjpro/220882326143 4. https://metamath1.github.io/cnn/index.html 85