Long-horizon Task와 오차의 눈덩이
- 한눈에 보는 핵심요약
- Long-horizon Task와 리플레이 버퍼를 설명했습니다.
안녕하세요, 에디터 느리입니다:>
현대 인공지능 연구, 특히 거대언어모델(LLM)의 성공 방정식은 명확했습니다. “더 많은 데이터, 더 큰 모델.” 하지만 이 스케일링 법칙(Scaling Law)을 강화학습에 그대로 적용하려니 예상치 못한 벽에 부딪혔습니다. 최근 연구에 따르면 데이터를 10억 개 수준으로 늘려도 해결되지 않는 문제가 발견된 것이죠.
바로 긴 호흡의 과제(Long-horizon Task)를 해결하는 문제입니다.

ⓒ deep daiv.
오늘은 도대체 ‘긴 호흡의 과제’가 무엇이길래 에이전트를 곤경에 빠뜨리는지, 그리고 우리가 믿었던 강화학습 알고리즘 내부에서 어떻게 오차가 눈덩이처럼 커지는지를 살펴보고자 합니다.
Long-horizon Task와 Off-policy
강화학습에서 ‘호흡이 길다’는 것은 목표에 도달하기까지 거쳐야 할 단계가 매우 많다는 뜻입니다. 예를 들어 로봇에게 ‘주방에서 커피 한 잔만 타와’라고 지시했다고 가정해봅시다. 인간에게는 단순해 보이지만, 로봇의 입장에서는 수천~수만 번의 미세 제어가 필요한 거대한 과제입니다. 만약 로봇이 1초에 10번 판단한다면, 5분짜리 커피 심부름은 약 3,000개의 의사결정(Step)으로 이루어진 과제입니다. 이러한 문제를 Long-horizon Task라고 부릅니다. 문제는 이 3,000번의 과정 중 단 한 번이라도 삐끗하면(컵을 놓치거나, 물을 쏟으면) 커피 심부름은 실패로 돌아간다는 점입니다.

Off-policy와 Replay Buffer 출처: de Harder, H. Techniques to Improve the Performance of a DQN Agent. Towards Data Science(2022)
이렇게 긴 과정을 학습하려면 방대한 데이터가 필요하기 때문에 강화학습에서는 Off-policy 방식을 사용합니다. 핵심은 행동을 수행하는 정책(Behavior Policy)과 학습하는 정책(Target Policy)을 분리하고, 과거의 경험을 재사용한다는 점입니다. 에이전트는 과거의 자신이 수집한 경험을 저장소에 모아두고 이를 통해 반복적으로 재학습하는데 이때 사용하는 저장소가 바로 **리플레이 버퍼(Replay Buffer)**입니다.
리플레이 버퍼는 에이전트가 환경과 상호작용하며 겪은 모든 경험(상황, 행동, 결과, 다음 상황)을 저장하는 메모리 뱅크 역할을 합니다. 이때 학습 시에 이 버퍼에서 무작위로, 혹은 우선 순위에 따라 샘플을 추출하여 정책을 업데이트합니다. 이러한 리플레이 버퍼의 도입은 강화학습의 패러다임을 바꿨는데요. 한 번 수집된 샘플을 학습 루프 내에서 수집, 수백 번 재사용할 수 있어 표본 효율성을 비약적으로 향상시켰습니다. 쉽게 말해 데이터 재사용성(Reusability)을 늘린 것이죠. 또한 이를 통해 상관관계 제거(Decorrelation)의 효과도 얻을 수 있었는데요. 순차적으로 들어오는 데이터(Trajectory)는 시간적 상관관계가 매우 높습니다. 예를 들어 로봇이 왼쪽으로 이동 중이라면 다음 1초 간의 데이터도 모두 ‘왼쪽 이동’과 관련될 것입니다. 이러한 데이터로 학습하면 새 정책이 특정 패턴에 과적합(Overfitting)되기 쉽습니다. 그러나 리플레이 버퍼에서 시간과 상관없이 무작위로 샘플링을 하면 이러한 시간적 상관관계를 끊어주어 학습의 안정성을 높입니다.
Off-policy의 구조적 한계와 오차의 눈덩이
그러나 Off-policy는 구조적 한계를 함께 품고 있습니다.
Off-policy 학습은 과거 정책이 수집한 데이터를 현재의 정책을 훈련하는 데 사용합니다. 문제는 학습 초기에는 에이전트가 무작위 탐험(Random Exploration)을 하면서 데이터를 모으기 때문에 리플레이 버퍼에는 저품질의 데이터가 쌓인다는 점입니다. 학습이 진행되면서 정책은 점점 고도화되지만, 버퍼에는 여전히 과거의 저품질 데이터가 혼재되어 있죠.
더 나아가 현재 정책이 선택하려는 최적 행동은 버퍼에 거의 등장하지 않을 수도 있습니다. 신경망은 훈련 데이터 분포 밖(OOD)의 입력에 대해 흔히 불안정한, 심지어는 터무니없이 큰 값을 예측하는데 이는 외삽 오류(Extrapolation Error) 또는 환각(Hallucination)이라고 불립니다.
가장 큰 문제는 Off-policy가 ‘오차의 눈덩이’ 현상을 일으킬 수 있다는 점인데요. 아래 그림을 통해 차근차근 살펴보겠습니다.

