본문 바로가기

데이터사이언스

CNN (Convolutional Neural Network) 이해하기

합성곱

  • 두 함수 f와 g가 주어졌을 때, 한 함수의 형태가 다른 함수에 의해 어떻게 변하는지 설명해주는 새로운 함수 h = f*g를 도출하는 과정 또는 이를 통해 도출된 함수를 지칭함
  • 즉, 합성곱 연산은 고정되어 있는 함수 f와 속성 공간을 이동하는 함수 g를 통해 이루어지며, f가 g에 의해 어떻게 변화하는지를 설명함
  • 이 과정에서 g를 kernel의 일종으로 볼 수 있음
  • CNN에서는 f를 처리하고자 하는 input, g는 input을 탐색하고 변환시키기 위한 kernel에 해당함

합성곱 신경망 (CNN)

  • 신경망을 구성하는 layer중에서 합성곱 연산을 수행하는 layer를 포함한 신경망을 CNN으로 정의할 수 있음
    • 합성곱 연산을 수행하는 layer는 filter를 포함하고 있으며, filter는 input 데이터를 반복적으로 탐색하며 합성곱을 계산하여 합성곱 연산의 결과 값으로 구성된 feature map을 출력함 (feature map의 출력 부분만이 신경망에 연결됨)
  • Convolustion layer의 사용을 통해 효율적인 계산을 수행하면서도 데이터의 국소적 계층관계를 반복적으로 학습하여 정밀한 학습이 가능함
  • 일반적인 신경망의 input - hidden - output 구조를 가지며, convolution layer는 hidden layer에서 사용됨

  • CNN의 hidden layer는 convolution layer 뿐만 아니라 pooling layer와 fully connected layer의 조합으로 이루어짐
      • Convolution layer
        • filter를 통해 input data를 순회하며 feature map 형태의 출력을 계산하는 layer로서 filter의 크기와 갯수는 사용자가 정할 수 있으며, 다양한 특징의 filter를 정의할 수 있음
        • 결과적으로 feature map은 input data에서 filter를 통해 불필요한 정보를 걸러내고 중요한 신호만을 추출한 것이라고 할 수 있음
        • 실제 이미지 데이터는 다양한 채널로 구성되어 있으며, 이에 따라 하나의 필터도 여러 개의 채널로 구성될 수 있음
        • filter의 크기에 따라 이동하는 횟수가 달라지고, filter가 이동하는 보폭(stride)에 따라서도 feature의 크기가 변화됨 (padding : 출력 차원 감소를 막기 위해 input data의 외곽에 적절한 개수의 행과 열을 추가)
        • 결과적으로 feature map의 크기는 다음과 같음
            • FM_size = (input size + 2*padding - filter size)/stride + 1
      • Pooling layer
          • 생성된 feature map에 대해 추가적인 pooling을 통해 크기를 줄이고 훈련의 대상이 되는 매개 변수의 수를 줄일 수 있음
          • 이는 계산 복잡도를 줄이고 overfitting을 방지하는 역할을 할 수 있음
          • 각가의 feature map마다 독릭접으로 pooling을 수행함
          • pooling하는 방법에는 해당 영역의 평균을 반영하는 방법과 최대값을 반영하는 방법 등이 있음 (일반적으로 Max pooling의 성능이 좋은것으로 알려져 있음
    • Connected layer
      • 출력 층 바로 전에 위치하며, 기존의 신경망에서 사용되던 dense layer와 동일함
      • 앞에서 convolution 및 pooling layer를 거쳐 정교하게 학습된 특징들을 input으로 받아 학습을 수행함
      • output 노드의 수는 추정하고자 하는 클래스의 개수와 같으며, 각각의 노드의 계산 결과는 해당 클래스에 대한 소속 정도를 나타냄CNN의 hidden layer는 convolution layer 뿐만 아니라 pooling layer와 fully connected layer의 조합으로 이루어짐

 

 

'데이터사이언스' 카테고리의 다른 글

VGGNet (CNN architecture 기반 모델)  (0) 2019.10.25
CNN의 구조  (0) 2019.10.25
신경망 구조  (0) 2019.10.24
다중 퍼셉트론의 학습 방법  (0) 2019.10.24
신경망 모델 (신경망 모형)  (0) 2019.10.24