CNN

Vincent·2023년 1월 14일
0

특징

데이터 셋의 x -> y 관계 구성에 따라 자동으로 탐지해야 할 패턴을 추출
따라서 내부 kernal은 해당 패턴을 추출하기 위한 형태로 자동으로 구성됨

활용 분야

  • 컴퓨터 비전
  • 음성 인식
  • 텍스트 분류
  • 기계 번역
  • 시계열

Convolution Layer의 장점

  • Feature의 위치에 구애받지 않음. (이미지 학습에 최적화)
  • 같은 입출력을 갖는 Fully connected layer에 비해 매우 빠르고 더 적은 weight를 가진다.
  • 병렬 계산 구성이 쉬우므로, GPU 연산이 매우 빠르다

Convolution Layer의 단점

  • Fully connected layer에 비해 입출력 크기 계산이 까다로워, 네트워크 구성이 쉽지 않다.

Convolution 연산 이해하기

Convolution연산은 다층신경망(MLP) (각 뉴런들이 선형모델과 활성함수로 모두 연결된 (fully connected)구조)과 달리 커널(kernel)을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조. 커널값은 항상 고정.

2차원 Convolution 연산

채널이 여러개인 2차원 입력의 경우 2차원 Convolution을 채널 개수만큼 커널을 만들어서 적용한다고 생각하면 됨

패딩을 두면 입력의 사이즈가 출력에서 보존

CNN의 기본 구성

  • Convolution Filter : 다양한 특징을 생성
  • (Max) Pooling : 특징 중 강한 특징들을 살리면서 차원을 축소
    (별도의 layer을 활용)
  • Relu : Activation Function - 불필요한 Feature를 제거하는 역할
  • Fully Connected : Classification 결정 이전에 Feature들을 재조합하는 연산
  • Softmax : 확률 값을 내어 보내어 다양한 값을 분류하기 위함

합성곱 연산과정

4x4 이미지를 3x3 필터로 보폭(stride) 1, 패드(pad) 0으로 합성곱 연산하는 과정

보폭 : 옆으로 이동하는 칸 개수

CNN 피처맵

32(H)x32(W)x3(C)의 이미지를 10개의 3x3 필터로 보폭(Stride)이 1, 패드(pad)는 0으로 합성곱 연산을 진행

CNN 피처맵의 output 크기는 아래 수식으로 구할 수 있다.

그러므로 output 사이즈는 30x30이며, FxF 크기의 필터 n개를 적용하면 출력으로 나오는 피처맵의 크기는 Output Output n이다. 따라서 이 문제에서는 10개의 필터를 사용했으므로 피처맵의 크기는 30x30x10

실습

profile
Frontend & Artificial Intelligence

0개의 댓글