세 가지 가치 업데이트 방법 비교 출처: Castro, S. An Intuitive Guide to Reinforcement Learning. Robotic Sea Bass(2020)
강화학습의 목표는 가치(Value)를 잘 판단하는 것입니다. 그렇다면 가치란 무엇일까요? 에이전트가 어떤 상태에서 미래에 얻을 수 있을 것이라 기대되는 보상의 총합을 우리는 반환값(Return, G_t)이라고 부릅니다. 그리고 이 반환값의 평균(기댓값)을 바로 가치라고 하는 것이죠. 쉽게 말해, “지금 이 행동을 하면, 앞으로 게임이 끝날 때까지 총 몇 점을 받을 수 있을까?”에 대한 예상 점수입니다.
에이전트가 이 '가치'를 정확하게 알아내는(업데이트하는) 방법은 크게 세 가지가 있습니다.
- 몬테카를로(Monte-Carlo, MC): 에피소드가 끝날 때까지 실제로 플레이를 해보고, 실제 얻은 보상의 합을 이용해 가치를 업데이트합니다. 정확하지만 시간이 오래 걸리고 데이터 효율이 낮습니다.
- 다이내믹 프로그래밍(Dynamic Programming, DP): 환경의 규칙(확률)을 이미 다 알고 있다는 가정하에 수학적으로 기댓값을 계산합니다. 이는 '학습'이라기보다는 '계획'에 가깝습니다.
- 시간차 학습(Temporal Difference, TD): MC와 DP의 장점을 섞은 방식입니다. 딱 한 스텝만 실제로 움직여보고(경험), 그 이후의 미래는 현재 자신이 가지고 있는 가치 추정치를 이용해 계산(추측)합니다. 이때 미래의 실제 보상이 아니라 현재의 추정치를 다시 사용해 업데이트하는 방식을 부트스트래핑(Bootstrapping)이라고 합니다. 끝까지 보지 않고, 내가 가진 예측으로 다시 예측을 보완하는 방식이죠.
그중, Off-policy의 대표적인 알고리즘인 Q-learning은 TD 방식을 채택합니다.

