본문 바로가기
기타/TIL

[TIL] feature map은 대체 뭘 나타내는가?

by 혜 림 2021. 10. 14.

 

 오늘은 교수님 오피스 아워 때 방문해서 여쭤보고 온 질문을 공유하고자 한다. 

 

 우선 내가 의문을 가졌던 의문 먼저 소개하자. 

 

image credit: cs231n

 

 위 이미지에서는 vgg16의 conv 레이어를 시각화한 것이다. 

 conv 레이어의 필터는 레이어가 깊어짐에 따라 더욱 복잡한 형태를 띄고 있음을 위 이미지에서도 확인할 수 있다. 즉 더 복잡한 필터를 통해서 이제 이미지의 본질적인, 혹은 핵심적인 특징을 잡아내는 것이다. 

 

 

image credit: cs231n

 한편 위 이미지는 conv layer의 필터를 거친 후의 feature map들이다. 보시다시피 conv layer를 거쳐감에 따라서 점점 feature map은 interpretable하지 않은 형태를 가진다. 

 

 여기서 내가 가졌던 의문은 이것이다. 

 filter가 더 복잡해 짐에 따라 중요한 특성을 잡아내는 것은 명백한데 왜 filter를 거친 후의 feature map은 인간의 해석과는 동떨어진 그림인가? 예를 들어 고양이라는 이미지가 있으면 feature map에 응당 고양이의 눈이며 수염이며 이렇게 고양이라는 동물의 본질적인 특성이 담긴 feature map을 출력하는 게 내 intuition이었다. 

 

 

 이런 질문을 드렸고, 교수님께서는 열심히 한다고 칭찬해주셨다.. ㅎㅎ 그리고 내가 잘못 알고 있다는 것을 깨달았다. 

 교수님께서 보여주신 이미지 고대로 갖고 오고 싶었지만 못 찾아서 다른 걸로 대체한다. 

 

 

 왼쪽 그래프 먼저 보자.  

 이건 feature map을 만들기 전, input dataset이다. 하나의 점이 하나의 이미지를 표현한다고 생각하면 된다. 지금 이 이미지는 2차원에 그려넣었는데, x축과 y축은 이미지를 PCA 등의 투영법projection을 이용해서 얻은 값이라고 생각하면 된다. 즉, 하나의 이미지를 pca를 통해서 2차원에 투영시킨다. 그게 하나의 점이 된다. 모두 점을 찍으면 왼쪽 그림처럼 산점도가 나오게 될 것이다. 처음에는 모든 label이 섞여서 혼재되어 있다. 비록 우리가 보기에 비행기와 사자는 다른 사진이지만, 그 픽셀값들을 2차원에 표현해보면 비행기라는 이미지와 사자라는 이미지는 큰 차이가 없이 섞여 있다는 뜻이다. 

 

 오른쪽 그림은 feature map을 거친 후의 dataset이다. 그러니까 점 하나가 하나의 input에 대응하는 feature map인 것이다. 보면 굉장히 label끼리 잘 분리된 것을 확인할 수 있다. 

 

 그러니까 이게 무슨 말이냐? 

 우리가 feature map을 통해서 뽑아내는 특성은 인간의 눈에서 interpretable한 특성이 아니고, 2차원 상에서 다른 label끼리 구분하는 hyper-plane을 잘 만들 수 있도록 하는 특성이라는 것이다. 그렇기때문에 conv 레이어를 거칠수록 인간의 눈에서는 해석할 수 없는, 추상적인 feature map이 만들어지게 된다. 

 

 

 어쩌면 GAN에서 흉내낸다는 이미지 분포가 이 2차원에 투영시킨 이미지 분포가 아닐까 하는 생각도 들었다. 아님 말구링! 

 교수님과 재밌는 오피스 아워였다ㅎㅎ  

 

 나처럼 feature map이 왜 이렇게 모호하게 생겼는지 의문을 품고 동동 거리고 있는 사람에게 도움이 되었으면 좋겠다. 

'기타 > TIL' 카테고리의 다른 글

[TIL] SGD 에 대한 제대로 된 이해  (0) 2021.10.14
[TIL] 파이토치 error 2건  (0) 2021.09.01

댓글