18장 - 연속 상태 MDP와 모델 시뮬레이션

🏷️ "cs229" "machine-learning" "book"

18장. 연속 상태 MDP와 모델 시뮬레이션

이번 장에서는 연속 상태 공간(continuous state space)을 가진 MDP에 강화 학습을 적용하는 방법을 다룬다. 이산화(discretization)의 개념과 한계를 살펴본 뒤, 모델 기반 강화 학습과 시뮬레이터 구축 방법을 배우고, 최종적으로 적합 가치 반복(fitted value iteration) 알고리즘을 유도한다.

18-cs229-value-approximation.png

18.1 복습: MDP와 가치 반복

이전 장에서 배운 핵심 개념을 간략히 정리한다. 이번 장의 내용은 이 표기법과 아이디어 위에 구축되기 때문이다.

MDP는 상태(states), 행동(actions), 전이 확률(transition probabilities), 할인 인자(discount factor), 보상(reward)으로 구성된다. 정책 \(\pi\)에 대한 가치 함수 \(V^\pi\)는 상태 \(s\)에서 해당 정책을 실행할 때의 기대 보수(expected payoff)이며, 최적 가치 함수 \(V^*\)는 모든 정책 중 최대의 기대 보수를 나타낸다.

최적 가치 함수 \(V^*\)를 알고 있다면, 최적 정책 \(\pi^*\)는 다음과 같이 계산할 수 있다.

\[\pi^*(s) = \arg\max_a \mathbb{E}_{s' \sim P_{sa}}[V^*(s')]\]

이산 상태 MDP에서는 이것이 모든 상태 \(s'\)에 대한 합으로 표현되지만, 연속 상태 MDP로 일반화하면 \(s'\)가 전이 확률 \(P_{sa}\)에서 추출되는 확률 변수에 대한 기댓값이 된다.

가치 반복(value iteration) 알고리즘은 벨만 방정식을 반복적으로 적용하는 것이다.

\[V(s) := R(s) + \gamma \max_a \mathbb{E}_{s' \sim P_{sa}}[V(s')]\]

\(V(s)\)를 0으로 초기화하고 이 업데이트를 \(V\)\(V^*\)에 수렴할 때까지 반복한다. 수렴 후에는 각 상태에 대해 최적 행동 \(a\)를 계산할 수 있다.


18.2 연속 상태 공간

지금까지 다룬 MDP는 유한한 이산 상태 집합을 가지고 있었다. 그러나 실제 로봇 공학 문제에서는 상태 공간이 연속적인 경우가 대부분이다.

자동차의 상태 공간

자율주행 자동차를 만든다고 가정하자. 자동차의 상태를 모델링하는 일반적인 방법은 다음과 같다.

저속 주행에서는 위치와 방향만으로도 충분하지만, 일반적인 속도에서는 속도와 각속도까지 포함해야 한다. 이것은 6차원 상태 공간이 된다.

상태 공간에 무엇을 포함할지는 응용 분야에 따라 달라진다. 레이싱 트랙에서 경주하는 차량이라면 엔진 온도나 각 타이어의 마모도까지 모델링해야 할 수 있다. 일반적인 주행에서는 위의 6차원이면 충분하다.

로봇 공학에서 위치와 방향만을 사용하는 모델을 기구학 모델(kinematic model), 속도까지 포함하는 모델을 **동역학 모델(dynamics model)**이라 부른다.

헬리콥터의 상태 공간

헬리콥터는 2D가 아닌 3D 공간에서 비행하므로, 상태 공간이 더 크다.

이것은 12차원 상태 공간이다.

도립 진자(Inverted Pendulum)

강화 학습의 고전적인 벤치마크 문제로, 바퀴가 달린 작은 수레(cart) 위에 자유롭게 회전하는 막대(pole)가 붙어 있는 장치다. 힌지 부분에는 모터가 없으므로 막대는 자유롭게 쓰러진다. 목표는 수레를 좌우로 움직여 막대를 수직으로 세운 채 유지하는 것이다.

1차원 레일 위의 도립 진자에 대한 상태 공간은 다음과 같다.

이것은 4차원 상태 공간이다.

공통 구조

이 모든 문제에서 상태 공간은 \(\mathbb{R}^n\)으로 모델링된다. 자동차는 \(n=6\), 헬리콥터는 \(n=12\), 도립 진자는 \(n=4\)이다.


18.3 이산화(Discretization)

