01.24 오늘의 일기

원규의 차근차근·2022년 1월 24일
post-thumbnail

오늘은 cs231n 4일차를 했다.
뉴럴 네트워크에 관한 내용인데, 미분에 대한 얘기가 많이 나왔다.
기억에 남는 것중에 하나가 역전파(backpropagation)이다.
이 역전파는 최종 노드에서부터 왼쪽으로 미분값을 구해나가는 과정이다.
즉 맨 최종 노드에서의 값은 1부터 시작해서 점점 내려가는 형태이다.

이 그림을 보면 맨 마지막에 붉은색으로 1이 되어있다. 이것이 최종값을 미분한 값으로 역전파가 시작될 때 보이는 값이다.
그 다음 볼 개념이 local gradient와 global gradient이다.
먼저 local gradient는 기존의 수식으로 구할 수 있는 gradient이다.
예시로 q값이 3인건 로컬값이라고 할 수 있다.
그 다음 global gradient는 뒤에서부터 앞으로 다시 넘어오는 gradient이다.
q값 3 밑에 붉은색으로 -4가 글로벌값이라고 할 수 있다.
이 두가지(local, global)를 곱하는 방식이 chain rule 이라고 할 수 있다.

여기까지만 있으면 좋겠지만, 지금까지는 스칼라값만 이용한거고 벡터값을 이용한 것도 있다.
벡터값을 사용하면 각 요소의 미분값도 포함하기 때문에 값이 많아진다.
그래서 jacobian행렬(야코비안행렬)을 사용한다.
이 야코비안 행렬은 행렬의 값을 미분시키기 때문에 위에서 말했듯 미분값을 포함할 수 있는 것이다. 그 다음 벡터가 들어간 그래프를 보면

x,y선이 대각선으로 선이 뻗어 있는것을 확인 할 수 있다.
그리고 방금 말했듯 각 요소의 미분값도 포함인데 이 요소의 첫 번째는 오직 출력의 해당요소에만 영향을 준다.
그러므로 출력에 대한 요소의 영향과 그 값을 사용하는 것에 대해서 알면 된다.

profile
우후루꾸루후구무루구부

0개의 댓글