합성곱 신경망 (CNN) 입문

IngCoding·2022년 6월 20일
1

머신러닝

목록 보기
22/34

1. 합성곱 신경망의 대두

  • 합성곱 신경망(Convolutional Neural Network)은 이미지 처리에 탁월한 성능을 보이는 신경망으로 크게 합성곱층과 풀링층으로 구성된다.
  • 기존 다층 퍼셉트론으로 Y의 이미지 처리한다고 가정하면, 1차원 텐서인 벡터로 변환하며 기존의 공간 정보는 유실된다.
  • 결국 이미지의 공간적인 구조 정보를 보존하면서 학습할 수 있는 방법이 필요했고, 이를 위해 사용하는 것이 합성곱 신경망이다.

2. 기본 용어정의

채널(Channel)

  • 이미지는 (높이, 너비, 채널)이라는 3차원의 텐서다. 채널은 삼원색(Red, Green, Blue)을 갖는 즉, 채널이 3인 컬러이미지에서 중요하다.
  • 채널은 때로는 깊이(depth)라고도 하며, 이 경우 이미지는 (높이, 너비, 깊이)라는 3차원 텐서로 표현된다고 할 수 있다.

합성곱 연산(Convolution operation)

  • 합성곱 층은 합성곱 연산 + 활성화 함수로 이루어진다. 활성화 함수는 보통 ReLU 함수를 활용한다.
  • 합성곱 연산은 입력값과 커널(필터)의 연산을 말한다.이미지의 특징을 추출하는 역할을 한다.
  • 5x5 입력값, 3x3 커널, 스트라이드(이동범위) 1인 합성곱 연산 과정을 살펴보자.
  • 스트라이드가 1이므로 9회 스텝이 반복되고, 3x3의 특성 맵이 나온다. 만약 스트라이드가 2면 2x2의 특성맵이 나온다.

패딩 (Padding)

  • 위에서 살펴봤듯이 최소 스트라이드로 합성곱 연산(1)을 하더라도 입력값보다 작은 특성 맵이 나온다. 만약 합성곱 층을 여러개 쌓으면 특성 맵은 초기 입력보다 매우 작은 상태가 된다.
  • 이런 경우 패딩을 통해 합성곱 연산 이후에도 특성 맵의 크기를 일정하게 유지할 수 있다.

3. 가중치와 편향

가중치

  • 합성곱 신경망에서 가중치와 편향을 다층 퍼셉트론과 비교하며 살펴보자.
  • 다층 퍼셉트론은 3x3 이미지 처리의 경우 36개(9x4)의 가중치를 가진다.
  • 합성곱 연산망은 3x3 이미지 처리(2x2 커널 사용, 스트라이드 1)의 경우 가중치는 4개 뿐이다.
  • 그리고 모든 픽셀을 사용하는 것이 아니라, 커널과 맵핑되는 픽셀만을 입력으로 사용한다.
  • 결국 합성곱 신경망은 다층 퍼셉트론보다 훨씬 적은 수의 가중치를 사용하며 공간적 구조정보를 보존한다는 특징을 지닌다.

편향

  • 합성곱 신경망에서 편향을 사용한다면 커널을 적용한 뒤 더해지며, 커널이 적용된 모든 원소에 더해진다.

4. 3차원 텐서의 합성곱 연산

  • 위의 개념은 채널(깊이)를 고려하지 않은 2차원 텐서를 기준이였으나, 실제로 많이 활용되는 건 3차원 텐서다.
  • 3개의 채널을 가진 3차원 텐서의 합성곱 연산을 보자.
  • 각 채널간 합성곱 연산을 마치고 결과를 모두 더해서 하나의 채널을 가지는 특성맵이 만들어진다.
  • 주의할 점은 위의 연산에 사용되는 커널은 3개의 커널이 아니라 3개의 채널을 가진 1개의 커널이라는 점이다.
  • 3차원 텐서의 합성곱 연산을 도형으로 표현해보자.

풀링

  • 일반적으로 합성곱 층 다음에는 풀링 층을 추가하는 게 일반적이다. 텐서의 크기를 줄여 과적합을 줄이고 특징을 더 잘 뽑아낼 수 있다.
  • 풀링층은 특성 맵을 다운샘플링하여 특성 맵의 크기를 줄이는 풀링 연산이 이루어진다.
  • 위의 그림은 스트라이드가 2, 커널 2x2로 맥스 풀링 연산을 했을 때 특성 맵의 크기가 절반이 되는 다운샘플링을 보여준다.
profile
Data & PM

0개의 댓글