CNN은 실제로 무엇을 학습할까
학습된 CNN의 필터를 시각화하면 아름다운 패턴이 나타나. 초기 층은 방향성이 있는 경계 검출기와 색상 덩어리를 학습해. 포유류 시각 피질의 단순세포와 비슷하지. 중간 층은 질감과 형태의 일부를 학습해. 눈, 바퀴, 털의 무늬 같은 것들이야. 후기 층으로 갈수록 객체 형태의 특징과 특정 범주에 특화된 개념을 학습해.
이런 특징 계층을 사람이 미리 설계해 넣은 건 아니야. 학습 과정에서 스스로 나타나지. 지역성, 매개변수 공유, 비선형성, 깊이를 갖춘 아키텍처면 충분해. 구체적인 특징 계층은 데이터와 기울기에서 만들어져.
수용 영역은 깊이에 따라 커져
1층의 뉴런은 입력에서 작은 영역만 봐. 5층의 뉴런은 더 큰 영역을 보지. 합성곱 층을 거치며 그 뉴런에 입력을 전달하는 모든 1층 영역이 합쳐지기 때문이야. 30층의 뉴런은 이미지 대부분을 봐. CNN은 이런 방식으로 국소적인 경계부터 전체 구조까지 쌓아 올려.
풀링과 다운샘플링
대부분의 CNN은 합성곱과 다운샘플링을 번갈아 적용해. 다운샘플링에는 stride-2 conv나 MaxPool을 사용하지. 다운샘플링할 때마다 공간 차원은 절반으로 줄고 채널 수는 보통 두 배로 늘어. 그 결과 피라미드 구조가 만들어져. 시작 부분에는 해상도가 높고 얕은 특징이 있고, 끝부분에는 해상도가 낮고 깊은 특징이 있어.
내부에서 일어나는 일을 시각화해 봐
쓸 수 있는 도구는 여러 가지야. 기울기 기반 saliency map은 어떤 입력 픽셀이 예측에 영향을 주는지 보여줘. Grad-CAM은 예측된 클래스에 어느 공간 영역이 활성화됐는지 보여주지. 특징 inversion은 특정 필터를 가장 강하게 활성화하는 입력이 무엇인지 보여줘. 해석 가능성을 다룰 때 꼭 알아둘 기본 도구들이야.