합성곱 신경망(Convolutional Neural Network, CNN)은 이미지 처리에 특화된 신경망 구조입니다.
일반 신경망과 달리 「작은 필터(커널)를 이미지 위에 미끄러뜨리며 특징을 뽑아내는」 합성곱(convolution) 연산을 핵심으로 사용합니다.
CNN이 이미지에 특화된 이유는 두 가지 강력한 가정 때문입니다.
첫째, 「위치 불변성」 — 고양이의 얼굴은 사진의 어느 위치에 있든 고양이입니다.
같은 필터를 이미지 전체에 사용하므로 「어느 위치에서 발견되든」 같은 특징을 잡을 수 있습니다.
둘째, 「국소성」 — 한 픽셀의 의미는 주변 픽셀과의 관계에서 결정됩니다.
작은 필터는 이 국소성을 자연스럽게 반영합니다.
비유하자면 CNN의 필터는 「작은 돋보기」입니다.
이미지 전체를 한 번에 보는 대신 작은 돋보기를 위치마다 옮겨 가며 「여기 모서리가 있나?」, 「여기 빨간 점이 있나?」를 검사합니다.
여러 돋보기(여러 필터)를 동시에 사용하면 다양한 특징을 한 번에 잡을 수 있습니다.
CNN은 보통 「합성곱 → 활성화 → 풀링」 단계를 여러 번 반복합니다.
합성곱은 특징을 뽑고, 활성화는 비선형성을 더하고, 풀링은 공간을 줄여 더 추상적인 특징을 얻게 합니다.
마지막에는 완전연결층(fully-connected)으로 분류 결과를 내놓습니다.
1998년 얀 르쿤의 LeNet-5가 첫 성공적인 CNN이었고, 2012년 알렉스넷이 ImageNet에서 우승하며 표준이 되었습니다.
이후 VGG·GoogLeNet·ResNet 등의 발전을 거쳐 의료 영상·자율주행·얼굴 인식 등 컴퓨터 비전의 거의 모든 분야의 토대가 되었습니다.
한 줄 요약
CNN은 작은 필터를 이미지 위에 미끄러뜨리며 특징을 뽑아내는 신경망으로, 「위치 불변성」과 「국소성」 가정을 통해 이미지 처리에 특화된 구조입니다.
더 알아볼 것
- LeNet-5 — 1998년의 첫 성공적 CNN
- 받아들임 영역(receptive field)의 의미
- CNN의 스트라이드와 패딩