함수 근사: 표에서 신경망으로 (선형 가치 근사 · 반경사 TD · 치명적 삼중주)
선형 가치 근사 · 반경사 TD · w-2w 발산 예 · 치명적 삼중주로 DQN 장치를 이해하는 수업
먼저 알아야 할 것
다루는 내용
표 대신 가중치 함수로 가치를 근사할 때 생기는 일반화와 그 위험을 다룹니다. 경사 몬테카를로와 반경사 TD(0)의 차이, 선형 근사 손계산, TD 고정점 오차 상한을 정리합니다. w-2w 예로 오프폴리시 발산을 직접 계산하고, 치명적 삼중주와 DQN의 경험 재생 · 타깃 네트워크를 연결합니다.
해설
함수 근사: 표에서 신경망으로 (선형 가치 근사 · 반경사 TD · 치명적 삼중주)
지금까지는 상태마다 칸을 하나씩 둔 Q-표로 배웠습니다. 바둑판이나 카메라 화면처럼 상태가 셀 수 없이 많으면 표를 만들 수 없습니다. 이 수업은 가치를 가중치 몇 개로 된 함수로 근사하는 법을 배우고, 그때 TD 갱신이 왜 '반쪽 경사(semi-gradient)'가 되는지, 그리고 어떤 조합에서 학습이 폭발하는지(치명적 삼중주)를 손계산으로 확인합니다. DQN이 왜 그런 장치들을 달았는지가 여기서 풀립니다.
| 항목 | 내용 |
|---|---|
| 참고 출처 | Sutton · Barto 『Reinforcement Learning: An Introduction』 2판 9장(온폴리시 예측의 근사), 10장(온폴리시 제어의 근사), 11장(오프폴리시 근사, 11.2 발산 예 · 11.3 치명적 삼중주) |
| 트랙 · 수준 | 강화학습 · 중급 |
| 이 수업이 다루는 범위 | 표의 한계와 일반화, 가치 오차 , 경사 몬테카를로, 선형 근사와 특징, 반경사 TD(0), TD 고정점과 오차 상한, 반경사 SARSA, w-2w 발산 예, 치명적 삼중주, DQN의 대응 |
들어가기 전에
- Hugging Face 딥 강화학습 강좌 — TD 오차와 Q-러닝 · SARSA 갱신식. 이 수업은 그 식의 " 칸" 자리를 "함수 "로 바꿉니다.
- 직접 해 보기: 그리드월드 Q-러닝 — 표 형식 학습을 코드로 돌려 봤다면 무엇이 바뀌는지 바로 보입니다.
- 경사 하강법과 기울기(→ 딥러닝 문서로 배우기 (D2L)).
한눈에 보기
- 표 대신 함수로 가치를 나타내면 왜 일반화(안 가 본 상태도 짐작)가 생기는지 압니다.
- 선형 근사 에서 TD 갱신을 손으로 한 번 계산합니다.
- TD 갱신이 '반쪽 경사'라 불리는 이유를 설명할 수 있습니다.
- 숫자 두 개짜리 예(w와 2w)로 학습이 무한대로 발산하는 장면을 직접 봅니다.
- 치명적 삼중주(함수 근사 + 부트스트래핑 + 오프폴리시)와 DQN의 대응을 연결합니다.
1. 왜 표로는 안 되나
직관(해설용 비유). 표 형식 학습은 "가 본 집의 주소마다 메모를 남기는" 방식입니다. 한 번도 안 가 본 집에 대해서는 아무것도 모릅니다. 사람은 "이 동네 · 이 크기 집은 대체로 이렇다"고 비슷한 집끼리 묶어 짐작합니다. 함수 근사가 바로 이 짐작(일반화)입니다.
두 가지 벽.
- 메모리: 1,000 × 1,000 격자에 행동 4개면 칸이 400만 개입니다(해설용 계산). 화면 픽셀 조합은 그보다 상상할 수 없이 많습니다.
- 경험: 칸이 많으면 대부분의 칸은 한 번도 방문하지 못합니다. 앞 실습에서 거의 시도 안 한 칸의 값이 엉뚱하게 남는 것을 봤습니다.
함수 근사에서는 가치 함수를 가중치 벡터 (보통 상태 수보다 훨씬 적은 개수)로 표현합니다. 그 대가로 한 상태를 고치면 다른 상태의 값도 같이 바뀝니다. 이것이 일반화의 힘이자 불안정의 씨앗입니다.
2. 무엇을 줄이나: 가치 오차와 경사 몬테카를로
책은 근사가 얼마나 좋은지를 상태 분포 로 가중한 제곱 오차로 잽니다(식 9.1).
| 기호 | 뜻 |
|---|---|
| 참 가치(모름) | |
| 가중치 로 계산한 근사 가치 | |
| 상태 를 얼마나 자주 겪는지(온폴리시 분포). 자주 가는 상태의 오차를 더 중요하게 봄 |
참 가치는 모르므로, 한 판이 끝난 뒤의 실제 반환 를 목표로 삼아 확률적 경사 하강을 합니다(경사 몬테카를로, 식 9.7의 특수한 경우).
는 와 무관한 '진짜 표본'이므로 이것은 제대로 된 경사 하강이고, 책은 적절한 조건에서 국소 최적으로 수렴한다고 설명합니다.
3. 선형 근사와 특징
가장 단순하고 이론이 잘 정리된 경우는 선형 근사입니다(식 9.8).
| 기호 | 뜻 |
|---|---|
| 상태 를 설명하는 특징(feature) 벡터. 사람이 설계하거나 신경망이 만듦 | |
| 특징 개수 = 가중치 개수 | |
| 선형이면 기울기가 그냥 특징 벡터 — 계산이 아주 쉬움 |
특징을 만드는 방법(책 9.5절 개요).
- 상태 묶기(state aggregation): 비슷한 상태들을 한 묶음으로 보고 묶음마다 값 하나. 표 형식은 "묶음 크기 1"인 특수한 경우입니다.
- 다항식 · 푸리에 특징: 위치 가 있으면 나 코사인 함수들을 특징으로.
- 거친 부호화 · 타일 부호화(coarse/tile coding): 겹치는 여러 '격자 그물'을 깔고, 상태가 들어간 칸만 1로 켭니다. 책 10장의 산악 자동차(Mountain Car) 예가 이 방식을 씁니다.
- 신경망: 특징 자체를 학습합니다. 이때 는 역전파로 구합니다.
4. 반경사 TD(0): 목표가 움직이는 경사
몬테카를로 대신 TD처럼 한 걸음 뒤의 추정값을 목표로 쓰면(부트스트래핑) 다음 갱신이 됩니다.
왜 '반쪽'인가. 목표 자체가 에 의존합니다. 제곱 오차를 로 정말 미분하면 목표 쪽의 기울기 도 나와야 하는데, TD는 그 부분을 버리고 예측 쪽 기울기만 씁니다. 책은 그래서 이것을 반경사(semi-gradient) 방법이라 부릅니다. 참된 경사 하강이 아니므로 수렴 보장이 약하지만, 선형 · 온폴리시 같은 중요한 경우에는 안정적으로 수렴하고, 보통 훨씬 빠르며, 한 판이 끝나기를 기다리지 않고 온라인으로 배울 수 있다는 장점이 있습니다.
TD 고정점. 선형 반경사 TD(0)는 라는 점(TD 고정점)으로 수렴합니다(식 9.12). 이 점의 오차는 가능한 최소 오차의 일정 배 이내라는 것이 증명되어 있습니다(식 9.14, 연속 과제).
면 최대 10배, 면 최대 100배입니다. 부트스트래핑은 빠른 대신 근사가 나쁠 때 편향이 남을 수 있다는 뜻입니다.
숫자로 해 보기(해설용). 특징 2개, , , 처음 , , .
- 전이 , 보상 1: TD 오차 . .
- 이제 — 그리고 한 번도 고치지 않은 도 가 됐습니다. 첫 번째 특징을 공유하기 때문입니다(일반화).
- 전이 끝, 보상 0: . .
- , . B를 고치면서 A도 같이 내려갔습니다.
표 형식이었다면 각 칸이 따로 움직였을 것입니다. 함수 근사에서는 갱신 하나가 비슷한 상태 전체로 번집니다.
5. 제어로 넓히기: 반경사 SARSA
행동 가치 에도 같은 틀을 씁니다(책 10.1절).
ε-탐욕으로 행동하고, 그 행동의 근사 가치를 이 식으로 고칩니다. 책은 타일 부호화 특징을 쓴 반경사 SARSA로 산악 자동차 과제를 풉니다. 목표의 를 로 바꾸면 Q-러닝형이 되는데, 바로 다음 절의 위험이 여기서 생깁니다.
flowchart LR
S[상태 s] --> X[특징 x s<br/>사람이 설계 또는 신경망]
X --> V[근사 가치<br/>v̂ = wᵀx]
V --> T[TD 오차 δ = r + γ v̂ s' − v̂ s]
T --> U[w ← w + α δ ∇v̂ s<br/>예측 쪽 기울기만]
U --> G[비슷한 상태들의 값도<br/>함께 바뀜: 일반화]
G --> S6. 발산하는 예: w와 2w
책 11.2절은 Tsitsiklis · Van Roy(1996)가 처음 제시한 아주 작은 예를 듭니다. 두 상태의 특징이 숫자 1과 2라서 근사 가치가 각각 , 입니다. 첫 상태에서는 행동이 하나뿐이고, 보상 0으로 둘째 상태로 갑니다.
TD 오차와 반경사 갱신은 다음과 같습니다.
곱하는 수 이 1보다 크면 는 무한대로 갑니다. 그 조건은 이고, 걸음 크기 와 상관없습니다( 는 속도만 바꿈).
숫자로 해 보기(python으로 검산). , , 면 곱하는 수는 입니다.
- : 10 → 10.8 → 11.664 → 12.597 → 13.605 → 14.693 → … (끝없이 커짐)
- 같은 조건에 면 곱하는 수 : 10 → 9.8 → 9.604 → … (안정)
왜 이런 일이 생기나. 첫 상태 값을 올리려고 를 키우면, 둘째 상태 값(2w)은 두 배로 더 오릅니다. 목표가 도망가는 셈입니다. 온폴리시라면 둘째 상태에서 나가는 전이도 반드시 겪으며 를 다시 깎겠지만, 오프폴리시 학습에서는 그 전이가 갱신되지 않을 수 있어 이 한 전이만 반복해서 갱신될 수 있습니다. 책은 더 완전한 반례로 베어드의 반례(Baird's counterexample)도 소개합니다.
7. 치명적 삼중주와 DQN
책 11.3절은 불안정과 발산의 위험이 다음 세 가지가 모두 모일 때 생긴다고 정리하고, 이를 치명적 삼중주(deadly triad)라 부릅니다.
| 요소 | 뜻 | 포기하면? |
|---|---|---|
| 함수 근사 | 상태 공간보다 훨씬 적은 가중치로 일반화 | 큰 문제를 풀 수 없음 — 사실상 포기 불가 |
| 부트스트래핑 | 목표에 현재 추정값이 들어감(DP · TD) | 몬테카를로로 가능하지만 계산 · 데이터 효율 손해가 큼 |
| 오프폴리시 학습 | 목표 정책과 다른 분포의 전이로 학습 | 온폴리시(SARSA 등)로 가능하지만 옛 경험 재사용 · 여러 정책 동시 학습을 잃음 |
책은 셋 중 둘만 있으면 불안정을 피할 수 있다고 말합니다. 또 이 위험은 제어나 탐험 때문이 아니라, 환경을 완벽히 아는 동적 계획법에서도 똑같이 생긴다고 강조합니다.
DQN은 정확히 이 셋을 다 가집니다. 신경망(함수 근사) + Q-러닝 목표 (부트스트래핑) + 리플레이 버퍼의 옛 경험(오프폴리시). 그래서 DQN · DQN Nature 판 은 안정화 장치를 붙였습니다.
- 경험 재생(experience replay): 연속된 전이의 강한 상관을 끊고 데이터 분포를 고르게 섞습니다.
- 타깃 네트워크(target network): 목표 의 가중치 를 한동안 고정해, w-2w 예처럼 "목표가 같이 도망가는" 현상을 늦춥니다.
- 이후 Double DQN 은 max 연산의 과대 추정을 줄였습니다.
이 장치들은 삼중주를 없애지는 않고 그 위험을 실용적으로 줄이는 요령이라는 점을 기억해 두면 좋습니다.
연습 문제
- 4절 예에서 두 번째 갱신 뒤 다시 전이 (보상 1)를 겪으면 는?
- 풀이: , 이므로 . 입니다.
- w-2w 예에서 이면 어떻게 되나요?
- 풀이: 이라 TD 오차가 늘 0이고 는 변하지 않습니다(경계).
- 일 때 TD 고정점의 오차 상한은 최소 오차의 몇 배인가요?
- 풀이: 배입니다.
- 표 형식 학습은 선형 근사의 특수한 경우입니다. 특징 벡터를 어떻게 잡으면 되나요?
- 풀이: 상태 수만큼의 길이를 가진 원-핫 벡터(자기 상태 자리만 1)로 잡으면 가 되어 칸 하나씩 따로 갱신하는 표와 같아집니다.
- 반경사 SARSA를 치명적 삼중주의 관점에서 보면 어떤 요소가 빠져 있나요?
- 풀이: 함수 근사 · 부트스트래핑은 있지만 온폴리시라 오프폴리시 요소가 없습니다. 셋 중 둘만 있으므로 삼중주의 조건을 다 갖추지는 않습니다.
스스로 점검
- 함수 근사가 표보다 좋은 점과 위험한 점을 하나씩 말하면?
- 답: 좋은 점은 안 가 본 상태도 비슷한 상태에서 짐작하는 일반화이고, 위험한 점은 한 상태를 고칠 때 다른 상태들도 함께 바뀌어 목표까지 흔들릴 수 있다는 것입니다.
- 경사 몬테카를로는 '진짜 경사'인데 반경사 TD는 아닌 이유는?
- 답: 몬테카를로의 목표 는 와 무관하지만, TD 목표 는 에 의존하는데 그 기울기를 버리기 때문입니다.
- DQN의 타깃 네트워크가 w-2w 발산 예와 어떻게 연결되나요?
- 답: 목표 계산에 쓰는 가중치를 한동안 고정해, 예측을 올리면 목표도 같이 올라가는 '도망가는 목표' 현상을 늦춥니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 함수 근사(function approximation) | 표 대신 가중치가 있는 함수로 가치를 나타내기 |
| 일반화(generalization) | 한 상태에서 배운 것이 비슷한 상태로 번지는 것 |
| 특징(feature) | 상태를 숫자 벡터로 설명한 것 |
| 가치 오차 | 상태 분포로 가중한 참 가치와 근사 가치의 제곱 오차 |
| 경사 몬테카를로 | 실제 반환을 목표로 한 확률적 경사 하강 |
| 반경사(semi-gradient) | 목표 쪽 기울기를 버리고 예측 쪽 기울기만 쓰는 갱신 |
| TD 고정점 | 선형 반경사 TD가 수렴하는 가중치 |
| 타일 부호화(tile coding) | 겹치는 격자 그물로 상태를 이진 특징으로 바꾸는 방법 |
| 부트스트래핑(bootstrapping) | 목표에 현재 추정값을 쓰는 것 |
| 치명적 삼중주(deadly triad) | 함수 근사 · 부트스트래핑 · 오프폴리시가 함께 있을 때의 발산 위험 |
더 깊이 보려면
- S&B 9.4절(선형 TD 수렴 증명 상자), 9.5절(특징 만들기), 10장(산악 자동차), 11장(그래디언트 TD · 강조 TD 등 오프폴리시 안정화 방법).
- 딥 강화학습으로 사람 수준의 제어 (DQN, Nature 판) — 경험 재생 · 타깃 네트워크의 효과를 실험으로 확인한 논문.
- 오프라인 강화학습 튜토리얼 · 리뷰 — 새 데이터를 전혀 못 모으는, 오프폴리시의 극단에서 이 문제가 어떻게 더 심해지는지.
다음에 볼 것
- OpenAI Spinning Up: 딥 강화학습 입문 — 가치 대신 정책을 직접 근사하는 정책 경사. 크리틱이 바로 오늘 배운 가치 근사입니다.
- 딥 강화학습으로 아타리 게임하기 (DQN) — 신경망 함수 근사 + Q-러닝을 처음으로 대규모로 성공시킨 논문.
라이선스
본문은 KAITABASE 자체 해설입니다. 참고한 Sutton · Barto 2판 PDF는 판권면에 CC BY-NC-ND 2.0으로 표기되어 있습니다. 식은 책의 표기를 따랐고 문장은 옮기지 않았습니다. 특징 벡터 예와 격자 크기 계산은 해설용이며, w-2w 예의 수열은 python으로 검산했습니다.
출처
- Sutton · Barto, Reinforcement Learning: An Introduction 2판(2020 PDF) 9~11장: incompleteideas.net/book/RLbook2020.pdf
- Tsitsiklis, Van Roy (1996) — w-2w 예의 원 출처(책 11장 참고 문헌 노트 기준)
AI 원리부터 이해하기 · 강화학습 모듈
강화학습 모듈 학습
이 글은 강화학습 모듈의 학습 자료입니다. 전체 31개 자료 중 5번째입니다.
출처·원문
원문 보기요약만