convolution neural network - data science & business...

45
Junhong Kim School of Industrial Management Engineering Korea University Convolution Neural Network http://deepart.io/

Upload: lydung

Post on 05-Jul-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Junhong Kim

School of Industrial Management Engineering

Korea University

Convolution Neural Network

http://deepart.io/

Page 2: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Challenges in Visual Recognition

기존의 이미지 인식 에서의 큰 이슈는 아래와 같음

Page 3: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Why Convolution Neural Network?

Fully-connected network에서는 Image Classification에서 한계점이 있음

Fully Connected Network 로 가정하고,1. Input이 256개2. Hidden Unit이 100개3. Output Node가 26개면….256*100(weights)+100(bias)+100*26(weights)+26(bias)

= 28326개의 parameter가.... 필요하다.

Input Pixel의 크기나, Multi-hidden Layer라면? :/overfitting 될 가능성이 높다.더 큰 문제는 앞서 이야기한 문제들이 그대로 남아 있다는 것임(크기, 이동에 취약)

이에 비해 Convolution neural network는Convolution layer와 pooling layer의 반복 조합으로

global feature를 얻을 수 있음 :)

따라서, Computation time도 절약하면서, 향상된 좋은 모델을 생성할 수 있다는 결론이 나옴

Page 4: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Convolution Neural Network

CNN의 구조는 변화하여 왔으나 큰 틀은 Convolution layer + Pooling layer + Fully-connected layer 임

[{(Convolution + Activation) * n + Pooling} * m] + Fully-connected network

Page 5: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

CNN 에서는 사용자의 의한 Feature extraction이 필요 없으며 Lost function을 기반으로 Feature extraction이 됨

40*40(Pixel)*3(RGB)

40*40(Pixel)*3(RGB)

F

Feature Extraction

f(x)

f(x)

training

training

Calculate Multi-class scores

Calculate Multi-class scores

Why Convolution?

어떤 변수가 좋다 사용하자! 만들자!

Input image의 특성에 맞는 Feature extraction이Network의 weight 조합으로 자동화

Page 6: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Convolution Layer에 대하여 알아보자

Convolution Layer

Page 7: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

7*7(Pixel) Image가 있다고 가정

전체 Pixel을 Input으로 사용하면 앞에서 말한 기존의 이미지 인식문제에서 벗어나지 못함

특징 추출을 위해 Filter을 이용하여 Filter는 3*3로 가정

Convolution Layer

Page 8: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

7*7(Pixel) Image가 있다고 가정

전체 Pixel을 Input으로 사용하면 앞에서 말한 기존의 이미지 인식문제에서 벗어나지 못함

특징 추출을 위해 Filter을 이용하여 Filter는 3*3로 가정

Convolution Layer

7

7

3

3

Stride = 1

Stride = 1

Page 9: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Convolution Layer

7*7(Pixel) Image가 있다고 가정

전체 Pixel을 Input으로 사용하면 앞에서 말한 기존의 이미지 인식문제에서 벗어나지 못함

특징 추출을 위해 Filter을 이용하여 Filter는 3*3로 가정

7

7

3

3

Stride = 1

Page 10: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Convolution Layer

7*7(Pixel) Image가 있다고 가정

전체 Pixel을 Input으로 사용하면 앞에서 말한 기존의 이미지 인식문제에서 벗어나지 못함

특징 추출을 위해 Filter을 이용하여 Filter는 3*3로 가정

7

7

3

3

Stride = 1

Page 11: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Convolution Layer

7*7(Pixel) Image가 있다고 가정

전체 Pixel을 Input으로 사용하면 앞에서 말한 기존의 이미지 인식문제에서 벗어나지 못함

특징 추출을 위해 Filter을 이용하여 Filter는 3*3로 가정

7

7

3

3

Stride = 1

Page 12: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Convolution Layer

(1) 3*3 Filter를 이용(2) Stride = 1 설정

7*7 에서 5*5 Output이 산출됨

• {(W−F+2P)/S}+1• S=1, W=7, P=0, F=3• {(7-3)/1}+1=5

W Input size (x or y axis)F Filter size (x or y axis)P Number of zero pad S Stride

