Convolution 합성곱
Channel 채널
Filter 필터
Stride
Padding 패딩
Pooling 풀링
관련 내용에 대한 이해가 필요하다면, 아래 링크 참고해보기
CNN, Convolutional Neural Network 요약
Convolution 레이어
필터를 이용하여 입력 이미지로 부터 특징을 추출하는 수학적 연산
ex) Convolved Feature
Pooling 레이어
필터를 이용하여 입력 이미지로 부터 특정 범위의 값을 압축(연산)하여 특징을 추출
이미지 특징들을 추출하고, 추출한 특징 기반 피처맵 생성하는 레이어
ex) MaxPooling
Fully connected 레이어(FCN)
네트워크가 2개로 분리되는 구조
11*11필터를 사용
Relu 활성화 함수를 사용
5개 Convolution Layer, 3개 Dense Layer로 구성됨
Data Augmentation, Dropout 등을 활용
[추가 궁금증] 왜 큰 필터를 사용하고자 하는가?
receptive field 늘리는 차원에서 사용
필터를 작은 것을 사용할 경우, 이미지 픽셀의 지역적 정보는 충분하겠지만, 전역적, 문맥적 정보가 부족할 것으로 예상됨
하지만, 지나치게 큰 필터를 사용할 경우, 파라미터수가 기하급수적으로 증가하여 연산을 부담을 주기 때문에 최대 7*7 필터까지만 사용
기존에는 55, 1111 필터들을 활용하였으나, 3*3필터만을 활용하여 Depth를 늘림 (Stride1 사용)
네트워크 안에 네트워크가 있는 구조로, 3*3필터를 통과하기 전에 1X1 필터를 먼저 통과 후 진행
추가적으로 11 컨볼루션 레이어를 통과시킨 것과 33 맥스풀링한 레이어 등등과 Concatenate를 진행
기존의 SOTA 모델인 구글넷의 레이어수인 22개에서 레이어수가 152개로 급격한 증가
계속 네트워크는 깊어져도(Deeper) 상관없는 것인가?
기존과 다른 Residual Block을 활용(Skip Connection)
기존의 네트워크는 단순히 Convolution 연산을 쌓는다면, ResNet은 블럭 단위로 파라미터로 전달하기 이전의 값을 더하는 방식
기존의 신경망은 입력값(x)를 타겟값(y)로 매핑하는 함수 H(x)를 얻는 것이 목적
ResNet은 F(x) + x를 최소화하는 것을 목적
새로운 구조를 통해 오버피팅 문제를 해결하여 더욱더 깊은 레이어를 통해 높은 성능을 달성