연속 상태 공간을 다루는 가장 단순한 방법은 이산화다. 예를 들어, 도립 진자의 2차원 상태 공간 \((x, \theta)\)에 격자(grid)를 씌워 각 칸에 번호를 매기면, 연속 상태 문제를 이산 상태 문제로 되돌릴 수 있다. 로봇이 어느 칸 안에 있든 해당 칸의 이산 상태에 있다고 간주하는 것이다.

이산화의 한계

첫 번째 문제: 조잡한 표현

이산화는 가치 함수를 **계단 함수(staircase function)**로 근사하는 것과 같다. 주택 가격 예측에 비유하면, 입력 특성을 몇 개의 구간으로 나누고 각 구간에서 상수 함수를 피팅하는 것이다. 데이터가 많고 입력 차원이 낮으면 이 방법도 동작하지만, 매끄러운 함수를 근사하기에는 부적합하다.

두 번째 문제: 차원의 저주(Curse of Dimensionality)

리처드 벨만(Richard Bellman)이 명명한 이 현상은 다음과 같다. 상태 공간이 \(\mathbb{R}^n\)이고 각 차원을 \(k\)개의 값으로 이산화하면, 총 이산 상태의 수는 \(k^n\)이 된다.

위치와 방향을 각각 10개의 값으로 이산화하는 것은 상당히 거친 이산화인데도, 총 상태 수는 \(10^n\)으로 상태 공간의 차원 \(n\)에 대해 지수적으로 증가한다.

차원의 저주는 연속 상태 공간에만 적용되는 것이 아니다. 공장에 100대의 기계가 있고 각 기계가 \(k\)개의 상태를 가질 수 있다면, 공장 전체의 상태 공간은 \(k^{100}\)이 된다. 이러한 매우 큰 이산 상태 공간에서도 적합 가치 반복이 훨씬 나은 알고리즘이 될 수 있다.

이산화 사용 지침

이산화의 한계에도 불구하고, 작은 문제에서는 빠르게 동작하는 무언가를 얻기 위한 간단한 방법이 될 수 있다.

상태 공간 차원

이산화 권장 여부

2~3차원

대부분의 문제에서 문제없이 동작한다

4~6차원

신중하게 고려하면 여전히 동작하는 경우가 많다. 중요한 차원을 더 세밀하게 이산화하는 비균등 이산화가 유용하다

7~8차원

한계에 근접한다. 이산화를 사용하지 않는 알고리즘을 심각하게 고려해야 한다

9차원 이상

이산화를 사용하는 것은 매우 드물다. 적합 가치 반복 등 대안 알고리즘을 사용해야 한다

예를 들어, 4차원인 도립 진자에서는 이산화가 잘 동작한다. 6차원인 자전거 제어에서는 약간의 노력을 기울이면 동작한다. 그러나 12차원인 헬리콥터에서는 이산화가 실용적이지 않다.

비균등 이산화의 핵심 아이디어는 다음과 같다. 행동이나 가치 함수가 상태 변수 \(s_2\)에 더 민감하고 \(s_1\)에는 덜 민감하다면, \(s_2\)\(s_1\)보다 훨씬 더 세밀하게 이산화하는 것이다. 이렇게 하면 총 이산 상태 수의 지수적 폭발을 약간이나마 줄일 수 있다.


18.4 가치 함수의 직접 근사

이산화 대신, \(V^*\)를 직접 근사하는 접근법이 있다. 선형 회귀에서 주택 가격을 특성의 함수로 근사하는 것과 유사한 비유를 생각해 보자.

선형 회귀에서는 다음과 같이 근사한다.

\[y \approx \theta^T \phi(x)\]

여기서 \(\phi(x)\)는 입력 \(x\)의 특성 벡터다. 예를 들어 \(\phi(x) = (x_1, x_2, x_1^2, x_1 x_2, \ldots)\) 등이 될 수 있다.

가치 반복에서도 마찬가지로, 가치 함수를 상태의 특성에 대한 선형 함수로 근사한다.

\[V^*(s) \approx \theta^T \phi(s)\]

이것이 적합 가치 반복 알고리즘의 핵심 아이디어다. 가치 함수를 근사하는 데 집중하는 이유는, 좋은 가치 함수 근사를 얻으면 앞서 본 공식을 사용하여 각 상태에 대한 최적 행동을 계산할 수 있기 때문이다.


18.5 모델/시뮬레이터 구축

적합 가치 반복 알고리즘은 MDP의 모델(model) 또는 **시뮬레이터(simulator)**와 함께 사용할 때 가장 잘 동작한다.

시뮬레이터란 무엇인가

