티스토리 뷰

딥러닝 공부를 지속적으로 해왔지만.. 늘 모델만 어떻게 구성되어있는지 살펴보는 삶을 살고있었다.

 

마음 한 편 어딘가 가장 중요하다고 생각되는 오차 역전파에 대한 응어리(?)가 남아있었다.

오차 역전파의 원리는 알지만.. 대충 알고 있다는 생각이 들어 이번에 간단한 계산을 통해 완전히 이해해보려 한다.

 

이와 같이 딥러닝을 구성해보았다고 가정해보자.

이와 같이 y-hat 을 예측하는 모델이 있다고 가정해보자.

우리는 w1,w2 / w3,w4를 업데이트 하여 해당 모델에서 y-hat을 가장 잘 예측 할 수 있도록 만들어야 한다.

여기서 'w1,w2/ w3,w4를 업데이트' 한다는 개념이 가장 중요하다고 개인적으로 생각한다.

 

이유는 간단하다. 유튜브나 강의 들을 듣다보면, 아래와 같이 체인룰에 의하여 구한다고 한다.

왼쪽과 오른쪽 식을 보면.. 각각 w5가 y-hat에 미치는 영향 / w1이 y-hat에 미치는 영향을 구하는 것이다.

그런데 계속 의문이 든 한 부분이 있다. 왜 w1체인룰을 할때 w5가 없냐는 것이였다.

편미분을 하면 해당 값이 y-hat에 얼마나 영향을 주었는지 구할 수 있는데. w5도 y-hat에 영향을 미칠테니 w1 체인룰을 할때 w5도 들어가야 하지 않나? 라는 생각에 사로잡혀 있었다.

 

하지만 나름대로 정의내린 것은 w1과 w5는 서로 독립적으로작동한다고 이해했다.

 

무슨 말인고 하면... w1 이후 값(노드) 들은 w1에 영향을 받는다. w5 이후 값(노드) 들은 w5에 영향을 받는다고 생각하여

각각 때놓고 생각하면 어느정도 납득이 됐다.

 

밑에 그림을 보자.

 

 

빨간색으로 칠한 부분만 보면  y-hat은 w5에 영향을 받는다.

노란색으로 칠한 부분만 보면  y-hat은 w1에 영향을 받는다.

즉, y-hat은 w1,w5에 영향을 받는다.

 

이때, 편미분을 통해 w1,5를 업데이트 한다고 생각해보자.

그렇게 되면.. y-hat은 바뀐 w1,w5에 영향을 2번 받을 것이다.

여기서 한번 더 잘 생각해보면... w5업데이트는 이전 A' 을 변하지 않는 상수라고 생각하고 weight를 업데이트 한것이다.

그런데 그 전에 있던 w1이 업데이트 되면서 A'의 값은 바뀐다.

그럼 w5을 올바르게 업데이트 했다고 볼 수 있겠는가?? 그럴 수 없을 것이고. 비효율적인 방법이 아닌가 생각했다.

하지만, 가중치를 어떻게 업데이트 하는가에 대해 생각해 볼 필요가 있다.

w(new) = w(old) - lr * 편미분값 이런식으로 업데이트를 한다. 모델을 한번이라도 돌려봤다면, lr을 크게하면 발산하고, lr을 너무 작게한다면 학습에 시간이 오래 걸린다는 것을 알 것이다.

 

여기서 생각 해 볼 수 있는건 한가지 같다.

A'가 변하는수라 생각하고 w5을 업데이트 하더라도 lr이 작아 w1도 아주 조금씩 업데이트 할 것이기 때문에 A'의 값이 그렇게 크게 변하지 않으므로 w5을 업데이트 하는 것도 의미가 있다고 생각한다.

 

(여기서 lr이 너무 커도, 작아도 안되는 이유가 나오는 것 같다.

lr이 너무 크면 A'의 값이 커지기 때문에 w5의 업데이트가 의미가 없어지게 되고, lr이 너무 작으면 w5 업데이트가 더딜것이다.)

 

여기서 정리하고 싶은 내 생각은.

w1 / w5 가중치를 업데이트 하고 싶다면, 서로 독립적이라 생각하고 편미분을 진행 한다는 것이다.

작은 lr값으로 큰 변화가 없으므로 각 독립적으로 학습을 진행한다고 해도 무방할 것 같다.

 

우리가 알고 싶은것은 '노드(상수)가 y-hat에 얼마나 영향을 끼치는가?'가 절대 아니라는 것만 명심하자.

우리가 알고 싶은 것은 'w가 y-hat에 얼마나 영향을 끼치는가?' 이다.

즉, w1은 노드 A/ A' /C /y-hat 노드(상수)에 영향을 주니까. 편미분 할때 A/ A' /C /y-hat 의 노드만을 사용해서 편미분 하는 것이다.(그래서 중간에 w5에 얼마나 영향을 미치는가는 판단 x ->  독립적)

반대로, w5는 노드 C / y-hat 에 영향을 주니 C / y-hat 의 노드만을 사용하여 체인룰/편미분을 통해 w5를 업데이트 하는 것이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함