본문 바로가기

취업준비/인공지능

[AI Tech] 6주차 25-1차시 CNN - Convolution은 무엇인가?

25차시: Convolutional Neural Networks (CNN)

25-1. CNN - Convolution은 무엇인가?

1. Convolution

연속적인 convolution

continuous

이산적인 convolution

Discrete

2D image convolution

Image
Figure_Image Convolution
Output

2D convolution in action

2D conv. in action

 

2. RGB Image Convolution

RGB

5 x 5 x 3 커널을 사용한다.

Filter 적용 후

필터의 개수에 따라 출력의 개수도 달라진다.

 

3. Stack of Convolutions

Stack

집중해서 봐야 할 것은 연산을 정의하는데 필요한 숫자를 생각해야 한다.

24 x 24 x 10은 10개의 filter가 필요하다.

 

4. Convolutional Neural Networks

CNN은 convolution layer, pooling layer 그리고 완벽히 연결된 layer들로 이루어져 있다.

- Convolution 그리고 Pooling layers: feature extraction

- 완벽히 연결된 layer: decision making (e.g. classification)

기본적인 CNN

최근에는 뒷 부분인 Fully connected layer를 최소화하는 방향이다.

CNN은 같은 모델을 만들고 최대한 모델을 Deep 하게 설계한다.

 

5. Convolution Arithmetic (of GoogLeNet)

GoogLeNet

Stride

Stride = 1
Stride = 2

convolution filter을 얼마나 dense하게 찍을지를 의미한다.

Padding

No Padding

어떤 값을 덧대주는 역할을 한다.

 

zero-padding은 0으로 덧대주는 것이다. (입, 출력의 차원을 맞춰주기 위함)

Stride vs Padding

예시

Padding (1), Stride (1), 3 x 3 Kernal

Convolution Arithmetic

파라미터의 수는 3 x 3 x 128 x 64 = 73,728이다.

네트워크 모양만 봐도 감이 생겨야 한다. (단위의 개념에서)

실전

 

Exericse

Convolution Layer의

첫 번째 모델은 11 x 11 x 3 x 48 x 2 대략 35k이다. (2를 곱하는 건 그 당시 그래픽카드 성능 문제로 두 개로 쪼개서 두 번 계산했기 때문이다.)

두 번째 모델은 5 x 5 x 48  128 x 2 대략 307k이다.

세 번째 모델은 3 x 3 x 128 x 2 x 192 x 2 대략  884k이다.

네 번째 모델은 3 x 3 x 192 x 192 x 2 대략 663k이다.

마지막 모델은 3 x 3 x 192 x 128 x 2  대략 442k이다.

Dense Layer의

첫 번째 모델은 13 x 13 x 128 x 2 x 2048 x 2 = 177M이다.

두 번째 모델은 2048 * 2 x 2048 * 2 = 16M이고, 세 번째 모델은 2048 * 2 x 1000 = 4M이다.

Convolution Layer에 비해 1000배 늘어나게 되는데, Convolution 연산 시 모든 위치에서 convolution kernel이 동일하게 적용되기 때문이다.

기능 향상을 위해 Layer는 점점 늘어나지만 Parameter는 점점 줄어들게 된다.

 

6. 1 x 1 Convolution

에서 Channel = Dimension이다.

1 by 1 Conv.

심도를 높이면서 파라미터 수를 줄일 수 있다.

e.g. 병목 아키텍쳐

 

 

 

 

 

©️NAVER Connect Foundation. All Rights Reserved.