신경망을 설계할 때 마주치는 가장 큰 문제 중 하나는 효율성입니다. 특히 이미지와 같은 대용량 데이터를 처리할 때, 기존의 MLP(다층 퍼셉트론) 방식은 파라미터 수가 너무 많아 비효율적입니다. 이런 문제를 해결하기 위해 등장한 것이 합성곱 신경망(Convolutional Neural Network, CNN)입니다. 오늘은 CNN의 핵심 개념과 그것이 왜 효율적인지 살펴보겠습니다.
합성곱 신경망이 기존 MLP 방식보다 효율적인 이유는 파라미터 수의 차이에서 명확하게 드러납니다. 간단한 예시로 살펴보겠습니다.
1000 x 1000 크기의 이미지(총 100만 픽셀)를 처리하는 세 가지 방식을 비교해보겠습니다:
1. 완전 연결 방식(Fully Connected): 입력층의 모든 뉴런이 다음 층의 모든 뉴런과 연결됩니다. 이 경우 필요한 파라미터 수는 무려 100억 개에 달합니다.
2. 지역적 연결 방식(Locally Connected): 이미지를 작은 윈도우로 나누어 각 윈도우마다 연결을 적용합니다. 10x10 크기의 윈도우로 나눈다면 총 천만 개의 파라미터가 필요합니다.
3. 합성곱 방식(Convolutional): 동일한 필터(가중치 집합)를 이미지 전체에 적용합니다. 10x10 크기의 필터 100개를 사용한다면, 필요한 파라미터는 단 만 개에 불과합니다.
이처럼 CNN은 파라미터 수를 획기적으로 줄일 수 있으며, 이미지 크기가 커져도 파라미터 수는 크게 증가하지 않습니다. 이는 CNN의 핵심 특성인 '가중치 공유(weight sharing)' 덕분입니다.
CNN에서는 필터 크기를 통해 '수용 영역(Receptive Field)'을 조절합니다. 수용 영역이란 출력층의 한 뉴런이 입력 이미지에서 바라보는 영역의 크기를 의미합니다.
더 깊은 네트워크에서는 각 층마다 3x3 필터를 적용하더라도, 최종 출력층의 뉴런은 입력 이미지의 더 넓은 영역을 바라보게 됩니다. 예를 들어, 3개의 3x3 합성곱 층을 쌓으면 최종 수용 영역은 7x7이 됩니다.
이런 특성 때문에 큰 필터 하나를 사용하는 것보다 작은 필터 여러 개를 쌓는 것이 더 효율적입니다. 7x7 필터 하나를 사용하는 것보다 3x3 필터 세 개를 쌓는 것이 파라미터 수(49 vs 27)와 계산량 모두 적으며, 비선형성(ReLU 활성화 함수)도 더 많이 적용할 수 있어 표현력이 높아집니다.
CNN에서 필터는 이미지의 특정 패턴을 감지하는 역할을 합니다. 예를 들어:
1. 항등 필터(Identity Filter): 중앙값이 큰 필터는 이미지를 거의 그대로 유지합니다.
2. 샤프닝 필터(Sharpening Filter): 중앙값이 크고 주변값이 음수인 필터는 경계선을 더 선명하게 만듭니다.
3. 블러 필터(Blur Filter): 모든 값이 동일한 필터는 이미지를 부드럽게 합니다.
실제 신경망에서는 이러한 필터들이 학습을 통해 자동으로 생성됩니다. 네트워크는 문제 해결에 가장 적합한 다양한 필터들을 찾아내고, 이를 조합하여 복잡한 패턴을 인식합니다.
CNN 설계 시 고려해야 할 주요 하이퍼파라미터는 다음과 같습니다:
1. 필터 개수(Filters): 추출할 특징의 다양성을 결정합니다. 더 많은 필터는 더 다양한 패턴을 인식할 수 있습니다.
2. 커널 크기(Kernel Size): 한 번에 바라볼 영역의 크기입니다. 일반적으로 3x3이나 5x5를 사용합니다.
3. 스트라이드(Stride): 필터의 이동 간격입니다. 스트라이드가 2면 출력 크기가 절반으로 줄어듭니다.
4. 패딩(Padding): 입력 주변에 0을 추가하는 것으로, 출력 크기를 조절할 수 있습니다.
CNN의 모든 합성곱 층 뒤에는 비선형 활성화 함수인 ReLU(Rectified Linear Unit)가 적용됩니다. ReLU는 음수 값을 0으로 바꾸고 양수 값은 그대로 유지하는 간단한 함수입니다.
이 비선형성이 없다면 아무리 많은 층을 쌓아도 단순한 선형 변환에 불과합니다. ReLU를 통해 네트워크는 복잡한 패턴을 학습할 수 있는 능력을 갖게 됩니다.
합성곱 신경망은 이미지 처리에 특화된 효율적인 신경망 구조입니다. 가중치 공유를 통해 파라미터 수를 획기적으로 줄이고, 적절한 수용 영역 설계로 계산 효율성과 표현력을 모두 확보할 수 있습니다. 필터 크기, 개수, 스트라이드, 패딩 등의 하이퍼파라미터를 조절하고 ReLU와 같은 비선형 활성화 함수를 적용함으로써, 다양한 이미지 처리 문제를 효과적으로 해결할 수 있습니다.
이러한 CNN의 특성은 현대 컴퓨터 비전 분야에서 혁신적인 발전을 이끌어냈으며, 현재도 이미지 분류, 객체 검출, 이미지 생성 등 다양한 영역에서 핵심 기술로 활용되고 있습니다.