카테고리 없음

[AI] CNN | 합성곱 신경망 | Convoultion Neural Network | Kernal | CNN의 역전파

솔버(Solver) 2023. 3. 10. 10:39
728x90
반응형

CNN (Convolution Nerual Network)

  • : 일반적인 MLP와 다르게, 고정된 가중치 행렬인 커널을 움직여가며 선형모델과 합성(conv)함수 적용
  • 커널을 이용한다면 파라미터 사이즈를 많이 줄일 수 있음!
  • Convolution (Conv) 연산이란?
    • 커널을 이용해 국소적으로 증폭 또는 감소시켜서 정보를 추출 및 필터링하는 것
    • 수식으로 이해하는 것은 매우 어렵기 때문에 개념적인 이해를 하는 것이 좋을듯 함
    • 사실 CNN에서 사용하는 연산은 convolution이 아니라 더하기 이기 때문에, cross-correlation이라고 부름
    • 하지만 전체 공간에서는+/-가 중요하지 않기 때문에 범용적으로 CNN이라고 부르는 것
    • 영상처리에서의 커널은 다양한 스타일 및 효과를 적용해주는 필터와도 비슷한 역할을 함
    • Convolution 연산은 1차원뿐만 아니라 다양한 차원에서 계산이 가능함 (단, 채널의 수와 데이터의 특성에 따라서 커널의 특징과 종류가 달라짐 - 그러나 한 묶음의 데이터 내에서 연산을 수행할 때 커널의 값은 늘 그대로임)

데이터의 연속성에 따라서 Conv 연산이 살짝 다르다! (네이버 부캠 AI Tech 5기 강의삽입 자료)

 

 

다차원에서 Conv 연산

  • 2차원에서 입력크기 (H, W) 커널 크기 (K_H , K_W), 출력 크기 (O_H, O_W)라고 할 때, 출력 크기!
    O_H = H - K_H + 1
    O_W = W - K_W + 1
    출력크기 = 입력크기 - 커널 크기 + 1
  • 3차원 텐서가 되면, 입력되는 채널 개수만큼 커널 개수를 만듦 → 각각의 2차원 입력에 각각의 커널 적용
  • 예) 1차원 커널 * 3차원 입력 → 1차원 출력 / 3차원 커널 * 3차원 입력 → 3차원 출력

대표적인 CNN 모델 중 하나인, AlexNet의 구조

 

Conv 연산의 역전파

  • 커널이 모든 입력데이터에 공통으로 적용됨 - 따라서 역전파를 계산할 때도 Conv 연산이 나오게 됨
  • 즉, Conv 연산을 미분해도 Conv 연산임!
  • 입력벡터에 곱해졌던 커널들을 통해서 연산이 전달됨
  • 따라서, 곱해진 커널들을 다시 역으로 따라서 입력벡터로 감
  • 커널에는 출력값의 미분값이 입력벡터에 곱해져서 들어오게 됨

 

 

본 포스트는 부스트코스 내 네이버 부스트캠프 AI Tech 5기 강의를 토대로 작성되었습니다

 

728x90
반응형