7*7(Pixel) Image가 있다고 가정

전체 Pixel을 Input으로 사용하면 앞에서 말한 기존의 이미지 인식문제에서 벗어나지 못함

특징 추출을 위해 Filter을 이용하여 Filter는 3*3로 가정

7

7

3

3

Stride = 1

Page 13: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

7*7(Pixel) Image가 있다고 가정

특징 추출을 위해 Filter을 사용하며, 본 예제에서의 Filter(Kernel)는 3*3로 가정

Convolution Layer

(1) 3*3 Filter를 사용(2) Stride = {1,2,3}일 경우?

Stride 1 (7-3)/1+1 = 5Stride 2 (7-3)/2+1 = 3Stride 3 (7-3)/3+1 = 2.33

Stride 3의 경우 정수값이 아님

Stride = {1,2,3}

{(W−F+2P)/S}+1

하나의 방법으로 zero pad 사용

Page 14: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

일반적으로 Convolution Layer에서 하나의 parameter로 Zero pad를 사용한다

Zero pad의 장점으로는 가장 자리에 있는 특징을 비교적 잘 잡아주는 효과가 있음

Convolution Layer 층을 통과시, Dimension reduction의 빠른 감소를 막아줌

Convolution Layer

정수값이 산출되지 않는 경우 하나의 대안방식으로 Zero pad를 사용한다.

이 경우 Zero Pad=1로 사용하면Output 값이 정수로 산출된다.

일반적으로 Zero pad의 개수는‘(F-1)/2’개를 사용한다.

0 0 0 0 0 0 0 0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0 0 0 0 0 0 0 0

Zero pad의 장점?

Page 15: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

32*32(pixel)*3(RGB) 에서 5*5*3(Filter) 를 사용하면 75개의 내적값과 Bias term이 생성됨

Convolution Layer

http://cs231n.stanford.edu/

Page 16: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

32*32(pixel)*3(RGB)를 Input으로 6가지의 5*5*3 filter(stride=1)를 사용하게 되면 28*28*6의 activation maps이 생성됨

Convolution Layer

http://cs231n.stanford.edu/

Page 17: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

다시 한번 말하여, CNN의 Fully connected network전까지의 구조는

Locally connected neural network에서 weight가 공유되는 것을 의미함

Convolution Layer

https://pennlio.wordpress.com/2014/04/11/fully-connected-locally-connected-and-shared-weights-layer-in-neural-networks/

Parameter의 수 적어짐, 학습 속도 빨라짐

Page 18: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

7*7(pixel)*3(RGB)를 Input으로 2가지의 3*3*3 filter(stride=2)를 사용하게 되면 3*3*2의 activation maps이 생성됨

Convolution Layer

5*5*3 Image+

1 Zero Pad

7*7*3

Output = Dot product results

http://cs231n.stanford.edu/

Page 19: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

32*32*3 Image에서 5*5 Filter 하나당 75(weight) + 1(bias) = 76parameter가 생성되는 구조

10차원의 activation maps를 위해 10개의 filter를 사용한다고 하면 760개의 parameter가 생성되는 것임

Convolution Layer

http://cs231n.stanford.edu/

Page 20: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Pooling Layer에 대하여 알아보자

Pooling Layer

Page 21: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Convolution Layer의 주변 값들은 보통 correlation이 높은 성향을 지닐 확률이 있음

Pooling을 함으로써 물체의 크기가 크거나 작은 경우 발견할 확률을 높혀줌

Pooling으로 인해 정보 손실이 일어남 (trade off!)

보통 Max pooling을 사용함

예시의 경우 2*2 Filter의 Stride 2로 설정하면 겹치는 부분 없이 4개의 Pixel을 하나의 Max 값으로 대체 하게 됨

AlexNet의 첫 번째 Pooling Layer에서는 3*3 Filter의 Stride 2로 설정하여 중첩적으로 Polling Layer를 설정함(Krizheavsky et al. 2012)

Pooling Layer

http://www.cs.toronto.edu/~fritz/absps/imagenet.pdfhttp://cs231n.stanford.edu/

