그래프는 언제 지워져야 할까
계산 그래프는 역전파가 끝난 뒤 언제 지워져야 할까?
처음에는 답이 단순해 보인다. 기울기를 계산했으면 그래프의 역할도 끝났으니 버리면 된다. 그런데 고차 미분을 생각하면, 방금 계산한 기울기 자체가 다시 미분할 대상이 된다. 너무 빨리 지우면 다음 계산이 막힌다.
그러면 그래프를 계속 들고 있으면 될까. 이번에는 메모리가 문제다. 계산 결과가 이전 연산을 계속 붙잡고 있으면, 모델을 여러 번 실행할수록 필요한 것과 이미 끝난 것이 섞인다. 자동 미분은 수식을 편하게 쓰게 해 주지만, 그 편함 뒤에는 무엇을 보존하고 무엇을 끊을지 정하는 규칙이 있다.
여기서 흥미로운 건, 그래프를 만드는 방식이 파이썬 코드의 흐름과도 연결된다는 점이다. 실행하면서 그래프를 만들면 조건문이나 반복문을 자연스럽게 따라갈 수 있다. 대신 그때그때 만들어진 연결을 어떻게 순회하고, 참조를 어떻게 약하게 만들지까지 프레임워크가 책임져야 한다.
나는 자동 미분을 ‘미분을 대신해 주는 기능’으로만 봤다. 그런데 더 작은 질문은 이쪽이다. 다음 계산을 위해 남겨 둘 연결과, 지금 끊어야 할 연결을 누가 어떤 기준으로 구분할까.
© 2026 다섯시사십분
•
Theme Moonwalk