컴퓨터공학/CNN

CNN(Convolutional Neural Network)이란

airoot 2024. 8. 5. 21:45

CNN(Convolutional Neural Network, 합성곱 신경망)은 주로 이미지와 같은 데이터를 처리하는 데 사용되는 딥러닝 모델이다. CNN은 이미지 분류, 객체 탐지, 영상 처리, 의료 영상 분석 등 다양한 분야에서 널리 사용되고 있다. CNN의 주요 구성 요소와 작동 원리는 다음과 같다.

주요 구성 요소

  1. Convolutional Layer (합성곱 층):
    • 이미지의 특징을 추출하는 역할을 한다. 필터(또는 커널)를 사용하여 입력 이미지와 합성곱 연산을 수행한다.
    • 각 필터는 이미지의 다른 특징을 감지하는 데 사용되며, 필터의 가중치는 학습을 통해 조정된다.
    • 활성화 함수(ReLU)를 적용하여 비선형성을 추가한다.
  2. Pooling Layer (풀링 층):
    • 입력 이미지의 크기를 줄여 계산량을 줄이고, 중요한 특징을 유지하는 역할을 한다.
    • 일반적으로 최대 풀링(max pooling)과 평균 풀링(average pooling) 기법이 사용된다.
    • 최대 풀링은 필터 영역에서 최대 값을 선택하고, 평균 풀링은 평균 값을 선택한다.
  3. Fully Connected Layer (완전 연결 층):
    • 풀링 층의 출력 값을 1차원 벡터로 변환하여 분류 작업을 수행한다.
    • 일반적인 인공 신경망처럼 입력 값을 모든 노드에 연결하여 최종 출력을 도출한다.

CNN의 작동 원리

  1. 입력 데이터:
    • 입력 데이터는 보통 이미지이다. 예를 들어, 28x28 크기의 흑백 이미지라면, 이는 28x28 픽셀의 행렬로 표현된다.
  2. 합성곱 연산:
    • 필터를 이미지의 각 영역에 적용하여 특징 맵(feature map)을 생성한다. 필터는 이미지의 특정 패턴을 감지한다.
    • 합성곱 층을 통과한 후에는 ReLU 활성화 함수를 적용하여 비선형성을 추가한다.
  3. 풀링 연산:
    • 풀링 층은 특징 맵의 크기를 줄여 계산량을 줄이고, 주요 특징을 추출한다.
    • 예를 들어, 2x2 최대 풀링을 사용하면, 2x2 영역에서 최대 값을 선택하여 특징 맵의 크기를 절반으로 줄인다.
  4. 완전 연결 층:
    • 풀링 층의 출력 값을 1차원 벡터로 변환하고, 이를 완전 연결 층에 입력한다.
    • 최종적으로 소프트맥스(softmax) 함수를 사용하여 각 클래스에 대한 확률을 계산하고, 가장 높은 확률을 가지는 클래스를 예측 결과로 출력한다.

CNN의 주요 특징

  • 지역 연결성(Local Connectivity): 합성곱 층에서 필터는 이미지의 작은 영역과만 연결되므로, 이미지의 공간적 구조를 잘 보존한다.
  • 파라미터 공유(Parameter Sharing): 같은 필터가 이미지 전체에 적용되므로, 학습할 파라미터의 수가 크게 줄어든다.
  • 계층적 특징 추출(Hierarchical Feature Extraction): 초기 층은 저수준의 특징(에지, 색상 등)을 추출하고, 후속 층은 고수준의 특징(모양, 패턴 등)을 추출한다.

이와 같은 특징 덕분에 CNN은 이미지 처리 및 분석 작업에서 뛰어난 성능을 발휘한다.

'컴퓨터공학 > CNN' 카테고리의 다른 글

CNN 자바로만 구현하기  (0) 2024.08.18
Convolutional Layer(합성곱층)  (0) 2024.08.14