시뮬레이터는 현재 상태 \(s\)와 행동 \(a\)를 입력으로 받아, 전이 확률 \(P_{sa}\)에 따라 다음 상태 \(s'\)를 출력하는 함수다.

\[\text{시뮬레이터}: (s, a) \longrightarrow s' \sim P_{sa}\]

여기서 상태는 실수 벡터이며, 이번 장에서는 편의상 행동 공간이 이산적이라고 가정한다. 실제로 많은 MDP에서 상태 공간은 고차원이지만 행동 공간은 상태 공간보다 훨씬 저차원이다.

시스템

상태 공간 차원

행동 공간 차원

자동차

6

2 (조향, 제동)

헬리콥터

12

4 (두 조종간 각각 2차원)

도립 진자

4

1 (좌우 이동)

상태 공간은 너무 고차원이어서 이산화하지 않더라도, 행동 공간은 저차원이므로 이산화하기가 훨씬 쉽다.

방법 1: 물리 시뮬레이터

시뮬레이터를 구축하는 첫 번째 방법은 물리 시뮬레이터를 사용하는 것이다. 도립 진자의 경우, 행동은 수레에 가하는 양 또는 음의 가속도다. 수레의 질량, 막대의 질량, 막대의 길이를 알고 뉴턴 역학 교과서를 참고하면, 상태가 시간에 따라 어떻게 변화하는지를 나타내는 \(\dot{s}\)를 유도할 수 있다.

시뮬레이터는 이를 이용하여 다음과 같이 다음 상태를 계산한다.

\[s' = s + \Delta t \cdot \dot{s}\]

여기서 \(\Delta t\)는 예를 들어 0.1초(10Hz 시뮬레이션)일 수 있다.

물리 방정식을 직접 유도하는 것보다는 오픈 소스 물리 엔진을 다운로드하여 시스템의 치수와 질량을 입력하면 시뮬레이터가 자동으로 생성된다. 이 방법은 도립 진자와 같은 문제에 잘 동작하며, 4족 보행 로봇을 걷게 하는 데에도 사용된 바 있다.

방법 2: 데이터로부터 학습

시뮬레이터를 구축하는 두 번째 방법은 데이터로부터 모델을 학습하는 것이다. 실무에서는 이 방법이 훨씬 더 자주 사용된다.

자율 헬리콥터 제어기를 만드는 과정을 사례로 살펴보자.

  1. 헬리콥터를 초기 상태 \(s_0\)에 놓는다. GPS, 가속도계, 자기 나침반으로 위치와 방향을 측정한다.
  2. 숙련된 조종사가 헬리콥터를 비행하면서 조종간으로 행동 \(a_0\)를 내린다.
  3. 0.1초 후 헬리콥터가 새로운 상태 \(s_1\)에 도달한다.
  4. 조종사가 다시 행동 \(a_1\)을 취하고, 상태 \(s_2\)가 관측된다.
  5. 이 과정을 반복하여 궤적 \(s_0, a_0, s_1, a_1, s_2, a_2, \ldots, s_T\)를 얻는다.

이러한 비행을 \(m\)번 수행하여 \(m\)개의 궤적을 수집한다.

이제 수집한 데이터에 지도 학습을 적용하여 \(s_{t+1}\)\(s_t\)\(a_t\)의 함수로 예측하는 모델을 학습한다.

선형 모델

선형 회귀를 사용하면 다음과 같이 근사할 수 있다.

\[s_{t+1} \approx As_t + Ba_t\]

여기서 \(A\)\(n \times n\) 행렬(상태 공간 차원의 정사각 행렬), \(B\)\(n \times d\) 행렬(\(d\)는 행동 공간의 차원)이다. 매개변수 \(A\)\(B\)를 피팅하기 위해 다음을 최소화한다.

\[\min_{A, B} \sum_{i=1}^{m} \sum_t \|s_{t+1}^{(i)} - (As_t^{(i)} + Ba_t^{(i)})\|^2\]

이것은 본질적으로 선형 회귀를 \(n\)번 실행하는 것과 동치다. 상태의 각 차원에 대해 한 번씩, 해당 차원의 다음 값을 예측하는 것이다.

이 선형 모델은 헬리콥터가 저속으로 비교적 수평하게 비행하는 경우에 나쁘지 않은 근사다. 고속의 격렬한 기동에서는 정확도가 떨어지지만 저속에서는 충분히 쓸 만하다.

비선형 특성을 사용하면 더 좋은 모델을 만들 수 있다.

\[s_{t+1} \approx A\phi(s_t) + B\phi'(a_t)\]

특성의 선택에 따라 성능이 달라진다.

결정론적 모델 vs 확률론적 모델

학습된 모델에는 두 가지 형태가 있다.

결정론적 모델:

\[s_{t+1} = As_t + Ba_t\]

확률론적 모델:

\[s_{t+1} = As_t + Ba_t + \epsilon_t, \quad \epsilon_t \sim \mathcal{N}(0, \Sigma)\]

확률론적 모델에서는 매 시간 단계마다 가우시안 벡터에서 노이즈 \(\epsilon_t\)를 샘플링하여 선형 모델의 예측에 더한다. 이는 시뮬레이터에서 작은 돌풍이 헬리콥터를 약간 흔드는 것과 같은 효과를 만든다.


18.6 모델 기반 강화 학습 vs 모델 프리 강화 학습

여기서 취하고 있는 접근법은 **모델 기반 강화 학습(model-based RL)**이다. 로봇의 모델을 구축하고, 시뮬레이터에서 강화 학습 알고리즘을 훈련한 뒤, 학습한 정책을 실제 로봇에 적용하는 것이다.

대안은 **모델 프리 강화 학습(model-free RL)**으로, 강화 학습 알고리즘을 실제 로봇에서 직접 실행하는 것이다.

로봇 공학에서는 모델 기반 RL이 더 빠르게 발전하고 있다. 물리적 로봇을 가지고 있다면, 강화 학습 알고리즘이 로봇을 마구 부딪히게 할 여유가 없기 때문이다. 학습 알고리즘이 올바른 제어법을 알아내기 전에 헬리콥터를 몇 대나 추락시켜야 하는가?

모델 프리 RL은 비디오 게임이나 체스, 바둑 같은 환경에서는 잘 동작한다. 비디오 게임 자체가 완벽한 시뮬레이터이므로, 알고리즘이 수억 번 실패해도 아무런 물리적 피해가 없기 때문이다. 그러나 물리적 로봇에 강화 학습을 적용한 성공 사례의 대부분은 모델 기반 접근법이다.

시뮬레이터에서 헬리콥터를 백만 번 추락시켜도 아무도 다치지 않고, 세상 어디에도 물리적 피해가 없다. 이것이 모델 기반 RL의 핵심 장점이다.


18.7 시뮬레이터에 노이즈를 추가해야 하는 이유

모델 기반 RL에서 매우 중요한 실용적 교훈이 있다.

결정론적 시뮬레이터를 사용하면, 학습된 정책이 시뮬레이터에서는 동작하지만 실제 로봇에서는 동작하지 않는 취약한(brittle) 모델이 만들어진다. 유튜브나 소셜 미디어에서 강화 학습으로 이상한 형태의 로봇(뱀 로봇, 5족 보행 로봇 등)을 제어하는 인상적인 영상을 볼 수 있다. 결정론적 시뮬레이터에서 그런 영상을 만드는 것은 그렇게 어렵지 않다. 그러나 그 정책을 실제 물리적 로봇에 적용하면 동작할 확률이 매우 낮다.

문제는 시뮬레이터가 절대 100% 정확하지 않다는 것이다. 항상 약간은 현실과 다르다.

교훈: 시뮬레이터에 노이즈를 반드시 추가하라. 약간의 확률적 시뮬레이터에서 학습한 정책이 노이즈에 대해 **강건(robust)**하다면, 현실 세계로 일반화될 가능성이 결정론적 시뮬레이터에서 학습한 정책보다 훨씬 높다.

노이즈의 정확한 분포를 모델링하는 것이 이상적이지만, 정확한 분포보다 노이즈를 추가한다는 사실 자체가 더 중요하다. 데이터에서 분포를 추정할 수도 있지만, 현실적인 수준의 노이즈를 적당히 설정해도 충분하다.


18.8 적합 가치 반복(Fitted Value Iteration)

특성 선택

알고리즘의 첫 단계는 상태 \(s\)의 특성 \(\phi(s)\)를 선택하는 것이다. 가치 함수를 다음과 같이 근사한다.

\[V(s) = \theta^T \phi(s)\]

도립 진자의 경우, \(\phi(s)\)에 포함할 수 있는 특성의 예시는 다음과 같다.

\[\phi(s) = (x, \dot{x}, x^2, x \cdot \dot{x}, x \cdot \theta, \theta^2, \ldots)\]

가치 함수는 어떤 상태에서 시작했을 때의 기대 보수, 즉 할인된 보상의 기대 합이다. 따라서 특성을 설계할 때는 "로봇이 얼마나 잘하고 있는지"를 잘 포착하는 특성을 선택해야 한다.

예를 들어, 도립 진자에서 막대가 한쪽으로 크게 기울어져 있으면 상황이 나빠 보인다. 하지만 수레의 속도 \(\dot{x}\)가 크고 올바른 방향이면, 기울어진 막대를 세울 수 있다. 따라서 \(\theta\)\(\dot{x}\)의 상호작용이 중요하며, \(\theta \cdot \dot{x}\)와 같은 교차 특성이 유용할 수 있다.

모델 기반 RL의 장점 중 하나는, 시뮬레이터가 있으면 사실상 무한한 양의 데이터를 생성할 수 있다는 것이다. 데이터가 풍부하므로 특성을 많이 선택해도 과적합(overfitting)의 위험이 낮다. 일부 특성이 유용하지 않더라도, 충분한 데이터가 있으면 알고리즘이 적절한 매개변수 \(\theta\)를 피팅할 수 있다.

알고리즘

원래의 가치 반복 알고리즘을 먼저 상기하자.

\[V(s) := R(s) + \gamma \max_a \mathbb{E}_{s' \sim P_{sa}}[V(s')]\]

적합 가치 반복은 이를 다음과 같이 수정한다.

1단계: 초기화

2단계: 반복 (수렴할 때까지)

각 상태 \(s^{(i)}\) (\(i = 1, \ldots, m\))에 대해:

(a) 각 행동 \(a\)에 대해, 시뮬레이터를 사용하여 \(k\)개의 다음 상태를 샘플링한다.

\[s'^{(j)} \sim P_{s^{(i)}a}, \quad j = 1, \ldots, k\]

(b) 해당 행동의 가치를 추정한다.

\[q(a) = R(s^{(i)}) + \gamma \cdot \frac{1}{k}\sum_{j=1}^{k} V(s'^{(j)})\]

여기서 \(V(s'^{(j)}) = \theta^T \phi(s'^{(j)})\)이며, \(\theta\)는 이전 반복의 값을 사용한다.

(c) \(y^{(i)} = \max_a q(a)\)로 설정한다.

\(y^{(i)}\)는 벨만 방정식 우변의 추정치다.

3단계: 선형 회귀

원래의 가치 반복에서는 \(V(s^{(i)}) := y^{(i)}\)로 직접 설정했다. 그러나 적합 가치 반복에서는 \(V(s)\)가 선형 함수 \(\theta^T \phi(s)\)로 표현되므로, 개별 점의 값을 직접 설정할 수 없다.

대신, \(\theta^T \phi(s^{(i)})\)\(y^{(i)}\)에 가능한 한 가까워지도록 선형 회귀를 실행한다.

\[\theta := \arg\min_\theta \sum_{i=1}^{m} \left(\theta^T \phi(s^{(i)}) - y^{(i)}\right)^2\]

2단계와 3단계를 수렴할 때까지 반복한다.

결정론적 시뮬레이터에서의 단순화

확률론적 시뮬레이터를 사용할 때는 기댓값을 근사하기 위해 \(k\)개의 샘플이 필요하다. 그러나 결정론적 시뮬레이터를 사용하면 주어진 상태와 행동에 대해 항상 같은 다음 상태가 반환되므로, \(k=1\)로 설정하면 된다. \(k\)개의 샘플이 모두 동일하므로 한 번만 시뮬레이션하면 충분하다.

샘플 수 \(m\)의 선택

\(m\)은 가능한 한 크게 설정하는 것이 좋다. \(\phi(s)\)에 50개의 특성이 있다면, 50개의 매개변수를 가진 선형 회귀를 피팅하는 것이므로, \(m=500\) 정도면 충분할 수 있다. 그러나 \(m=1{,}000\)이나 \(5{,}000\), 심지어 \(100{,}000\)으로 설정해도 문제 없다.

실제 세계에서 데이터를 수집하는 것은 비용이 많이 들지만, 시뮬레이터가 있으면 데이터를 원하는 만큼 생성할 수 있다. 따라서 알고리즘의 실행 시간이 허용하는 한 \(m\)을 크게 설정하면 된다.

선형 회귀 대신 다른 알고리즘 사용

이 알고리즘에서 선형 회귀를 사용해야 한다는 제약은 없다. 3단계에서 상태 \(s\)로부터 \(y\)를 예측하는 데 어떤 회귀 알고리즘이든 사용할 수 있다.

**딥 강화 학습(deep reinforcement learning)**은 이 단계에서 신경망을 사용하는 것이다. 신경망을 사용하면 특성 \(\phi\)를 수동으로 설계할 필요가 없어진다. 원시 상태 변수(각도, 방향 등)를 직접 신경망에 입력하여 매핑을 지도 학습 방식으로 학습할 수 있다.

국소 가중 선형 회귀(locally weighted linear regression)나 다른 회귀 알고리즘도 사용할 수 있다.


18.9 실시간 정책 실행

적합 가치 반복은 \(V^*\)의 근사를 제공하며, 이로부터 최적 정책 \(\pi^*\)암묵적으로 정의된다.

\[\pi^*(s) = \arg\max_a \mathbb{E}_{s' \sim P_{sa}}[V^*(s')]\]

로봇을 실시간으로 제어해야 할 때(예: 헬리콥터나 자율주행 자동차를 10Hz, 즉 초당 10번 제어), 이 기댓값과 최대화를 매번 계산해야 한다. 실시간 제어 루프 안에서 난수 생성기를 사용하는 것은 바람직하지 않다. 운이 나쁘면 난수 생성기가 불리한 값을 생성하여 헬리콥터가 위험한 행동을 할 수 있다.

실시간 실행을 위한 실용적 방법

대부분의 시뮬레이터는 다음 형태를 가진다.

\[s_{t+1} = f(s_t, a_t) + \epsilon_t\]

실제 배포 시에는 다음과 같이 한다.

  1. 노이즈를 제거한다: \(\epsilon_t = 0\)으로 설정한다.
  2. *\(k = 1\)로 설정한다*: 결정론적으로 한 번만 시뮬레이션한다.

그러면 매 시간 단계마다 다음을 계산한다.

\[\pi(s) = \arg\max_a V(f(s, a))\]

구체적으로, 매 0.1초마다 로봇의 현재 상태 \(s\)를 관측하고, 가능한 모든 행동 \(a\)에 대해 시뮬레이터를 실행하여 각 행동이 이끄는 다음 상태 \(f(s, a)\)를 계산한 후, 학습된 가치 함수 \(V\)를 적용하여 가장 높은 가치를 가진 행동을 선택한다. 현대의 컴퓨터는 이 계산을 초당 10회 수행하기에 충분히 빠르다.

훈련 시에는 확률론적 시뮬레이터를 사용하여 강건한 정책을 학습하되, 배포 시에는 노이즈를 제거하고 결정론적으로 실행하는 것이다. 이 방법은 이론적으로 엄밀하게 정당화되지는 않지만, 실무에서 잘 동작한다.

행동을 취한 후에는 시뮬레이터가 아닌 실제 센서(GPS, 가속도계, 자기 나침반)로 로봇의 실제 상태를 관측한다. 바람이나 모델 오차 때문에 시뮬레이터의 예측과 실제 상태는 다를 수 있으므로, 0.1초 후 새로운 센서 측정값을 사용하여 현재 상태를 업데이트하고 다시 최적 행동을 계산한다.


핵심 정리

개념

핵심

연속 상태 MDP

상태 공간이 \(\mathbb{R}^n\)인 MDP. 자동차(\(n=6\)), 헬리콥터(\(n=12\)), 도립 진자(\(n=4\)) 등

이산화

연속 상태를 격자로 나누어 이산 문제로 변환. 저차원(2~4)에서만 실용적

차원의 저주

각 차원을 \(k\)개로 이산화하면 총 \(k^n\)개의 상태. 차원에 대해 지수적 증가

모델/시뮬레이터

\((s, a) \to s'\) 매핑. 물리 엔진 또는 데이터에서 학습

모델 기반 RL

시뮬레이터에서 정책을 학습한 후 실제 로봇에 적용. 로봇 공학에서 주류

확률론적 시뮬레이터

노이즈를 추가하여 강건한 정책을 학습. 결정론적 시뮬레이터보다 현실 전이에 훨씬 효과적

적합 가치 반복

\(V^*(s) \approx \theta^T\phi(s)\)로 근사. 샘플링 + 선형 회귀로 가치 함수 학습

딥 강화 학습

적합 가치 반복에서 선형 회귀 대신 신경망을 사용

실시간 정책 실행

배포 시 노이즈 제거(\(\epsilon=0\), \(k=1\)), 센서로 실제 상태 관측


이전 장: 17장 - MDP와 가치 및 정책 반복 다음 장: 19장 - 보상 모델과 선형 동적 시스템