검색
← 모듈 로드맵

함수 근사: 표에서 신경망으로 (선형 가치 근사 · 반경사 TD · 치명적 삼중주)

강의 · 준전문가 · KAITABASE 정리

원제 · Value Function Approximation: Linear Methods, Semi-gradient TD, the Deadly Triad (Sutton · Barto 9~11장 참고)

선형 가치 근사 · 반경사 TD · w-2w 발산 예 · 치명적 삼중주로 DQN 장치를 이해하는 수업

먼저 알아야 할 것

TD 학습 · Q-러닝 · SARSA경사 하강법과 기울기벡터 내적할인된 반환

다루는 내용

표 대신 가중치 함수로 가치를 근사할 때 생기는 일반화와 그 위험을 다룹니다. 경사 몬테카를로와 반경사 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 치명적 삼중주)
트랙 · 수준강화학습 · 중급
이 수업이 다루는 범위표의 한계와 일반화, 가치 오차 VE‾\overline{VE}, 경사 몬테카를로, 선형 근사와 특징, 반경사 TD(0), TD 고정점과 오차 상한, 반경사 SARSA, w-2w 발산 예, 치명적 삼중주, DQN의 대응

들어가기 전에

한눈에 보기

  • 표 대신 함수로 가치를 나타내면 왜 일반화(안 가 본 상태도 짐작)가 생기는지 압니다.
  • 선형 근사 v^(s,w)=w⊤x(s)\hat v(s,\mathbf w)=\mathbf w^\top\mathbf x(s) 에서 TD 갱신을 손으로 한 번 계산합니다.
  • TD 갱신이 '반쪽 경사'라 불리는 이유를 설명할 수 있습니다.
  • 숫자 두 개짜리 예(w와 2w)로 학습이 무한대로 발산하는 장면을 직접 봅니다.
  • 치명적 삼중주(함수 근사 + 부트스트래핑 + 오프폴리시)와 DQN의 대응을 연결합니다.

1. 왜 표로는 안 되나

직관(해설용 비유). 표 형식 학습은 "가 본 집의 주소마다 메모를 남기는" 방식입니다. 한 번도 안 가 본 집에 대해서는 아무것도 모릅니다. 사람은 "이 동네 · 이 크기 집은 대체로 이렇다"고 비슷한 집끼리 묶어 짐작합니다. 함수 근사가 바로 이 짐작(일반화)입니다.

두 가지 벽.

  1. 메모리: 1,000 × 1,000 격자에 행동 4개면 칸이 400만 개입니다(해설용 계산). 화면 픽셀 조합은 그보다 상상할 수 없이 많습니다.
  2. 경험: 칸이 많으면 대부분의 칸은 한 번도 방문하지 못합니다. 앞 실습에서 거의 시도 안 한 칸의 값이 엉뚱하게 남는 것을 봤습니다.

함수 근사에서는 가치 함수를 가중치 벡터 w\mathbf w(보통 상태 수보다 훨씬 적은 개수)로 표현합니다. 그 대가로 한 상태를 고치면 다른 상태의 값도 같이 바뀝니다. 이것이 일반화의 힘이자 불안정의 씨앗입니다.

2. 무엇을 줄이나: 가치 오차와 경사 몬테카를로

책은 근사가 얼마나 좋은지를 상태 분포 μ(s)\mu(s) 로 가중한 제곱 오차로 잽니다(식 9.1).

VE‾(w)=∑sμ(s) [vπ(s)−v^(s,w)]2\overline{VE}(\mathbf w) = \sum_{s} \mu(s)\,\big[v_\pi(s) - \hat v(s,\mathbf w)\big]^2
기호뜻
vπ(s)v_\pi(s)참 가치(모름)
v^(s,w)\hat v(s,\mathbf w)가중치 w\mathbf w 로 계산한 근사 가치
μ(s)\mu(s)상태 ss 를 얼마나 자주 겪는지(온폴리시 분포). 자주 가는 상태의 오차를 더 중요하게 봄

