CNN 첫 걸음

김선재·2021년 12월 19일
0

AI Tech

목록 보기
5/8
post-thumbnail

Convolution 연산 이해하기

💡 Convolution 연산은 커널( kernel )을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조이다

  • 활성화 함수를 제외한 Convolution 연산도 선형변형에 속한다

  • Convolution 연산의 수학적인 의미는 신호( signal )를 커널을 이용해 국소적으로 증폭 또는 감소시켜서 정보를 추출 또는 필터링하는 것

    💡 Convolution을 수식으로만 이해하는 것은 매우 어렵다

    CNN에서 사용하는 연산은 사실 convolution이 아니고 cross-correlation이라고 부른다

  • 커널은 정의역 내에서 움직여도 변하지 않고 주어진 신호에 국소적으로 적용

다양한 차원에서의 Convolution

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

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

  • i, j, k가 바뀌어도 커널의 ff 값은 바뀌지 않는다

2차원 Convolution 연산 이해하기

  • 2D-Conv 연산은 이와 달리 커널( kernel )을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조

  • 입력 크기를 (H, W ), 커널 크기를 ( KHK_H, KWK_W ), 출력 크기를 ( OHO_H, OWO_W )라 하면 출력 크기는 다음과 같이 계산한다

    OH=HKH+1O_H = H - K_H + 1
    OW=WKW+1O_W = W - K_W + 1
    EX) 28 ×\times 28 입력을 3 ×\times 3 커널로 2D-Conv연상을 하면 26 ×\times 26이 된다

  • 채널이 여러개인 2차원 입력의 경우 2차원 Convolution을 채널 개수만큼 적용한다고 생각하면 된다

  • 3차원부터는 행렬이 아닌 텐서라고 부른다

    • 커널을 OCO_C개 사용하면 출력도 텐서가 된다

Convolution 연산의 역전파 이해하기

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

    📍 그림으로 이해해보기



  • δ\delta는 미북값을 의미한다

  • 역전파 단계에서 다시 커널을 통해 그레디언트가 전달된다

  • 커널에는 δ\delta에 입력한 x3x_3을 곱해서 전달한다

  • 각 커널에 들어오는 모든 그레디언트를 더하면 결국 convolution 연산과 같다
profile
data science!!, data analyst!! ///// hello world

0개의 댓글