CNN(Convolutional Neural Network) 역전파에 대한 정리

CNN 역전파 (Backpropagation for CNN)

Convolution layer 연산

+full

  • 보통 CNN 구조는 Convolutional Layer, Activation Function, Pooling 순으로 진행됨.

Backpropagation 연산

+full

  • 출력층을 덧붙여서 위와 같이 표현할 때, 출력값을 , 실제값을 , 손실함수를 이라고 함.
  • 계산상 편의를 위해 손실함수를 특정하지 않고, 활성화 함수(f, g)는 모두 ReLU로 함.
  • ReLU 함수

학습 대상 가중치

  • 위 모델에서 학습대상 가중치들은 컨볼루션 필터의 4개(, , )와 maxpooling 이후 출력층 연결 가중치 1개()가 된다.

출력층 레이어 Gradient 계산

  • 손실함수를 이라 하고, 에 대한 출력층 가중치 의 편미분은 다음과 같다.
  • 이 때, 를 풀어보면,

maxpooling 연산 가중치

  • max-pooling의 경우 중 가장 큰 값에 대해서 항등함수(identity)의 결과를 출력함
  • 즉 4개의 가중치 중 단 1개가 기울기 1로 존재하며, 나머지에 대해선 기울기가 0이됨
  • 을 활성화 값의 최대값 위치라고 할 때,
  • 이 때, 를 풀어보면 위에서 을 전개한 것과 같은 방식으로 아래와 같은 해가 나옴
  • 따라서,

filter 가중치

  • 컨볼루션 filter 가중치(, , ) 중 의 기울기부터 살펴본다
  • 는 이전 픽셀 값 에 대하여 영향을 준다
  • 이에 따라 의 기울기는 아래와 같이 전개함\
  • 컨볼루션 filter의 크기는
  • 나머지 3개의 가중치들도 같은 식에 대입하면 아래와 같이 일반화 할 수 있다
  • 다시 위에서 다룬 pooling에 대한 가중치에 chain rule을 적용하고 나면 최댓값 위치인 ()을 제외하고 나머지는 기울기가 0이 된다
  • 따라서 최종 가중치식은 다음과 같다

참고