1장
로봇 학습이란
교재: Sutton & Barto 1.1, 1.3, 3.1, 17.3–17.4절
강화학습은 무엇을 할지, 곧 상황을 행동으로 잇는 법을 배워 수치로 된 보상 신호를 최대화하는 학습이다. 학습자는 어떤 행동을 하라고 듣지 않으며, 직접 해 보면서 어떤 행동이 가장 많은 보상을 주는지 찾아야 한다.
지각–행동 루프
로봇은 센서로 세상을 읽고(지각), 무엇을 할지 정하고(결정), 모터로 세상을 바꿉니다(행동). 바뀐 세상은 다시 센서로 들어옵니다. Sutton과 Barto(3.1절)는 이 고리를 에이전트와 환경의 상호작용으로 정리합니다. 시점 \(t\)마다 에이전트는 환경의 상태 \(S_t\)를 받고 행동 \(A_t\)를 고릅니다. 한 시점 뒤 환경은 수치 보상 \(R_{t+1}\)과 새 상태 \(S_{t+1}\)을 돌려줍니다. 그래서 상호작용은 \(S_0, A_0, R_1, S_1, A_1, R_2, \dots\) 같은 궤적으로 기록됩니다. 교재는 공학 용어인 제어기, 제어 대상(plant), 제어 신호 대신 에이전트, 환경, 행동이라는 말을 쓴다고 밝혀 둡니다.
고전 제어와 학습
고전적인 로봇 공학에서는 엔지니어가 로봇과 환경의 모델(운동 방정식, 지도, 물체의 모양)을 세우고 그 위에 제어기와 경로 계획기를 설계합니다. 모델이 정확한 공장 라인에서는 이 방식이 빠르고 믿을 만합니다. 하지만 천처럼 모양이 변하는 물체, 처음 보는 물건, 사람과 함께 하는 일처럼 모델을 적기 어려운 곳에서는 규칙을 손으로 쓰기가 어렵습니다. 학습은 이런 곳에서 행동 규칙, 곧 정책을 데이터와 경험에서 얻습니다. 그 대가로 데이터가 많이 필요하고, 배운 행동이 왜 그런지 설명하기 어렵고, 처음 보는 상황에서는 실패할 수 있습니다.
강화학습을 이루는 것
강화학습의 가장 큰 특징은 시행착오와 지연된 보상입니다. 행동이 당장의 보상뿐 아니라 다음 상황과 그 뒤의 모든 보상에 영향을 주기 때문입니다. 또 하나는 탐험과 활용의 딜레마입니다. 보상을 많이 받으려면 이미 좋았던 행동을 골라야 하지만, 더 좋은 행동을 찾으려면 안 해 본 행동도 해 봐야 합니다(1.1절). 교재(1.3절)는 강화학습 시스템의 요소를 넷으로 꼽습니다.
- 정책: 상태에서 행동으로 가는 규칙. 이것만 있으면 행동이 정해집니다.
- 보상 신호: 매 시점 환경이 주는 숫자 하나. 문제의 목표를 정의합니다.
- 가치함수: 어떤 상태에서 출발해 앞으로 모을 보상의 기대값. 보상이 당장 좋은 것이라면 가치는 길게 보아 좋은 것입니다.
- 환경 모델(있을 수도 없을 수도 있음): 상태와 행동을 주면 다음 상태와 보상을 예측합니다. 모델로 미리 계획하면 모델 기반, 시행착오로만 배우면 모델 없는(model-free) 방법입니다.
로봇 학습의 지도
보상을 어떻게 줘야 할지 모르지만 잘하는 사람을 지켜볼 수 있다면, 보상 대신 시범에서 배울 수 있습니다. 교재(17.4절)는 이를 모방학습, 시범 학습이라고 부릅니다. 이 학습서는 로봇이 무엇을 보고 배우는지에 따라 네 부분으로 나뉩니다.
| 학습 신호 | 정책이 배우는 것 | 이 학습서 | 대표 방법 |
|---|---|---|---|
| 보상 | 보상의 합을 가장 크게 만드는 행동 | 1–6장 | 가치 반복, Q-learning, PPO |
| 시범 | 전문가가 그 상황에서 한 행동 | 7–8장 | 행동 복제, DAgger, ACT, Diffusion Policy |
| 대규모 로봇 데이터와 언어 | 여러 로봇과 과제에 두루 통하는 정책 | 9–11장 | RT-2, OpenVLA, OpenVLA-OFT, π0 |
| 사람의 비교 | 말로 정의하기 어려운 품질 | 12–13장 | RLHF, DPO, FPL |
격자 세계의 로봇을 직접 조종하기
화살표 버튼이나 방향키로 로봇을 목표 G까지 움직여 보세요. 한 걸음마다 보상 −1, 목표에 닿으면 +10, 구덩이(✕)에 빠지면 −10을 받고 에피소드가 끝납니다. 기록 표에는 에이전트와 환경이 주고받은 \(S_t, A_t, R_{t+1}\)이 쌓입니다.
| t | 상태 St | 행동 At | 보상 Rt+1 |
|---|
미끄러짐을 켜면 같은 행동이 늘 같은 결과를 내지 않습니다. 그래서 좋은 정책은 "다음 칸"이 아니라 결과가 나올 확률을 생각해야 합니다(2장). 시야만 보기를 켜면 로봇은 주변 한 칸만 봅니다. 센서가 상태의 일부만 알려 주는 것은 실제 로봇이 늘 겪는 일입니다(Sutton & Barto 17.3절).
2장
MDP와 보상
교재: Sutton & Barto 3.1–3.5절
마르코프 결정 과정(MDP)은 상호작용으로 목표를 이루는 문제를 수학으로 적은 틀입니다. 상태의 집합 \(\mathcal{S}\), 행동의 집합 \(\mathcal{A}\), 보상의 집합 \(\mathcal{R}\), 그리고 환경의 동역학 \(p\)로 이루어집니다.
\[p(s',r\mid s,a)=\Pr\{S_t=s',\,R_t=r\mid S_{t-1}=s,\,A_{t-1}=a\}\]상태 \(s\)에서 행동 \(a\)를 했을 때 다음 상태가 \(s'\)이고 보상이 \(r\)일 확률 (Sutton & Barto 식 3.2). 실험 1-1에서 미끄러짐을 켜면 이 확률이 여러 결과로 나뉩니다.
다음 상태와 보상이 바로 앞의 상태와 행동에만 달려 있고 그 이전 역사와는 무관하다는 것이 마르코프 성질입니다. 교재는 이를 결정 과정이 아니라 상태에 대한 요구로 보라고 합니다. 앞으로에 영향을 주는 과거 정보가 모두 상태에 들어 있어야 한다는 뜻입니다. 막대의 각도만 알고 각속도를 모르면 다음 순간을 예측할 수 없는 것처럼, 로봇의 상태에는 대개 위치와 속도가 함께 들어가야 합니다.
보상 가설
교재(3.2절)는 강화학습의 출발점을 이렇게 적습니다. "우리가 말하는 목표와 목적은 모두, 받는 스칼라 신호(보상)의 누적합의 기대값을 최대화하는 것으로 잘 생각할 수 있다." 보상은 로봇에게 무엇을 원하는지를 알리는 수단이지, 어떻게 하라는 지시를 담는 곳이 아닙니다. 체스 에이전트에게 상대 말을 잡을 때마다 보상을 주면 게임을 지더라도 말을 잡는 방법을 찾아낼 수 있습니다. 6장에서 이 함정을 직접 봅니다.
반환값과 할인
에이전트가 최대화하는 것은 당장의 보상이 아니라 앞으로 받을 보상의 합, 곧 반환값 \(G_t\)입니다. 게임 한 판, 미로 한 번처럼 끝이 있는 상호작용을 에피소드라고 합니다. 끝이 없는 과제에서는 합이 무한해질 수 있으므로 미래 보상을 할인율 \(\gamma\)(\(0\le\gamma\le 1\))로 줄여서 더합니다.
\[\begin{aligned}G_t&=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\cdots=\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}\\ G_t&=R_{t+1}+\gamma\,G_{t+1}\end{aligned}\]\(k\)걸음 뒤의 보상은 지금 받을 때의 \(\gamma^k\)배 가치로 칩니다 (식 3.8–3.9). 보상이 매번 +1이면 \(G_t=1/(1-\gamma)\)입니다(식 3.10).
\(\gamma=0\)이면 에이전트는 바로 다음 보상만 보는 근시안이 되고, \(\gamma\)가 1에 가까울수록 먼 미래까지 봅니다. 두 번째 줄의 재귀식은 3장의 벨만 방정식으로 이어집니다. 마지막으로 정책 \(\pi(a\mid s)\)는 상태 \(s\)에서 행동 \(a\)를 고를 확률입니다(3.5절). 강화학습은 경험에 따라 이 정책을 바꾸는 방법입니다.
가까운 작은 보상과 먼 큰 보상
로봇이 두 길 중 하나를 고릅니다. 길 A는 3걸음 뒤 작은 충전소에서 끝나고, 길 B는 10걸음 뒤 목표에서 끝납니다. 막대의 바깥선은 받는 보상, 채운 부분은 할인한 뒤의 몫 \(\gamma^k R\)입니다. 반환값이 더 큰 길이 에이전트가 고르는 길입니다.
3장
가치함수와 벨만 방정식
교재: Sutton & Barto 3.5–3.6, 4.1–4.4, 4.6절
정책 \(\pi\)를 따를 때 상태 \(s\)의 가치 \(v_\pi(s)\)는 \(s\)에서 출발해 받을 반환값의 기대값입니다. 상태와 행동의 쌍에 대한 행동 가치 \(q_\pi(s,a)\)는 \(s\)에서 \(a\)를 먼저 하고 그 뒤로 \(\pi\)를 따를 때의 기대 반환값입니다(식 3.12–3.13). 가치함수는 반환값의 재귀식 \(G_t=R_{t+1}+\gamma G_{t+1}\) 덕분에 이웃한 상태의 가치와 묶입니다.
\[v_\pi(s)=\sum_a \pi(a\mid s)\sum_{s',r}p(s',r\mid s,a)\big[r+\gamma\,v_\pi(s')\big]\]벨만 방정식(식 3.14). 지금 상태의 가치는 다음 보상과 다음 상태의 할인된 가치를, 일어날 확률로 평균한 것과 같습니다.
모든 상태에서 다른 어떤 정책보다 가치가 작지 않은 정책이 최적 정책 \(\pi_*\)이고, 그 가치함수가 \(v_*\)입니다. 최적 가치는 특정 정책 없이 쓸 수 있는 자기 일관성 조건, 벨만 최적 방정식을 만족합니다. 최적 행동 가치 \(q_*\)를 알면 각 상태에서 \(q_*\)가 가장 큰 행동을 고르기만 해도 최적으로 행동하게 됩니다.
\[\begin{aligned}v_*(s)&=\max_a\sum_{s',r}p(s',r\mid s,a)\big[r+\gamma\,v_*(s')\big]\\ q_*(s,a)&=\sum_{s',r}p(s',r\mid s,a)\Big[r+\gamma\max_{a'}q_*(s',a')\Big]\end{aligned}\]벨만 최적 방정식(식 3.19–3.20). 정책에 대한 평균 대신 최댓값이 들어갑니다.
동적 계획법: 모델을 알 때
환경의 동역학 \(p\)를 안다면 벨만 방정식을 그대로 갱신 규칙으로 바꿔 가치를 계산할 수 있습니다. 이것이 동적 계획법(DP)입니다(교재 4장).
- 정책 평가: 식 3.14의 우변으로 모든 상태를 한 번씩 갱신하는 일(한 번 쓸기)을 되풀이하면 \(v_\pi\)로 수렴합니다(식 4.5).
- 정책 개선: 구한 \(v_\pi\)에 대해 탐욕적으로, 곧 한 걸음 내다본 값이 가장 큰 행동을 고르면 더 나은(적어도 나쁘지 않은) 정책이 됩니다.
- 정책 반복: 평가와 개선을 번갈아 하면 정책이 단조롭게 좋아지고, 유한 MDP에서는 유한 번 안에 최적 정책에 닿습니다(4.3절).
- 가치 반복: 평가를 한 번 쓸기에서 멈추고 바로 최댓값을 취합니다. 벨만 최적 방정식을 갱신 규칙으로 바꾼 것과 같습니다(식 4.10).
평가와 개선이 서로를 끌어당기며 최적으로 가는 이 구도를 교재는 일반화된 정책 반복(GPI)이라고 부릅니다(4.6절). 이 학습서 4장부터 나오는 방법들도 대부분 이 구도 안에 있습니다. 다만 DP는 \(p\)를 알아야 하고 모든 상태를 쓸어야 합니다. 상태가 아주 많은 로봇 문제에서는 그대로 쓸 수 없습니다.
\[v_{k+1}(s)=\max_a\sum_{s',r}p(s',r\mid s,a)\big[r+\gamma\,v_k(s')\big]\]가치 반복의 갱신(식 4.10). 어떤 \(v_0\)에서 시작해도 \(v_*\)로 수렴합니다.
가치 반복과 정책 반복을 한 단계씩
칸의 숫자는 지금까지 계산한 상태 가치, 화살표는 그 가치에 대한 탐욕 정책입니다. "한 단계"를 누르며 값이 목표에서 바깥으로 퍼져 나가는 모습을 보세요. 로봇 지도에서는 빈칸을 눌러 벽이나 구덩이를 놓을 수 있습니다.
4장
Q-learning과 탐험
교재: Sutton & Barto 2.2, 6.1, 6.4–6.5절 · Watkins (1989)
3장의 동적 계획법은 환경의 동역학 \(p\)를 알아야 했습니다. 실제 로봇은 대개 그 모델을 모릅니다. 대신 직접 움직여 보고 얻은 경험 \((S_t, A_t, R_{t+1}, S_{t+1})\)에서 배워야 합니다.
시간차 학습
몬테카를로 방법은 에피소드가 끝나 실제 반환값 \(G_t\)를 알 때까지 기다렸다가 가치를 고칩니다. 시간차(TD) 학습은 한 걸음만 기다립니다. 다음 보상과 다음 상태의 현재 추정값으로 목표를 만들어 바로 고치는 것입니다(6.1절). 다른 추정값을 이용해 추정값을 고치므로 DP처럼 부트스트래핑을 한다고 말합니다. 괄호 안의 차이 \(\delta_t=R_{t+1}+\gamma V(S_{t+1})-V(S_t)\)를 TD 오차라고 합니다.
\[V(S_t)\leftarrow V(S_t)+\alpha\big[R_{t+1}+\gamma V(S_{t+1})-V(S_t)\big]\]TD(0) 갱신(식 6.2). \(\alpha\)는 한 번에 얼마나 고칠지 정하는 걸음 크기입니다.
SARSA와 Q-learning
행동을 고르려면 상태 가치보다 행동 가치 \(Q(s,a)\)가 편합니다. 같은 TD 아이디어를 \(Q\)에 쓰는 방법이 둘 있습니다.
\[\begin{aligned}\text{SARSA:}\quad Q(S_t,A_t)&\leftarrow Q(S_t,A_t)+\alpha\big[R_{t+1}+\gamma Q(S_{t+1},A_{t+1})-Q(S_t,A_t)\big]\\ \text{Q-learning:}\quad Q(S_t,A_t)&\leftarrow Q(S_t,A_t)+\alpha\big[R_{t+1}+\gamma\max_a Q(S_{t+1},a)-Q(S_t,A_t)\big]\end{aligned}\]식 6.7과 6.8. SARSA라는 이름은 갱신에 쓰는 다섯 값 \((S_t,A_t,R_{t+1},S_{t+1},A_{t+1})\)에서 왔습니다.
SARSA는 다음에 실제로 고른 행동 \(A_{t+1}\)의 값을 씁니다. 그래서 지금 따르고 있는 정책의 가치를 배우는 정책 내(on-policy) 방법입니다. Q-learning(Watkins 1989)은 다음 상태에서 가장 좋은 행동의 값을 씁니다. 실제로 어떻게 움직였든 \(Q\)는 최적 행동 가치 \(q_*\)를 직접 근사하므로 정책 외(off-policy) 방법입니다. 다만 모든 상태–행동 쌍이 계속 갱신되도록 행동 정책이 골고루 돌아다녀야 합니다(6.5절).
ε-탐욕 탐험
추정값이 가장 큰 행동만 고르면 아직 안 해 본 더 좋은 행동을 영영 찾지 못할 수 있습니다. ε-탐욕 정책은 대부분 탐욕적으로 고르되, 작은 확률 \(\varepsilon\)으로 모든 행동 중 하나를 무작위로 고릅니다(2.2절). 1장에서 본 탐험과 활용의 딜레마를 가장 단순하게 푸는 방법입니다.
절벽 걷기
교재의 예제 6.6은 두 방법의 차이를 보여 줍니다. 4×12 격자의 아래쪽 가장자리에 절벽이 있고, 출발점 S와 목표 G가 절벽 양 끝에 있습니다. 모든 이동의 보상은 −1이지만 절벽에 들어서면 −100을 받고 출발점으로 돌아갑니다. \(\varepsilon=0.1\)로 탐험하면 Q-learning은 절벽 바로 위를 지나는 최적 경로의 가치를 배우지만, 무작위 행동 때문에 가끔 떨어집니다. SARSA는 그 무작위성까지 계산에 넣어 위쪽으로 돌아가는 안전한 길을 배우고, 학습 중 받는 보상은 오히려 더 큽니다. \(\varepsilon\)을 점점 줄이면 두 방법 모두 최적 경로로 수렴합니다.
절벽 걷기에서 SARSA와 Q-learning 비교
두 알고리즘을 같은 설정으로 20번씩 따로 학습시키고, 에피소드마다 받은 보상의 합을 평균해 그립니다. 격자에는 첫 번째 학습의 탐욕 경로가 표시됩니다. ε을 바꾸면 처음부터 다시 학습합니다.
5장
심층 강화학습
교재와 논문: Sutton & Barto 13.1–13.5, 16.5절 · Mnih et al. (2015) · Schulman et al. (2017)
격자 세계에서는 상태마다 칸을 하나씩 두는 표로 \(Q\)를 저장했습니다. 카메라 영상을 상태로 쓰면 가능한 상태가 사실상 무한하므로 표를 만들 수 없습니다. 대신 매개변수 \(\mathbf{w}\)를 가진 함수 \(\hat q(s,a,\mathbf{w})\)로 가치를 근사합니다. 이 함수가 깊은 신경망이면 심층 강화학습이라고 부릅니다. 신경망과 역전파는 머신러닝·딥러닝 개념 학습서 9–11장에서 다룹니다.
DQN: 화면을 보고 Q-learning
Mnih 등(2015)의 DQN은 Atari 2600 게임 49개를 같은 신경망 구조와 같은 설정으로 학습했습니다(교재 16.5절). 입력은 게임 화면을 84×84로 줄이고 최근 4장을 쌓은 것이고, 출력은 행동마다의 \(\hat q\) 값입니다. 게임마다 5천만 프레임, 약 38일 분량의 경험으로 학습했고, 46개 게임 중 29개에서 사람 점수의 75% 이상에 이르렀습니다. 신경망으로 Q-learning을 안정시키기 위해 쓴 장치는 다음과 같습니다.
- 경험 재생(Lin 1992): 경험 \((S_t,A_t,R_{t+1},S_{t+1})\)을 저장해 두고 무작위로 뽑아 학습합니다. 같은 경험을 여러 번 쓰고, 연달아 일어난 경험 사이의 상관을 끊습니다.
- 목표 신경망: 갱신 목표 \(R_{t+1}+\gamma\max_a\tilde q(S_{t+1},a)\)를 계산하는 신경망을 따로 두고, \(C\)번 갱신할 때마다 한 번씩 복사합니다. 목표가 매 걸음 함께 움직이는 불안정을 줄입니다.
- 보상을 +1, −1, 0으로 자르고, 오차 항도 \([-1,1]\)로 잘랐습니다. \(\varepsilon\)은 처음 백만 프레임 동안 선형으로 줄였습니다.
정책 경사
가치를 배운 뒤 행동을 고르는 대신, 정책 자체를 매개변수 \(\boldsymbol\theta\)로 나타내고 성능이 오르는 방향으로 \(\boldsymbol\theta\)를 직접 옮길 수도 있습니다. 이산 행동이면 행동마다 선호도를 계산해 소프트맥스로 확률을 만듭니다(식 13.2). 이런 정책은 결정론적 정책에 가까워질 수 있고, 연속 행동도 자연스럽게 다룹니다(6장). REINFORCE(Williams 1992)는 실제로 받은 반환값만큼 그 행동의 확률을 높입니다. 기준값 \(b(S_t)\)를 빼면 기대값은 그대로 두고 분산을 크게 줄일 수 있습니다. 기준값으로 상태 가치를 쓰고 반환값 대신 한 걸음 TD 오차를 쓰면 액터–크리틱입니다. 정책(액터)이 행동하고, 가치함수(크리틱)가 그 행동을 평가합니다.
\[\begin{aligned}\boldsymbol\theta&\leftarrow\boldsymbol\theta+\alpha\,\big(G_t-b(S_t)\big)\,\nabla\ln\pi(A_t\mid S_t,\boldsymbol\theta)\\ \boldsymbol\theta&\leftarrow\boldsymbol\theta+\alpha\,\delta_t\,\nabla\ln\pi(A_t\mid S_t,\boldsymbol\theta),\quad \delta_t=R_{t+1}+\gamma\hat v(S_{t+1},\mathbf{w})-\hat v(S_t,\mathbf{w})\end{aligned}\]기준값이 있는 REINFORCE(식 13.11)와 한 걸음 액터–크리틱(식 13.13). \(\nabla\ln\pi\)는 그 행동의 확률을 가장 빠르게 높이는 방향입니다.
PPO: 한 번에 너무 멀리 가지 않기
정책 경사는 걸음이 너무 크면 정책이 한 번에 망가지고, 망가진 정책이 나쁜 데이터를 모으는 악순환에 빠집니다. Schulman 등(2017)의 PPO는 새 정책과 데이터를 모은 옛 정책의 확률 비 \(r_t(\boldsymbol\theta)=\pi_{\boldsymbol\theta}(a_t\mid s_t)/\pi_{\boldsymbol\theta_{\text{old}}}(a_t\mid s_t)\)를 \([1-\epsilon,1+\epsilon]\) 밖으로 밀어도 이득이 없도록 목적함수를 자릅니다. 그래서 같은 데이터로 여러 번(epoch) 미니배치 갱신을 해도 안전합니다. 논문은 \(\epsilon=0.2\)를 권하고, 이점 \(\hat A_t\)는 TD 오차를 \(\gamma\lambda\)로 할인해 더한 일반화 이점 추정(GAE)으로 계산합니다. 간단하고 튼튼해서 시뮬레이션의 로봇 보행 학습에 널리 쓰입니다.
\[L^{\text{CLIP}}(\boldsymbol\theta)=\hat{\mathbb{E}}_t\Big[\min\big(r_t(\boldsymbol\theta)\hat A_t,\ \operatorname{clip}(r_t(\boldsymbol\theta),1-\epsilon,1+\epsilon)\,\hat A_t\big)\Big]\]PPO의 잘린 목적함수(Schulman et al. 식 7). 이점 \(\hat A_t\)는 그 행동이 평균보다 얼마나 좋았는지를 나타냅니다.
PPO의 자르기를 눈으로 보기
한 시점의 목적함수 항을 확률 비 \(r\)의 함수로 그립니다(논문 그림 1). 점선은 자르지 않은 \(r\hat A\)입니다. 빨간 구간에서는 기울기가 0이라 정책을 그쪽으로 더 밀 이유가 없습니다.
막대 세우기
카트 위에 경첩으로 달린 막대를 넘어뜨리지 않는 과제는 강화학습의 오래된 시험대입니다(Barto, Sutton & Anderson 1983, 교재 예제 3.4). 에이전트는 매 0.02초마다 카트를 왼쪽이나 오른쪽으로 밉니다. 막대가 12도 넘게 기울거나 카트가 2.4 m 밖으로 나가면 실패이고, 버틴 시점마다 보상 +1을 받으므로 반환값은 버틴 시간과 같습니다. 아래 실험은 OpenAI Gym의 CartPole-v1과 같은 물리 상수와 500걸음 제한을 씁니다.
브라우저 안에서 PPO로 CartPole 학습하기
정책과 가치함수는 은닉층 2개(뉴런 32개)짜리 작은 신경망입니다. 1,024걸음을 모을 때마다 PPO로 8번 되풀이해 갱신합니다. 그림은 지금 정책으로 막대를 세우는 모습이고, 그래프는 에피소드 길이의 변화입니다. 보통 2만 걸음 안팎에서 500걸음을 모두 버팁니다.
6장
시뮬레이션에서 현실로
교재와 논문: Sutton & Barto 13.7, 17.4절 · Makoviychuk et al. (2021) · Liu et al. (2023) · Tobin et al. (2017) · Peng et al. (2018) · Amodei et al. (2016)
연속 행동
로봇 관절의 토크나 속도는 연속값입니다. 정책 경사 방법은 행동마다 확률을 두는 대신 확률분포의 통계량을 배웁니다. 가장 흔한 것은 평균 \(\mu(s,\boldsymbol\theta)\)와 표준편차 \(\sigma(s,\boldsymbol\theta)\)를 신경망이 내는 정규분포 정책입니다(13.7절). 학습 초기에는 \(\sigma\)가 커서 넓게 탐험하고, 학습이 진행되면 \(\sigma\)가 줄어 정밀해집니다.
\[\pi(a\mid s,\boldsymbol\theta)=\frac{1}{\sigma(s,\boldsymbol\theta)\sqrt{2\pi}}\exp\!\left(-\frac{\big(a-\mu(s,\boldsymbol\theta)\big)^2}{2\,\sigma(s,\boldsymbol\theta)^2}\right)\]연속 행동을 위한 정규분포 정책(식 13.19).
왜 시뮬레이션인가
실제 로봇은 느리고, 고장 나고, 탐험하다 다칠 수 있습니다. 5장의 DQN이 쓴 38일 분량의 경험을 실제 로봇으로 모으기는 어렵습니다. 그래서 많은 로봇 학습이 물리 시뮬레이터에서 이루어집니다.
- MuJoCo(Todorov et al. 2012): 접촉이 많은 로봇 동역학을 빠르게 계산하는 물리 엔진으로, 강화학습 연구의 표준 시험대가 되었습니다. PPO 논문의 연속 제어 실험도 MuJoCo를 썼습니다.
- Isaac Gym / Isaac Sim(NVIDIA): 물리 시뮬레이션과 신경망 학습을 모두 GPU에서 돌립니다. Makoviychuk 등(2021)은 CPU 시뮬레이터와 GPU 신경망을 오가는 기존 방식보다 2–3자릿수 빠른 학습을 보고했습니다.
- LIBERO(Liu et al. 2023): 언어로 지시하는 로봇 조작 과제 130개를 네 묶음(공간, 물체, 목표, LIBERO-100)으로 모은 벤치마크입니다. 모든 과제에 사람이 원격 조종한 시범 데이터가 있어, 11장에서 VLA를 비교하는 데 쓰입니다.
현실 격차와 도메인 무작위화
시뮬레이터는 마찰, 질량, 지연, 카메라 영상 같은 것을 완벽히 흉내 내지 못합니다. 시뮬레이터에서 잘하던 정책이 현실에서 실패하는 이 차이를 현실 격차(reality gap)라고 합니다. 도메인 무작위화는 시뮬레이터의 설정을 학습할 때마다 무작위로 바꿔, 정책이 그 모든 변형에서 통하도록 만드는 방법입니다. Tobin 등(2017)은 질감, 조명, 카메라 위치를 무작위로 바꾼 합성 영상만으로 물체 검출기를 학습해 실제 물체를 1.5 cm 정확도로 찾고 집는 데 성공했습니다. 시뮬레이터의 변형이 충분히 다양하면 현실은 "또 하나의 변형"처럼 보인다는 것입니다. Peng 등(2018)은 질량, 마찰, 감쇠, 지연 같은 동역학을 무작위로 바꿔 학습한 밀기 정책을 실제 로봇 팔에 추가 학습 없이 옮겼습니다.
질량을 무작위화하면 현실에서 버틴다
로봇이 짐을 1 m 앞 정지선에 세워야 합니다. 정지선 8 cm 뒤에는 벽이 있습니다. 정책은 이득 두 개짜리 PD 제어기이고, 시뮬레이터 안에서 이득을 찾습니다. 한 정책은 시뮬레이터의 질량 1 kg 하나에만 맞추고, 다른 정책은 질량을 무작위로 바꾼 여러 시뮬레이터에 함께 맞춥니다. 두 정책 모두 40 ms 지연을 안고 움직입니다. 현실의 질량을 바꿔 보세요.
보상 해킹
강화학습 에이전트는 보상을 받는 뜻밖의 방법을 찾아냅니다(17.4절). 목표가 멀어 보상이 드물면 중간 단계에 보상을 덧붙이고 싶어지지만, 교재는 이런 선의의 보상이 에이전트를 의도와 다르게 행동하게 해 원래 목표를 이루지 못하게 할 수 있다고 경고합니다. Amodei 등(2016)은 청소 로봇을 예로 듭니다. 어지러운 것이 보이지 않을 때 보상을 주면, 로봇은 시각 센서를 꺼 버리거나 어지러운 것을 보이지 않게 덮을 수 있습니다. 교재는 보상은 그대로 두고 가치함수의 초기값처럼 다른 곳에 사전 지식을 넣으라고 권합니다.
중간 보상이 만든 맴돌기
설계자가 목표 G로 가는 길의 체크포인트 C에 들어설 때마다 보너스를 주기로 했습니다. 걸음마다 −0.1, 목표는 +10입니다. 가치 반복으로 구한 최적 정책이 실제로 어디로 가는지 보세요.
7장
행동 복제와 DAgger
교재와 논문: Sutton & Barto 17.4절 · Ross & Bagnell (2010) · Ross, Gordon & Bagnell (2011) · Zhao et al. (2023)
보상을 어떻게 줘야 할지는 모르지만 잘하는 사람을 지켜볼 수 있다면, 그 사람의 행동을 따라 하면 됩니다. 교재(17.4절)는 이를 모방학습, 시범 학습이라 부르고, 시범을 지도 학습으로 직접 배우는 길과 시범에서 보상을 거꾸로 추정하는 길(역강화학습)이 있다고 정리합니다. 로봇에서는 사람이 로봇을 원격 조종해 시범을 모으는 경우가 많습니다.
행동 복제
행동 복제(BC)는 시범에서 모은 (상태, 전문가 행동) 쌍을 지도 학습 데이터로 보고 상태에서 행동으로 가는 함수를 학습합니다. 구현이 간단하고 보상이 필요 없습니다. 문제는 지도 학습이 기대는 가정, 곧 학습 데이터와 시험 데이터가 같은 분포에서 독립적으로 나온다는 가정이 깨진다는 것입니다(Ross et al. 2011). 학습자는 전문가가 지나간 상태들로 배웠지만, 시험할 때는 자기 행동이 만든 상태들을 지납니다. 작은 실수 하나가 시범에 없던 상태로 로봇을 데려가고, 거기서는 더 큰 실수를 하기 쉽습니다. 이것이 오차가 쌓이는 문제(compounding error)입니다.
Ross와 Bagnell(2010)은 전문가의 상태 분포에서 한 걸음마다 실수할 확률이 \(\varepsilon\)인 학습자라도, \(T\)걸음 동안 자기 분포에서는 최대 \(T^2\varepsilon\)에 이르는 실수를 할 수 있음을 보였습니다. 실수가 시간에 비례하지 않고 제곱으로 늘어날 수 있다는 뜻입니다.
\[J(\hat\pi_{\text{BC}})\le J(\pi^*)+T^2\varepsilon\qquad\text{vs.}\qquad J(\hat\pi_{\text{DAgger}})\le J(\pi^*)+O(T\varepsilon)\]\(J\)는 \(T\)걸음 동안의 비용(실수의 수)입니다. 행동 복제는 최악의 경우 \(T\)의 제곱으로, DAgger는 \(T\)에 비례해 늘어납니다 (Ross et al. 2011, 정리 2.1과 3.2를 단순화).
DAgger: 학습자가 간 곳에서 전문가에게 묻기
Ross, Gordon, Bagnell(2011)의 DAgger(Dataset Aggregation)는 분포 차이를 데이터로 메웁니다.
- 전문가 시범으로 첫 정책을 학습합니다.
- 현재 정책(처음에는 전문가 행동을 확률 \(\beta_i\)로 섞어)으로 로봇을 직접 움직여 봅니다.
- 그렇게 학습자가 방문한 상태마다 "여기서 전문가라면 무엇을 했을지" 전문가에게 행동을 받습니다.
- 새 데이터를 기존 데이터에 모두 합치고(aggregate) 정책을 다시 학습합니다. 2–4를 되풀이합니다.
이렇게 하면 학습자가 실제로 가게 되는 상태에서 고치는 법을 배웁니다. 논문은 슈퍼 터스 카트의 운전과 슈퍼 마리오 브라더스에서 이를 보였습니다. 대가도 있습니다. 전문가가 계속 곁에서 학습자의 상태에 이름표를 붙여 줘야 합니다. 원격 조종으로 시범을 보이는 사람에게, 로봇이 이미 움직이는 중인 상태에 대해 행동을 말로 적어 주는 일은 시간이 들고 부자연스럽습니다(Zhao et al. 2023). 그래서 사람이 필요할 때만 끼어들어 고치는 방식처럼 부담을 줄인 변형들도 연구되었습니다.
트랙 따라가기: 행동 복제와 DAgger
전문가는 앞쪽 목표점을 겨누는 제어기로 트랙 한가운데를 두 바퀴 돕니다. 학습자는 중심선에서 벗어난 거리, 방향 오차, 앞쪽 곡률을 보고 가장 가까운 데이터 4개의 행동을 평균하는 k-최근접 이웃 정책입니다. 실행할 때는 조향에 잡음이 섞입니다. "DAgger 1회"를 누를 때마다 학습자가 한 바퀴를 직접 돌고, 지나간 상태마다 전문가의 행동이 데이터에 더해집니다.
8장
정답이 여러 개인 행동
논문: Zhao et al. (2023) ACT · Chi et al. (2023) Diffusion Policy · Ho et al. (2020) DDPM · Black et al. (2024) π0
평균의 함정
사람의 시범에는 같은 상황에서도 여러 정답이 섞여 있습니다. 컵 앞의 장애물을 어떤 때는 왼쪽으로, 어떤 때는 오른쪽으로 돌아갑니다. 평균제곱오차로 행동 하나를 예측하도록 학습하면 모델은 두 정답의 평균, 곧 장애물 한가운데로 가는 행동을 배웁니다. 둘 다 좋은데 평균은 나쁩니다. 행동의 분포 \(p(a\mid s)\) 전체를 표현하는 생성 모델을 정책으로 써야 하는 이유입니다. Diffusion Policy 논문은 이런 다중 모드 분포를 매끄럽게 다루는 것을 확산 정책의 첫째 장점으로 꼽습니다.
행동 묶음: ACT
Zhao 등(2023)은 2만 달러 미만의 저가 양팔 원격 조종 장치 ALOHA를 만들고, 그 위에서 ACT(Action Chunking with Transformers)를 제안했습니다. 정책은 다음 행동 하나 대신 다음 \(k\)개의 행동 묶음 \(\pi_\theta(a_{t:t+k}\mid s_t)\)를 예측합니다. \(k\)걸음마다 한 번 결정하므로 과제의 실질적인 길이가 \(k\)분의 1로 줄어 7장의 오차 누적이 줄고, 시범 중간에 사람이 잠깐 멈추는 것처럼 상태만으로는 설명되지 않는 행동도 다루기 쉬워집니다. 사람의 시범이 매번 조금씩 다른 점은 조건부 VAE로 묶음의 분포를 학습해 다룹니다. 묶음과 묶음 사이가 덜컹거리지 않도록, 매 걸음 묶음을 새로 예측해 겹치는 예측들을 가중 평균하는 시간 앙상블도 씁니다(가중치 \(w_i=\exp(-m\,i)\)). 이렇게 해서 투명한 양념 컵 열기, 배터리 끼우기 같은 6개 실제 과제를 시범 10분, 곧 50번만으로 80–90% 성공했습니다. 반면 π0 논문은 시간 앙상블이 오히려 성능을 떨어뜨려 묶음을 그대로 실행했다고 보고합니다. 정답은 과제와 모델에 따라 다릅니다.
확산 정책
Chi 등(2023)의 Diffusion Policy는 이미지 생성에 쓰이는 확산 모델(Ho et al. 2020)을 행동에 씁니다. 학습할 때는 시범 행동에 단계 \(k\)만큼의 가우스 잡음을 섞고, 신경망 \(\varepsilon_\theta\)가 그 잡음을 맞히도록 합니다. 행동할 때는 순수한 잡음 \(A^K\)에서 출발해 \(K\)번 잡음을 걷어 내어 행동 묶음 \(A^0\)을 만듭니다. 출발점의 잡음이 매번 달라서, 같은 관측에서도 왼쪽 모드와 오른쪽 모드 중 하나로 깔끔하게 수렴합니다.
\[\begin{aligned}\mathcal{L}&=\mathbb{E}\Big[\big\lVert\boldsymbol\varepsilon-\varepsilon_\theta\big(O_t,\ \sqrt{\bar\alpha_k}\,A^0_t+\sqrt{1-\bar\alpha_k}\,\boldsymbol\varepsilon,\ k\big)\big\rVert^2\Big]\\ A^{k-1}_t&=\alpha\big(A^k_t-\gamma\,\varepsilon_\theta(O_t,A^k_t,k)+\mathcal{N}(0,\sigma^2 I)\big)\end{aligned}\]위: 잡음을 맞히는 학습 목표(Ho et al. 2020의 단순화된 목적함수를 관측 \(O_t\) 조건부로). 아래: 잡음을 한 단계 걷어 내는 갱신(Chi et al. 식 1, 4). 여기서 \(\alpha,\gamma,\sigma\)는 잡음 일정에 따라 정해지는 상수이고, 강화학습의 할인율이 아닙니다.
잡음 예측 신경망은 사실상 행동 분포의 기울기 장을 배우고, 걷어 내는 과정은 그 기울기를 따라 내려가는 잡음 섞인 경사하강과 같습니다(Chi et al. 식 2). 정책은 최근 \(T_o\)걸음의 관측을 보고 \(T_p\)걸음의 행동을 예측한 뒤, 그중 \(T_a\)걸음만 실행하고 다시 예측합니다. 실제 로봇에서는 학습 100단계, 추론 10단계(DDIM)로 RTX 3080에서 0.1초 만에 행동을 냈고, 4개 벤치마크 15개 과제에서 기존 방법보다 평균 46.9% 높은 성능을 보였습니다.
2차원 행동 분포의 잡음 걷어 내기
로봇(아래 가운데)이 장애물(원)을 돌아 다음 지점으로 가는 행동 \((\Delta x,\Delta y)\)를 고릅니다. 흐린 점은 시범 행동, ✕는 평균제곱오차 회귀가 예측하는 평균 행동입니다. 진한 점 300개는 순수한 잡음에서 출발한 확산 정책의 표본입니다. 단계 슬라이더를 움직이거나 재생을 눌러 잡음이 걷히는 과정을 보세요.
이 실험의 잡음 예측기는 학습한 신경망이 아니라, 시범 분포가 가우스 혼합일 때 정확히 계산되는 최적 예측기입니다. 실제 확산 정책은 이 값을 신경망으로 근사합니다.
9장
로봇 데이터
논문: Ramos et al. (2021) RLDS · Open X-Embodiment Collaboration (2024) · Brohan et al. (2022) RT-1 · Kim et al. (2024) OpenVLA
관측과 행동
로봇 학습 데이터의 한 걸음은 대개 관측과 행동으로 이루어집니다. 관측에는 고정 카메라와 손목 카메라의 영상, 관절 각도나 그리퍼 상태 같은 로봇 자신의 상태(고유 감각), 그리고 "컵을 그릇에 넣어" 같은 언어 지시가 들어갑니다. 행동을 무엇으로 정하느냐는 로봇마다 다릅니다.
- 말단 장치 변위: 손끝의 위치 변화 \((\Delta x,\Delta y,\Delta z)\)와 자세 변화(roll, pitch, yaw), 그리퍼 열림을 합친 7차원 행동이 흔합니다. RT-1의 팔 행동이 이 7개 값이고, 여기에 이동 받침 3개와 모드 전환 하나가 더해졌습니다.
- 관절 공간: 관절 위치나 속도를 직접 행동으로 씁니다. ALOHA 같은 양팔 로봇은 관절 위치를, FPL 논문의 Franka 실험은 관절 속도를 썼습니다.
제어 주기도 다릅니다. RT-1은 3 Hz로 움직였고, π0 논문은 공개 데이터셋 대부분이 2–10 Hz라고 적습니다. ALOHA의 원격 조종과 기록은 50 Hz입니다. 그래서 데이터를 섞어 쓸 때는 단위, 좌표계, 주기를 함께 맞춰야 합니다.
정규화
행동의 각 차원은 단위와 범위가 다릅니다. 미터, 라디안, 0–1 사이의 그리퍼 값이 한 벡터에 섞여 있습니다. 그래서 차원마다 따로 정규화합니다. 평균과 표준편차로 나누는 z-점수, 최솟값과 최댓값을 −1과 1로 보내는 최소–최대 정규화가 흔합니다. 원격 조종 데이터에는 순간적으로 튄 값이 섞이기 쉬운데, 최소–최대 정규화는 이런 이상치 하나 때문에 나머지 데이터가 좁은 구간에 몰립니다. OpenVLA는 그래서 1번째와 99번째 백분위수를 경계로 썼습니다. 어느 방법이든 정규화에 쓴 통계를 저장해 두었다가, 로봇에서 실행할 때 원래 단위로 되돌려야 합니다.
이상치 하나가 해상도를 빼앗는다
원격 조종 데이터의 한 행동 차원(걸음당 손끝 이동, cm)을 만들었습니다. 대부분은 작은 움직임이고, 아주 드물게 순간적으로 튄 값이 섞입니다. 세 가지 정규화로 \([-1,1]\)에 옮긴 분포를 보고, 10장처럼 256구간으로 나눌 때 데이터의 98%가 실제로 쓰는 구간이 몇 개인지 비교하세요.
RLDS: 에피소드를 담는 형식
RLDS(Ramos et al. 2021)는 강화학습과 로봇 데이터를 손실 없이 저장하고 나누기 위한 형식입니다. 데이터셋은 에피소드의 모음이고, 에피소드는 걸음(step)의 순서열입니다. TensorFlow Datasets 위에 만들어져 있어 같은 코드로 여러 데이터셋을 읽을 수 있습니다. 걸음 하나에는 다음 항목이 들어갑니다.
| 항목 | 뜻 |
|---|---|
observation | 이 걸음의 관측. 영상, 로봇 상태, 언어 지시 등을 사전 형태로 담습니다. |
action | 이 관측을 보고 한 행동 |
reward, discount | 그 행동 뒤에 받은 보상과 할인 |
is_first | 에피소드의 첫 걸음인가 |
is_last | 에피소드의 마지막 걸음인가. 마지막 걸음에는 관측만 정의됩니다. |
is_terminal | 환경이 정말로 끝난 상태인가. 시간 제한으로 끊긴 에피소드는 is_last가 참이어도 is_terminal은 거짓입니다. |
마지막 두 항목의 구분은 5장의 CartPole에서도 중요했습니다. 500걸음 제한으로 끊긴 것은 실패가 아니므로, 그 다음 상태의 가치를 이어 붙여 학습했습니다.
Open X-Embodiment
언어 모델이 인터넷 규모의 글로 일반화를 얻었듯, 로봇도 여러 로봇의 데이터를 모으면 일반화를 얻을 수 있을까요? Open X-Embodiment(2024)는 21개 기관이 협력해 34개 연구실의 기존 데이터셋 60개를 RLDS 형식으로 통일한 모음입니다. 한 팔 로봇부터 양팔 로봇, 사족 보행 로봇까지 22종의 로봇이 등장하고, 실제 로봇 궤적이 100만 개가 넘으며, 527가지 기술(16만 266개 과제)을 담고 있습니다. 이 데이터로 학습한 RT-1-X는 데이터가 적은 여러 실험실에서 각 실험실의 원래 방법이나 RT-1보다 평균 50% 높은 성공률을 보였습니다. 다른 로봇의 경험이 도움이 된다는 뜻입니다. 이 모음은 10장의 OpenVLA 학습 데이터가 됩니다.
10장
VLA의 구조
논문: Brohan et al. (2022) RT-1 · Brohan et al. (2023) RT-2 · Kim et al. (2024) OpenVLA
시각–언어 모델(VLM)은 이미지와 글을 받아 글을 내는 큰 트랜스포머입니다. 인터넷 규모의 그림과 글로 사전학습되어 물체의 이름, 공간 관계, 상식을 알고 있습니다. 트랜스포머와 어텐션은 머신러닝·딥러닝 개념 학습서 14장에서 다룹니다. RT-2(Brohan et al. 2023)는 이 모델이 글 대신 로봇 행동을 내도록 미세 조정하고, 이런 모델을 시각–언어–행동(VLA) 모델이라고 불렀습니다.
행동을 글자로: 토큰화
언어 모델의 출력은 어휘 안의 토큰입니다. 연속값인 행동을 토큰으로 바꾸기 위해 RT-1과 RT-2는 행동의 각 차원을 그 차원의 범위 안에서 균일한 256개 구간으로 나눕니다. 그러면 행동 하나가 0–255 사이 정수 몇 개가 됩니다. RT-2는 끝내기 명령, 위치 변화 3개, 회전 변화 3개, 그리퍼 열림을 이어 "1 128 91 241 5 101 127"처럼 정수 8개짜리 문자열로 썼습니다. 숫자마다 토큰이 있는 PaLI-X에서는 그 숫자 토큰을 그대로 쓰고, 그렇지 않은 PaLM-E에서는 가장 드물게 쓰는 토큰 256개를 행동 토큰으로 덮어썼습니다. 로봇 데이터만으로 미세 조정하지 않고 원래의 웹 데이터와 함께 학습(co-fine-tuning)한 것이 일반화에 중요했다고 보고합니다. 550억 매개변수 모델은 클라우드의 TPU에서 1–3 Hz로 돌았습니다.
\[\begin{aligned}b&=\min\!\Big(255,\ \Big\lfloor\frac{a-\ell}{h-\ell}\cdot 256\Big\rfloor\Big),\quad a\ \text{는}\ [\ell,h]\ \text{로 자름}\\ \hat a&=\ell+\big(b+\tfrac12\big)\Delta,\qquad \Delta=\frac{h-\ell}{256},\qquad |a-\hat a|\le\frac{\Delta}{2}\end{aligned}\]한 차원의 행동 \(a\)를 구간 번호 \(b\)로 바꾸고, 구간의 가운데 값 \(\hat a\)로 되돌리는 식. 경계 \([\ell,h]\)는 RT-1·RT-2에서는 각 변수의 범위, OpenVLA에서는 학습 데이터의 1번째와 99번째 백분위수입니다.
OpenVLA
Kim 등(2024)의 OpenVLA는 가중치를 공개한 70억 매개변수 VLA입니다.
- 구조: 사전학습된 Prismatic-7B VLM 위에 만들었습니다. 이미지는 SigLIP과 DINOv2 두 시각 인코더의 특징을 이어 붙여 읽고, 투영층을 거쳐 Llama 2 7B 언어 모델에 넣습니다.
- 데이터: Open X-Embodiment에서 고른 로봇 시연 97만 개로 학습했습니다.
- 행동 토큰: 차원마다 256구간을 쓰되 경계를 1–99 백분위수로 잡아 이상치 때문에 구간이 넓어지지 않게 했습니다. Llama 토크나이저는 새 토큰 자리를 100개만 남겨 두므로, 가장 적게 쓰이는 마지막 256개 토큰을 행동 토큰으로 덮어썼습니다. 학습은 행동 토큰에 대해서만 교차 엔트로피로 하는 보통의 다음 토큰 예측입니다.
- 성능: 29개 과제와 여러 로봇에서 550억 매개변수의 RT-2-X보다 절대 성공률이 16.5%p 높았습니다. 매개변수는 7분의 1입니다.
- 속도와 미세 조정: RTX 4090 한 장에서 bfloat16으로 약 6 Hz로 돕니다. LoRA로 매개변수의 1.4%만 고쳐 새 과제에 맞출 수 있고, A100 한 장으로 10–15시간이 걸립니다.
행동을 토큰으로 내는 VLA는 언어 모델처럼 토큰을 하나씩 차례로 생성합니다. 7차원 행동이면 행동 하나에 디코딩 7번이 필요합니다. 11장은 이것을 빠르게 만드는 방법을 다룹니다.
256구간 양자화와 그 오차
물체를 집어 옮기는 100걸음짜리 7차원 행동 궤적을 만들었습니다. 고른 차원을 구간 \(N\)개로 나눈 뒤 구간의 가운데 값으로 되돌려, 원래 값(선)과 되돌린 값(계단)을 비교합니다. 튄 값을 넣고 경계 방식을 바꿔 보세요. 아래 줄은 시점 \(t\)의 행동이 바뀐 구간 번호 7개입니다.
11장
빠르고 정밀한 VLA
논문: Kim, Finn & Liang (2025) OpenVLA-OFT · Black et al. (2024) π0 · Zhao et al. (2023) · Chi et al. (2023)
OpenVLA처럼 토큰을 하나씩 내는 VLA는 3–5 Hz로 움직입니다. 양팔 로봇의 섬세한 작업에는 25–50 Hz 이상의 제어가 필요합니다(Kim et al. 2025). 이 차이를 메우는 두 가지 길을 봅니다.
OpenVLA-OFT: 병렬 디코딩, 행동 묶음, 연속 행동
Kim, Finn, Liang(2025)은 OpenVLA를 새 로봇에 맞출 때의 세 가지 설계, 곧 디코딩 방식(자기회귀 대 병렬), 행동 표현(이산 대 연속), 학습 목표(다음 토큰 예측 대 L1 회귀 대 확산)를 비교해 OFT(Optimized Fine-Tuning) 방법을 정리했습니다.
- 병렬 디코딩: 모델에 빈 행동 임베딩을 넣고, 앞의 토큰만 보게 하던 인과적 어텐션 마스크를 양방향으로 바꿉니다. 그러면 행동의 모든 차원을 한 번의 순전파로 냅니다. \(D\)번이던 순차 계산이 1번이 됩니다.
- 행동 묶음: 같은 한 번의 순전파에서 \(K\)걸음의 행동(LIBERO에서는 \(K=8\))을 함께 냅니다. 지연은 17%만 늘고 처리량은 \(K\)배가 됩니다. 8장의 ACT와 같은 생각입니다.
- 연속 행동과 L1 회귀: 256구간 토큰 대신 작은 MLP 머리가 연속값을 직접 내고, 정답과의 절댓값 오차(L1)로 학습합니다. 이산 토큰보다 성능이 좋았고, 확산 목표와 성능은 비슷하면서 훨씬 빨랐습니다.
이 방법으로 LIBERO의 네 묶음 평균 성공률이 76.5%에서 97.1%로 올랐고, 행동 생성 처리량은 26배가 되었습니다. 언어 지시를 더 잘 따르도록 FiLM을 더한 OFT+는 실제 양팔 로봇 ALOHA에서 25 Hz로 움직이며 π0, RDT-1B, Diffusion Policy, ACT보다 평균 성공률이 최대 15%p 높았습니다.
| OpenVLA 변형 (A100, 7차원 행동) | 처리량 | 지연 | LIBERO-Long 성공률 |
|---|---|---|---|
| 자기회귀 (원래 OpenVLA) | 4.2 Hz | 0.240 s | 53.7% |
| + 병렬 디코딩 | 15.9 Hz | 0.063 s | – |
| + 병렬 디코딩, 묶음 \(K=8\) | 108.8 Hz | 0.074 s | 86.5% |
| + 연속 행동 (L1 회귀) | 109.7 Hz | 0.073 s | 90.7% |
| + 연속 행동 (확산, 추론 50단계) | 4.2 Hz | 1.907 s | 91.1% |
| + 연속 행동 (확산, 추론 5단계) | 35.1 Hz | 0.228 s | 90.0% |
Kim et al. (2025) 표 II에서 골랐습니다. 처리량은 1초에 만드는 행동 수, 지연은 행동(또는 묶음) 하나를 만드는 데 걸리는 시간입니다. 확산 변형은 학습 때 50단계를 썼고, 추론 단계를 1단계까지 줄이면 성공률이 0%가 되었습니다.
π0: 흐름 정합으로 50 Hz 묶음
Black 등(2024)의 π0는 30억 매개변수의 PaliGemma VLM에 3억 매개변수의 행동 전문가를 붙인 33억 매개변수 모델입니다. 1만 시간이 넘는 자체 로봇 데이터와 Open X-Embodiment로 사전학습했고, 빨래 개기 같은 긴 작업을 해냈습니다. 행동은 토큰이 아니라 흐름 정합(flow matching)으로 냅니다. 확산의 한 갈래로, 잡음 \(\boldsymbol\varepsilon\)과 정답 묶음 \(A_t\)를 직선으로 섞은 \(A_t^\tau\)에서 정답 쪽으로 가는 속도를 맞히도록 학습합니다.
\[\begin{aligned}A_t^\tau&=\tau A_t+(1-\tau)\,\boldsymbol\varepsilon,\qquad \mathcal{L}(\theta)=\mathbb{E}\,\big\lVert v_\theta(A_t^\tau,o_t)-(A_t-\boldsymbol\varepsilon)\big\rVert^2\\ A_t^{\tau+\delta}&=A_t^\tau+\delta\,v_\theta(A_t^\tau,o_t)\end{aligned}\]흐름 정합의 학습 목표와 추론. \(\tau=0\)의 잡음에서 출발해 \(\tau=1\)까지 적분합니다. π0는 10단계(\(\delta=0.1\))로 \(H=50\)걸음의 묶음을 냅니다 (Black et al. 4장).
속도의 비결은 나눠 계산하는 데 있습니다. 이미지와 지시문은 한 번만 큰 VLM에 넣고, 그 결과를 저장해 둔 채 작은 행동 전문가만 10번 돌립니다. RTX 4090에서 카메라 3대 기준으로 이미지 인코더 14 ms, 관측 순전파 32 ms, 흐름 정합 10단계 27 ms, 합쳐서 73 ms가 걸렸습니다. 50 Hz 로봇에서는 묶음 50걸음 중 25걸음을 실행한 뒤(0.5초마다) 다시 추론했습니다.
디코딩 방식별 지연 계산기
위 두 논문의 측정값으로 맞춘 간단한 계산 모형입니다. 자기회귀, 병렬 디코딩, 반복 생성 방식은 A100에서 잰 OpenVLA-OFT 표 II의 값으로, π0 방식은 RTX 4090에서 잰 π0 표 I의 값으로 맞췄습니다. 행동 차원, 묶음 크기, 반복 단계 수를 바꿔 보세요. 측정한 조건을 벗어나는 값은 외삽입니다.
처리량은 묶음을 모두 실행한다고 볼 때 1초에 만들 수 있는 행동 수(\(K\)/지연)이고, 지연은 새 관측을 받고 첫 행동이 나올 때까지의 시간입니다. 묶음이 크면 처리량은 오르지만, 묶음을 실행하는 동안에는 새 관측에 반응하지 못합니다.
12장
선호에서 보상으로
논문: Bradley & Terry (1952) · Christiano et al. (2017) · Ouyang et al. (2022)
뒤로 공중제비를 넘는 로봇, 컵을 "조심스럽게" 놓는 로봇의 보상 함수를 직접 쓰기는 어렵습니다. 하지만 두 동작을 보여 주고 어느 쪽이 나은지 고르라고 하면 사람은 쉽게 답합니다. Christiano 등(2017)은 사람이 짧은 궤적 조각 두 개를 비교한 결과에서 보상 함수를 배우고, 그 보상으로 강화학습을 하는 방법을 보였습니다. 보상 함수 없이 Atari 게임과 시뮬레이션 로봇 보행을 풀었고, 사람의 피드백은 에이전트 상호작용의 1%도 되지 않았습니다. 새로운 동작은 사람의 시간 약 1시간으로 가르쳤습니다.
브래들리–테리 모형
보상 모델 \(\hat r\)이 있다면, 사람이 궤적 조각 \(\sigma^1\)을 \(\sigma^2\)보다 고를 확률을 두 조각의 보상 합의 차이로 적습니다. 1952년의 브래들리–테리(BT) 모형입니다. Christiano 등은 이를 체스의 Elo 점수에 빗댑니다. 두 선수의 점수 차이가 한쪽이 이길 확률을 정하듯, 두 조각의 예측 보상 차이가 사람이 한쪽을 고를 확률을 정합니다. 보상 모델은 사람의 실제 선택과 이 확률 사이의 교차 엔트로피를 줄이도록 학습합니다.
\[\begin{aligned}\hat P\big[\sigma^1\succ\sigma^2\big]&=\frac{\exp\sum_t \hat r(o^1_t,a^1_t)}{\exp\sum_t \hat r(o^1_t,a^1_t)+\exp\sum_t \hat r(o^2_t,a^2_t)}=\sigma\big(\hat R(\sigma^1)-\hat R(\sigma^2)\big)\\ \mathcal{L}(\hat r)&=-\sum\Big[\mu_1\log\hat P\big[\sigma^1\succ\sigma^2\big]+\mu_2\log\hat P\big[\sigma^2\succ\sigma^1\big]\Big]\end{aligned}\]Christiano et al. (2017) 식 1과 그 손실(2.2.3절). \(\mu\)는 사람이 고른 쪽에 1을 둔 이름표이고, \(\sigma(\cdot)\)는 시그모이드입니다.
RLHF
이 방법은 대형 언어 모델에서 사람 피드백 강화학습(RLHF)으로 크게 쓰였습니다. InstructGPT(Ouyang et al. 2022)는 세 단계를 거칩니다. 먼저 사람이 쓴 모범 답으로 미세 조정(SFT)하고, 같은 질문에 대한 여러 답의 순위로 보상 모델을 학습한 뒤, 그 보상 모델에 대해 PPO로 정책을 학습합니다. 이때 정책이 SFT 모델에서 너무 멀어지지 않도록 KL 벌점을 줍니다. 그 결과 13억 매개변수의 InstructGPT 답이 1,750억 매개변수 GPT-3의 답보다 더 선호되었습니다. 로봇에서도 같은 생각을 동작에 씁니다. 다만 배운 보상 모델은 완벽하지 않으므로, 정책이 그 빈틈을 파고들어 6장의 보상 해킹이 다시 일어날 수 있습니다. KL 벌점은 이를 막는 장치이기도 합니다.
쌍 비교로 보상 모델 학습하기
로봇 팔이 꽃병 옆을 지나 컵을 옮기는 경로 두 개를 보여 줍니다. 더 마음에 드는 쪽을 고르세요. 보상 모델은 세 특징(빠르기, 매끄러움, 꽃병과의 거리)의 가중합이고, 고를 때마다 브래들리–테리 손실로 다시 학습합니다. 직접 고르는 대신 숨은 기준을 가진 가상 평가자에게 맡길 수도 있습니다.
13장
DPO와 다축 선호
논문: Rafailov et al. (2023) DPO · Torne, Mahajan, Bhat & Finn (2026) FPL
KL로 묶은 보상 최대화
RLHF의 강화학습 단계는 보상을 키우되 기준 정책 \(\pi_{\text{ref}}\)(보통 SFT 모델)에서 너무 멀어지지 않게 하는 문제입니다. \(\beta\)가 그 줄의 길이를 정합니다. Rafailov 등(2023)은 이 문제의 최적 정책이 닫힌 꼴로 나온다는 데서 출발합니다.
\[\begin{aligned}&\max_{\pi}\ \mathbb{E}_{y\sim\pi(\cdot\mid x)}\big[r(x,y)\big]-\beta\,\mathbb{D}_{\text{KL}}\big[\pi(y\mid x)\,\Vert\,\pi_{\text{ref}}(y\mid x)\big]\\ &\pi_r(y\mid x)=\frac{1}{Z(x)}\,\pi_{\text{ref}}(y\mid x)\exp\!\Big(\frac{1}{\beta}r(x,y)\Big)\end{aligned}\]KL 제약이 있는 보상 최대화(DPO 식 3)와 그 최적해(식 4). \(Z(x)\)는 확률의 합을 1로 맞추는 분배 함수입니다.
식 4를 거꾸로 풀면 보상을 정책으로 적을 수 있습니다. \(r(x,y)=\beta\log\frac{\pi_r(y\mid x)}{\pi_{\text{ref}}(y\mid x)}+\beta\log Z(x)\)입니다. 브래들리–테리 모형은 두 답의 보상 차이만 쓰므로 계산하기 어려운 \(Z(x)\)가 지워집니다. 그래서 보상 모델을 따로 학습하고 강화학습을 돌리는 대신, 선호 데이터로 정책을 직접 학습하는 DPO(Direct Preference Optimization) 손실이 나옵니다. 정책이 곧 암묵적인 보상 모델 역할을 합니다.
\[\mathcal{L}_{\text{DPO}}(\pi_\theta;\pi_{\text{ref}})=-\mathbb{E}_{(x,y_w,y_l)}\Big[\log\sigma\Big(\beta\log\frac{\pi_\theta(y_w\mid x)}{\pi_{\text{ref}}(y_w\mid x)}-\beta\log\frac{\pi_\theta(y_l\mid x)}{\pi_{\text{ref}}(y_l\mid x)}\Big)\Big]\]DPO 손실(식 7). \(y_w\)는 선호된 답, \(y_l\)은 선호되지 않은 답입니다.
β로 정책 조종하기
로봇이 컵을 집는 방법 8가지가 있습니다. 회색 막대는 시범에서 배운 기준 정책 \(\pi_{\text{ref}}\), 파란 막대는 식 4의 최적 정책입니다. 보상 모델에는 오류가 하나 숨어 있습니다. 7번 "손잡이 끝만 걸치기"를 실제보다 훨씬 좋게 평가합니다. \(\beta\)를 줄여 보세요.
한 줄 선호의 한계
지금까지의 선호는 "전체적으로 어느 쪽이 나은가" 하나였습니다. 하지만 한 궤적은 더 빠르고 다른 궤적은 더 안전하면 전체로는 고르기 어렵습니다. 긴 작업일수록 이런 모호함이 커지고, 서로 다른 품질 기준이 한 신호에 뭉개집니다.
FPL: 자유 형식 다축 선호
Torne, Mahajan, Bhat, Finn(2026)의 FPL(Freeform Preference Learning)은 평가자가 "속도", "안전", "놓는 위치의 정확성", "조심성"처럼 비교할 축을 자연어로 직접 정하고, 두 궤적 전체를 보고 축마다 어느 쪽이 나은지 고르게 합니다.
- 보상 모델: 축마다 따로 모델을 두지 않고, 축의 설명문 \(l_k\)를 조건으로 받는 보상 모델 하나를 학습합니다. "속도", "빠르게", "효율적으로"처럼 비슷한 표현을 한 모델이 함께 다루게 하려는 것입니다. 사전학습된 VLM으로 궤적의 앞부분마다 점수를 매기고 그 합을 궤적의 보상으로 씁니다. 손실은 축마다 적용한 브래들리–테리 손실입니다.
- 정책: 축들을 가중합해 하나의 보상으로 합치는 대신, 축의 설명문과 그 궤적의 축별 보상을 함께 조건으로 주고 행동을 따라 배우는 보상 조건부 정책을 학습합니다. 축별 보상은 데이터 전체에서 표준화해 두고, 실행할 때 원하는 점수를 넣어 정책을 조종합니다. 논문은 π0.5 VLA를 이렇게 미세 조정했습니다.
- 반복: 선호 수집 → 보상 모델 학습 → 정책 학습 → 새 정책으로 실행해 데이터 추가를 되풀이할 수 있습니다.
\[\begin{aligned}\mathcal{L}_{\text{reward}}(\phi)&=-\mathbb{E}\Big[\sum_{k}\log\sigma\Big((2y_k-1)\big(r_\phi(\tau_i\mid l_k)-r_\phi(\tau_j\mid l_k)\big)\Big)\Big]\\ \mathcal{L}_{\text{policy}}(\theta)&=-\mathbb{E}_{\tau_i}\Big[\sum_t\log\pi_\theta\big(a_t\mid s_t,\ l_1,r_\phi(\tau_i\mid l_1),\dots,l_{K},r_\phi(\tau_i\mid l_{K})\big)\Big]\end{aligned}\]FPL의 축별 보상 학습(Torne et al. 식 3)과 보상 조건부 정책 학습(식 5). \(y_k\)는 축 \(l_k\)에서 \(\tau_i\)가 선호되었으면 1입니다.
실제 로봇 과제 4개(큐브를 지정한 그릇에 넣기, 반바지 개기, 토스트 담기, 식탁 차리기)와 시뮬레이션 과제 2개에서 FPL은 두 번째로 좋은 기준선보다 평균 38%p 높은 성공률을 보였습니다. 두 가지 성질도 보고했습니다. 하나는 조합입니다. 너트를 오른쪽 기둥에 빨리 끼우는 과제에서 데이터에는 왼쪽 기둥의 빠른 시범과 느린 시범, 오른쪽 기둥의 느린 시범만 있었는데, FPL 정책은 데이터에 없던 "오른쪽에 빠르게"를 해냈습니다. 다른 하나는 조종입니다. 다시 학습하지 않고 조건 점수만 바꿔 같은 정책을 왼쪽 기둥으로 보낼 수 있었습니다.
조건 점수로 정책 조종하기
FPL 논문의 두 기둥 과제를 본뜬 장난감 예입니다. 점 하나는 시범 궤적 하나를 행동의 두 특성(어느 기둥인가, 얼마나 빠른가)으로 나타낸 것입니다. 데이터에는 왼쪽–빠름, 왼쪽–느림, 오른쪽–느림만 있습니다. 파란 정책은 두 축의 표준화한 점수를 따로 조건으로 받습니다. 주황 정책은 사람이 "전체적으로 어느 쪽이 나은가"로 매긴 점수 하나만 받습니다. 목표 과제가 오른쪽 기둥에 끼우기이므로 이 점수는 주로 기둥이 맞았는지로 정해지고 속도는 조금만 반영된다고 두었습니다(기둥 1, 속도 0.25). 두 정책 모두 조건 점수에서 행동으로 가는 선형 모형을 데이터에 맞췄습니다.
실제 FPL은 VLA 정책과 VLM 보상 모델을 쓰고, 두 기둥 과제도 시뮬레이터의 로봇 팔로 합니다. 이 실험은 축을 나눠 조건으로 주면 데이터에 없던 조합으로 갈 수 있다는 생각만 단순하게 보여 줍니다.
더 읽을 거리
- Sutton & Barto의 나머지 장: 몬테카를로 방법(5장), n단계 부트스트래핑(7장), 계획과 학습의 결합(8장), 함수 근사(9–11장)
- 신경망, 트랜스포머, 확산 모델의 기초: 머신러닝·딥러닝 개념 학습서
- 사람의 뇌 신호를 로봇 제어에 쓰는 방법: BCI 개념 학습서
부록 A
용어집
찾는 용어가 없습니다. 영어 이름이나 약어로도 찾아보세요.
부록 B
교재·논문 대응표
이 학습서의 장과 Sutton & Barto 2판의 절, 그리고 각 장이 근거로 삼은 논문을 맞춰 적었습니다. 7장 이후는 교재가 다루지 않는 최근 내용이라 주로 원 논문에 기댑니다.
| 장 | Sutton & Barto (2018) | 원 논문 |
|---|---|---|
| 1 로봇 학습이란 | 1.1, 1.3, 3.1, 17.3–17.4 | – |
| 2 MDP와 보상 | 3.1–3.5 | – |
| 3 가치함수와 벨만 방정식 | 3.5–3.6, 4.1–4.4, 4.6 | – |
| 4 Q-learning과 탐험 | 2.2, 6.1, 6.4–6.5 | Watkins 1989 |
| 5 심층 강화학습 | 13.1–13.5, 16.5 | Mnih et al. 2015, Schulman et al. 2016, 2017 |
| 6 시뮬레이션에서 현실로 | 13.7, 17.4 | Todorov et al. 2012, Makoviychuk et al. 2021, Liu et al. 2023, Tobin et al. 2017, Peng et al. 2018, Amodei et al. 2016 |
| 7 행동 복제와 DAgger | 17.4 | Ross & Bagnell 2010, Ross et al. 2011 |
| 8 정답이 여러 개인 행동 | – | Zhao et al. 2023, Chi et al. 2023, Ho et al. 2020 |
| 9 로봇 데이터 | – | Ramos et al. 2021, Open X-Embodiment 2024, Brohan et al. 2022 |
| 10 VLA의 구조 | – | Brohan et al. 2022, 2023, Kim et al. 2024 |
| 11 빠르고 정밀한 VLA | – | Kim et al. 2025, Black et al. 2024 |
| 12 선호에서 보상으로 | – | Bradley & Terry 1952, Christiano et al. 2017, Ouyang et al. 2022 |
| 13 DPO와 다축 선호 | – | Rafailov et al. 2023, Torne et al. 2026 |
교재
- Sutton, R. S., & Barto, A. G. (2018). Reinforcement Learning: An Introduction (2nd ed.). MIT Press. 저자 공식 무료판
논문
- Amodei, D., Olah, C., Steinhardt, J., Christiano, P., Schulman, J., & Mané, D. (2016). Concrete problems in AI safety. arXiv:1606.06565
- Barto, A. G., Sutton, R. S., & Anderson, C. W. (1983). Neuronlike adaptive elements that can solve difficult learning control problems. IEEE Transactions on Systems, Man, and Cybernetics, 13(5), 834–846.
- Black, K., et al. (2024). π0: A vision-language-action flow model for general robot control. arXiv:2410.24164
- Bradley, R. A., & Terry, M. E. (1952). Rank analysis of incomplete block designs: I. The method of paired comparisons. Biometrika, 39(3/4), 324–345.
- Brohan, A., et al. (2022). RT-1: Robotics Transformer for real-world control at scale. arXiv:2212.06817
- Brohan, A., et al. (2023). RT-2: Vision-language-action models transfer web knowledge to robotic control. CoRL. arXiv:2307.15818
- Chi, C., Xu, Z., Feng, S., Cousineau, E., Du, Y., Burchfiel, B., Tedrake, R., & Song, S. (2023). Diffusion Policy: Visuomotor policy learning via action diffusion. RSS. arXiv:2303.04137
- Christiano, P., Leike, J., Brown, T. B., Martic, M., Legg, S., & Amodei, D. (2017). Deep reinforcement learning from human preferences. NeurIPS. arXiv:1706.03741
- Ho, J., Jain, A., & Abbeel, P. (2020). Denoising diffusion probabilistic models. NeurIPS. arXiv:2006.11239
- Kim, M. J., et al. (2024). OpenVLA: An open-source vision-language-action model. CoRL. arXiv:2406.09246
- Kim, M. J., Finn, C., & Liang, P. (2025). Fine-tuning vision-language-action models: Optimizing speed and success. arXiv:2502.19645
- Liu, B., et al. (2023). LIBERO: Benchmarking knowledge transfer for lifelong robot learning. NeurIPS Datasets and Benchmarks. arXiv:2306.03310
- Makoviychuk, V., et al. (2021). Isaac Gym: High performance GPU-based physics simulation for robot learning. arXiv:2108.10470
- Mnih, V., et al. (2015). Human-level control through deep reinforcement learning. Nature, 518, 529–533. (초기판: arXiv:1312.5602)
- Open X-Embodiment Collaboration (2024). Open X-Embodiment: Robotic learning datasets and RT-X models. ICRA. arXiv:2310.08864
- Ouyang, L., et al. (2022). Training language models to follow instructions with human feedback. NeurIPS. arXiv:2203.02155
- Peng, X. B., Andrychowicz, M., Zaremba, W., & Abbeel, P. (2018). Sim-to-real transfer of robotic control with dynamics randomization. ICRA. arXiv:1710.06537
- Rafailov, R., Sharma, A., Mitchell, E., Ermon, S., Manning, C. D., & Finn, C. (2023). Direct preference optimization: Your language model is secretly a reward model. NeurIPS. arXiv:2305.18290
- Ramos, S., et al. (2021). RLDS: An ecosystem to generate, share and use datasets in reinforcement learning. arXiv:2111.02767
- Ross, S., & Bagnell, J. A. (2010). Efficient reductions for imitation learning. AISTATS.
- Ross, S., Gordon, G., & Bagnell, J. A. (2011). A reduction of imitation learning and structured prediction to no-regret online learning. AISTATS. arXiv:1011.0686
- Schulman, J., Moritz, P., Levine, S., Jordan, M., & Abbeel, P. (2016). High-dimensional continuous control using generalized advantage estimation. ICLR. arXiv:1506.02438
- Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Klimov, O. (2017). Proximal policy optimization algorithms. arXiv:1707.06347
- Tobin, J., Fong, R., Ray, A., Schneider, J., Zaremba, W., & Abbeel, P. (2017). Domain randomization for transferring deep neural networks from simulation to the real world. IROS. arXiv:1703.06907
- Todorov, E., Erez, T., & Tassa, Y. (2012). MuJoCo: A physics engine for model-based control. IROS.
- Torne, M., Mahajan, A., Bhat, A., & Finn, C. (2026). Freeform preference learning for robotic manipulation. arXiv:2606.32027
- Watkins, C. J. C. H. (1989). Learning from delayed rewards (PhD thesis). University of Cambridge.
- Williams, R. J. (1992). Simple statistical gradient-following algorithms for connectionist reinforcement learning. Machine Learning, 8, 229–256.
- Zhao, T. Z., Kumar, V., Levine, S., & Finn, C. (2023). Learning fine-grained bimanual manipulation with low-cost hardware. RSS. arXiv:2304.13705