Andrew Ford 헌정 강의: 『Modeling the Environment』 Chapter 4 : Step Size 의 개념에 대한 1단계 해설
“Step Size”란 무엇인가?
시스템다이내믹스 모델링을 할 때 가장 중요한 설정 중 하나가 바로 step size(시간 스텝) 입니다.
쉽게 말해, “시뮬레이션을 몇 년(혹은 몇 달, 몇 일) 간격으로 끊어 계산할지”를 결정하는 값이라 할 수 있습니다.
예를 들어,
- 10년 단위로 끊어서 계산하는 모델과
- 1년 단위로 끊어서 계산하는 모델 은 같은 이론적 방정식을 쓰더라도, 결과에서 차이가 발생할 수 있습니다.
“길게 끊어서 계산하면 오차가 커진다?”
대화 중에서, 수학을 어려워하시는 분께서 질문하셨습니다.
“시간을 길게 끊어 계산할수록, 왜 시뮬레이션 오차가 커진다고 하나요? 10년씩 단위로 계산하면 뭐가 문제인지요?”
이는 미분방정식을 수치적으로 풀 때 중간 변화가 충분히 반영되지 못하기 때문입니다. 한 번에 “10년 치”의 변화를 훅 건너뛰면, 실제 시스템이 10년 동안 서서히 변하는 과정을 제대로 추적하기 어렵게 됩니다.
반면, 1년 단위 또는 1개월 단위처럼 작게 쪼개면, 실제 곡선(연속적 변화)을 더 세밀하게 따라잡을 수 있어 시뮬레이션 결과가 보다 정확해지죠.
왜 이렇게 나누어 계산할까?
시스템다이내믹스에서는 저량(Stock)과 유량(Flow) 간 상호작용을 시간 흐름에 따라 단계별로 업데이트합니다. 예컨대, “다음 시점(예: 다음 달)”이 되었을 때 유량 × (시간 간격) 만큼 저량이 증가(또는 감소)한다고 보고, 이를 계속 누적해 나가는 식이죠.
- step size가 크면: 계산 횟수가 줄어들어 속도는 빠를 수 있지만, “중간의 세부 변화”가 무시되어 큰 근사 오차가 생길 수 있습니다.
- step size가 작으면: 세밀하게 추적하므로 정확도는 올라가지만, 그만큼 컴퓨터 연산량이 늘어나 시간이 오래 걸립니다.
따라서 “시뮬레이션 목적에 맞추어 적절한 스텝 크기를 선택”하는 것이 핵심입니다.
작은 스텝이 무조건 좋은 것은 아니다?
“그렇다면 무조건 스텝을 최대한 작게 잡으면 좋지 않냐?”는 질문이 자연스럽게 따라옵니다.
- 계산 부하(연산량)
- 스텝을 극도로 줄이면, 수천~수만 번 이상의 연산을 돌려야 할 수 있어 비효율적일 수 있습니다.
- 시스템의 특성
- 만약 실제 시스템이 수십 년 단위로 변하는 ‘느린’ 문제라면, 굳이 한 달 단위까지 세밀하게 계산할 필요가 없을 수도 있습니다.
또한, “절반으로 스텝을 줄여서 결과를 비교”하는 방법으로 적절한 step size를 찾는 것이 일반적인 실무 절차입니다.
- 1년 단위와 0.5년 단위 시뮬레이션 결과가 크게 다르지 않다면, 1년 단위면 충분할 수 있습니다.
- 만약 큰 차이가 난다면, 더 줄여야 하는 것이죠.
한 줄 요약
- step size(시간 스텝) = “얼마나 촘촘하게 시간을 나누어 시뮬레이션할지”를 결정하는 파라미터
- 너무 크게 잡으면 중간 변화가 반영되지 않아 오차가 커질 수 있음
- 너무 작게 잡으면 연산량이 지나치게 커질 수 있음
- “절반으로 줄여보기” 테스트를 통해 적절한 스텝 사이즈를 찾는 것이 효과적
대화 속 핵심 포인트
대화 중, 이런 요지의 질문이 나왔습니다.
“10년씩 끊어 계산해도 이론적으론 맞긴 맞는 거 아닌가요?그럼 왜 오차가 심해진다고 하나요?”
여기에 대해 답변한 핵심은 다음과 같습니다.
- 시스템다이내믹스 모델은 연속적(continuous) 시간 변화를 잘게 쪼개서 누적하는 방식으로 계산한다.
- 너무 큰 간격(10년)으로 생략하다 보면, 실제로는 매년 변화해야 할 부분을 한 번에 처리해 버려 누락·과장 등의 근사 오차가 커짐.
이런 개념을 이해하면, “1개월” 혹은 “1년” 단위로 계산하는 이유가 확실해집니다.
맺으며
시스템다이내믹스 모델링의 매력은 미리 지정한 짧은 ‘시간 스텝’을 따라가며, 다양한 가정(시나리오)에 대한 결과를 빠르게 ‘시뮬레이션’해 볼 수 있다는 점에 있습니다.
“얼마나 짧게 쪼갤 것인가?”라는 질문에, 정답은 “모델과 상황에 따라 다르다.”이지만,
- 모델 오차가 일정 수준 이하로 유지되는 선에서
- 계산량과 시간도 감당 가능한
그 적절한 타협 지점을 찾는 것이 바로 step size 설정의 핵심입니다.
앞으로 시스템다이내믹스를 배우면서, 모델의 ‘변화 양상(behavior)’을 어떻게 정확히 추적할지 고민해 보시면, step size의 중요성이 더욱 분명해질 것입니다.
댓글
댓글 쓰기