플로라도의 data workout
translation-equivariance vs invariance 설명, "CNN은 translation invariant하다." 본문
translation-equivariance vs invariance 설명, "CNN은 translation invariant하다."
플로라도 2024. 3. 6. 12:22CNN은 translation invariance하다.
traslation-invariance / equivariance는 이미지 처리의 다양한 CNN Architecture 소개에 자주 등장하는 개념이다.
CNN(Convolution Neural Networks)는 translation-invariance하여, 고양이가 오른쪽에 있는지 혹은 왼쪽에 있는지를 구분하지 못한다.
translation-invariance란 아래의 사진처럼 이미지 내에 고양이가 어디에 있든
이동에 불변하게, 동일하게 "cat"이라고 classification할 수 있는 특징을 말한다.
원본 input 이미지에 비해 픽셀이 이동된 이미지에 대해서도 'Cat detector'는 여전히 동일하게 'Cat'이라고 판단한다. 이것이 translation-invariance이다.
이와 반대로 Equivariance는 f(x)= x와 같이 입력 x값에 따라 출력값이 변하는 것을 말한다. 우측의 그림 처럼 함수 f는 입력 이미지에 따라 서로 다른 이미지를 출력하고 있다.
CNN(Convolution Neural Networks)는 translation-invariance가 어떻게 달성되었나?
CNN의 요소는 순서대로 convolution layer, pooling layer 마지막 출력단에 FC layer의 구성이다.
convolution layer단계에서는 equivariance의 특징을 갖지만 이후 pooling layer를 거치면서 invariant 특징을 갖게 된다.
Max-Pooling layer
convolution layer는 weight sharing하는 필터들을 통해 이미지를 통과하여 feature map을 얻는 것이기 때문에 이미지에 pixel shift가 발생한다면 서로 다른 피쳐맵을 얻게 될 것이다.
위와 같이 '3'이 그려진 이미지의 모든 픽셀이 오른쪽으로 1칸 이동하면 필터는 '3'이라는 특징을 포착하기 위해 weight가 동일하게 형성될 수 있지만 그와 연산되는 input 이미지의 픽셀이 달라짐으로 피쳐맵의 결과는 달라지게 된다.
이러한 입력과 출력의 변화가 일치하는 현상을 equivariant하다고 표현 한다.
그러나 max pooling을 거치면서 이러한 equivariance가 깨지게 된다.
max pooling을 통해 필터에서 강조되는 부분만 남기는 특징때문에 translation-invariant가 발생하게 된다.
위의 사진은 '3'이 그려진 이미지에 픽셀이 shift된 상태인데, 필터가 포착하는 픽셀이 달라짐에도 동일한 max값을 갖는 것을 알 수 있다. 즉 입력되는 값이 달라지지만 출력되는 결과가 같은 현상이다.
Conclusion
이러한 특성으로, convolution filter는 이미지의 특정 패턴이 어디에 나타나든 동일하게 감지하게 된다.
그러나 Image Classification이나 Object detection과 같은 문제에서는 이미지의 다양한 위치와 방향에서 특징이 검출 될 수 있기 때문에 equivariance를 최대한 유지하는 모델이 더 정확하고 강건한 결과를 제공할 수 있다. equivariance를 최대한 유지하는 아키텍쳐의 설계가 중요할 것이다.
Reference)
slide : https://www.doc.ic.ac.uk/~bkainz/teaching/DL/notes/equivariance.pdf
https://ganghee-lee.tistory.com/43
'기초 노트 > VisionAI' 카테고리의 다른 글
앵커박스(Anchor-box)와 바운딩 박스(Bounding-box)의 차이 (0) | 2024.06.03 |
---|---|
Trasnfer Learning vs Fine-tuning 그 차이가 뭔가요? (0) | 2024.05.07 |
딥러닝 FLOPs의 의미 (1) | 2024.05.02 |
Inductive bias가 뭔가요? (1) | 2024.02.16 |
뉴럴넷 컨볼루션 필터의 모양과 사이즈는 왜 정사각형일까? (1) | 2024.02.13 |