DL Convolutional Neural Network

CNN

1. 합성곱 신경망

1.1 합성곱 신경망의 등장

완전 연결 신경망의 한계점

이미지 데이터를 학습하기 위해서는 1차원으로 평탄화 해야한다.
이 과정에서 이미지 데이터가 가지고 있던 ‘형상정보’가 사라지면서 무시될 수 있다.

형상정보 : 이미지의 공간적인 정보 (픽셀 간 거리에 따른 특징)


합성곱 연산

입력데이터에 필터 혹은 커널을 적용해서 window를 일정간격으로 이동해가며 수행한다.

왼쪽에서 오른쪽으로 이동하면서 처리한다.

전통적인 방식의 합성곱연산은 미리 정의된 필터를 사용한다.
이렇게 정의된 필터는 수동 설계되거나, 특정 목적에 최적화되어있어 범용성이나 유연성에 한계가 있었다.

Alt text

1.2 합성곱 신경망의 구성요소

스트라이드(stride)

입력 데이터에 필터를 적용할 때에 필터가 이동하는 간격을 의미한다.

당연히 출력 feature map의 크기에도 연관을 주게 된다.


패딩

입력 데이터의 주변을 특정 값 (주로 0)으로 채우는 연산이다.

합성곱 연산을 반복하면 feature map의 크기가 점점 줄어들기 때문에,
너무나 작은 feature map은 합성곱 신경망의 학습의 효율성을 떨어뜨리므로, 진행하게 된다.


합성곱 연산 청리

이미지 데이터는 기본적으로 RGB의 3차원 데이터이다.(3 채널의 데이터)
이 경우에는 각 채널 별로 합성곱 연산을 수행한 결과를
채널 축으로 합하는 방식으로 계산이 되므로
출력은 하나의 채널을 가지고 있다.

각 채널의 index에 맞는 feature의 i 번째 행렬을 넣어 값을 구하고, 각 채널의 출력값을 연산(+)해서 (필요의 경우 bias 추가) feature map의 값으로 집어넣는다.

필터의 개수를 FN개로 두게 되면, 출력의 수가 필터의 수에 맞게 FN개의 채널을 가지는 것으로 알 수 있다.


풀링 연산

이미지 데이터의 가로 세로 방향의 크기를 줄이는 연산
보통 window의 크기를 2x2, 3x3으로 pooling하게 된다.

  1. 최대풀링 (max pooling)
    window 중에서 가장 큰 값을 대표값으로 삼아 이미지 데이터의 크기를 줄이는 방법
    가장 두드러지는 특징을 가져오는 특성 때문에, 중요한 정보만 선별해내는 기능을 수행

  2. 평균 풀링 (Average pooling)
    window의 값을 평균을 내 대표값으로 이미지 데이터의 크기를 줄이는 방법
    feature map의 일반적인 정보를 보존하고, 극단적인 값에 덜 민감하다.
    전체적인 내용과 구조를 보존하는것이 중요하다고 판단될 때 사용한다.

가장 중요한 특징

  • 학습의 효율성 :
    합성곱 연산과 달리, 필요한 파라미터가 없어서 데이터 크기를 줄일때 효과적이다.
  • 잡음에 대한 강인성 :
    입력 이미지에 추가된 잡음에 영향을 적게 받아 신경망이 더 강건하다.

1.3 요약 및 정리