Q-learning의 업데이트 식
여기서 r은 방금 경험에서 얻은 실제 보상이고, 뒤의 max는 미래에 대한 추측입니다. 다음 상태 s’에서 가장 좋을 것이라 예상되는 행동의 가치를 더해서 현재 가치를 계산하는 것이죠. 문제는 바로 저 max 연산자에 있습니다. 에이전트는 아직 세상을 완벽하게 알지 못합니다. 따라서 Q(s’, a’) 값에는 오차가 끼어있을 수밖에 없죠. 그런데 여러 선택지 중 ‘최댓값’을 고르게 되면 노이즈 때문에 실제보다 좋게 평가된 값이 선택될 확률이 매우 높습니다. 우리가 맛집을 찾을 때 블로그 리뷰를 검색하는 상황과 같습니다. 어떤 식당에 대해 10개의 리뷰가 있고, 그 중 9개는 ‘평범하다’, 1개는 ‘인생 최고의 맛집’이라고 한다면, Q-learning의 max 연산자는 그 1개의 긍정적인 리뷰만을 믿고 그 식당의 가치를 ‘인생 최고의 맛집’ 수준으로 평가해버립니다. 실제로는 그 리뷰가 과장되었거나(=노이즈), 해당 글쓴이가 특이한 취향(OOD)일 수도 있는데 말이죠. 이를 과대평가 편향(Overestimation)이라고 하며, 이것이 결정적으로 위험해지는 원인은 부트스트레핑 구조에 있습니다. 오차가 한 단계에서만 머무르지 않고 다음 단계로 전파되기 때문인데요. 작은 오차가 어떻게 증폭되는지 에이전트가 커피를 타오는 예를 들어 봅시다.
<aside>
[Step 99] 목표 달성 직전입니다. 로봇은 1초 뒤게 커피를 성공적으로 전달하고 보상 100점을 받을 것이라 예상해야 합니다. 그런데 약간의 노이즈 때문에 101점이라고 살짝 착각(과대평가)합니다. 오차가 1정도 생겼습니다.
[Step 98] 이제 로봇은 Step 99의 평가를 참고합니다. "내일(Step 99) 101점을 받을 거니까, 오늘은 100점 쯤 되겠군." 하지만 여기서 또 노이즈가 껴서 102점으로 착각합니다.
[Step 97] "내일(Step 98) 102점이라며? 그럼 오늘은 101점이네." 또 착각해서 104점이 됩니다.
(…)
[Step 0] 시작 지점입니다. 위와 같은 식으로 100번을 거슬러 올라오면 어떻게 될까요?
</aside>
처음에는 +1점이었던 아주 작은 오차가, 단계를 거칠 때마다 덧셈이 되고 곱셈이 되어 시작 지점에서는 실제 가치와는 상관없는 터무니없이 거대한 값으로 부풀려집니다. 이것이 바로 오차의 눈덩이 효과(Snowball Effect)입니다. 로봇은 아직 아무것도 안 했는데, 시작 지점에서 "이 길로 가면 점수가 무한대야!"라고 착각하게 됩니다. 결국 엉뚱한 행동을 하거나, 학습이 전혀 진행되지 않고 제자리걸음을 하게 되죠.
최근 연구 결과들은 이러한 오차 전파가 단순한 이론적 우려가 아니라, 강화학습 모델의 확장성을 가로막는 가장 큰 장벽임을 보여줍니다. 2025년에 발표된 한 연구에 따르면, 데이터의 양을 10억 개(1B) 수준으로 늘리더라도 Long-horizon Task에서는 기존의 Off-policy 알고리즘이 제대로 학습하지 못하고 성능이 포화(Saturate)되는 현상이 관찰되었습니다. 긴 타임 스텝을 타고 흐르는 오차의 눈덩이(Snowball Effect)가 유의미한 학습 신호를 압도해버리기 때문입니다. 즉, 긴 Horizon을 내버려 두면 학습은 필연적으로 불안정해진다는 결론에 도달할 수 있는 것이죠.
수평선 축소는 필연적이다.
이 근본적인 문제를 해결하려면 오차가 눈덩이처럼 불어나기 전에 연결고리를 끊거나 줄여야 하는데요. 이것을 수평선 축소(Horizon Reduction)라고 합니다. 수평선 축소는 말 그대로 에이전트가 ‘미래를 얼마나 멀리까지 바라보며 예측하는가’의 범위를 줄이는 기법입니다.
아까와 같은 ‘커피 타오기’ 과제에서 3,000스텝짜리 과제를 수행한다고 해봅시다. Horizon이 길다는 것은 지금 컵을 잡는 행동이 3,000스텝 뒤에 받을 보상까지 고려해야 한다는 뜻입니다. 물론 3,000스텝 뒤를 정확히 예측하는 것은 거의 불가능하죠. Horizon Reduction은 이렇게 말합니다.
“컵을 잡는 행동이 3,000스텝 뒤 결과에 영향을 줄 거라고 애써 계산하지 말고, 일단 가까운 목표만 정확히 예측해. 예를 들어 컵을 집기 → 컵을 안정적으로 들기 → 컵을 운반하기 이런 식으로 쪼개자.” 이렇게 하면 각 단계의 예측 범위가 짧아져 오차 전파가 줄어듭니다. 이러한 수평선 축소 기법에는 몇 가지 전략이 있는데요. 일정 구간의 미래까지만 신뢰하고 그 이후는 별도로 처리하게 만들거나, 중간 단계마다 작은 목표(Sub-goal)를 설정해 예측해야 할 범위를 짧은 구간으로 나눌 수도 있습니다. 이전 뉴스레터에서 소개한 Skill Discovery 역시 스킬을 찾아 배정하는 식으로 Horizon Reduction을 이루려 했죠.
이렇게 강화학습이 단순한 게임이나 시뮬레이션을 넘어 실제 로봇 제어나 복잡한 의사결정 시스템으로 확장(Scaling)되기 위해서는 이러한 Horizon Reduction 기법의 고도화가 필수적입니다. 중요한 것은 데이터의 양이 아니라, 에이전트가 그 데이터를 어떤 범위까지 바라보고 활용할지 스스로 조절하게 만드는 능력입니다. 결국 이 시야 조절이 차세대 AI 성능의 핵심 축이 될 것입니다.