구성
특징 추출(Feature Extraction) 부분
Convolution Layer와 Max Pooling 레이어를 반복적으로 stacking 처리
분류(classification) 부분
Fully Connected Layer 구성 + Softmax(마지막 출력층)를 적용
**translated(shift) invariance(**불변성)
요약
CNN자체는 translation equivariance한 네트워크이다. FCL(Fully Connected Layer 주변의 모든 관계를 고려한다)한 특성 때문에 input value의 위치가 변함에 따라 feature map value도 변한다.
그러나 max pooling에 의한 약간의 translation invariance와 CNN 특징 + Softmax를 통한 translation invariance로 인해 Classification은 translation invariance한 성질을 갖게 된다.
이런 stationary(정지된, 비유동적인)한 특성으로 통계 값이 같으면 같은 것으로 본다. 위치 이동해도 학습 없이 같은 것으로 볼 수 있는 장점이 있다.
과정
step1. translation equivariance
1) Max pooling
Max pooling은 k * k filter 사이즈만큼의 값들을 1개의 max값을 치환한다
→ k*k 내에서 값들의 위치가 달라져도 모두 동일한 값을 output으로 갖게된다 = 즉, k*k 범위내에서의 translation에 대해서는 invariance하다.
2) CNN의 특징인 Weight sharing & Learn local features
동일한 weight(k * k)를 가진 filter를 sliding window로 연산한다
→ 각 필터는 image내 어떤 object의 위치와 상관없이 특정 패턴을 학습
step2. invariance
3) Softmax를 통한 확률값 계산
feature map들을 FC layer와 연결하고 마지막 label개수만큼 output node를 설정하여 최종적으로 이들을 softmax를 통해 classification 결과를 결정한다
→ object의 위치와 상관없이 패턴이 동일하면 동일한 output을 갖게 된다
하지만 아주 작은 크기나 회전은 같은 것으로 인식할 수 있기 때문에 data augmentation으로의 보완이 필요하다.