신뢰 영역 정책 최적화 (TRPO)
옛 정책과의 KL 발산을 δ 이하로 묶어 정책을 안전하게 개선하는 신뢰 영역 정책 최적화
먼저 알아야 할 것
다루는 내용
TRPO는 새 정책의 성능을 옛 정책의 어드밴티지로 근사한 대리 목표를 세우고, 근사 오차의 상한(KL 벌점)으로 단조 개선을 증명합니다. 실용 알고리즘은 벌점 대신 평균 KL ≤ δ 제약을 쓰고, 켤레 기울기 · 피셔 행렬 · 선 탐색으로 풉니다. 단일 경로와 덩굴 표본 추출 두 방식으로 MuJoCo 수영 · 뜀뛰기 · 걷기와 아타리 7게임을 같은 설정(δ=0.01)으로 학습했고, 이후 PPO와 RLHF의 KL 제약으로 이어졌습니다.
초록
이 논문은 단조로운 개선이 보장되는, 정책을 최적화하는 반복 절차를 설명합니다. 이론적으로 정당화된 절차에 몇 가지 근사를 더해, 신뢰 영역 정책 최적화(TRPO)라는 실용적인 알고리즘을 만듭니다. 이 알고리즘은 자연 정책 경사(natural policy gradient) 방법과 비슷하며, 신경망 같은 큰 비선형 정책을 최적화하는 데 효과적입니다. 실험에서는 시뮬레이션 로봇의 수영 · 뜀뛰기 · 걷기 동작 학습, 그리고 화면 이미지를 입력으로 하는 아타리 게임 플레이까지 다양한 과제에서 안정적인 성능을 보입니다. 이론에서 벗어나는 근사를 썼는데도, TRPO는 하이퍼파라미터를 거의 조정하지 않고도 대체로 단조로운 개선을 보입니다.
해설
신뢰 영역 정책 최적화 (TRPO)
정책을 한 번에 너무 많이 바꾸면 성능이 무너진다는 문제를, "옛 정책과 새 정책의 KL 발산이 일정 값을 넘지 않게" 묶어서 푼 논문입니다. 이론적으로는 성능이 단조롭게 좋아지는 것을 보이고, 실용 알고리즘으로 로봇 보행과 아타리 게임을 같은 방법으로 학습했습니다. PPO의 직접적인 조상입니다.
| 항목 | 내용 |
|---|---|
| 원제 | Trust Region Policy Optimization |
| 저자 | John Schulman 외 4명 (UC 버클리) |
| 발표 | 2015 · ICML · arXiv 1502.05477 |
| 트랙 · 수준 | 강화학습 · 심화 |
| 먼저 알면 좋은 것 | 정책 경사, 어드밴티지 함수, KL 발산, 중요도 샘플링, 2차 근사 · 켤레 기울기법 |
들어가기 전에
이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.
- OpenAI Spinning Up: 딥 강화학습 입문 — 로그 미분 트릭으로 정책 경사를 유도하고 reward-to-go · 기준값 · 액터-크리틱까지 손계산하는 수업
- 정보 이론 최소한: 엔트로피 · 교차 엔트로피 · KL 발산 — 정보량 → 엔트로피 → 교차 엔트로피 → KL 발산을 잇고, 분류 손실과 KL 규제의 정체를 손계산으로
- 정책 최적화 실전: A2C · 신뢰 영역 · PPO 클리핑 · GAE 손계산 — 신뢰 영역 · 확률비 · 근사 KL을 작은 숫자로 먼저 계산해 봅니다
한눈에 보기
- 정책 경사법에서 "얼마나 크게 한 걸음 갈지(스텝 크기)"가 왜 그렇게 어려운 문제인지 압니다.
- 새 정책의 성능을 옛 정책의 어드밴티지로 표현하는 식, 그리고 그 근사가 언제 믿을 만한지 이해합니다.
- KL 발산 제약(신뢰 영역)이 벌점보다 왜 실용적인지, 켤레 기울기 · 선 탐색으로 어떻게 푸는지 따라갑니다.
- 단일 경로(single path)와 덩굴(vine) 두 표본 추출 방식의 차이, MuJoCo · 아타리 결과를 압니다.
초록 (번역)
이 논문은 단조로운 개선이 보장되는, 정책을 최적화하는 반복 절차를 설명합니다. 이론적으로 정당화된 절차에 몇 가지 근사를 더해, 신뢰 영역 정책 최적화(TRPO)라는 실용적인 알고리즘을 만듭니다. 이 알고리즘은 자연 정책 경사(natural policy gradient) 방법과 비슷하며, 신경망 같은 큰 비선형 정책을 최적화하는 데 효과적입니다. 실험에서는 시뮬레이션 로봇의 수영 · 뜀뛰기 · 걷기 동작 학습, 그리고 화면 이미지를 입력으로 하는 아타리 게임 플레이까지 다양한 과제에서 안정적인 성능을 보입니다. 이론에서 벗어나는 근사를 썼는데도, TRPO는 하이퍼파라미터를 거의 조정하지 않고도 대체로 단조로운 개선을 보입니다.
무엇을 풀었나
정책 최적화 방법은 크게 셋이었습니다. ① 가치를 추정하고 정책을 고치기를 반복하는 정책 반복, ② 수익의 기울기를 추정해 올라가는 정책 경사, ③ 수익을 블랙박스로 보고 파라미터를 무작위로 찔러 보는 미분 없는 최적화(CEM · CMA 등)입니다.
이상하게도 당시에는 ③이 자주 이겼습니다. 테트리스 같은 문제에서 단순한 무작위 탐색을 이기기 어려웠고, 로봇 보행도 사람이 설계한 저차원 정책에 CMA를 써야 잘 됐습니다. 기울기 기반 방법은 원래 표본 효율이 훨씬 좋아야 하는데 말이죠.
핵심 원인은 스텝 크기입니다. 정책 경사로 한 걸음 크게 가면 정책이 엉뚱하게 바뀌고, 그 정책이 모으는 데이터도 나빠져 학습이 회복되지 못하고 무너집니다. 작게 가면 너무 느립니다. 지도학습과 달리 강화학습에서는 정책이 바뀌면 데이터 분포 자체가 바뀌기 때문에 이 문제가 특히 심합니다.
핵심 아이디어
flowchart LR
A[현재 정책 π_old로 궤적 수집] --> B[Q · 어드밴티지 추정]
B --> C[대리 목표 L과 평균 KL 계산]
C --> D[켤레 기울기로 탐색 방향 s ≈ A⁻¹g]
D --> E[KL = δ가 되는 최대 걸음 β]
E --> F[선 탐색: 목표 개선 · KL 만족 확인]
F --> A1. 새 정책의 성능을 옛 정책의 어드밴티지로 쓰기
직관: 새 길로 출근했을 때 얼마나 빨라졌는지는 "옛 길 기준으로, 갈림길마다 새 선택이 얼마나 나았나"를 다 더하면 됩니다.
단계: ① 옛 정책 의 어드밴티지 를 압니다. ② 새 정책 가 실제로 방문하는 상태들에서, ③ 새 정책이 고르는 행동의 어드밴티지를 평균 내어, ④ 옛 성능에 더합니다.
| 기호 | 뜻 |
|---|---|
| 정책 의 기대 할인 수익(성능) | |
| 새 정책 를 따를 때 상태 를 (할인해서) 얼마나 자주 방문하는지 | |
| 옛 정책 기준 어드밴티지 |
모든 상태에서 기대 어드밴티지가 0 이상이면 성능은 반드시 오릅니다. 문제는 가 아직 모르는 새 정책에 달려 있어 직접 최적화하기 어렵다는 점입니다.
2. 국소 근사 L — 방문 분포는 옛 것으로
그래서 방문 분포를 옛 정책 것 로 바꾼 근사를 씁니다.
은 지금 정책 근처에서 와 값도 같고 1차 기울기도 같습니다. 그래서 아주 작은 걸음이면 을 올리면 도 오릅니다. 하지만 "얼마나 작아야 하나"는 이것만으로는 모릅니다.
왜 이렇게 했나: 옛 정책으로 모은 데이터만으로 계산할 수 있는 식이 필요했기 때문입니다. 대신 정책이 멀리 가면 근사가 틀린다는 대가를 치릅니다. 다음 절의 정리가 바로 그 '틀림의 크기'를 잽니다.
3. 단조 개선 정리 — 근사 오차의 상한
논문의 주된 이론 결과는 다음 하한입니다(먼저 총변동 거리로 보이고, 이를 KL 발산으로 바꾼 형태).
| 기호 | 뜻 |
|---|---|
| 모든 상태 가운데 두 정책의 행동 분포 KL 발산이 가장 큰 값 | |
| 어드밴티지 절댓값의 최댓값 | |
| 할인율 |
직관: "근사로 계산한 개선량에서, 정책이 멀어진 만큼의 벌점을 빼면 실제 성능의 바닥이 된다"는 뜻입니다. 그래서 매번 를 최대화하면, 지금 정책에서 이 값이 와 같으므로 실제 성능이 절대 내려가지 않습니다. 이런 구조를 MM(minorization-maximization) 알고리즘이라 부르며, EM 알고리즘도 같은 부류입니다.
숫자로 해 보기(해설용 예): , 이면 입니다. KL이 만 되어도 벌점이 약 40이라, 이론대로 하면 걸음이 아주 작아질 수밖에 없습니다.
4. 벌점 대신 제약 — 신뢰 영역
직관: "벌금을 매기는" 대신 "울타리를 친다"고 생각하면 됩니다. 울타리(KL ) 안에서는 마음껏 개선합니다.
이론의 를 그대로 쓰면 걸음이 너무 작아지므로, 논문은 제약 형태로 바꾸고, 모든 상태에서의 최대 KL 대신 방문 상태 평균 KL을 씁니다.
왜 이렇게 했나: 벌점 계수는 문제마다 알맞은 값이 달라 고르기 어렵지만, "한 번에 KL을 얼마까지 바꿔도 된다"는 는 여러 문제에 같은 값을 쓸 수 있습니다. 실제로 논문은 모든 로봇 실험과 아타리에 을 썼습니다. 최대 KL은 상태 수만큼 제약이 생겨 풀 수 없으므로 평균으로 바꿨고, 카트폴 실험에서 두 방식이 비슷하게 동작함을 확인했습니다.
숫자로 해 보기(해설용 예): 행동이 두 개인 상태에서 옛 정책이 , 새 정책이 이면
보다 크므로 이 변화는 한 번에 하기엔 너무 큽니다. 정도로 줄이면 약 로 울타리 안에 들어옵니다.
5. 표본으로 계산하기 — 중요도 샘플링, 단일 경로와 덩굴
목표식의 는 모든 행동에 대한 합이라 직접 못 구합니다. 표본 분포 에서 뽑은 행동으로 비율을 곱해 추정합니다.
- 단일 경로(single path): 옛 정책으로 궤적을 굴리고, 궤적 위 모든 상태-행동 쌍을 씁니다. , 는 그 뒤 할인 보상 합. 상태를 되돌릴 필요가 없어 실제 환경에서도 쓸 수 있습니다.
- 덩굴(vine): 굵은 줄기 궤적을 굴린 뒤 일부 상태(rollout set)에서 여러 행동을 각각 시도해 짧게 굴려 봅니다. 같은 난수열(common random numbers)을 써서 행동 간 비교의 분산을 줄입니다. 어드밴티지 추정이 훨씬 정확하지만, 시뮬레이터를 원하는 상태로 되돌릴 수 있어야 합니다.
숫자로 해 보기(해설용 예): 옛 정책이 행동 를 확률 0.2로 골랐고 였습니다. 새 정책이 의 확률을 0.3으로 올리면 이 표본의 기여는 로 커집니다. "좋은 행동의 확률을 올리면 목표값이 오른다"는 것이 비율 하나로 표현됩니다.
6. 실제로 푸는 법 — 켤레 기울기 + 선 탐색
단계:
- 목표 을 선형으로, KL 제약을 2차식 로 근사합니다. 는 피셔 정보 행렬(KL의 헤시안)입니다.
- 를 켤레 기울기법으로 대략 풉니다. 를 통째로 만들지 않고 "행렬 × 벡터" 곱만 반복하므로 파라미터가 수만 개여도 됩니다. 이렇게 얻은 방향 .
- KL이 정확히 가 되는 최대 걸음 를 구합니다.
- 실제(비선형) 목표가 좋아지고 KL 제약도 지켜질 때까지 걸음을 지수적으로 줄이는 선 탐색을 합니다.
숫자로 해 보기(해설용 예): , 이면 입니다. 방향 로 0.05만큼 가면 2차 근사상 KL이 이 됩니다.
왜 선 탐색까지 하나: 논문은 선 탐색이 없으면 가끔 큰 걸음이 나와 성능이 파국적으로 떨어진다고 밝힙니다. 2차 근사는 근사일 뿐이니 실제 값으로 한 번 더 확인하는 것입니다. 피셔 행렬은 기울기 공분산이 아니라 KL의 헤시안을 해석적으로 계산했는데, 큰 문제에서 모든 기울기를 저장할 필요가 없어 효율적입니다.
7. 기존 방법과의 관계
- 자연 정책 경사는 같은 2차 근사에서 KL 제약 대신 고정 계수의 걸음을 쓰는 특수한 경우입니다. TRPO는 매번 KL = 를 강제한다는 점이 다르고, 이 작은 차이가 큰 문제에서 성능을 크게 바꿨습니다.
- KL 대신 파라미터 공간의 거리 제약을 쓰면 보통의 정책 경사가 되고, 제약을 없애면 정책 반복이 됩니다. 즉 TRPO는 정책 경사와 정책 반복을 한 틀로 묶어 보여 줍니다.
결과
MuJoCo 로봇 보행 (수영 · 뜀뛰기 · 걷기) + 카트폴
- 단일 경로 · 덩굴 TRPO 모두 네 문제를 다 풀었습니다.
- 자연 경사는 쉬운 두 문제는 잘했지만, 앞으로 나아가는 뜀뛰기 · 걷기 동작은 만들지 못했습니다.
- CEM · CMA 같은 미분 없는 방법은 파라미터 수가 많아지자 성능이 나빴습니다.
- 정책 파라미터 수는 수영 364, 뜀뛰기 4,806, 걷기 8,206개였고, 반복은 200회, , 였습니다(부록 표 2).
- 사람이 설계한 정책 구조 없이, 일반 신경망과 단순한 보상만으로 세 동작을 처음부터 학습했다는 점을 저자들은 강조합니다.
아타리 7게임 (화면 입력, 정책 파라미터 33,500개, 500회 반복, 16코어 컴퓨터로 약 30시간)
| 방법 | B. Rider | Breakout | Enduro | Pong | Q*bert | Seaquest | S. Invaders |
|---|---|---|---|---|---|---|---|
| 무작위 | 354 | 1.2 | 0 | −20.4 | 157 | 110 | 179 |
| 사람 | 7456 | 31.0 | 368 | −3.0 | 18900 | 28010 | 3690 |
| DQN (2013) | 4092 | 168.0 | 470 | 20.0 | 1952 | 1705 | 581 |
| UCC-I | 5702 | 380 | 741 | 21 | 20025 | 2995 | 692 |
| TRPO 단일 경로 | 1425.2 | 10.8 | 534.6 | 20.9 | 1973.5 | 1908.6 | 568.4 |
| TRPO 덩굴 | 859.5 | 34.2 | 430.8 | 20.9 | 7732.5 | 788.4 | 450.2 |
TRPO는 일부 게임에서만 기존 방법을 앞섰지만 꾸준히 합리적인 점수를 냈습니다. 아타리 전용으로 설계된 방법이 아닌데도 로봇 보행과 같은 알고리즘으로 이 정도를 낸 것이 요점입니다. 각 게임을 한 번씩만 돌려 오차 통계는 없다고 논문이 밝힙니다.
왜 중요한가 · 이후 영향
- "정책을 얼마나 바꿀지"를 KL로 재는 발상이 정착했습니다. 이후 PPO는 이 제약을 확률비 자르기(clipping)로 단순화했고, LLM의 RLHF에서도 "기준 모델과의 KL을 묶는다"는 같은 생각이 쓰입니다.
- 정책 경사 · 자연 경사 · 정책 반복을 한 틀에서 설명해, 이론과 실용 사이의 다리를 놓았습니다.
- 신경망 정책을 미분 없는 방법보다 잘 학습할 수 있음을 연속 제어에서 처음 설득력 있게 보였습니다.
- 같은 저자들의 GAE가 TRPO의 어드밴티지 추정을 개선하며 이어졌습니다.
한계 · 주의할 점
- 켤레 기울기 · 피셔-벡터 곱 · 선 탐색이 들어가 구현이 복잡합니다. PPO가 등장한 큰 이유입니다.
- 정책과 가치 함수가 파라미터를 공유하거나 드롭아웃처럼 잡음이 있는 구조와는 잘 맞지 않는다는 지적이 이후 PPO 논문에서 나옵니다.
- 이론의 단조 개선 보장은 최대 KL · 정확한 어드밴티지를 가정합니다. 실제 알고리즘은 평균 KL과 표본 추정을 쓰므로 보장이 그대로 성립하지는 않습니다.
- 덩굴 방식은 시뮬레이터 상태를 되돌릴 수 있어야 해서 실제 로봇에는 쓰기 어렵습니다.
- 아타리에서는 Beam Rider · Breakout · Space Invaders처럼 DQN보다 낮은 게임도 있었습니다.
이어서 읽을 것
- 앞: 비동기 딥 강화학습 (A3C) — 같은 시기 액터-크리틱의 또 다른 흐름
- 뒤: 일반화 어드밴티지 추정 (GAE) — TRPO와 함께 쓰는 어드밴티지 추정
- 뒤: 근접 정책 최적화 (PPO) — TRPO를 1차 최적화만으로 단순화
- 응용: 사람 피드백으로 지시를 따르게 학습하기 (InstructGPT) — KL로 묶는 정책 최적화를 LLM에
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 신뢰 영역(trust region) | 근사식을 믿을 수 있는, 현재 지점 주변의 범위 |
| KL 발산 | 두 확률 분포가 얼마나 다른지 재는 값(0이면 같음) |
| 대리 목표(surrogate objective) | 진짜 목표 대신 최적화하는, 계산하기 쉬운 근사 목표 |
| 중요도 샘플링 | 다른 분포에서 뽑은 표본에 확률비를 곱해 원하는 분포의 기댓값을 추정 |
| 피셔 정보 행렬 | KL 발산의 2차 근사에 쓰이는 행렬. 파라미터 변화가 분포를 얼마나 바꾸는지 잼 |
| 켤레 기울기법 | 큰 선형 방정식을 행렬 전체 없이 행렬-벡터 곱만으로 푸는 반복법 |
| 선 탐색(line search) | 정한 방향으로 걸음 크기를 줄여 가며 조건을 만족하는 값을 찾는 것 |
| 자연 정책 경사 | 파라미터 거리가 아니라 분포 변화(피셔 행렬)를 기준으로 한 정책 경사 |
스스로 점검
- 이 를 근사할 수 있는 이유와 한계는? — 지금 정책에서 값과 1차 기울기가 같아 작은 변화에는 정확합니다. 하지만 방문 분포를 옛 것으로 고정했으므로 정책이 멀리 가면 틀립니다.
- TRPO가 이론의 벌점 대신 제약을 쓴 이유는? — 이론의 계수 는 너무 커서 걸음이 지나치게 작아집니다. KL 상한 는 문제에 덜 민감해 여러 과제에 같은 값(0.01)을 쓸 수 있습니다.
- 자연 정책 경사와 TRPO의 차이는? — 둘 다 피셔 행렬로 방향을 잡지만, 자연 경사는 고정 걸음을 쓰고 TRPO는 매번 KL = 가 되도록 걸음을 정하고 선 탐색으로 확인합니다.
다음에 볼 것
이 글을 이해했다면 이어서 보면 좋은 항목입니다.
- 일반화 어드밴티지 추정 (GAE) — TD 오차를 γλ로 할인해 더하는 어드밴티지 추정 — λ 하나로 편향과 분산을 조절
- 근접 정책 최적화 (PPO) — 확률비를 1±ε로 잘라 정책을 조금씩만 바꾸는, 단순하고 안정적인 정책 최적화
출처
- 원문: https://arxiv.org/abs/1502.05477 (2015 · John Schulman 외)
AI 원리부터 이해하기 · 강화학습 모듈
강화학습 모듈 학습
이 글은 강화학습 모듈의 학습 자료입니다. 전체 31개 자료 중 17번째입니다.
출처·원문
원문 보기요약만