합성곱 신경망 (CNN)

이혜빈·2022년 12월 8일
0

CNN

Convolution Neural Network, 합성곱 신경망

📌 등장 배경

  • 다층 퍼셉트론(MLP)으로 이미지를 flat하게 펼쳐 학습하면 이미지의 지역적 정보 소실
    => 합성곱 층의 뉴런은 수용 영역 안에 있는 픽셀에만 연결하여 이미지의 지역적 정보 보유
  • 다층 퍼셉트론은 해당 데이터를 추상화시키지 않고 바로 연산을 시작 -> 학습 시간과 능률이 비효율적
    => 이미지를 이해하고 추상화된 정보를 추출하여 특징 패턴을 파악하는 CNN 도입
  • 다층 퍼셉트론은 이미지 픽셀마다 다른 가중치(W)값을 부여하여, 픽셀값 하나만 달라져도 다르게 계산
    => 객체의 위치가 바뀌어도 같은 특징을 추출하도록 합성곱층에서는 각 영역의 인접 데이터를 조사해 특징 파악

📌 CNN 핵심 요소

- 필터

  • 각 레이어의 입출력 데이터의 형상 유지
  • 복수의 필터로 이미지의 특징 추출 및 학습
  • 필터를 공유 파라미터로 사용하기 때문에, 일반 신경망에 비해 학습 파라미터가 매우 적다.

- 합성곱층

  • 입력 데이터의 특징을 추출하여 특징들의 패턴 파악
  • 이미지의 공간 정보를 유지하면서 특징 인식

- 풀링층

  • 추출한 이미지의 특징을 모으고 강화하는 레이어

📌 CNN의 영역

이미지와 같이 이미지의 특징을 추출하는 부분과 클래스를 분류하는 부분으로 구성

특징 추출 영역

  • 합성곱층과 풀링층(선택)을 여러 겹 쌓은 형태
  • 합성곱층: 입력 데이터에 필터를 적용 후 활성화 함수를 반영하는 필수 요소
  • 풀링층: 추출한 특징을 강화

클래스 분류 영역

  • CNN 마지막 부분에는 이미지 분류를 위한 완전 연결 계층(Fully Connected) 추가
  • Fully Connected Layer: CNN 마지막 부분, 이미지 분류를 위한 레이어

CNN 주요 용어 정리

📌 채널

  • 이미지 픽셀 하나하나는 실수, 이미지 형태는 (높이, 폭, 채널)로 구성

  • 컬러 사진: RGB 3개의 실수로 표현한 3차원 데이터, 3개의 채널

  • 흑백 사진: 2차원 데이터, 1개 채널

  • 입력 데이터에는 한 개 이상의 필터가 적용

  • 1개의 필터는 특징맵(Feature Map)의 채널이 됨
    -> 합성곱 층에 n개의 필터가 적용된다면 출력 데이터는 n개의 채널

    사진 출처: https://e2eml.school/convert_rgb_to_grayscale.html

📌 합성곱 (Convolution)

  • 데이터의 특징을 추출 과정으로 필터를 사용하여 각 영역의 인접 데이터를 조사해 특징을 파악하여 한장으로 도출
    -> 여기서 도출된 장: 합성곱층

합성곱의 추상화

  • 이미지 특정 부분을 추상화하여 특정 층으로 표현
  • 하나의 압축 과정으로 파라미터의 개수를 효과적으로 축소

합성곱의 구조

  • 필터와 활성화함수로 구성
    • 필터(Filter): 특징이 데이터에 있는지 없는지 검출하여 가중치 부여
      - 합성곱층 내 수용영역 생성
      - 필터 또는 커널이라 혼용하여 명명
    • 활성화 함수: 특징 유무를 수치화하기 위해 비선형으로 바꿔주는 함수

필터 & 커널

필터

  • 이미지의 특징을 찾아내기 위한 공용 파라미터
  • 학습의 대상
  • 합성곱의 가중치에 해당
  • 실제로 커널이 가중치 합산하는 영역의 크기

커널

  • sliding window 하는 영역에서의 크기

스트라이드 (Stride)

  • 필터를 적용하는 간격
    필터는 입력 데이터를 지정한 간격으로 순회하면서 합성곱 계산 => 지정된 간격을 Stride로 저장

패딩 (Padding)

  • 문제점: 합성곱 층에서 필터와 스트라이드 작용으로 특징맵의 크기는 입력데이터보다 작아짐
    => 해결방안: 입력 데이터의 가장자리에 지정된 픽셀만큼 특정 값으로 채워 넣음
  • 합성곱의 출력 데이터의 데이터 사이즈 질문
  • 가장자리를 0값으로 둘러싸는 특징 -> 인경신공망이 이미지의 외곽을 인식하는 학습 효과

특징맵 (Feature Map)

  • 합성곱층의 입력데이터를 필터가 순화하며 합성곱을 통해서 만든 출력(행렬)
  • 입력데이터에서 필터를 통해 불필요한 정보를 걸러내고 중요한 신호만을 추출한 것
  • 특징맵의 크기 = (input size + 2*padding - filter size)/stride + 1
profile
안녕하세요

0개의 댓글