25차시: Convolutional Neural Networks (CNN)
25-1. CNN - Convolution은 무엇인가?
1. Convolution
연속적인 convolution
이산적인 convolution
2D image convolution
2D convolution in action
2. RGB Image Convolution
5 x 5 x 3 커널을 사용한다.
필터의 개수에 따라 출력의 개수도 달라진다.
3. Stack of Convolutions
집중해서 봐야 할 것은 연산을 정의하는데 필요한 숫자를 생각해야 한다.
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)
최근에는 뒷 부분인 Fully connected layer를 최소화하는 방향이다.
CNN은 같은 모델을 만들고 최대한 모델을 Deep 하게 설계한다.
5. Convolution Arithmetic (of GoogLeNet)
Stride
convolution filter을 얼마나 dense하게 찍을지를 의미한다.
Padding
어떤 값을 덧대주는 역할을 한다.
zero-padding은 0으로 덧대주는 것이다. (입, 출력의 차원을 맞춰주기 위함)
예시
Padding (1), Stride (1), 3 x 3 Kernal
파라미터의 수는 3 x 3 x 128 x 64 = 73,728이다.
네트워크 모양만 봐도 감이 생겨야 한다. (단위의 개념에서)
실전
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이다.
심도를 높이면서 파라미터 수를 줄일 수 있다.
e.g. 병목 아키텍쳐
©️NAVER Connect Foundation. All Rights Reserved.
'취업준비 > 인공지능' 카테고리의 다른 글
[AI Tech] 6주차 26-1차시 Computer Vision Applications (2) | 2024.02.20 |
---|---|
[AI Tech] 6주차 25-2차시 Modern CNN - 1x1 convolution의 중요성 (0) | 2024.02.20 |
[AI Tech] 5주차 24차시 프로젝트 8 (2) | 2024.02.17 |
[AI Tech] 5주차 23-4차시 프로젝트 7 (0) | 2024.02.16 |
[AI Tech] 5주차 23-3차시 Quiz 9 (0) | 2024.02.16 |