[U] Week 1 - CNN 첫걸음

JaeJun Lee ·2022년 9월 23일
0

부스트캠프 AI Tech

목록 보기
8/30

Convolution 연산

Convolution 연산은 커널(kernel)을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조이다.
Convolution 연산의 수학적인 의미는 신호(signal)를 커널을 이용해 국소적으로 증폭 또는 감소시켜 정보를 추출 또는 필터링하는 것이다.

  • CNN에서 사용하는 연산은 실제로 cross-correlation이라 부른다.
    • 범용적으로 Convolution이라고 불렀던 이유는 전체 공간에서는 신호 텀의 연산이 +인지, -인지 중요하지 않기 때문에 같은 것으로 성립한다.

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

Convolution 연산은 1차원뿐만 아니라 다양한 차원에서 계산 가능하다.

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

2D Conv 연산은 커널을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조이다.

  • 커널 연산은 입력 데이터와 행렬연산을 하는 형태가 아니라 element-wise 성분 곱 연산을 진행한 뒤 더한 값을 출력한다.
  • 입력 크기가 (H,W)(H, W)이고 커널 크기가 (KH,KW)(K_H, K_W)이라면 출력 크기 (OH,OW)=(HKH+1,WKW+1)(O_H, O_W) = (H-K_H+1, W-K_W+1)이다.
  • 채널이 여러개인 2차원 입력의 경우 2차원 Convolution을 채널 개수만큼 적용한다.
    • 입력데이터가 1D일 경우 Vector, 2D일 경우 Matrix, 3D 이상일 경우 Tensor라 부른다.
    • 커널의 채널 크긱와 입력 데이터의 채널 크기가 같다면 Convolution 연산을 진행한 출력(Output)의 채널 크기는 1이 된다.
    • 커널의 개수를 조절하여 출력의 채널 크기를 다양하게 조절할 수 있다.
  • Convolution 연산은 커널이 모든 입력데이터에 공통으로 적용되기 때문에 역전파를 계산할 때도 Convolution 연산이 나오게 된다.

0개의 댓글