Skip to content

Backpropagation

warmwall edited this page Nov 16, 2019 · 8 revisions

01. 계산 그래프

계산 과정을 노드와 화살표로 표현하는 그래프.

  • 국소적 계산: 전체가 복잡해도 각 노드에선 단순한 계산에 집중하여 문제를 단순화할 수 있다.
  • 중간 계산 결과 저장 가능
  • 역전파(backpropergation)를 통해 수치미분법보다 더 효율적으로 계산할 수 있다.

계산 그래프의 노드는 국소적 계산으로 구성되며, 국소적 계산을 조합해 전체 계산을 구성한다. 계산 그래프의 순전파를 이용해 통상의 계산을 수행하며, 계산 그래프의 역전파를 이용해 각 노드의 미분을 구할 수 있다.

02. 연쇄 법칙

image

합성 함수의 미분은 합성 함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있다.

image

연쇄 법칙을 이용하여 t에 대한 z의 미분, x에 대한 t의 미분의 곱을 이용해 z에 대한 x의 미분을 나타낼 수 있다.

03. 연쇄 법칙을 이용한 역전파

  • 덧셈: z = x + y의 미분은, x에 대해 미분해도 1, y에 대해 미분해도 1이다. 따라서 덧셈 노드의 역전파는 입력 값을 그대로 흘려보낸다.
  • 곱셈: z = xy의 미분은, x에 대해 미분하면 y, y에 대해 미분하면 x이다.

image

1) 활성화 함수의 역전파

상류에서 들어온 값에다가 미분값을 곱한 값을 하류로 보낸다.

  • Relu

    • image
    • image
    • 미분값: 1 ( x > 0), 0 ( x <= 0)
    • 즉, 순전파 때의 입력인 x가 0보다 크면 상류의 값을 그대로 하류로 흘린다. 그러나 x가 0 이하이면 역전파 때는 하류로 신호를 보내지 않는다.
  • Sigmoid

    • image
    • image
    • 미분값: (1 / (1 + exp(-x))^2) * exp(-x) = y(1-y)
    • 따라서 순전파의 값 y만을 이용해, 순전파 값에 y(1-y)를 곱해서 하류로 신호를 보낸다.

2) Affine 계층

image

신경망의 순전파 때 수행하는 행렬의 곱을 affine transformation(어파인 변환)이라고 한다.

Y = X dot W + B

위 그래프의 역전파 식은 아래와 같다.

image

X, W, B 행렬 중에서 W, B는 내부에서 사용하는 파라미터이다. X만이 입력값이므로 역전파 값은 dX 값만 반환하도록 구현한다.

3) softmax-with-Loss

image

image

  • softmax layer를 통과한 뒤 cross-entropy-error를 계산하는 계층이다.
  • 역전파 값은 (모델 출력값) - (label 값)이다.
    • 따라서 모델 출력과 label이 일치하면 1, 완전 불일치하면 0이다. 불일치하는 정도가 클수록 역전파 값의 절대값이 커져 더 많은 정도로 학습을 수행하게 된다.
    • cross entropy를 이용했기 때문에 역전파 값이 위와 같이 간단하게 나오게 된다. 마찬가지로 항등 함수와 MSE loss를 이용해도 이와 같은 값이 나오게 된다.

03. 구현

수치 미분을 이용한 방법과 동일하다. 단, 수치 미분 대신 오차역전파법을 이용한다는 차이가 있다. 오차역전파법이 수치미분보다 빠르긴 하지만 구현이 까다롭다. 따라서 수치미분을 이용한 값과 비교하면 오차역전파법이 제대로 구현되었는지 확인이 가능하다.

04. 참고자료

Clone this wiki locally