• 수정 내역
    • 최초 작성: 250624 PyTorch DL

1. CNN이란?

  • FCN(Fully Connected Network)는 데이터 형상이 무시되는 문제점이 있음

  • CNN(Convolutional Neural Network)으로 해결

  • CNN에서는 2~3차원 이미지 데이터를 펼치지 않고 그대로 입력받아 데이터 형상 정보를 활용함으로써 FCN보다 정확하게 인식함

  • 이미지 인식 방법

    • 이미지를 인식하는 알고리즘
    • 종류는 다양하게 있지만 모두 CNN에 기반을 두고 있음

2. CNN의 구조

    1. 이미지 입력
    1. 합성곱층(convolution layer)
    • 이미지를 필터로 훑으면서 특징 추출
    • convolution 연산: 특정한 필터를 통해 특정한 패턴을 찾는다.
    1. 풀링층(pooling layer)
    • 이미지를 특징만 남기고 크기 감소
    1. 여러 층 반복
    1. 완전연결층(fully connected layer)
    • 마지막엔 전통적인 신경망처럼 분류/예측

3. 패딩(padding)

  • 패딩: 컨볼루션 연산을 하기 전에 입력 데이터 주변을 특정값(예를 들면 0)으로 채우는 것
  • 패딩 필요성: 출력크기를 조절할 때 사용. 즉 입력 데이터의 크기를 고정한 채로 다음 계층에 전달하기 위해 사용되는 기법

4. 스트라이드(stride)

  • 스트라이드: 필터가 이동하는 간격
  • 스트라이드를 2로하면 필터가 2칸씩 이동하면서 컨볼루션 연산을 하게 됨
  • 스트라이드 값을 크게 할수록 출력 크기는 더 작아짐

5. 구현

  • 각 layer 의 뉴런 개수는 이전 layer 보다 대략 절반 크기로 줄도록 설계하는 것이 좋음