CNN 구조는 크게 Feature extraction과 Classification으로 구성된다. Input이 들어가면 먼저 Convolution 연산과 Pooling을 여러 번 반복하여 Feature extraction을 한 후 1D 데이터인 flatten layer로 만든다. 마지막으로 Fully connected layer(MLP)를 통해 classification을 한다.
input에 kernel을 over-riding하여 겹쳐지는 숫자를 곱하여 그 값을 더하는 것이다. stride 값에 따라서 이동되는 크기가 달라지고 연산을 반복하면 feature map이 나오게 된다.
input : original image data
output : feature map
원본 이미지 + 필터 = 특징, 정보, 패턴을 획득할 수 있다. 하지만 사람이 직접 많은 노력을 들여 찾아내야 한다는 한계점이 있다. 이러한 한계점을 대체하기 위해서 나온것이 현재 우리가 배우고 있는 딥러닝이다.
1 X 1 가 마지막으로 나오게 되고 MLP특성상 딥한 구조를 만들수가 없게 된다.
Filter를 적용하여 Conv 연산 수행 시 출력 Feature Map이 입력 Feature Map 대비 계속적으로 작아지는 것을 막기 위해 적용한다.
Filter 적용 전 보존하려는 Feature map 크기에 맞게 입력 Feature Map의 좌우 끝과 상하끝에 각각 열과 행을 추가 한 뒤, 0값을 채워, 입력 Feature map 사이즈를 증가시킨다.
Convolution 연산을 통해서 원본 데이터만 살펴볼 때 알기 어려운 숨겨진 패턴을 찾을 수 있다.
딥러닝을 이용한 이미지 분석의 핵심은 숨겨진 패턴을 찾는 자동 패턴 추출기를 학습시키는 데에 있다.