참 가치는 모르므로, 한 판이 끝난 뒤의 실제 반환 GtG_t 를 목표로 삼아 확률적 경사 하강을 합니다(경사 몬테카를로, 식 9.7의 특수한 경우).

w←w+α [Gt−v^(St,w)] ∇v^(St,w)\mathbf w \leftarrow \mathbf w + \alpha\,\big[G_t - \hat v(S_t,\mathbf w)\big]\,\nabla \hat v(S_t,\mathbf w)

GtG_t 는 w\mathbf w 와 무관한 '진짜 표본'이므로 이것은 제대로 된 경사 하강이고, 책은 적절한 조건에서 국소 최적으로 수렴한다고 설명합니다.

3. 선형 근사와 특징

가장 단순하고 이론이 잘 정리된 경우는 선형 근사입니다(식 9.8).

v^(s,w)=w⊤x(s)=∑i=1dwi xi(s),∇v^(s,w)=x(s)\hat v(s,\mathbf w) = \mathbf w^\top \mathbf x(s) = \sum_{i=1}^{d} w_i\,x_i(s), \qquad \nabla \hat v(s,\mathbf w) = \mathbf x(s)
기호뜻
x(s)\mathbf x(s)상태 ss 를 설명하는 특징(feature) 벡터. 사람이 설계하거나 신경망이 만듦
dd특징 개수 = 가중치 개수
∇v^\nabla\hat v선형이면 기울기가 그냥 특징 벡터 — 계산이 아주 쉬움

특징을 만드는 방법(책 9.5절 개요).

  • 상태 묶기(state aggregation): 비슷한 상태들을 한 묶음으로 보고 묶음마다 값 하나. 표 형식은 "묶음 크기 1"인 특수한 경우입니다.
  • 다항식 · 푸리에 특징: 위치 pp 가 있으면 (1,p,p2,… )(1, p, p^2, \dots) 나 코사인 함수들을 특징으로.
  • 거친 부호화 · 타일 부호화(coarse/tile coding): 겹치는 여러 '격자 그물'을 깔고, 상태가 들어간 칸만 1로 켭니다. 책 10장의 산악 자동차(Mountain Car) 예가 이 방식을 씁니다.
  • 신경망: 특징 자체를 학습합니다. 이때 ∇v^\nabla\hat v 는 역전파로 구합니다.

4. 반경사 TD(0): 목표가 움직이는 경사

몬테카를로 대신 TD처럼 한 걸음 뒤의 추정값을 목표로 쓰면(부트스트래핑) 다음 갱신이 됩니다.

w←w+α [Rt+1+γ v^(St+1,w)−v^(St,w)] ∇v^(St,w)\mathbf w \leftarrow \mathbf w + \alpha\,\big[R_{t+1} + \gamma\,\hat v(S_{t+1},\mathbf w) - \hat v(S_t,\mathbf w)\big]\,\nabla \hat v(S_t,\mathbf w)

왜 '반쪽'인가. 목표 R+γv^(St+1,w)R+\gamma\hat v(S_{t+1},\mathbf w) 자체가 w\mathbf w 에 의존합니다. 제곱 오차를 w\mathbf w 로 정말 미분하면 목표 쪽의 기울기 γ∇v^(St+1,w)\gamma\nabla\hat v(S_{t+1},\mathbf w) 도 나와야 하는데, TD는 그 부분을 버리고 예측 쪽 기울기만 씁니다. 책은 그래서 이것을 반경사(semi-gradient) 방법이라 부릅니다. 참된 경사 하강이 아니므로 수렴 보장이 약하지만, 선형 · 온폴리시 같은 중요한 경우에는 안정적으로 수렴하고, 보통 훨씬 빠르며, 한 판이 끝나기를 기다리지 않고 온라인으로 배울 수 있다는 장점이 있습니다.

