1. 들어가며
딥러닝 모델은 역전파 알고리즘을 사용하여 학습합니다. 딥러닝 모델의 학습이란 Loss 값이 작아지는 방향으로 모델의 가중치를 업데이트하는 것이죠. 이때 모델의 가중치들은 아주 복잡하게 얽혀 있습니다. 따라서 가중치 값을 업데이트할 때 서로 간의 연관관계를 고려하여 업데이트해줘야 합니다. 이렇게 서로 얽혀있는 변수 간의 상관관계를 계산하는 방법이 Chain Rule입니다. 구체적으로 Chain Rule은 여러 개의 변수가 조합된 수식을 미분할 때 사용합니다.
이번 글에서는 Chain Rule에 대해 살펴봅니다. 먼저 Chain Rule의 수식을 살펴봅니다. 이어서 일상생활에서 Chain Rule과 관련된 예시를 통해 Chain Rule의 진짜 의미를 느껴보겠습니다.
2. Chain Rule
먼저 Chain Rule 수식을 정리해 보겠습니다. 예를 들어 아래와 같이 변수 A는 변수 B에 영향을 주고, 변수 B는 변수 C에 영향을 준다고 생각해 보겠습니다.
이때 각각의 미분 값은 다음과 같은 성질을 같습니다.
즉 A에 대한 C의 기울기는 B에 대한 C의 기울기에 A에 대한 B의 기울기를 곱한 것과 같습니다. 이를 조금 더 풀어서 생각해 보면 다음과 같습니다.
A가 C에 미치는 영향은 B가 C에 미치는 영향과 A가 B에 미치는 영향을 곱한 정도와 같습니다.
3. 일상생활에서의 Chain Rule
수식은 간단하지만 크게 공감이 가질 않습니다. 쉽게 생각해 보기 위해 일상생활에서의 Chain Rule을 생각해 보겠습니다. 이런 가정을 한번 해볼게요. 어제 밤늦게까지 술을 먹었습니다. 그랬더니 다음날 피곤해서 여자 친구에게 짜증을 냈죠. 그 결과 여자 친구한테 차였다고 가정해 보겠습니다.
그럼 어제 밤늦게까지 술 먹은 일은 여자 친구한테 차인 사건에 얼마나 큰 영향을 줬을까요? 어제 늦게까지 술 먹은 일이 오늘 피곤한 상태에 준 영향을 2 정도라고 해보겠습니다. 오늘 피곤한 상태가 여자 친구에게 짜증 낸 사건에 준 영향은 1.5 정도가 되겠네요. 아마도 오늘 여자 친구에게 차인 사건에 가장 결정적인 영향을 준 사건은 내가 여자 친구에게 짜증 냈다는 일이겠죠. 이 영향은 5라고 해보겠습니다.
그럼 결국 오늘 여자 친구한테 차인 사건에 어제 늦게까지 술 먹은 사건이 준 영향은 모든 영향을 다 곱한 15가 될 겁니다.
흔히들 ‘내가 술만 안 먹었어도 결과는 달랐을 텐데’라고 생각하잖아요? Chain Rule은 이를 수식으로 설명하는 방법이라고 할 수 있습니다. 여자친구에게 차인 결정적인 이유는 물론 짜증을 냈기 때문이었죠. 하지만 이 사건의 영향력은 5밖에 안되었습니다. 짜증만 냈다면 여자친구에게 차이지 않았을 수도 있었죠. 하지만 어제 술 먹은 영향 2와 다음날 피곤한 영향 1.5가 모두 영향을 주었습니다. 최종적으로는 15라는 아주 큰 영향을 주게 되었죠.
4. 딥러닝 모델에서의 Chain Rule
딥러닝 모델에서도 마찬가지입니다. 동일한 논리의 Chain Rule이 성립되죠. 예를 들어 다음과 같은 딥러닝 모델이 있다고 가정해 보겠습니다.
입력값 x에 대해 w가중치로 연산해 줄 겁니다. 이렇게 나온 결괏값 z에는 activation 함수를 거쳐 h가 나옵니다. 이 모든 변수들은 Loss와 연결되어 있죠. 이때 최종 Loss에 미치는 가중치 w11의 영향은 다음과 같이 계산할 수 있습니다.
위의 예시와 동일하게 w11이후 L에게 영향을 줬던 모든 영향도를 곱해주는 모습을 볼 수 있습니다. 일상생활에서의 Chain Rule와 딥러닝 모델에서의 Chain Rule을 비교해 보겠습니다.
술 먹은 사건이 차인 사건에 준 영향은 중간 단계의 모든 영향을 곱해서 구할 수 있었습니다. 마찬가지로 딥러닝 모델에서도 마찬가지입니다. 가중치 w가 최종 Loss에 미치는 영향은 중간 단계의 모든 영향을 곱해 구하는 모습을 볼 수 있습니다.
5. 나비효과와 Chain Rule
Chain Rule은 나비효과를 수학적으로 설명하는 방법이라고도 생각할 수 있습니다. 나비효과란 브라질에서의 나비 날갯짓이 텍사스에서 돌풍을 만들 수 있는 현상을 의미합니다. 브라질에서 시작한 나비 날갯짓은 처음에는 미미한 영향이었을 겁니다. 이후 바다를 지나며 조금씩 영향이 커졌겠죠. 최종적으로 나비 날갯짓이 텍사스에 도착했을 때는 돌풍이 되어 있을 수도 있죠.
이는 앞에서 살펴본 Chain Rule로 정확히 설명할 수 있습니다. 나비의 날갯짓은 초창기 영향을 의미합니다. 이 값은 작겠죠. 이후 나비 날갯짓은 새로운 바람을 만나며 새로운 영향을 만들어냅니다. 이 값들도 아마 크진 않았을 겁니다. 하지만 먼 바닷길을 거쳐가며 아주 많은 영향을 만들어냈겠죠. 최종적으로 텍사스에 도착했을 때 나비 날갯짓의 영향력은 그동안 만났던 모든 바람의 영향력을 곱해서 구해줘야 합니다. 아주 작은 값들을 아주 많이 곱해서 최종적으로는 돌풍의 영향력이 나오게 되는 것이죠.
6. 마무리
이번 글에서는 Chain Rule에 대해 살펴봤습니다. 역전파는 딥러닝의 핵심 알고리즘 중 하나이고, 역전파를 이해하기 위해서는 Chain Rule을 이해해야 합니다. Chain Rule은 수식으로만 보면 아주 간단하게 표현됩니다. 하지만 수식만 외워서는 진짜 의미를 느낄 수 없죠. 진짜 의미를 느껴보기 위해 일상생활에서의 Chain Rule 예시를 살펴봤습니다.
양질의 강의입니다 재밌어용ㅋㅋ큐ㅠ
감사합니다!