Page 22: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Shrinking 빠르면 모델이 잘 작동하지 않음, 따라서 정보를 보존할만한 Depth와 Filter를 설정하여야 함 (Andrej Karpathy, Q&A)

Example

http://cs231n.stanford.edu/

http://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html

CIFAR-10 을 이용한 예시

Page 23: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

만약 특정 Image가 아닌 ImageNet으로 학습 한다고 한다면, 이미 학습되어 있는 모델로 사용하면 됨

CIFAR 10으로만 해도 어느정도 시간이 걸리는 것을 확인할 수 있음 (TensorFlow, GPU기준)

ImageNet으로 학습된 결과를 얻고싶다면.. (너무 오래걸리니..)

https://github.com/bvlc/caffe/wiki/model-zoo

Page 24: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

뒤쪽의 Fully-connected network는 기존의 backpropagation과 같음

backpropagation

http://cs231n.stanford.edu/

Page 25: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Fully connected network에서는 기존 backpropagation과 같음

backpropagation

𝑥 ℎ 𝑦

b1 𝑏2

𝝏𝒇𝒄

𝝏𝒘𝟐

= ( 𝑦 − 𝑦)𝜕

𝜕𝑤2

𝑦 − 𝑦 (𝑦 ={0,1})

= ( 𝑦 − 𝑦)𝜕

𝜕𝑤2

( 𝑦)

= ( 𝑦 − 𝑦)𝜕

𝜕𝑤2

(g(ℎ𝑜𝑤2 + 𝑏2)) (ℎ𝑜𝑤2 + 𝑏2 = 𝐴)

= ( 𝑦 − 𝑦)𝜕

𝜕𝑤2

(g(𝐴))

