[boostcamp-ai-tech][AI-Math] 9. CNN 맛보기

whatSup CheatSheet·2022년 1월 19일
0

AI-Math

목록 보기
8/9
post-thumbnail
post-custom-banner

CNN

  • 목차
    • Convolution 연산 이해하기
    • 2차원 Convolution 연산 이해하기
    • Concolution 연산의 역전파

Convolution 연산 이해하기

  • 지금까지 배웠던 MLP는 각 뉴런들이 선형모델과 활성함수로 모두 연결된 fully connected 구조였다.
  • Convolution 연산은 이와 달리 커널(Kernel, (고정치))을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조다.
    • 모든 ii에 대해 적용되는 커널은 V로 같고, 커널 사이즈만큼 X상에서 이동하면서 적용된다.(가중치행렬이 i에 따라서 바뀌는 것이 아니라, 고정된 커널을 입력벡터 상에서 움직여가면서 계산을 적용 !)
    • 연산량이 엄청 줄어들고, 가중치행렬 역할인 커널이 작아짐.

Convolution 연산 이해하기

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

    cs에서 CNN으로 사용하는 연산은 전체적으로 보았을 때 +로 처리해야 하기 때문에 엄밀히 말하면 Cross-correlation 연산이다.

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

2차원 convolution 연산 이해하기

  • 2D-Conv 연산은 커널을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조이다.
  • 입력크기를(H,W)(H, W), 커널크기를(KH,KW)(K_H, K_W), 출력크기를 (OH,OW)(O_H, O_W)라 하면 출력크기는 다음과 같이 계산함.
    OH=HKH+1O_H = H - K_H + 1
    OW=WKW+1O_W = W - K_W + 1

    Ex) 28x28 입력을 3x3 커널로 2D-Conv연산을 하면 26x26이 됨.

  • 채널이 여러개인 2차원 입력의 경우 2차원 Convolution을 채널 개수만큼 적용한다.(3차원 부터는 행렬이 아닌 텐서(Tensor)라 부름)
    • 채널이 여러개인 경우 커널의 채널 수와 입력의 채널 수는 같아야 함.

      커널, 입력은 둘 다 채널이 여러개인 Tensor임.

Convolution 연산의 역전파

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


Convolution 연산과 같은 형태를 갖는다는 것을 알 수 있다.

profile
AI Engineer : Lv 0
post-custom-banner

0개의 댓글