액터-크리틱의 함수 근사 오차 줄이기 (TD3)
크리틱 둘 중 작은 값 · 정책 지연 갱신 · 목표 잡음으로 DDPG의 과대추정을 줄인 TD3
먼저 알아야 할 것
다루는 내용
연속 제어용 액터-크리틱(DDPG)에서도 함수 근사 오차 때문에 Q값이 과대추정된다는 것을 이론과 실험으로 보인 논문입니다. 두 크리틱 중 최솟값으로 목표를 만드는 클립드 더블 Q-러닝, 크리틱을 여러 번 고친 뒤 정책을 고치는 지연 갱신, 목표 행동에 잘린 잡음을 더하는 평활화를 결합해 TD3를 제안합니다. MuJoCo 과제에서 DDPG · PPO · TRPO · SAC 등보다 같거나 높은 성능을 보고했습니다.
초록
심층 Q-러닝 같은 가치 기반 강화학습 방법에서는 함수 근사 오차가 가치 추정을 과대하게 만들고 최적이 아닌 정책으로 이어진다는 사실이 알려져 있습니다. 이 논문은 이 문제가 액터-크리틱 환경에서도 그대로 남아 있음을 보이고, 액터와 크리틱 양쪽에서 그 영향을 최소화하는 새로운 장치를 제안합니다. 제안 알고리즘은 Double Q-러닝을 바탕으로, 두 크리틱 중 더 작은 값을 취해 과대추정을 제한합니다. 또한 목표 네트워크와 과대추정 편향 사이의 연관을 밝히고, 갱신마다 생기는 오차를 줄여 성능을 더 높이기 위해 정책 갱신을 늦출 것을 제안합니다. OpenAI gym 과제 묶음에서 평가한 결과, 시험한 모든 환경에서 기존 최고 성능을 넘어섰습니다.
해설
액터-크리틱의 함수 근사 오차 줄이기 (TD3)
연속 행동을 다루는 액터-크리틱(DDPG)에서도 Q값을 부풀려 잡는 '과대추정' 문제가 생긴다는 것을 보이고, 비평가 두 개 중 작은 값 쓰기 · 정책 늦게 고치기 · 목표 행동에 잡음 섞기라는 세 가지 간단한 장치로 이를 줄인 논문입니다. 로봇 제어 같은 연속 제어의 기본 알고리즘이 됐습니다.
| 항목 | 내용 |
|---|---|
| 원제 | Addressing Function Approximation Error in Actor-Critic Methods |
| 저자 | Scott Fujimoto 외 2명 (McGill대 · 암스테르담대) |
| 발표 | 2018 · ICML · arXiv 1802.09477 |
| 트랙 · 수준 | 강화학습 · 심화 |
| 먼저 알면 좋은 것 | Q-러닝 · 벨만 방정식, DQN의 목표 네트워크 · 경험 재생, Double Q-러닝, DDPG(결정적 정책 경사) |
들어가기 전에
이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.
- 연속 제어를 위한 딥 강화학습 (DDPG) — DQN의 경험 재생 · 타깃 네트워크를 결정론적 정책 경사에 옮겨 연속 행동을 학습
- 이중 Q-러닝 딥 강화학습 (Double DQN) — DQN의 과대평가를 고르기 · 값 매기기 분리로 줄인 Double DQN — 식 한 줄로 큰 개선
한눈에 보기
- '최댓값을 고르면 잡음 때문에 값이 부풀려진다'는 과대추정(overestimation bias)이 왜 생기는지, 그리고 연속 행동의 액터-크리틱에서도 생긴다는 것을 알게 됩니다.
- TD3라는 이름의 세 글자 — Twin(비평가 두 개), Delayed(정책 늦게 갱신), 그리고 목표 정책 평활화 — 가 각각 무엇을 막는지 설명할 수 있습니다.
- 목표 네트워크(target network)가 '안정'뿐 아니라 '오차 누적'을 줄이는 장치라는 관점을 얻습니다.
- MuJoCo 7개 과제에서 DDPG · PPO · TRPO · ACKTR · SAC와 비교한 결과를 읽을 수 있습니다.
초록 (번역)
심층 Q-러닝 같은 가치 기반 강화학습 방법에서는 함수 근사 오차가 가치 추정을 과대하게 만들고 최적이 아닌 정책으로 이어진다는 사실이 알려져 있습니다. 이 논문은 이 문제가 액터-크리틱 환경에서도 그대로 남아 있음을 보이고, 액터와 크리틱 양쪽에서 그 영향을 최소화하는 새로운 장치를 제안합니다. 제안 알고리즘은 Double Q-러닝을 바탕으로, 두 크리틱 중 더 작은 값을 취해 과대추정을 제한합니다. 또한 목표 네트워크와 과대추정 편향 사이의 연관을 밝히고, 갱신마다 생기는 오차를 줄여 성능을 더 높이기 위해 정책 갱신을 늦출 것을 제안합니다. OpenAI gym 과제 묶음에서 평가한 결과, 시험한 모든 환경에서 기존 최고 성능을 넘어섰습니다.
무엇을 풀었나
Q-러닝은 다음 상태에서 "가장 좋은 행동의 값"을 목표로 삼습니다. 그런데 신경망이 추정한 Q값에는 늘 오차가 섞여 있습니다. 오차가 평균 0이어도, 여러 값 중 최댓값을 고르면 '우연히 크게 잘못 잡힌 값'이 뽑히기 쉬워 결과가 체계적으로 커집니다. 이것이 과대추정 편향입니다.
이산 행동(아타리 등)에서는 Double DQN이 이 문제를 줄였습니다. 하지만 연속 행동을 다루는 DDPG 같은 액터-크리틱에서는 최댓값을 직접 고르지 않고 경사로 정책을 고치기 때문에, 과대추정이 있는지조차 분명하지 않았습니다.
이 논문은 세 가지를 보였습니다.
- 결정적 정책 경사에서도 몇 가지 가정 아래 과대추정이 생긴다는 것을 증명하고, Hopper · Walker2d에서 DDPG의 Q값이 실제 값보다 뚜렷이 높게 잡히는 것을 측정했습니다.
- Double DQN 방식을 액터-크리틱에 그대로 옮기면 효과가 거의 없었습니다. 정책이 천천히 바뀌어 현재 네트워크와 목표 네트워크가 너무 비슷하기 때문입니다.
- 시간차 학습에서는 오차가 갱신마다 쌓여 분산이 커지고, 이것이 정책을 망가뜨리는 악순환(나쁜 크리틱 → 나쁜 정책 → 더 나쁜 크리틱)을 만듭니다.
핵심 아이디어
flowchart LR
A[리플레이 버퍼에서 미니배치] --> B[목표 액터로 다음 행동 + 잘린 잡음]
B --> C[목표 크리틱 두 개로 Q 계산]
C --> D[둘 중 작은 값으로 목표 y]
D --> E[크리틱 두 개 모두 y에 맞춰 갱신]
E --> F{d번째 갱신인가?}
F -- 예 --> G[액터를 Q1 기준으로 갱신]
G --> H[목표 네트워크를 천천히 따라가게 갱신]
F -- 아니오 --> A
H --> A1. 왜 과대추정이 생기나
직관: 시험 점수를 잡음 섞인 채점기로 세 번 매긴 뒤 "가장 높은 점수"만 기록하면, 실제 실력보다 높게 기록되기 쉽습니다(해설용 비유).
단계: ① 각 행동의 Q값 추정에 잡음 이 붙습니다. ② 최댓값을 고르면 잡음이 큰 쪽이 뽑히기 쉽습니다. ③ 그 값이 벨만 방정식을 타고 이전 상태로 전파됩니다. ④ 갱신을 거듭할수록 부풀림이 쌓입니다.
| 기호 | 뜻 |
|---|---|
| 다음 상태 에서 행동 를 했을 때의 (참) 가치 | |
| 함수 근사 때문에 생기는 추정 오차 | |
| 오차에 대한 평균 |
숫자로 해 보기(해설용 예): 두 행동의 참값이 모두 5이고, 추정 오차가 반반 확률로 또는 이라 합시다. 가능한 경우는 (6,6) (6,4) (4,6) (4,4)이고 최댓값은 6, 6, 6, 4입니다. 평균은 로, 참 최댓값 5보다 0.5 큽니다. 오차 평균이 0인데도 최댓값은 부풀려집니다.
2. 클립드 더블 Q-러닝 (Twin)
직관: 감정가 두 명에게 같은 물건 값을 매기게 하고, 더 낮게 부른 값을 믿습니다. 한쪽이 부풀렸다면 다른 쪽이 잡아 줍니다.
단계: ① 크리틱 , 두 개를 따로 학습합니다. ② 목표값을 만들 때 두 목표 크리틱이 낸 값 중 작은 쪽을 씁니다. ③ 두 크리틱 모두 같은 목표 로 학습합니다. ④ 액터는 만 보고 고칩니다(계산 절약).
| 기호 | 뜻 |
|---|---|
| 이번에 받은 보상 | |
| 할인율 | |
| 번째 크리틱의 목표(천천히 따라오는) 네트워크 | |
| 목표 액터가 고른 다음 행동(3절의 잡음 포함) |
왜 이렇게 했나: Double DQN처럼 '현재 네트워크로 고르고 목표 네트워크로 평가'하는 방식은 액터-크리틱에서 두 네트워크가 너무 비슷해 효과가 적었습니다. 원래의 Double Q-러닝(크리틱 쌍)도 크리틱끼리 같은 버퍼를 쓰니 완전히 독립이 아니어서 과대추정이 남았습니다. 최솟값을 쓰면 오히려 과소추정 쪽으로 기울 수 있지만, 저자들은 이쪽이 낫다고 봅니다. 과소추정된 행동은 정책이 피하므로 그 값이 정책 갱신을 통해 퍼지지 않기 때문입니다.
숫자로 해 보기(해설용 예): , , 두 목표 크리틱이 , 을 냈다면 입니다. 큰 값 10을 썼다면 였습니다.
덤으로, 최솟값은 추정 오차의 분산이 작은 상태를 더 높게 평가하는 경향이 있습니다. 여러 확률변수의 최솟값의 기댓값은 분산이 클수록 작아지기 때문입니다. 그래서 정책이 더 '안전한' 쪽으로 갱신됩니다.
3. 오차는 쌓인다 — 목표 네트워크와 정책 지연 (Delayed)
직관: 지도(크리틱)가 아직 엉터리인데 그 지도를 보고 길(정책)을 자꾸 바꾸면 더 헤맵니다. 지도를 몇 번 다듬은 뒤에 한 번 길을 바꿉니다.
단계: 신경망 크리틱은 벨만 방정식을 정확히 만족하지 못하고 갱신마다 잔여 TD 오차 를 남깁니다. 논문은 이것을 펼쳐 보이면, 크리틱이 배우는 것이 '기대 보상 합'이 아니라 '기대 보상 합에서 미래 TD 오차의 할인 합을 뺀 것'임을 보입니다.
| 기호 | 뜻 |
|---|---|
| 번째 단계에서 남은 TD 오차 | |
| 먼 미래일수록 작아지는 할인 가중치 | |
| 에피소드 끝 시점 |
따라서 가 1에 가까우면 오차의 분산이 빠르게 커질 수 있습니다. 논문은 Hopper에서 목표 네트워크 갱신 비율 를 1(목표 네트워크 없음), 0.1, 0.01로 바꿔 보았습니다. 정책을 고정하면 모두 비슷하게 수렴하지만, 정책도 함께 학습하면 빠르게 갱신되는 목표 네트워크에서 값이 크게 발산했습니다.
결론과 설계: 크리틱을 번 갱신할 때마다 액터와 목표 네트워크를 한 번만 갱신합니다. 목표 네트워크는 로 천천히 따라갑니다.
왜 이렇게 했나: 분산이 큰 가치 추정으로 정책을 고치는 것이 발산의 원인이라면, 오차를 먼저 줄인 뒤 정책을 고치는 것이 맞습니다. 액터 갱신 횟수가 절반이 되지만, 논문의 실험에서는 성능이 오히려 대체로 좋아지고 학습 시간도 줄었습니다.
숫자로 해 보기(해설용 예): 이면 크리틱 갱신 1, 2, 3, 4, … 중 2, 4, 6번째에만 액터를 고칩니다. 이고 현재 가중치가 1.0, 목표 가중치가 0.0이면 한 번 갱신 후 목표 가중치는 입니다.
4. 목표 정책 평활화 (Target Policy Smoothing)
직관: 비슷한 행동은 비슷한 가치를 가져야 합니다. 행동 하나의 '뾰족한' Q값을 믿지 말고, 그 주변을 조금 흔들어 평균을 냅니다.
단계: ① 목표 액터가 행동 를 냅니다. ② 정규분포 잡음을 더하되 범위 로 자릅니다. ③ 이렇게 흔든 행동으로 목표 Q를 계산합니다. ④ 미니배치 평균이 '주변 행동 평균'을 근사합니다.
| 기호 | 뜻 |
|---|---|
| 목표 액터(결정적 정책) | |
| 평균 0, 표준편차 인 정규분포 잡음 | |
| 잡음이 보다 커지지 않게 자르기 |
왜 이렇게 했나: 결정적 정책은 Q값 표면의 좁은 봉우리에 과적합하기 쉽습니다. 이는 SARSA식 갱신을 흉내 낸 정규화입니다. 저자들은 SARSA에서 나온 정책이 흔들림에 강한 행동을 선호해 더 안전하다는 직관을 근거로 듭니다.
숫자로 해 보기(해설용 예): 목표 행동이 이고 뽑힌 잡음이 이면, 논문 설정 에서 잡음은 로 잘려 이 됩니다.
5. 실험 설정 (논문 기준)
- 액터 · 크리틱 모두 은닉층 400 · 300의 2층 신경망, ReLU, 액터 출력에 tanh. 크리틱은 첫 층에서 상태와 행동을 함께 받습니다.
- Adam, 학습률 , 미니배치 100, 리플레이 버퍼는 전체 기록.
- 목표 정책 평활화 잡음 를 로 자름, 정책 지연 , .
- 처음 일정 단계(HalfCheetah · Ant는 10000단계, 나머지는 1000단계)는 순수 탐색 정책, 이후 탐색 잡음 . 원래 DDPG의 Ornstein-Uhlenbeck 잡음은 이점이 없어 쓰지 않았습니다.
- 과제마다 100만 단계, 5000단계마다 평가(탐색 잡음 없이 10에피소드 평균), 10개 시드.
결과
MuJoCo 7개 과제에서 10번 시도의 최대 평균 반환값(Table 1)을 요약하면 다음과 같습니다.
| 과제 | TD3 | DDPG(baselines) | 재조정한 DDPG | SAC |
|---|---|---|---|---|
| HalfCheetah | 9636.95 | 3305.60 | 8577.29 | 2347.19 |
| Hopper | 3564.07 | 2020.46 | 1860.02 | 2996.66 |
| Walker2d | 4682.82 | 1843.85 | 3098.11 | 1283.67 |
| Ant | 4372.44 | 1005.30 | 888.77 | 655.35 |
- 논문은 TD3가 모든 과제에서 최종 성능과 학습 속도 모두 다른 알고리즘과 같거나 앞섰다고 보고합니다. PPO · TRPO · ACKTR도 비교 대상이었습니다.
- 구성 요소 빼 보기(Table 2, 마지막 10회 평가 평균): Ant에서 TD3는 4185.06이었는데 클립드 더블 Q를 빼면(TD3 - CDQ) 849.75로 크게 떨어졌습니다. 한 가지 요소만 더했을 때는 대부분 개선이 미미했고, 조합할 때 성능이 크게 올랐습니다.
- Double DQN · Double Q-러닝을 액터-크리틱으로 옮긴 변형(DDQN-AC · DQ-AC)은 같은 지연 · 평활화를 써도 TD3 - CDQ보다 의미 있게 낫지 않았습니다(Ant 제외).
- 주의: SAC 수치는 저자 구현으로 돌린 결과이고, 논문 각주는 SAC 보고치와의 차이를 부록에서 논의한다고 밝힙니다.
왜 중요한가 · 이후 영향
- 연속 제어의 기본값: DDPG를 쓰던 자리에 TD3를 쓰는 것이 흔해졌습니다. 고친 부분이 몇 줄이라 다른 액터-크리틱에도 쉽게 붙일 수 있다는 점을 저자들도 강조합니다.
- '두 크리틱 중 최솟값'의 확산: 같은 시기에 나온 SAC의 arXiv판도 이 논문을 인용하며 Q 함수 두 개의 최솟값을 씁니다. 오프라인 강화학습에서 과대추정을 막는 CQL 같은 연구도 같은 문제의식을 이어 갑니다.
- 재현성: 많은 시드로 실험하고 코드와 학습 곡선을 공개해, 강화학습 실험의 신뢰성 논의에 기여했습니다.
한계 · 주의할 점
- 최솟값은 과소추정을 부를 수 있습니다. 저자들은 과대추정보다 덜 해롭다고 주장하지만, 탐색이 중요한 과제에서는 지나치게 보수적일 수 있습니다.
- 정책이 결정적이라 탐색은 따로 더한 잡음에 의존합니다. 잡음 크기 같은 하이퍼파라미터에 민감할 수 있습니다.
- 실험은 MuJoCo 시뮬레이터의 7개 과제에 한정됩니다. 실제 로봇 · 이산 행동 · 이미지 입력에서의 효과는 이 논문만으로는 알 수 없습니다.
- 과대추정에 대한 증명은 '학습률이 충분히 작을 때' 같은 가정 아래의 결과입니다.
이어서 읽을 것
- 앞: DDPG · Double DQN · DQN
- 함께: 소프트 액터-크리틱 (SAC)
- 뒤: 보수적 Q-러닝 (CQL) · 오프라인 강화학습 튜토리얼
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 액터-크리틱(actor-critic) | 행동을 고르는 정책(액터)과 그 행동의 가치를 매기는 함수(크리틱)를 함께 학습하는 방식 |
| 과대추정 편향(overestimation bias) | 잡음 섞인 추정값 중 최댓값을 고르다 보니 가치가 체계적으로 커지는 현상 |
| 결정적 정책(deterministic policy) | 같은 상태에서 늘 같은 행동을 내는 정책 |
| 목표 네트워크(target network) | 학습 목표를 계산하려고 천천히 따라오게 둔 네트워크 사본 |
| TD 오차(TD error) | 한 단계 뒤 정보로 만든 목표값과 지금 추정값의 차이 |
| 경험 재생(experience replay) | 지난 경험을 버퍼에 저장해 무작위로 다시 뽑아 학습하는 방법 |
| 정규화(regularization) | 추정이 지나치게 뾰족해지지 않도록 학습을 누르는 장치 |
스스로 점검
- 오차의 평균이 0인데 왜 최댓값은 커지나? — 여러 값 중 최댓값을 고르면 우연히 크게 잘못 잡힌 값이 뽑힐 가능성이 높기 때문입니다. 평균 0인 오차도 '최댓값'을 거치면 양수 쪽으로 치우칩니다.
- Double DQN 방식이 액터-크리틱에서 잘 안 통한 이유는? — 정책이 천천히 바뀌어 현재 네트워크와 목표 네트워크가 너무 비슷하므로, 서로 독립적인 추정 역할을 못 하기 때문입니다.
- 정책 갱신을 늦추면 무엇이 좋아지나? — 크리틱의 오차를 먼저 줄인 뒤 정책을 고치므로, 분산이 큰 가치 추정에 끌려 정책이 망가지는 악순환을 줄입니다.
다음에 볼 것
이 글을 이해했다면 이어서 보면 좋은 항목입니다.
- 소프트 액터-크리틱 (SAC) — 보상과 엔트로피를 함께 최대화하는 오프폴리시 확률적 액터-크리틱, SAC
출처
- 원문: arxiv.org/abs/1802.09477 (2018 · Scott Fujimoto 외)
AI 원리부터 이해하기 · 강화학습 모듈
강화학습 모듈 학습
이 글은 강화학습 모듈의 학습 자료입니다. 전체 31개 자료 중 21번째입니다.
출처·원문
원문 보기요약만