TD 고정점. 선형 반경사 TD(0)는 wTD=A−1b\mathbf w_{TD}=A^{-1}\mathbf b 라는 점(TD 고정점)으로 수렴합니다(식 9.12). 이 점의 오차는 가능한 최소 오차의 일정 배 이내라는 것이 증명되어 있습니다(식 9.14, 연속 과제).

VE‾(wTD)≤11−γ min⁡wVE‾(w)\overline{VE}(\mathbf w_{TD}) \le \frac{1}{1-\gamma}\,\min_{\mathbf w}\overline{VE}(\mathbf w)

γ=0.9\gamma=0.9 면 최대 10배, γ=0.99\gamma=0.99 면 최대 100배입니다. 부트스트래핑은 빠른 대신 근사가 나쁠 때 편향이 남을 수 있다는 뜻입니다.

숫자로 해 보기(해설용). 특징 2개, x(A)=(1,0)\mathbf x(A)=(1,0), x(B)=(1,1)\mathbf x(B)=(1,1), 처음 w=(0,0)\mathbf w=(0,0), α=0.5\alpha=0.5, γ=0.9\gamma=0.9.

  1. 전이 A→BA\to B, 보상 1: TD 오차 δ=1+0.9×0−0=1\delta = 1 + 0.9\times0 - 0 = 1. w←(0,0)+0.5×1×(1,0)=(0.5, 0)\mathbf w \leftarrow (0,0)+0.5\times1\times(1,0)=(0.5,\ 0).
    • 이제 v^(A)=0.5\hat v(A)=0.5 — 그리고 한 번도 고치지 않은 v^(B)\hat v(B) 도 0.50.5 가 됐습니다. 첫 번째 특징을 공유하기 때문입니다(일반화).
  2. 전이 B→B\to 끝, 보상 0: δ=0−0.5=−0.5\delta = 0 - 0.5 = -0.5. w←(0.5,0)+0.5×(−0.5)×(1,1)=(0.25, −0.25)\mathbf w \leftarrow (0.5,0)+0.5\times(-0.5)\times(1,1) = (0.25,\ -0.25).
    • v^(B)=0\hat v(B)=0, v^(A)=0.25\hat v(A)=0.25. B를 고치면서 A도 같이 내려갔습니다.

표 형식이었다면 각 칸이 따로 움직였을 것입니다. 함수 근사에서는 갱신 하나가 비슷한 상태 전체로 번집니다.

5. 제어로 넓히기: 반경사 SARSA

행동 가치 q^(s,a,w)\hat q(s,a,\mathbf w) 에도 같은 틀을 씁니다(책 10.1절).

w←w+α [Rt+1+γ q^(St+1,At+1,w)−q^(St,At,w)] ∇q^(St,At,w)\mathbf w \leftarrow \mathbf w + \alpha\,\big[R_{t+1} + \gamma\,\hat q(S_{t+1},A_{t+1},\mathbf w) - \hat q(S_t,A_t,\mathbf w)\big]\,\nabla \hat q(S_t,A_t,\mathbf w)

ε-탐욕으로 행동하고, 그 행동의 근사 가치를 이 식으로 고칩니다. 책은 타일 부호화 특징을 쓴 반경사 SARSA로 산악 자동차 과제를 풉니다. 목표의 q^(St+1,At+1)\hat q(S_{t+1},A_{t+1}) 를 max⁡aq^(St+1,a)\max_a \hat q(S_{t+1},a) 로 바꾸면 Q-러닝형이 되는데, 바로 다음 절의 위험이 여기서 생깁니다.

mermaid
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 --> S

6. 발산하는 예: w와 2w

책 11.2절은 Tsitsiklis · Van Roy(1996)가 처음 제시한 아주 작은 예를 듭니다. 두 상태의 특징이 숫자 1과 2라서 근사 가치가 각각 ww, 2w2w 입니다. 첫 상태에서는 행동이 하나뿐이고, 보상 0으로 둘째 상태로 갑니다.

TD 오차와 반경사 갱신은 다음과 같습니다.

