CNN 하나씩 이해하기(1)-Channel Convolution

이규상·2023년 8월 17일
0
post-custom-banner

학습목표

  • Convolution 연산이 어떻게 실행되는지 이해한다
  • Convolution 연산의 목적이 무엇인지를 이해한다
  • Padding의 필요성을 이해한다

Channel이 하나일 때

  • CNN이란?

    CNN 구조는 크게 Feature extraction과 Classification으로 구성된다. Input이 들어가면 먼저 Convolution 연산과 Pooling을 여러 번 반복하여 Feature extraction을 한 후 1D 데이터인 flatten layer로 만든다. 마지막으로 Fully connected layer(MLP)를 통해 classification을 한다.

  • Convolution 연산이란?

    input에 kernel을 over-riding하여 겹쳐지는 숫자를 곱하여 그 값을 더하는 것이다. stride 값에 따라서 이동되는 크기가 달라지고 연산을 반복하면 feature map이 나오게 된다.
    input : original image data
    output : feature map

    • over-riding

      input 위에 커널을 올리는걸 말한다
  • feature map 연산

    • (H, W) : 입력 크기(input size)
    • (FH, FW) : 필터의 크기(filter size)
    • (OH, OW) : 출력 크기(output size)
    • P : 패딩(padding)
    • S : 스트라이드(stride)

    OH=H+2PFHS+1OH = {H + 2P - FH\over S} + 1
    OW=W+2PFWS+1OW = {W + 2P - FW\over S} + 1

Filter를 이해하기

  • Hand-Crafted Feature

    원본 이미지 + 필터 = 특징, 정보, 패턴을 획득할 수 있다. 하지만 사람이 직접 많은 노력을 들여 찾아내야 한다는 한계점이 있다. 이러한 한계점을 대체하기 위해서 나온것이 현재 우리가 배우고 있는 딥러닝이다.

Channel이 하나일 때 2개 이상의 Layer에서 Convolution연산(Padding)

  • Convolution 연산을 계속하게 되면

    1 X 1 가 마지막으로 나오게 되고 MLP특성상 딥한 구조를 만들수가 없게 된다.

  • Padding!

    Filter를 적용하여 Conv 연산 수행 시 출력 Feature Map이 입력 Feature Map 대비 계속적으로 작아지는 것을 막기 위해 적용한다.

    Filter 적용 전 보존하려는 Feature map 크기에 맞게 입력 Feature Map의 좌우 끝과 상하끝에 각각 열과 행을 추가 한 뒤, 0값을 채워, 입력 Feature map 사이즈를 증가시킨다.

    정리

  • Convolution 연산을 통해서 원본 데이터만 살펴볼 때 알기 어려운 숨겨진 패턴을 찾을 수 있다.

  • 딥러닝을 이용한 이미지 분석의 핵심은 숨겨진 패턴을 찾는 자동 패턴 추출기를 학습시키는 데에 있다.

profile
프로그램 공부하는 사람
post-custom-banner

0개의 댓글