SYDLAB_inha/Machine Learning

ML - Computational Graph & Backpropagation / upstream & downstream & local gradient

빈그레 2023. 9. 14. 22:39

 

 

 


Computational Graph

 

 

 

 

Gradient

loss function은 결국 W에 대한 함수이기 때문에, 특정 W에서의 편미분을 통해 gradient(기울기)가 낮은 방향으로 가면, loss를 줄일 수 있다.


결국 gradient는 편미분들로 구성되어있는 일종의 vector라고 볼 수 있다. 각 weight에 대해서 편미분되므로 여러개의 가중치가 있을 때에는 하나의 편미분 값이 아닌, vector로 표현될 수 있다.

 

 

 

 

 


 

 

 


Backpropagation

 

 

 

 

 

 

How to compute gradients?

 

: layer가 20개 이상으로 너무 deep하거나 너무 복잡하면, loss funciton이 너무 복잡해져, 이것을 편미분하는 계산 과정이 너무너무너무울트라슈퍼똥방구 복잡해진다....

위 식처럼 이미 loss자체만으로 복잡하므로 편미분이 어려워진다.

 

 

이러한 문제를 해결하기 위한 트릭이 바로 backpropagation이다.

 

 

 

Backpropagation

[ Better idea  : Computational graphs + Backpropagation ]

SVM loss 예시 ( Li : i번째 sample에 대한 loss / j : class의 종류 )


- Computational grpahs

 

Computational graphs의 과정으로 입력으로 주어진 tensor x와 tensor W에 대해 곱하고, 그 결과물로 나온 score를 loss에 곱하고 더해주는 식으로 계산이 진행된다. 이러한 과정 하나하나를 곱해지는 순서에 입각해서 표현할 수 있다.

 

 

- Backpropagation

example

위와같은 (x+y)z 식을 계산 순서대로 쪼개어 나타낼 수 있으며, 쪼개져 계산된 중간 값들에는 임시 변수를 두어 표현한다.



임시 변수 q를 두어 위와 같이 표현할 수 있다.


우리가 원하는 값은 f를 x,y,z에 대해 편미분한 값이므로 chain rule을 이용하여 그 값을 구한다.



chain rule은 중간 매개변수를 끼워 넣어줘서 편미분 하는 것을 의미한다. 여기에서는 q를 매개변수로서 가지고 f를 y에 대해 편미분하고있다.  따라서 위 예시에서 원하던 3개의 값은 순서대로 -4,-4,3 이 된다.



[ upstream gradient ]
 : upstream gradient란 출력에서 입력쪽으로 흘러가 gradient이다. 

(gpt said..) : upstream gradient란 loss function으로 향하는 gradient를 의미한다. 즉, 신경망의 출력에서 시작하여 loss funciton까지 역방향으로 전파되는 gradient를 말한다. upstream gradient는 모델의 weight 및 bias를 업데이트 하기 위해 사용된다.


[local gradient]

(gpt said..) : local gradient는 주로 activation function에 대한 gradient를 나타내는데 사용된다. 각 뉴런의 activation function에서 계산되는 gradient로서 해당 뉴런의 input에 대한 gradient를 나타낸다. local gradient는 역방향 gradient 전파 중에 각 layer에서의 오차를 계산하는데 도움이 된다.


[ Downstream gradient ]
: 입력쪽으로 흘러가는 gradient로, local gradient에 upstream gradient를 곱해주는 것이다. 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

결과적으로 앞쪽으로 더 나아가 gradient descent방식으로  weight들이 Loss에 미치는 영향력을 수식에 대입해서 구하고, weight를 update시키고 다시 영향력 구하고, 다시 또 update시키는 방식으로 진행된다.

 

아,,진심,,너무 졸려,,,그만할까,,공부,,?,,,,,아니,,,?????!!1? 정신차려,,,,,,  정신,,,,차랴,,,,,,,,,,,,,,,,,,,

그치만,,,,,,,너무,,졸린데,,,,,,ㅇㅁㅇㄻㅇㄹㅇ르으어어ㅓ어ㅓㅓㅓ,어어커어커어ㅓ어엌컥컥,,,,,(사망)