본문으로 이동

컨볼루션 신경망

Conaonda Wiki

컨볼루션 신경망(convolutional neural network, CNN)은 합성곱(컨볼루션) 연산을 기반으로 하는 인공신경망 구조이다. 주로 이미지처럼 격자 구조를 가진 데이터를 처리하는 데 사용된다.

개요

이미지는 픽셀이 2차원 격자로 배열된 구조적 데이터이다. 완전연결 계층만으로 이미지를 처리하면 가중치 수가 폭증한다. CNN은 합성곱 연산으로 지역적인 특징을 추출하고 가중치를 공유하여 파라미터 수를 크게 줄인다. 1998년 LeNet-5가 문서 인식에 사용되었고, 2012년 AlexNet이 ImageNet 대회에서 압도적인 성능을 보이면서 딥러닝 붐을 이끌었다.

핵심 개념

합성곱 계층

합성곱 계층은 작은 필터(커널)를 입력 위에 슬라이딩하며 각 위치에서 내적을 계산해 특징 맵(feature map)을 만든다. 필터는 지역 수용 영역(local receptive field)의 패턴(모서리, 질감 등)을 감지하며, 전체 위치에 같은 가중치를 적용하는 가중치 공유를 통해 파라미터 수를 줄인다.

패딩과 스트라이드

패딩(padding)은 입력 가장자리에 0을 채워 특징 맵의 크기를 조절하고, 스트라이드(stride)는 필터가 이동하는 간격을 정한다. 두 요소는 특징 맵의 공간 크기를 결정한다.

풀링 계층

풀링은 지역의 대표값을 뽑아 공간 크기를 줄인다. 최대 풀링(max pooling)이 대표적이며, 위치 변화에 대한 강건성을 높이고 연산량을 줄인다.

분류 계층

여러 합성곱·풀링 계층을 거친 특징은 1차원으로 평탄화되어 완전연결 계층에서 최종 분류·회귀에 사용된다. 계층 사이에는 ReLU 같은 활성화 함수가 적용된다.

대표 구조

  • LeNet-5: 초기 CNN 구조.
  • AlexNet: 대규모 이미지 분류에서 CNN을 각광받게 한 구조.
  • VGG: 작은 필터를 깊게 쌓은 구조.
  • ResNet: 잔차 연결(residual connection)로 깊은 신경망 학습을 가능하게 한 구조.
  • GoogLeNet(Inception): 여러 크기의 필터를 병렬로 사용하는 구조.

활용과 발전

CNN은 이미지 분류, 객체 탐지, 의미론적 분할 등 컴퓨터 비전 전반에 사용된다. 이후 이미지를 패치 단위로 나누어 트랜스포머에 입력하는 비전 트랜스포머(ViT)가 등장하면서, 비전 분야에서도 어텐션 기반 구조가 보편화되었다.

한계

CNN은 지역적 패턴 추출에 강하지만, 멀리 떨어진 위치 사이의 의존성을 다루기 어렵다. 시계열이나 문장 같은 순차 데이터는 순환 신경망이나 트랜스포머가 더 적합하다.

함께 보기

출처