Home [AI] CNN 기본 이론
Post
Cancel

[AI] CNN 기본 이론

CNN(Convolutional Neural Network) - 합성곱 신경망

  • CNN 에서 특별히 합성곱이 일어나는 층을 합성곱층, 풀링이 일어나는 층을 풀링층이라고 부름
  • 합성곱층과 풀링층에서 만들어진 결과를 특성 맵(feature map)이라고 부른다.

  • 입력이 합성곱층을 통과할 때 합성곱과 활성화 함수가 적용되어 특성 맵이 만들어짐, 그 다음 특성 맵이 풀링층을 통과하여 또 다른 특성 맵이 만들어짐

풀링이란?

  • 특성맵을 스캔하여 최댓값을 고르거나 평균값을 계산하는 것

CNN의 구조

합성곱 층(Convolution Layer)

  • 각각 합성곱 층의 뉴런은 입력 이미지의 모든 필에 연결되는 것이 아니라 합성곱 층 뉴런의 수용장에 있는 픽셀만 연결됨
  • 두 번째 합성곱 층은 첫 번째 합성곱 층의 작은 사각 영역 안에 위치한 뉴런에만 연결 img_1

스트라이드(stride)

image

  • 스트라이드가 2 이고, 수용장의 크기가 33으로 할 때 출력의 크기 33
  • 만약 스트라이드가 1이라면 출력은 5*5 -> 스트라이드가 커지면 출력의 크기는 작아짐

패딩

image

  • feature map이 작아지는 문제를 해결하기 위한 기법
  • 패딩을 1로 설정 한 후 값을 0으로 넣는다

여러 가지 특성 맵

  • 합성곱 층은 여러 가지 커널을 가지고 커널마다 하나의 특성 맵을 출력
  • 실제로는 2D가 아니라 3D로 표현
  • 각 특성 맵의 픽셀은 하나의 뉴런에 해당하고, 하나의 특성 맵 안에서는 모든 뉴런이 같은 파라미터(동일한 가중치와 편향, 즉 커널)를 공유하지만, 다른 특성 맵과는 다른 파라미터를 사용하여 파라미터 수를 급격히 감소 시킴

→ 하나의 합성곱 층이 입력에 여러 필터를 동시에 적용하여 입력에 있는 여러 특성을 감지

image

풀링 층(Pooling Layer)

  • 과도한 계산량, 메모리 사용량, 파라미터 수를 줄이고 over fitting 위험을 줄여주는 축소본 생성
  • 풀링 뉴런은 가중치 없이 최대나 평균만 계산

image

풀링 종류

  • average pooling : 평균을 구하므로 max pooling 보다 정보 손실이 적음
  • max pooling : 의미 없는 것들을 제거하고 큰 특징만 유지, 조금더 명확, 일반적으로 성능이 더 좋아서 max pooling 이용

CNN 기본 이론 요약

  • 입력된 이미지를 Convolution Layer의 뉴런이 Kernel 이라는 특징을 통과해 특정한 특징만 가지고 있는 Feature Map 가짐, 이러한 Feature Map을 통해서 이미지 인식

  • Feature Map 작아지는 문제점이 있어 Padding 기법 활용, 계산 복잡도를 낮춰주기 위해 stride 설정

  • Convolution Layer만 있다면, 과대 적합이 심해질 수 있으므로, Pooling Layer 추가

This post is licensed under CC BY 4.0 by the author.