Data Dependency

MLP 에는 Data Dependency 가 존재한다.

image.png

출력값인 $y_0$ 을 구하기 위해서는 입력층부터 시작해 Feed Forward 연산을 순차적으로 진행해야 하고, 이로 인해 은닉층의 입력은 그 앞에 있는 층들의 출력에 의존성이 발생한다.

은닉층의 특정 층에서 최적화를 하는 과정을 생각해보자. 고정된 입력을 상정하고, 이를 바탕으로 Gradient Descent 등의 방법으로 파라미터를 최적화해야 한다. 그런데 데이터 의존성에 의해 이 입력 데이터가 앞 층의 최적화 결과에 따라 계속 바뀐다. 따라서 은닉층은 학습 중에 계속 바뀌는 데이터를 기반으로 파라미터를 최적화해야 하므로 어려움이 있다.

이에 대한 해결책으로 오차 역전파 (Back Propagation) 이 제시되었다.

Back Propagation

층의 역방향으로 순회하며 기울기를 계산하는 방식이다. 이를 통해 출력층의 미분값을 가장 먼저 계산하게 된다.

image.png

이전에 계산한 기울기 값을 다음 계산 과정에 이용할 수 있게 된다.

image.png

손실 함수 값과 이들의 미분값이 역방향으로 전파되고, 이로 인해 뒤→앞 으로의 data dependency 가 존재한다.

General Algorithm

오차 역전파는 웬만한 NN 에서 잘 동작하는 General Algorithm 이다. 유일한 단점은 방금 언급한 data dependency 로 인해 생긴다. 파라미터 하나 당 업데이트 과정에서 iterative 한 미분 계산이 필요하다. 이는 병렬화로 해결해야 하는데, data dependency 로 인해 병렬화가 어렵기 때문이다.

Backpropagation Finds an Optimal Solution

오차 역전파는 MLP 에 적용된 DP 기법이라고 간주할 수 있다. 앞쪽 layer 의 미분값이 Original Problem, 뒤쪽 layer 의 미분값이 Subproblem 이 되는 것이다. DP 의 Principle of Optimality 에 의해 각 층에 대한 Optimal Solution 이 보장된다.

Backprop-based Gradient Descent

일반적인 GD 와 거의 동일하고, error 계산의 방향만 다르다.

image.png

Why Does MLP Work So Well?