Convolution(합성곱) 연산은 필터(커널)을 입력상에서 움직여가면서 모델과 합성함수에 적용되는 구조이다.
Convolution(합성곱) 연산의 수학적 의미는 신호를 증폭 또는 감소시켜 정보를 추출이나 필터링시키는 것이다.
RGB 이미지의 Convolution에서 필터(커널) 의 채널 수는 입력층의 채널 수와 같아야만 하며, 출력층의 채널 수만큼의 갯수가 필요하다.
Stride 는 필터(커널)이 한번에 움직이는 영역을 뜻한다.
Padding 은 가장자리(외곽)에 더미 값을 채워 넣는 것으로, 보통 Conv 연산 후에도 동일한 출력 Size를 위해 사용된다.
Convolution Model 에서 Parameter 수는 필터(커널) Size X Input Channel X Output Channel 이다.
- ReLU 활성화 함수 사용
- 2개의 GPU 병렬학습
- Local Response Normalization을 사용 했으나, 근래 CNN에서는 Batch Normalization이 쓰임.
- Data Augmentation, DropOut
- 3 X 3 사이즈의 Kernel을 사용하여, Parameter 수를 줄임.
- FC를 위하여 1 X1 사이즈의 Kernel 사용.
- Dropout 적용
- 3 X 3 Kernel 사용 이유 → Parameter 감소
- Inception Block 사용
- Inception Block의 구현 시, Parameter 의 수가 기하급수 적으로 올라가기 때문에 이를 해결 하기 위한 방법이 필요함. → 1 X 1 Conv. 사용
- DL 에 있어서, Network 가 깊어질 수록 학습시키기 어려우며, Overfitting이 자주 발생.
→ 이를 해결 하고자, Skip Connection 방법을 사용 한 것이 ResNetSkip Connection
- DenseNet은 ResNet에서의 Skip Connection 시, 단순히 Add를 하는 것이 아닌 Concatenate를 함.