δ=0+γ⋅2w−w=(2γ−1) w,w←w+α δ⋅1=(1+α(2γ−1)) w\delta = 0 + \gamma\cdot 2w - w = (2\gamma-1)\,w,\qquad w \leftarrow w + \alpha\,\delta\cdot 1 = \big(1+\alpha(2\gamma-1)\big)\,w

곱하는 수 1+α(2γ−1)1+\alpha(2\gamma-1) 이 1보다 크면 ww 는 무한대로 갑니다. 그 조건은 γ>0.5\gamma>0.5 이고, 걸음 크기 α\alpha 와 상관없습니다(α\alpha 는 속도만 바꿈).

숫자로 해 보기(python으로 검산). w=10w=10, α=0.1\alpha=0.1, γ=0.9\gamma=0.9 면 곱하는 수는 1.081.08 입니다.

  • ww: 10 → 10.8 → 11.664 → 12.597 → 13.605 → 14.693 → … (끝없이 커짐)
  • 같은 조건에 γ=0.4\gamma=0.4 면 곱하는 수 0.980.98: 10 → 9.8 → 9.604 → … (안정)

왜 이런 일이 생기나. 첫 상태 값을 올리려고 ww 를 키우면, 둘째 상태 값(2w)은 두 배로 더 오릅니다. 목표가 도망가는 셈입니다. 온폴리시라면 둘째 상태에서 나가는 전이도 반드시 겪으며 ww 를 다시 깎겠지만, 오프폴리시 학습에서는 그 전이가 갱신되지 않을 수 있어 이 한 전이만 반복해서 갱신될 수 있습니다. 책은 더 완전한 반례로 베어드의 반례(Baird's counterexample)도 소개합니다.

7. 치명적 삼중주와 DQN

책 11.3절은 불안정과 발산의 위험이 다음 세 가지가 모두 모일 때 생긴다고 정리하고, 이를 치명적 삼중주(deadly triad)라 부릅니다.

요소뜻포기하면?
함수 근사상태 공간보다 훨씬 적은 가중치로 일반화큰 문제를 풀 수 없음 — 사실상 포기 불가
부트스트래핑목표에 현재 추정값이 들어감(DP · TD)몬테카를로로 가능하지만 계산 · 데이터 효율 손해가 큼
오프폴리시 학습목표 정책과 다른 분포의 전이로 학습온폴리시(SARSA 등)로 가능하지만 옛 경험 재사용 · 여러 정책 동시 학습을 잃음

책은 셋 중 둘만 있으면 불안정을 피할 수 있다고 말합니다. 또 이 위험은 제어나 탐험 때문이 아니라, 환경을 완벽히 아는 동적 계획법에서도 똑같이 생긴다고 강조합니다.

DQN은 정확히 이 셋을 다 가집니다. 신경망(함수 근사) + Q-러닝 목표 r+γmax⁡Qr+\gamma\max Q (부트스트래핑) + 리플레이 버퍼의 옛 경험(오프폴리시). 그래서 DQN · DQN Nature 판 은 안정화 장치를 붙였습니다.

  • 경험 재생(experience replay): 연속된 전이의 강한 상관을 끊고 데이터 분포를 고르게 섞습니다.
  • 타깃 네트워크(target network): 목표 r+γmax⁡aQ(s′,a;w−)r+\gamma\max_a Q(s',a;\mathbf w^-) 의 가중치 w−\mathbf w^- 를 한동안 고정해, w-2w 예처럼 "목표가 같이 도망가는" 현상을 늦춥니다.
  • 이후 Double DQN 은 max 연산의 과대 추정을 줄였습니다.

이 장치들은 삼중주를 없애지는 않고 그 위험을 실용적으로 줄이는 요령이라는 점을 기억해 두면 좋습니다.

연습 문제

  1. 4절 예에서 두 번째 갱신 뒤 다시 전이 A→BA\to B(보상 1)를 겪으면 w\mathbf w 는?
    • 풀이: v^(A)=0.25\hat v(A)=0.25, v^(B)=0\hat v(B)=0 이므로 δ=1+0.9×0−0.25=0.75\delta = 1 + 0.9\times0 - 0.25 = 0.75. w←(0.25,−0.25)+0.5×0.75×(1,0)=(0.625, −0.25)\mathbf w \leftarrow (0.25,-0.25)+0.5\times0.75\times(1,0) = (0.625,\ -0.25) 입니다.
  2. w-2w 예에서 γ=0.5\gamma=0.5 이면 어떻게 되나요?
    • 풀이: 2γ−1=02\gamma-1=0 이라 TD 오차가 늘 0이고 ww 는 변하지 않습니다(경계).
  3. γ=0.99\gamma=0.99 일 때 TD 고정점의 오차 상한은 최소 오차의 몇 배인가요?
    • 풀이: 1/(1−0.99)=1001/(1-0.99)=100 배입니다.
  4. 표 형식 학습은 선형 근사의 특수한 경우입니다. 특징 벡터를 어떻게 잡으면 되나요?
    • 풀이: 상태 수만큼의 길이를 가진 원-핫 벡터(자기 상태 자리만 1)로 잡으면 v^(s)=ws\hat v(s)=w_s 가 되어 칸 하나씩 따로 갱신하는 표와 같아집니다.
  5. 반경사 SARSA를 치명적 삼중주의 관점에서 보면 어떤 요소가 빠져 있나요?
    • 풀이: 함수 근사 · 부트스트래핑은 있지만 온폴리시라 오프폴리시 요소가 없습니다. 셋 중 둘만 있으므로 삼중주의 조건을 다 갖추지는 않습니다.

스스로 점검

  1. 함수 근사가 표보다 좋은 점과 위험한 점을 하나씩 말하면?
    • 답: 좋은 점은 안 가 본 상태도 비슷한 상태에서 짐작하는 일반화이고, 위험한 점은 한 상태를 고칠 때 다른 상태들도 함께 바뀌어 목표까지 흔들릴 수 있다는 것입니다.
  2. 경사 몬테카를로는 '진짜 경사'인데 반경사 TD는 아닌 이유는?
    • 답: 몬테카를로의 목표 GtG_t 는 w\mathbf w 와 무관하지만, TD 목표 R+γv^(S′,w)R+\gamma\hat v(S',\mathbf w) 는 w\mathbf w 에 의존하는데 그 기울기를 버리기 때문입니다.
  3. DQN의 타깃 네트워크가 w-2w 발산 예와 어떻게 연결되나요?
    • 답: 목표 계산에 쓰는 가중치를 한동안 고정해, 예측을 올리면 목표도 같이 올라가는 '도망가는 목표' 현상을 늦춥니다.

용어 정리

용어쉬운 뜻
함수 근사(function approximation)표 대신 가중치가 있는 함수로 가치를 나타내기
일반화(generalization)한 상태에서 배운 것이 비슷한 상태로 번지는 것
특징(feature)상태를 숫자 벡터로 설명한 것
가치 오차 VE‾\overline{VE}상태 분포로 가중한 참 가치와 근사 가치의 제곱 오차
경사 몬테카를로실제 반환을 목표로 한 확률적 경사 하강
반경사(semi-gradient)목표 쪽 기울기를 버리고 예측 쪽 기울기만 쓰는 갱신
TD 고정점선형 반경사 TD가 수렴하는 가중치
타일 부호화(tile coding)겹치는 격자 그물로 상태를 이진 특징으로 바꾸는 방법
부트스트래핑(bootstrapping)목표에 현재 추정값을 쓰는 것
치명적 삼중주(deadly triad)함수 근사 · 부트스트래핑 · 오프폴리시가 함께 있을 때의 발산 위험

더 깊이 보려면

다음에 볼 것

라이선스

본문은 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번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

본문 자체 작성 · 참고 자료 Sutton · Barto 2판(CC BY-NC-ND 2.0)