티스토리 뷰

복잡한 함수의 Analytic gradient을 쉽게 계산하기 위해서 computation graph을 그린다.


image

함수를 computational graph를 표현하면 input값과 local gradient값을 쉽게 파악 할 수 있다.

이때 Chain rule을 사용하여 backpropagation 구할 수 있다.


image

Backpropagation은 Local gradient을 상위 노드 방향으로 전달하여 가중치를 업데이트 시키는 방법이다. 각 Local gradient을 구한 뒤 Chain rule을 사용하게 된다면 상위 노드의 gradient을 쉽게 구할 수 있다.


image

image

Add gate : gradient distributor – gradient을 나눠준다. Ex) x + y

Max gate : gradient router – gradient들 중 최대값만 남긴다.

Mul gate : gradient switcher – 다른 branch값으로 scaling을 한다. Ex) xy


image

 

 

Gradients도 여러 변수들이 포함된 vector dataset에서 사용해 볼 수 있다.(Jacobian matrix)

gradient나 Jacobian이나 모두 함수에 대한 일차 미분(first derivative)을 나타낸다.

다만, 기존 그레디언트는 다변수 스칼라 함수(scalar-valued function of multiple variables)에 대한 일차 1미분이다. 반면, Jacobian(야코비언)은 다변수 벡터 함수(vector-valued function of multiple variables)에 대한 일차미분이다.


image

image

계산

summation 기호를 이용한 풀이와 수식 이해는 나게 다소 어려운 감이 있어서 직접 풀어보았다.


image

기존에는 선형 레이어를 하나만 쌓아서 빨간 자동차만을 찾았다면 위 사진은 기존 선형 레이어에 비선형 레이어를 추가하여 빨간 자동차, 노란 자동차를 찾을 수 있는 모델을 구축하였다.

레이어를 쌓아가면서 여러 특징을 추출 할 수 있다는 것을 확인할 수 있다.


image

Neural networks는 뉴런의 구조와 Computation graph의 구조의 유사성을 따온 구조이다. (실제 구조와 똑같이 생각하는 것은 오산이다.)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함