[1주차] 8.5 목

William JO·2021년 8월 6일
0

✏️CNN(Convolutional Neural Network)

MLP 단점

  • 다층신경망(MLP)는 각 뉴런들이 선형모델과 활성함수로 fully connected된 구조이다.
  • i, 즉 dimension이 늘어날수록 가중치 행렬의 사이즈가 커지고, 학습시킬 파라미터 수가 급격히 증가하여 모델 학습에 무리를 준다.



Convolution 연산

  • MLP와 달리 커널(kernel)입력벡터 상에서 움직여 가면서 선형모델과 합성함수가 적용되는 구조
  • 모든 i에 대해 적용되는 커널은 V로 같고, 커널의 사이즈만큼 x상에서 이동하면서 적용 (커널 사이즈는 고정)
  • 수학적 의미는 신호(signal)를 커널을 이용해 국소적으로 증폭 또는 감소시켜서 정보를 추출 또는 필터링하는 것
  • 커널은 정의역 내에서 움직여도 변하지 않고(translation invariant) 주어진 신호에 국소적(local)으로 적용



다양한 차원에서의 Convolution

  • Convolution 연산은 1차원뿐만 아니라 다양한 차원에서 계산 가능
    • 1D-conv       [fg](i)=p=1df(p)g(i+p)[f * g](i) = \sum^d_{p=1}f(p)g(i+p)
    • 2D-conv       [fg](i,j)=p,qf(p,q)g(i+p,j+q)[f * g](i, j) = \sum_{p,q}f(p,q)g(i+p, j+q)
      (2개의 좌표계 위치에 동시에 움직이면서 적용)
    • 3D-conv       [fg](i,j,k)=p,q,rf(p,q,r)g(i+p,j+q,k+r)[f * g](i, j, k) = \sum_{p,q,r}f(p,q,r)g(i+p,j+q,k+r)
      (3개의 좌표계에서 움직임)
  • 데이터의 성격에 따라 사용하는 커널이 달라짐



2차원 Convolution 연산

  • 2D-conv 연산은 kernel을 입력벡터 상에서 움직여가며 선형모델과 합성함수가 적용되는 구조

    입력크기 (H,W)     커널크기(KH,KW)(K_H, K_W)     출력크기(OH,OW)(O_H, O_W)

    • OH=HKH+1O_H = H - K_H + 1
    • OW=HKW+1O_W = H - K_W + 1
      ex) 28x28 입력, 3x3 커널 -> 26x26
  • 채널이 여러개인 2차원 입력의 경우 2차원 Convolution을 채널 개수만큼 적용 (3차원 부터는 행렬이 아닌 텐서)
  • 채널이 여러개인 경우 커널의 채널 수입력의 채널 수가 같아야 한다.



Convolution 연산의 역전파(Back-propagation)

  • kernel이 모든 입력데이터에 공통으로 적용되기에 역전파 계산할 때도 convolution 연산이 나오게 된다.



🔗reference

0개의 댓글

관련 채용 정보