= ( 𝑦 − 𝑦) (g(𝐴)(1 − g(𝐴))𝜕

𝜕𝑤2

(𝐴)

= ( 𝑦 − 𝑦) (g(𝐴)(1 − g(𝐴))𝜕

𝜕𝑤2

(ℎ𝑜𝑤2 + 𝑏2)

= ( 𝑦 − 𝑦) 𝑦 1 − 𝑦 ℎ𝑜

𝑤1 𝑤2

𝝏𝒇𝒄

𝝏𝒃𝟐

= ( 𝑦 − 𝑦)𝜕

𝜕𝑏2

𝑦 − 𝑦 (𝑦 ={0,1})

= ( 𝑦 − 𝑦)𝜕

𝜕𝑏2

( 𝑦)

= ( 𝑦 − 𝑦)𝜕

𝜕𝑏2

(g(ℎ𝑤2 + 𝑏2)) (ℎ𝑜𝑤2 + 𝑏2 = 𝐴)

= ( 𝑦 − 𝑦)𝜕

𝜕𝑏2

(g(𝐴))

= ( 𝑦 − 𝑦) (g(𝐴)(1 − g(𝐴))𝜕

𝜕𝑏2

(𝐴)

= ( 𝑦 − 𝑦) (g(𝐴)(1 − g(𝐴))

= ( 𝑦 − 𝑦) 𝑦 1 − 𝑦

𝛿𝑦

𝛼 ⇒ learning rate

𝛽 ⇒ 𝑚𝑜𝑚𝑒𝑛𝑡𝑢𝑚𝑓𝑐 =

1

2 𝑦 − 𝑦 2

𝛻𝑤2 𝑛 = 𝛼𝜕𝑓𝑐

𝜕𝑤2

+ 𝛽𝛻𝑤2 𝑛 − 1 𝑔(𝑥) = 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛

𝛿𝑦

𝑓𝑐 = 𝐶𝑜𝑠𝑡 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛

ℎ𝑖 = 𝑥𝑤1 + 𝑏1

ℎ𝑜 = 𝑔(𝑥𝑤1 + 𝑏1)𝑦𝑖 = ℎ𝑜𝑤2 + 𝑏2

𝑦 = 𝑦𝑜 = 𝑔(ℎ𝑜𝑤2 + 𝑏2)

Page 26: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Fully connected network에서는 기존 backpropagation과 같음

backpropagation

𝑥 ℎ 𝑦

b1 𝑏2𝛼 ⇒ learning rate

𝛽 ⇒ 𝑚𝑜𝑚𝑒𝑛𝑡𝑢𝑚

𝑓𝑐 =1

2 𝑦 − 𝑦 2𝛻𝑤1 𝑛 = 𝛼

𝜕𝑓𝑐

𝜕𝑤1

+ 𝛽𝛻𝑤1 𝑛 − 1

𝑤1 𝑤2

𝝏𝒇𝒄

𝝏𝒘𝟏

= ( 𝑦 − 𝑦)𝜕

𝜕𝑤1

𝑦 − 𝑦 (𝑦 ={0,1})

= ( 𝑦 − 𝑦)𝜕

𝜕𝑤1

( 𝑦)

= ( 𝑦 − 𝑦)𝜕

𝜕𝑤1

(g(ℎ𝑤2 + 𝑏2)) (ℎ𝑜𝑤2 + 𝑏2 = 𝐴)

= ( 𝑦 − 𝑦)𝜕

𝜕𝑤1

(g(𝐴))

= ( 𝑦 − 𝑦) (g(𝐴)(1 − g(𝐴))𝜕

𝜕𝑤1

(𝐴)

= ( 𝑦 − 𝑦) (g(𝐴)(1 − g(𝐴))𝜕

𝜕𝑤1

(ℎ𝑜𝑤2 + 𝑏2)

= ( 𝑦 − 𝑦) 𝑦 1 − 𝑦 𝑤2𝜕

𝜕𝑤1

(ℎ𝑜) (ℎ𝑜 = 𝑔(𝑥𝑤1 + 𝑏1))

= ( 𝑦 − 𝑦) 𝑦 1 − 𝑦 𝑤2 (ℎ𝑜 1 − ℎ𝑜 )𝜕

𝜕𝑤1

(𝑥𝑤1 + 𝑏1)

= ( 𝑦 − 𝑦) 𝑦 1 − 𝑦 𝑤2 ℎ𝑜 1 − ℎ𝑜 𝑥

= ( 𝑦 − 𝑦) 𝑦 1 − 𝑦 ℎ𝑜 1 − ℎ𝑜 𝑥𝑤2

𝑔(𝑥) = 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛

𝑓𝑐 = 𝐶𝑜𝑠𝑡 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛

𝝏𝒇𝒄

𝝏𝒃𝟏

= ( 𝑦 − 𝑦)𝜕

𝜕𝑏1

𝑦 − 𝑦 (𝑦 ={0,1})

= ( 𝑦 − 𝑦)𝜕

𝜕𝑏1

( 𝑦)

= ( 𝑦 − 𝑦)𝜕

𝜕𝑏1

(g(ℎ𝑤2 + 𝑏2)) (ℎ𝑜𝑤2 + 𝑏2 = 𝐴)

= ( 𝑦 − 𝑦)𝜕

𝜕𝑏1

(g(𝐴))

= ( 𝑦 − 𝑦) (g(𝐴)(1 − g(𝐴))𝜕

𝜕𝑏1

(𝐴)

= ( 𝑦 − 𝑦) (g(𝐴)(1 − g(𝐴))𝜕

𝜕𝑏1

(ℎ𝑜𝑤2 + 𝑏2)

= ( 𝑦 − 𝑦) 𝑦 1 − 𝑦 𝑤2𝜕

𝜕𝑏1

(ℎ𝑜) (ℎ𝑜 = 𝑔(𝑥𝑤1 + 𝑏1))

= ( 𝑦 − 𝑦) 𝑦 1 − 𝑦 𝑤2 (ℎ𝑜 1 − ℎ𝑜 )𝜕

𝜕𝑏1

(𝑥𝑤1 + 𝑏1)

= ( 𝑦 − 𝑦) 𝑦 1 − 𝑦 𝑤2 ℎ𝑜 1 − ℎ𝑜

= ( 𝑦 − 𝑦) 𝑦 1 − 𝑦 ℎ𝑜 1 − ℎ𝑜 𝑤2

( 𝑦 − 𝑦) 𝑦 1 − 𝑦 ℎ𝑜 1 − ℎ𝑜 𝑤2 𝑥

( 𝑦 − 𝑦) 𝑦 1 − 𝑦 ℎ𝑜 1 − ℎ𝑜 𝑤2

𝛿ℎ

𝛿ℎ

ℎ𝑖 = 𝑥𝑤1 + 𝑏1

ℎ𝑜 = 𝑔(𝑥𝑤1 + 𝑏1)𝑦𝑖 = ℎ𝑜𝑤2 + 𝑏2

𝑦 = 𝑦𝑜 = 𝑔(ℎ𝑜𝑤2 + 𝑏2)

Page 27: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Fully connected network에서는 기존 backpropagation과 같음

backpropagation

𝑥 ℎ1 ℎ2

𝛼 ⇒ learning rate

𝛽 ⇒ 𝑚𝑜𝑚𝑒𝑛𝑡𝑢𝑚

𝑓𝑐 =1

2 𝑦 − 𝑦 2

𝑤1 𝑤2

𝑔(𝑥) = 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛

𝑓𝑐 = 𝐶𝑜𝑠𝑡 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛

ℎ3 𝑦𝑤3 𝑤4

𝛿𝑦𝛿3𝛿2𝛿1

𝛿3 = 𝛿𝑦𝑔 ℎ3′𝑤4

𝛿2 = 𝛿1𝑔 ℎ2′𝑤3

𝛿1 = 𝛿2𝑔 ℎ1′𝑤2

ℎ𝑖 = 𝑥𝑤1 + 𝑏1

ℎ𝑜 = 𝑔(𝑥𝑤1 + 𝑏1)𝑦𝑖 = ℎ𝑜𝑤2 + 𝑏2

𝑦 = 𝑦𝑜 = 𝑔(ℎ𝑤2 + 𝑏2)𝛻𝑤1 𝑛 = 𝛼

𝜕𝑓𝑐

𝜕𝑤1

+ 𝛽𝛻𝑤1 𝑛 − 1

𝛻𝑤2 𝑛 = 𝛼𝜕𝑓𝑐

𝜕𝑤2

+ 𝛽𝛻𝑤2 𝑛 − 1

Page 28: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

convolution layer + activation layer + pooling layer의 backpropagation 과정은 fully connected와 비슷하나 조금 다름

backpropagation

http://cs231n.stanford.edu/

Page 29: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Convolution layer에서는 Weight가 filter에 대해서 고정되어 있고, Fully connected가 아님

backpropagation

Jake Bouvrie. “Notes on Convolutional Neural Networks”. Massachusetts Institute of Technology 2006

http://cogprints.org/5869/1/cnn_tutorial.pdf

http://deepcumen.com/2015/04/convolutional-neural-network/

𝑴𝒋 represents a selection of input maps

𝑏𝑖𝑎𝑠 는 별도로 있음

Page 30: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Kronecker product를 이용하여 pooling을 한 결과 차원축소가 된 부분을 보완함 (넓히지 않더라도 객체로 가져올 수 있음)

Max pooling의 결과를 사용하므로 Max값으로 gradient descent하는 결과임

backpropagation

Jake Bouvrie. “Notes on Convolutional Neural Networks”. Massachusetts Institute of Technology 2006

http://cogprints.org/5869/1/cnn_tutorial.pdf

http://deepcumen.com/2015/04/convolutional-neural-network/

Kronecker product

𝑎 𝑏𝑐 𝑑

1 11 1

=

𝑎 𝑎𝑎 𝑎

𝑏 𝑏𝑏 𝑏

𝑐 𝑐𝑐 𝑐

𝑑 𝑑𝑑 𝑑

𝒍 (𝑐𝑜𝑛𝑣𝑜𝑙𝑢𝑡𝑖𝑜𝑛 𝑙𝑎𝑦𝑒𝑟) 𝒍 + 𝟏 (𝑑𝑜𝑤𝑛𝑠𝑎𝑚𝑝𝑙𝑖𝑛𝑔 𝑙𝑎𝑦𝑒𝑟)

The backpropagation algorithm says that in order to compute the sensitivity for a unit at layer ′𝒍′

결국 사용하는 reference들은max pooling의 결과임

( 𝑦 − 𝑦) 𝑦 1 − 𝑦 ℎ𝑜 1 − ℎ𝑜 𝑤2 𝑥

𝛿3 = 𝛿𝑦𝑔 ℎ3′𝑤4

𝛿2 = 𝛿1𝑔 ℎ2′𝑤3

𝛿1 = 𝛿2𝑔 ℎ1′𝑤2

′𝒖′ is current layer’s pre-activation input

Page 31: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

backpropagation

Jake Bouvrie. “Notes on Convolutional Neural Networks”. Massachusetts Institute of Technology 2006

http://cogprints.org/5869/1/cnn_tutorial.pdf

http://deepcumen.com/2015/04/convolutional-neural-network/

이때까지의 weight update 방법은 1:1대응이었으며, scalar에 대한 update였음

Constraint로 같은 weight, bias 들은 어떻게 업데이트 할까?

https://www.youtube.com/watch?v=uhiLkYJp1lQ&list=PLPWgVABcUWuXb-zQiKyqRD91nETdSE5fW&index=23

5 - 3 - Convolutional nets for digit recognition– Neural Networks for ML - Hinton

Page 32: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Backpropagation에서 update할때는 convolution이 아닌 kernel을 180도 회전한 cross correlation을 사용한다.

backpropagation

Jake Bouvrie. “Notes on Convolutional Neural Networks”. Massachusetts Institute of Technology 2006

http://cogprints.org/5869/1/cnn_tutorial.pdf

https://en.wikipedia.org/wiki/Cross-correlation

http://webtk.blogspot.kr/2012/08/convolution-cross-correlation-template.html

http://deepcumen.com/2015/04/convolutional-neural-network/

Cross-correlation 사용시양쪽이 비슷한 filter의 경우를

사용하고 신호가 비슷한 signal이온다면 결과값이 높게 나타남

Page 33: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Input data는 알파벳 32*32 짜리의 크기의 hand written character임

비교적 간단한 이미지로 Layer를 구성함

Example of CNN [LeNet-5]

http://cs231n.stanford.edu/

Page 34: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

AlexNet은 처음으로 ReLU를 사용하였으며 Polling과정에서 중첩 Pixel을 사용함

7개의 CNN을 Ensemble하여 2.8% 포인트 Error를 감소시킴

Example of CNN [AlexNet]

http://cs231n.stanford.edu/

{(W−F+2P)/S}+1{(227−11)/4}+1=55

Page 35: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Alexnet에서 Filter의 크기와 Stride를 변경하였고, Activation Map의 깊이(개수)를 조정시킴

Example of CNN [ZFNet]

http://cs231n.stanford.edu/

Page 36: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

VGGNet에서는 Filter의 사이즈, Pooling의 크기가 아닌 Convolution의 개수에 대해서 실험해 보았음

Example of CNN [VGGNet]

http://cs231n.stanford.edu/

Page 37: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

직관적으로 알 수 있듯이, memory는 처음에 많이 사용되고 뒤쪽의 fully connected시, parameter를 많이 사용하게 됨

Example of CNN [VGGNet]

http://cs231n.stanford.edu/

Page 38: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

GoogLeNet에서는 마지막에 fully-connected network의 Input(Input Node,variable)을 줄임

parameter의 수가 줄었고 그만큼 속도도 빠름

이때까지의 모양(Forward Network)과 다르게 직선으로 전파되는 형태가 아닌 특징을 가지고 있음

Example of CNN [GoogLeNet]

http://cs231n.stanford.edu/

Page 39: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

ResNet의 경우 152개의 layer를 사용하여 ImageNet Classification에서 가장 좋은 성능을 나타냄

Example of CNN [ResNet]

http://arxiv.org/pdf/1512.03385v1.pdfKaiming He, Xiangyu Zhang, Shaoqing Ren, & Jian Sun. “Deep Residual Learning for Image Recognition”. arXiv 2015

http://research.microsoft.com/en-us/um/people/kahe/ilsvrc15/ilsvrc2015_deep_residual_learning_kaiminghe.pdf

Page 40: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

더 많은 수용량을 가지는 대량의 Layer 경우에도 오히려 더 좋지않은 결과를 나타남을 알 수 있음

중간과정에서 나온 결과값을 Layer를 뛰어 넘어서 더하였을 경우 성능이 개선됨을 알 수 있으며, 큰

수용량에서도 잘 작동함을 실험적으로 알 수 있음

Example of CNN [ResNet]

http://arxiv.org/pdf/1512.03385v1.pdf

Layer가 많다고 과연 항상 좋을까?

Kaiming He, Xiangyu Zhang, Shaoqing Ren, & Jian Sun. “Deep Residual Learning for Image Recognition”. arXiv 2015

http://research.microsoft.com/en-us/um/people/kahe/ilsvrc15/ilsvrc2015_deep_residual_learning_kaiminghe.pdf

http://cs231n.stanford.edu/

Page 41: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Xavier/2 로 weight initialization을 하였음, 기존 Xavier initialization보다 좋은 성능을 산출함

왜 Xavier/2가 잘되는지에 대한, Residual net이 잘되는 원인은 정확히 알 수 없으나 실험적으로 증명

Example of CNN [ResNet]

http://arxiv.org/pdf/1512.03385v1.pdfKaiming He, Xiangyu Zhang, Shaoqing Ren, & Jian Sun. “Deep Residual Learning for Image Recognition”. arXiv 2015

http://research.microsoft.com/en-us/um/people/kahe/ilsvrc15/ilsvrc2015_deep_residual_learning_kaiminghe.pdf

http://cs231n.stanford.edu/

http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf

Page 42: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

간단한 실험으로 Ubuntu기반의 TensorFlow에서 간단한 예시인 MINIST data의 Classification model을 생성하고 평가해봄

문법구조가 상당히 간편하게 되어 있음을 알 수 있었으며, 간편하게 GPU를 이용할 수 있음

다양한 사용법들이 인터넷에서 제공되고 있음을 알 수 있음

TensorFlow – 1L NN vs 3L DNN vs 5L DNN vs CNN ( MNIST data )

Page 43: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Window에서도 Docker를 이용하여 사용할 수 있지만, GPU를 제공하지 않음, VM 환경이라 불편함

TensorFlow – 1L NN vs 3L DNN vs 5L DNN vs CNN ( MNIST data )

http://www.netinstructions.com/how-to-install-and-run-tensorflow-on-a-windows-pc/

Page 44: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

1Layer neural network 약 91%

3Layer neural network 약 94% (Activation ReLU) (Adam optimization method, LR=0.001,batch_size=100,N_epoch=20)

3Layer neural network + Pre-train(Xavier) 약 97% (Activation ReLU)

5Layer neural network + Pre-train(Xavier) + dropout(0.7) 약 98% (Activation ReLU)

Convolution Neural Network + dropout 99% (Activation ReLU, max_Polling, 3ConvLayer + Fully connected Layer)

예상한 바와 같이 ConvNet이 가장 좋은 성능을 산출 함을 알 수 있었고, TensorFlow가 손쉽게 해결할 수 있는 도구임을 확인

TensorFlow – 1L NN vs 3L DNN vs 5L DNN vs CNN ( MNIST data )

sss

1. 굉장히 간편하게 구현되어 있어서 범용적인 방법론을 사용할 시 편함

2. 실험을 몇 번 하여보니, Optimization에 대한 시간차이가 확연히 들어나고

특히 SGD의 경우 수렴하는 속도도 느림

3. Convolution Neural Network가 기존 방식에 비해서,

기존 정설과 같이 MNIST에서는 좋은 성능을 가짐을 알 수 있음

4. TensorFlow에서도 구현되어 있는 함수 이외에 다른 함수로 사용가능함, 하지만

함수 자체에 대한 내부 Code는 아직까지 볼 수 없음 따라서 학술적으로 시행할때에는

다른 라이브러리를 사용하여야 할 것 같음

5. Learning rate와 Batch size, Momentum이 데이터에 따라, 잘되는 파라미터도

overshooting하는 경우 발생하는 것으로 보아, 경험적인 노하우가 어느정도는 필요할 것 같음

Page 45: Convolution Neural Network - Data Science & Business …dsba.korea.ac.kr/wp/wp-content/seminar/Deep learning/CNN... · 2016-04-29 · Fully connected network에서는기존backpropagation

Thank you