[AITech] 20220121 - CNN 기초

1 minute read


강의 복습 내용

CNN 기초

Convolution

  • 일반적인 다층 신경망(MLP)은 각 뉴런들이 선형 모델과 활성 함수로 모두 연결된(fully connected) 구조이다.

  • Convolution 연산은 이와 달리 커널(필터)입력 벡터 상에서 움직여가면서 선형모델과 함성 함수가 적용되는 구조이다.

    • 컨볼루션 연산의 수학적 의미는 신호를 커널을 이용해 국소적으로 증폭 또는 감소시켜서 정보를 추출 또는 필터링하는 것이다.

      image-20220121111508711

    • CNN에서 사용하는 연산은 엄밀히 말하면 convolution 연산이 아니고 cross-correlation 연산이다. 하지만 그 의미에서 convolution 연산과 큰 차이가 없기 때문에 옛날부터 convolution 연산으로 통칭한다.

    • 커널은 정의역 내에서 움직여도 변하지 않고(translation invariant) 주어진 신호에 국소적(local)으로 적용한다.

    • 컨볼루션 연산은 1차원 뿐 아니라 다양한 차원에서 계산 가능하다.

      • 데이터의 성격에 따라 사용하는 커널이 달라진다.

      image-20220121111857484

  • 2D-Conv 연산은 아래와 같이 나타낼 수 있다.

    image-20220121112045046

    • 컨볼루션 연산에서 사용하는 용어로 스트라이드패딩이라는 것이 있다.
      • 스트라이드: 컨볼루션 연산을 위해 한 번에 필터(커널)를 이동시키는 칸 수
      • 패딩: 컨볼루션 결과의 크기를 조정하기 위해 입력 배열의 둘레를 확장하고 0으로 채우는 연산

    image-20220121112643098

    • 결과적으로 입력의 크기 (OH, OW), 커널(필터)의 크기(FH, FW), 패딩의 폭 P, 스트라이드 크기 S를 안다면 출력의 크기는 다음과 같이 구할 수 있다.

      image-20220121112842880

  • 채널이 여러 개인 3D-Conv 이상의 다차원 컨볼루션 연산의 경우 커널의 채널 수와 입력의 채널 수가 같아야 한다. (rank가 동일해야 함)

    • 이 경우 3차원 입력과 3차원 커널을 통해 출력의 채널 크기는 1이 되며, 채널의 크기를 Oc로 만들고 싶다면 커널을 Oc개 사용하면 된다.

    image-20220121113425774

Convolution의 역전파

  • 컨볼루션 연산은 커널이 모든 입력 데이터에 공통으로 적용되기 때문에 역전파를 계산할 때도 convolution 연산이 나오게 된다.

image-20220121114159506


Categories: ,

Updated:

Leave a comment