여러가지공부/머신러닝(Machine Learning)

[Neural Networks] NN의 Backpropagation이란? 예제와 함께 설명#1

끄적끄적아무거나 2023. 6. 27. 09:28
반응형

 

목차

     

     

     

    [Neural Networks] NN의 Backpropagation이란?

     

    앞서 포스트에서 신경망의 구성과 Forward Propagation이 어떻게 동작하는지에 대해 알아보았습니다. 

     

    백프로파게이션(backpropagation)은 인공신경망(artificial neural network)에서 가중치(weight)와 편향(bias)을 조정하기 위한 알고리즘입니다. 이 알고리즘은 입력 데이터를 통해 예측을 수행한 후, 실제 출력과의 오차를 역전파하여 각 가중치와 편향의 영향력을 계산합니다. 그런 다음 이 오차에 따라 가중치와 편향을 조정하여 모델의 예측을 개선합니다.

     

     

    그림1

    그림1과 같은 형태가 NN입니다. 여러층이 모여있으면 Multi layer NN이라고 합니다. 앞서 Backpropagation이란 가중치와 편향의 값을 찾는 방법이라고 하였습니다.

     

    즉, 그림에서 w나 b 값을 찾는 방법입니다.

     

    찾는 방법은 SSR(Sum of Squared Root) 오차를 이용해서 파라미터 값들을 업데이트 하는 방법입니다.

     

    그림1의 b3을 구하는 과정을 예제로 설명하고 다음 포스트에서 나머지 파라미터를 구하는 방법을 알아보고 이를 통해 백프로파게이션에 대해 이해해 보겠습니다.

     

     

     

     

     

    [Neural Networks] NN의 Backpropagation 예제 실습

     

    수식1

    그림1의 SSR은 수식1과 같이 표현 될수 있습니다. O는 기존에 가지고 있는 Training 데이터를 의미 합니다. 저는 간단하게 이용하기 위해 총 3개의 데이터만을 가지고 있다고 n=3으로 표기하였습니다. P는 예측 값으로 Forward Propagation으로 구한 값입니다. 해당 값은 초기에 랜덤이나 작은 초기 값으로 파라미터를 설정하고 구할 수 있습니다.

     

    우리의 목표는 b3의 값을 구하는 것입니다.

     

     

    b3을 찾기위해 조건은 SSR을 가장 작게 만들어주는 b3이 적절한 예측값을 주는 모델이므로 Gradient를 사용해서 SSR이 가장 작은 기울기를 찾아야 합니다.

     

     

     

    수식2

     

    수식2와 같이 편미분을 사용해서 b3에 대한 SSR의 기울기를 구할 수 있습니다. Pi/b3 편미분은 1이 되는데 이유는 각 파라미터들 w, b들은 b3과 독립적이라고 보기 때문입니다. 그러므로 P값은 Summation 이후 b3만을 미분한 값 1이 됩니다.

     

     

     

    그림2

     

    수식2에 앞서 데이터 3개를 Oi에 입력하고 Forward 구한 Pi를 대입해서 기울기 값을 구합니다. 

     

     

    수식3

     

    수식2에서 구한 기울기 값을 Learning Rate alpha 값에 곱해서 새로운 b3 값을 구합니다.

     

    그리고 새로 구한 b3 값을 이용해서 다시 수식2를 통해 기울기를 업데이터 하고 수식 3으로 구해주는 작업을 반복해줍니다.

     

    기울기값이 사용자가 생각한 Threhold 이하로 들어간 경우 위 과정을 중단하고 최적의 b3으로 결정 합니다.

     

     

     

     

     

    반응형