| 행동트리+RL, ‘진행 제약’ 걸면 학습이 더 안정될까 |
행동트리(BT)에 RL 컨트롤러를 붙이면 “학습은 되는데 전체 임무가 망가지는” 순간이 자주 옵니다. 이 글은 왜 그런 루프가 생기는지, 패널티 대신 제약으로 어떻게 끊는지, 그리고 그 제약을 어떻게 자동으로 만들고 학습에 녹이는지까지 한 번에 정리합니다.
진행제약이 왜 BT+RL 채터링을 끊는지
이 논문이 정확히 찌르는 현실 문제는 단순합니다. BT는 여러 서브컨트롤러를 상태에 따라 바꿔치기하는데, leaf 컨트롤러를 RL로 학습시키면 “이미 이룬 진행(progress)”을 깨버리는 행동이 자연스럽게 등장합니다. 예컨대 물건을 이미 집었는데(Have Item이 참) 다음 컨트롤러가 이 상태를 유지하지 못하고 떨어뜨리거나, 목표(At Goal) 근처까지 왔는데 다시 멀어지거나, 위험 회피(Safe)가 깨져 BT가 즉시 다른 컨트롤러를 다시 호출하는 패턴입니다. 논문은 Fig.1의 창고(warehouse) 예시에서 이런 되감기 호출이 반복되며 채터링/루프가 생긴다는 문제를 서론에서 직관적으로 설명합니다.
중요한 포인트는 “RL이 나빠서”가 아니라, RL이 개별 서브MDP 보상을 ‘탐욕적으로’ 최적화할 때 BT가 의도한 장기 진행 순서를 고려하지 않기 때문에 생기는 구조적 충돌이라는 점입니다. BT는 설계상 “현재 leaf가 해야 할 일”이 있고, 그 일을 끝내면 다음 leaf로 넘어가야 합니다. 그런데 학습된 leaf가 단기적으로 보상이 좋아 보이는 행동을 하다가 이전에 만족시켜 둔 조건을 깨뜨리면, BT는 그 조건을 다시 만족시키기 위해 이전 leaf로 돌아갑니다. 이게 반복되면 성능 저하가 아니라 “진행 자체가 제자리걸음”이 됩니다. 논문이 말하는 oscillations(내부 스위칭 진동)과 task-switching loop가 바로 이 현상입니다.
여기서 논문의 기여는 “패널티 shaping”이 아니라 “진행제약(progress constraints)”이라는 구조적 차단을 선택한 점입니다. 기존 유사 접근은 undesired transition에 큰 음의 보상을 줘서 ‘그러지 말라’고 학습시키는데, 논문은 패널티가 초기에 위반을 많이 만들고 학습을 불안정하게 할 수 있다고 보고, 아예 그 전이 자체를 불가능하게 만드는 쪽(allowed action set을 제한)으로 갑니다. 특히 2D 예시에서 패널티 방식은 초반 위반이 많고 수렴이 느린 반면, 제약 방식은 학습 중에도 제약 위반이 0에 가깝게 유지되는 곡선을 보여줍니다.
진행제약이 “임의 규칙”이 아니라 BT 이론에서 자동으로 뽑힌다는 점도 설득력의 핵심입니다. 논문은 Ögren 등(Annual Review 2022)의 BT 수렴 정리(Theorem 1)를 가져와, 각 컨트롤러가 자신의 operating region을 떠나며 동시에 자신의 convergence set을 불변(invariant)으로 유지하면 전체 BT가 유한 시간 내 성공 영역 S0에 도달한다는 조건을 사용합니다. 그리고 이 불변 조건을 그대로 “진행제약”으로 번역합니다. 즉, leaf i가 실행되는 동안에는 Ci 바깥으로 나가는 행동을 금지하여 “이미 달성한 서브골을 되돌리는 상태로의 후퇴”를 구조적으로 막습니다. 이 전개가 깔끔한 이유는, 제약이 사람이 임의로 만든 안전 규칙이 아니라 BT가 성공하려면 원래 필요했던 수렴 조건에 뿌리를 두고 있기 때문입니다.
이 지점에서 독자가 실전 적용을 상상할 때 도움이 되는 해석을 하나 덧붙이면 좋습니다. 진행제약은 “안전(safety) 제약”처럼 보이지만, 논문이 강조하듯 핵심은 안전이 아니라 “진행(progress)을 되돌리지 않는 것”입니다. 창고 예시에서 Safe(from forklift)는 안전 조건이지만, Place 단계에서 Have Item을 깨는 행위(떨어뜨리기)는 안전보다 진행 제약의 문제입니다. 이 논문은 안전과 진행을 같은 도구(불변 집합 유지)로 다루되, 목적을 ‘안전’이 아니라 ‘BT 진행 유지’로 재해석했다는 점에서 응용이 신선합니다.
| BT+RL에서 자주 생기는 실패 | 진행제약이 막는 방식 |
|---|---|
| 서브골 달성 후 되돌리기(물건 떨어뜨림, 목표에서 멀어짐) | convergence set(Ci) 불변을 강제해 “후퇴 전이”를 금지함 |
| BT가 leaf를 되감기처럼 재호출해 채터링/루프 발생 | BT가 의도한 진행 순서(Ωj ⇝ Ωj+k)를 어기는 행동을 차단함 |
| 패널티 shaping으로 학습이 불안정(초기 위반 다수, 느린 수렴) | 벌점 학습 대신 allowed action set 제한으로 위반 자체를 제거함 |
마스킹으로 패널티보다 안정적으로 제약을 강제하는 법
논문이 선택한 구현 수단은 invalid action masking입니다. 핵심은 간단합니다. 상태 x에서 가능한 행동 집합 U(x)를 “안전/진행 제약을 만족시키는 행동만 남기는” 방식으로 줄이고, RL은 그 축소된 행동 공간 안에서만 정책을 학습합니다. 논문은 feasibility 추정으로 Q(x,u)를 학습하고, Q(x,u) ≥ 0인 행동만 허용 집합으로 정의합니다(U(x)={u:Q(x,u)≥0}). 즉, 패널티는 “하면 혼난다”이지만, 마스킹은 “애초에 할 수 없다”입니다.
이 차이가 왜 중요한지 논문 실험이 잘 보여줍니다. 2D goal-reach 환경에서는 unsafe region과 slope(밟으면 미끄러져 결국 위반이 발생하는 지연 위반 구간)가 존재합니다. 만약 “즉시 unsafe에 들어가는 행동만” 막으면 slope를 밟는 행동은 허용될 수 있는데, 그러면 결국 미끄러져 unsafe에 들어가게 됩니다. 논문은 Bellman feasibility를 써서 장기 동역학을 반영한 V/Q를 학습하고, slope 자체를 infeasible로 판정해 미리 막는 그림(Fig.5)을 제시합니다. 이 예시는 “진행/제약 위반이 지연되어 나타나는 문제”에서 패널티 기반 학습이 얼마나 비효율적인지를 직관적으로 보여줍니다. 패널티는 위반 이후에야 신호가 오지만, feasibility 기반 제약은 위반으로 이어지는 전조 상태를 미리 제거합니다.
창고 환경 결과(Table I)도 같은 메시지를 줍니다. unconstrained BTRL은 Have Item 위반(박스 떨어뜨리기)과 Safe 위반이 많이 발생합니다. BT-Penalty는 Have Item 위반을 줄이지만 여전히 Safe 위반이 크게 남고, 학습 중 위반이 발생하는 구간이 존재합니다. 반면 CBTRL(논문 방법)은 Have Item/ Near Item/ At Goal 위반이 0으로 보고되며, success rate도 93%로 가장 높습니다(동시에 timeout 0%). 이 수치가 주는 실전 교훈은 분명합니다. “제약을 나중에 씌우는 것”이 아니라 “학습 과정에 제약을 통합하는 것”이 중요합니다.
논문이 특히 실용적으로 강조하는 결과가 바로 이것입니다. BTRL이나 BT-Penalty에 progress constraint를 훈련 후(inference-time)만 적용하면, 위반 자체는 줄어들 수 있지만 timeout이 크게 늘고 완료율이 떨어집니다. 이유는 간단합니다. 정책이 제약 없는 행동 공간에서 “제약 위반을 전제로 한 빠른 꼼수”를 학습해버리면, 나중에 그 꼼수를 금지했을 때 대안 전략을 모르기 때문입니다. 논문은 “BTRL-Place가 unsafe height에서 drop하는 방식으로 subtask를 해결하도록 학습될 수 있다”는 식으로 설명하며, 제약은 학습 중부터 들어가야 일관된 행동이 나온다고 결론 내립니다.
여기서 사용자 비평의 확장 포인트를 정리하면, 마스킹이 강력한 만큼 “마스크가 새거나 과도해지는 경우”가 곧 리스크가 됩니다. 논문은 큰 이산 행동공간(warehouse의 6250개 discrete action product space)에서 매 스텝 Q(x,u) ≥ 0을 계산해 마스킹합니다. 실험에서는 가능하지만, 더 큰 조합 행동이나 연속 행동으로 가면 (1) 모든 행동 평가 비용, (2) 근사 Q의 오차로 인한 마스크 불안정, (3) 정책이 마스크에 과의존해 일반화가 떨어지는 문제가 커질 수 있습니다. 이 논문이 “어떤 RL도 된다(마스킹만 지원하면)”라고 말하는 부분은 방향성은 맞지만, 규모가 커질수록 그 전제가 무거워지는 지점은 독자가 반드시 인지해야 합니다.
그래서 현장 적용 관점에서 저는 다음의 ‘안전한 운영 원칙’을 권합니다.
마스크 계산을 전수(all-actions)로 하기 어렵다면, 후보 행동을 먼저 좁히는 계층화가 필요합니다(예: 상위 모듈이 소수 후보를 제안하고 feasibility가 최종 필터링하는 구조입니다).
학습 초기에 과도 마스킹이 생기면 탐색이 죽을 수 있으니, “보수적 허용(거짓 음성 최소화)”과 “점진적 강화”를 분리해 설계해야 합니다.
훈련 중 제약 위반 0이 목표이더라도, estimator의 불확실성이 높은 구간은 별도로 로깅해 데이터 수집을 유도해야 합니다(경계 샘플 부족 문제를 완화해야 합니다).
추정으로 제약을 자동 추출할 때 생기는 3가지 리스크
이 논문의 핵심 엔진은 feasibility estimation(동적계획 기반의 제약 가능성 추정)입니다. 논문은 안전 분석에서 쓰던 V(x), Q(x,u) 개념을 가져와, 제약 집합 K를 “진행제약을 만족하는 상태 집합”으로 놓고, 장기적으로 K를 벗어나지 않도록 하는 Q를 학습합니다. 특히 일반 Bellman 형태는 contraction이 없어 수렴 보장이 약하므로, (1−γ)l(x)+γ·min(l(x),max_u V(f(x,u))) 형태의 추정식을 사용해 수렴을 유도하는 점까지 명시합니다.
그리고 이 K를 임의 설계가 아니라 BT 구조에서 자동으로 정의합니다. 핵심은 Theorem 1의 convergence set입니다. leaf i에 대해 Ci = ((⋃_{j≥i} Ωj) ∪ S0)로 정의되고, 의도된 진행 순서대로 leaf를 재라벨링할 수 있으며, 각 πi가 Ci를 불변으로 유지하고 Ωi를 유한 시간 내 떠나면 전체가 성공한다는 정리를 제약으로 바꿉니다. “제약이 BT 이론에서 자동 추출된다”는 메시지는 여기서 나옵니다.
하지만 사용자의 비판처럼, 이 자동화는 사실 100% 자동이 아닙니다. 논문 자체가 Remark 1에서 intended order of progression이 종종 명확하다고 말하면서도, 그 명확함은 대체로 사람이 BT를 설계했을 때 성립한다고 전제합니다. implicit sequence(그림 1 하단처럼 오른쪽에서 왼쪽으로 진행)나 backward chaining 설계에서는 numbering 규칙이 있지만, loop/parallel/retry/우회 같은 복잡 BT에서는 “진행 순서”가 애매해질 수 있습니다. 즉, 강점인 “자동 추출”의 기반이 되는 진행순서 정의는 여전히 반자동/휴먼 의존의 성격이 큽니다. 이건 채택 리스크로 충분히 중요합니다.
두 번째 리스크는 데이터 커버리지입니다. 논문도 한계로, RL 탐색으로 모인 데이터가 feasibility estimator를 학습하기에 충분하지 않을 수 있다고 인정합니다. feasibility는 특히 “경계 근처” 샘플이 중요합니다. 진행제약 위반은 종종 희귀 이벤트(놓치기/떨어뜨리기/특정 속도에서만 발생하는 미끄러짐)로 나타나므로, 탐색이 편향되면 estimator가 안 되는 행동을 된다고 오판해 마스킹이 새거나, 반대로 되는 행동을 안 된다고 막아 학습이 멈출 수 있습니다. 논문은 첫 컨트롤러가 제약을 받는 경우 사전 데이터셋 D0가 필요할 수 있고, 창고 예시에서 5M 전이 데이터를 BTRL로 미리 모아 Q1을 학습했다고 밝힙니다. 이것은 “추가 오버헤드는 5% 수준”이라는 장점으로 제시되지만, 반대로 말하면 현장에서는 그 5% 데이터 수집이 불가능하거나 위험할 수도 있습니다. 특히 실제 로봇에서는 경계 탐색이 곧 사고로 이어질 수 있기 때문입니다.
세 번째 리스크는 큰 행동공간과 연속행동으로의 확장입니다. 논문 창고 환경의 6250개 이산 행동은 이미 꽤 큰 편인데도, 여전히 “모든 행동에 대해 Q(x,u)를 평가해 마스킹”하는 설계를 씁니다. 연속행동에서는 이 방식이 그대로 불가능해지고, 이산에서도 더 커지면 wall-clock과 latency가 병목이 될 수 있습니다. 따라서 실전 확장에서는 “마스킹을 안전필터/CBF처럼 연속 공간에서 해결하거나, 후보 행동을 샘플링/최적화로 찾고 feasibility를 제약 함수로 넣는 방식”이 필요합니다. 논문이 References에서 CBF를 언급하는 것은 이런 연장선에서 읽힙니다.
또 하나, 진행제약이 강할수록 최적성을 희생할 수 있다는 지적도 중요합니다. BT 설계는 “진행 순서를 존중하는 안정적 수행”이 목표일 때가 많아 보수적 제약이 타당할 수 있습니다. 하지만 동적 장애물(지게차)처럼 상황이 바뀌는 환경에서는 일시적 후퇴 후 재접근이 최적일 수 있고, 과도한 불변성 강제는 그런 전략을 막을 수 있습니다. 이 논문은 BT 수렴 보장을 우선하는 철학이므로 정합적이지만, 사용자가 말한 “최적 정책 관점의 보수성”은 후속 연구에서 반드시 다뤄야 할 포인트입니다.
그래서 “이 논문을 더 강하게 만드는” 추가 실험을 저는 다음처럼 재정리할 수 있습니다.
진행순서가 애매한 BT(병렬/재시도/루프 포함)에서 intended progression을 어떻게 정의/추출하는지, 자동화 규칙과 실패 사례를 함께 공개하는 실험이 필요합니다.
feasibility Q의 과대/과소 마스킹을 인위적으로 주고 성능이 어떻게 무너지는지(성공률, timeout, 위반률의 민감도)를 보고하면 “추정 오차 강건성”이 명확해집니다.
6250 action에서 마스킹 연산의 wall-clock/latency와 메모리 비용을 분해해 보여주면, 독자가 실제 적용 가능성을 더 쉽게 판단할 수 있습니다.
이 논문은 BT+RL이 망가지는 핵심 원인을 “진행 후퇴로 인한 채터링”으로 잡고, 패널티 대신 마스킹 제약으로 구조적으로 차단합니다. 다만 진행순서 정의, 추정 데이터 커버리지, 큰/연속 행동공간 비용은 실전 확장을 위해 추가 근거가 필요합니다.
자주 묻는 질문 (FAQ)
Q. 진행제약(progress constraints)은 안전 제약과 무엇이 다른가요? A. 수단은 비슷하지만 목적이 다릅니다. 이 논문에서 제약은 충돌 회피 같은 안전뿐 아니라 “이미 달성한 BT 진행을 되돌리지 않기”를 위한 불변 집합 유지로 정의됩니다.
Q. 패널티 shaping 대신 action masking이 왜 더 안정적인가요?
A. 패널티는 위반을 경험한 뒤에야 학습 신호가 오고, 큰 음의 보상이 초기 학습을 불안정하게 만들 수 있습니다. 마스킹은 위반 전이를 애초에 불가능하게 만들어 학습 중 위반을 구조적으로 줄입니다.
Q. 제약을 훈련 후에만 씌우면 왜 성능이 떨어지나요?
A. 제약 없는 행동공간에서 학습된 정책은 “제약 위반을 전제로 한 빠른 행동”을 습관처럼 쓸 수 있습니다. 나중에 그 행동을 금지하면 대안 전략을 몰라 timeout이 늘고 완료율이 감소할 수 있습니다.
Q. 큰 행동공간(예: 6250 actions)에서도 매 스텝 마스킹이 현실적인가요?
A. 논문 실험에서는 가능했지만, 더 커지거나 연속행동으로 가면 모든 u에 대해 Q(x,u)를 평가하는 비용과 근사 오차 문제가 커질 수 있습니다. 실전 확장에서는 후보 행동 축소, 근사 계산, 안전필터/CBF 결합 같은 설계가 필요합니다.
[출처]
https://arxiv.org/html/2602.06525v1
0 댓글