Convolution
합성곱.
두 함수 \((f, g\)가 있을 때 한 함수 \((f\)의 모양이 나머지 함수 \(g\)에 의해 모양이 수정된 제 3의 함수 \(f * g\)를 생성해주는 연산자로
Continuous convolution
\(f * g)(t)=\int f(\tau) g(t-\tau) d \tau=\int f(t-\tau) g(t) d \tau\)
Discrete convolution
\((f * g)(t)=\sum_{i=-\infty}^{\infty} f(i) g(t-i)=\sum_{i=-\infty}^{\infty} f(t-i) g(i)\)
2D image convolution
\((I * K)(i, j)=\sum_m \sum_n I(m, n) K(i-m, j-n)=\sum_m \sum_n I(i-m, i-n) K(m, n)\)
로 이루어진다.
Convolutional Layer (합성곱 층)
기존의 이미지와 필터 3x3의 [[1, 0, 1], [0, 1, 0], [1, 0, 1]] 을 사용한 합성곱 연산은 다음의 gif와 같이 이루어진다.
stride
걸음 이라는 뜻으로 합성곱을 진행할 때 필터의 이동 칸 수를 말함.
stride = 1인 경우 옆으로 1칸씩 이동하며 필터를 적용하지만, 1보다 큰 경우 이보다 많이 이동하며 필터를 적용하고,
결과적으로는 Convolved feature의 크기가 stride가 커질수록 작아진다.
Padding
기존의 이미지 주변에 행과 열을 기준으로 추가로 일정 값으로 채워진 행/열을 더해 둘러싸는 것. 기존 이미지의 크기를 키우기 때문에 stride와 마찬가지로 convolved feature의 크기에 영향을 준다.
결정적으로 Convolved Feature의 크기는
의 식을 따른다.
Number of parameters
CNN 연산을 수행하는 경우 입력 이미지와 필터, 그리고 그를 통한 convolved feature의 사이즈로 인한 parameter의 값은 계속해서 변한다.
AlexNet의 parameter 계산 예제
AlexNet의 구조.
Conv1 + Relu : (11 * 11 * 3) * 48 * 2 = 35K # 11x11x3채널의 필터, 48채널의 피처맵을 2개 생성
Conv2 + Relu : (5 * 5 * 48) * 128 * 2 = 307K # 5x5x48채널의 필터, 128채널의 피처맵을 2개 생성
Conv3 + Relu : (3 * 3 * 128) * 2 * 192 * 2 = 884K # 3x3x128채널의 필터 2개, 192채널의 피처맵을 2개 생성
Conv4 + Relu : (3 * 3* 192) * 192 * 2 = 663K # 3x3x192채널의 필터, 192채널의 피처맵을 2개 생성
Conv5 + Relu : (3 * 3 * 192) * 128 * 2 = 442K # 3x3x192채널의 필터, 128채널의 피처맵을 2개 생성
FC6 + Relu : (13 * 13 * 128) * 2 * 2048 * 2 = 177M # 13x13x128채널의 필터 2개로 2048채널의 flatten 행렬 2개 생성
FC7 + Relu : (2048 * 2) * 2048 * 2 = 16M
FC8 + Relu : (2048 * 2) * 1000 = 4M
너무 많아지는 Parameters 수 조절을 위해 1X1 Convolution 연산을 통해 채널을 줄이는 연산을 수행하기도 한다.
Modern CNN
지금까지의 CNN 기술 발전에 큰 영향을 미친 현대의 논문들.
간략한 키워드만 기술 후, 추후 블로그 논문리뷰에서 모두 다루는 것이 목표
AlexNet
Keyword
- 이미지 분류 대회에서의 딥러닝 모델을 통한 최초의 1등으로 paradigm shift를 가져옴
- RELU 사용
- GPI implementation (2 GPU)
- Local response normalization, Overlapping pooling
- Data augmentation
- Dropout
VGGNet
Keyword
- 3x3 convolution filters (with stride 1)을 통한 깊이 심화
- 1x1 convolution for fully connected layers
- Dropout (p = 0.5)
GoogLeNet
Keyword
- Won the ILSVRC at 2014
- Inception blocks
- benefit of 1x1 convolution
- less parameter than AlexNet, VGGNet
ResNet
keyword
- Add an identity map (skip connection)
- Add identity map after nonlinear activations
- Batch normalization after convolutions
- bottlenect architecture
DenseNet
Keyword
- concatenation instead of addition
- Dense Block, Transition Block
'네이버 부스트캠프 학습 정리 > 3주차' 카테고리의 다른 글
[DL basic] Transformer (0) | 2023.03.26 |
---|---|
[DL basic] Computer Vision Applications (0) | 2023.03.25 |
[DL basic] Neural Networks / Optimization (0) | 2023.03.21 |