본 정리는 포항공과대학교 Physical AI 수업을 듣고 정리한 리뷰이다. 틀린 내용이 있으면 댓글로 편안하게 말씀 부탁드립니다.
Part3에서는 모방학습 종류 중 하나인 역강화학습(Inverse Reinforcement Learning)에 대해서 정리해보고자 합니다.
역강화학습(Inverse Reinforcement Learning)이란 무엇인가
Inverse Reinforcement Learning (IRL)은 전문가의 시연 데이터(demonstrations, trajectories)가 주어졌을 때, 이를 바탕으로 전문가의 정책(policy) π를 추정하고, 추정된 정책이 최적이라고 가정하여 전문가의 행동을 설명할 수 있는 보상 함수(reward function) R을 학습하는 방법이다.
Vanilla IRL의 두 가지 가정
가장 기본적인 형태의 IRL은 두 가지 핵심 가정 위에 서 있다.

가정 1. 보상 함수는 특징(feature)들의 선형 결합이다
r(s) = ω^T φ(s)
여기서 ω는 가중치 벡터(ω ∈ ℝⁿ)이고, φ(s)는 상태의 특징 벡터를 의미하는 함수(φ: S → ℝⁿ)다. 예를 들어 자율주행 맥락에서는 도로 경계까지의 거리, 차선 중앙으로부터의 이탈 정도, 주변 차량과의 충돌 위험도 등이 각각의 특징이 될 수 있고, 각 특징에 곱해지는 가중치는 그 특징이 보상에 얼마나 영향을 미치는지를 나타낸다.
가정 2. 전문가는 최적이며, 진짜 보상 r이 전문가 정책 π를 정당화한다
수식으로 표현하면, 우리가 찾고자 하는 r*은 다음 조건을 만족해야 한다.
E[Σ_(t=0)^∞ γ^t r*(s_t) | π*] ≥ E[Σ_(t=0)^∞ γ^t r*(s_t) | π] (모든 π ∈ Π에 대해)
즉, 전문가 정책 π*를 따랐을 때의 기대 누적 보상이, 다른 어떤 정책 π를 따랐을 때보다 항상 크거나 같아야 한다는 뜻이다.
두 가정을 결합하면 생기는 세 가지 난제
이 두 가정을 결합해보자. 좌변의 누적 보상 표현식은 강화학습에서의 가치 함수 V^π*(s)와 정확히 같은 형태다. 즉 V^π*(s) ≥ V^π(s) (모든 π에 대해)라는 조건이다.
이제 보상이 선형 결합이라는 가정을 대입하면 다음과 같이 전개된다.
E[Σ_(t=0)^∞ γ^t r(s_t) | π] = E[Σ_(t=0)^∞ γ^t ω^T φ(s) | π] = ω^T E[Σ_(t=0)^∞ γ^t φ(s) | π] = ω^T μ(π)
여기서 등장하는 **μ(π)**가 바로 **특징 기댓값(feature expectation)**이다. 이는 정책 π를 따랐을 때 방문하게 되는 상태들의 분포에 따라 결정되는 양이며, 직관적으로는 "정책 π가 평균적으로 어떤 특징들을 얼마나 자주 경험하는가"를 나타낸다.
결과적으로 우리의 목표는 다음과 같이 단순화된다.
ω*를 찾아라, 단 ω*^T μ(π*) ≥ ω*^T μ(π)가 모든 π에 대해 성립하도록
그런데 이 단순한 형태의 목표는 다음과 같은 난제를 안고 있다.
ω = 0, 즉 r = 0이라는 해가 항상 위 부등식을 만족시킨다. 모든 정책에 대해 0 ≥ 0이 성립하기 때문이다.
보상 모호성을 해결하는 두 가지 전략
동일한 전문가 정책 π*를 설명할 수 있는 보상 함수 r은 무수히 많이 존재할 수 있다. 이 모호성을 해소하기 위한 대표적인 두 가지 접근이 있다.
- 최대 마진 계획법(Maximum Margin Planning)
- 최대 엔트로피 역강화학습(Maximum Entropy IRL)
최대 마진 계획법(Maximum Margin Planning)
최대 마진 계획법(Maximum Margin Planning, MMP)의 기본 아이디어는 직관적이다. 전문가 정책 \(\pi^*\)를 다른 모든 정책 \(\pi\)들로부터 가장 잘 "분리"하는 보상 \(r\)을 찾는 것이다. 이는 SVM에서 사용하는 최대 마진 분류기의 아이디어를 그대로 가져온 것이다.
SVM이 정확히 뭘 하는지부터 보기
SVM의 상황을 그려보자. 평면 위에 클래스 \(+1\)에 속하는 점들과 클래스 \(-1\)에 속하는 점들이 흩어져 있다. 이 둘을 가르는 초평면(직선)을 긋고 싶다. 초평면의 방정식은 다음과 같이 쓸 수 있다.
\[ \vec{\omega} \cdot \vec{x} - b = 0 \]
여기서 \(\vec{\omega}\)는 이 초평면에 수직인 방향 벡터, \(b\)는 초평면의 위치를 정하는 절편이다. 학습 데이터 \((\vec{x}_1, y_1), \dots, (\vec{x}_n, y_n)\)이 주어지고, 각 \(y_i\)는 \(+1\) 또는 \(-1\)로 클래스를 나타낸다.
목표는 두 클래스를 나누는 초평면을 찾되, 그 초평면과 각 클래스에서 가장 가까운 점 사이의 거리(마진)를 최대화하는 것이다. 이를 수식으로 쓰면 다음과 같다.
\[ \min_{\vec{\omega}} \|\vec{\omega}\|, \quad \text{s.t. } y_i(\vec{\omega} \cdot \vec{x}_i - b) \geq 1 \quad \text{for } i = 1, \dots, n \]
이 제약 조건이 말하는 것은 다음과 같다.
- \(y_i = +1\)인 점이라면, \(\vec{\omega} \cdot \vec{x}_i - b\)가 양수여야 하고 그 크기가 최소 1은 되어야 한다
- \(y_i = -1\)인 점이라면, \(y_i\)를 곱하면 부호가 뒤집히므로, 원래 \(\vec{\omega} \cdot \vec{x}_i - b\)는 음수이되 그 절댓값이 최소 1은 되어야 한다
즉 \(y_i\)를 곱해주는 트릭 덕분에, "어느 클래스든 상관없이 초평면으로부터 최소 1만큼은 떨어져 있어야 한다"는 조건 하나로 양쪽 클래스를 동시에 표현할 수 있다. 그리고 이 조건을 만족하는 한도 내에서 \(\|\vec{\omega}\|\)를 최소화하는 것이, 실제로는 마진을 최대화하는 것과 동치가 된다. (이 동치 관계는 점과 초평면 사이의 거리 공식에서 나오는데, 바로 다음 절에서 IRL에 적용하며 같이 유도해본다.)
IRL에 SVM의 아이디어 적용하기
IRL에서는 "전문가의 특징 기댓값 \(\mu(\pi^*)\)"와 "다른 정책의 특징 기댓값 \(\mu(\pi)\)"가 마치 두 개의 서로 다른 클래스처럼 취급된다. 분리 초평면은 \(\omega^T x - b = 0\)의 형태를 가지며, 우리가 원하는 조건은 다음과 같다.
\[ \omega^T \mu(\pi^*) \geq \omega^T \mu(\pi) \]
이를 \(\omega^T \mu(\pi^*) - b \geq 0\) 그리고 \(\omega^T \mu(\pi) - b \leq 0\)의 형태로 다시 쓸 수 있다. 즉 전문가의 특징 기댓값은 초평면의 한쪽에, 나머지 모든 정책의 특징 기댓값은 다른 쪽에 위치하도록 만드는 것이다. SVM에서 \(y_i = +1\)인 점과 \(y_i = -1\)인 점을 나누던 것과 정확히 같은 구도이며, 여기서는 그 구분이 이미 "전문가 대 나머지"로 고정되어 있다고 보면 된다.
점과 초평면 사이의 거리부터 정확히 구하기
"마진을 최대화한다"는 것을 다루기 전에, 먼저 점과 초평면 사이의 거리 공식을 직접 유도해보자. 점 \(x_i\)가 있고 초평면 \(\omega^T x - b = 0\)이 있을 때, \(x_i\)에서 초평면에 내린 수선의 발을 \(x_p\)라 하면 다음이 성립한다.
\[ x_p = x_i - d \]
여기서 \(d\)는 항상 초평면에 수직인 방향, 즉 \(\omega\)와 같은 방향을 향하므로 \(d = \alpha\omega\)로 쓸 수 있다(\(\alpha\)는 크기를 조절하는 스칼라). \(x_p\)는 초평면 위의 점이므로 \(\omega^T x_p - b = 0\)을 만족해야 한다. \(x_p = x_i - \alpha\omega\)를 대입하면,
\[ \omega^T(x_i - \alpha\omega) - b = 0 \;\;\Rightarrow\;\; \alpha = \frac{\omega^T x_i - b}{\omega^T \omega} \]
거리는 \(d\)의 길이이므로,
\[ \|d\|^2 = d^T d = \alpha^2 (\omega^T \omega) = \frac{(\omega^T x_i - b)^2}{\omega^T \omega} \]
양변에 제곱근을 씌우면 점과 초평면 사이의 거리 공식이 나온다.
\[ \|d\| = \frac{|\omega^T x_i - b|}{\|\omega\|} \]
분모 \(\|\omega\|\)로 나눠주는 이유가 중요하다. \(\omega\)를 2배로 늘리면 분자도 2배가 되지만 분모도 2배가 되어 결국 거리는 똑같이 나온다. 즉 이 거리는 \(\omega\)의 크기와 무관한 "진짜 거리"다.
이 거리 공식을 IRL의 두 그룹에 적용하기
이제 점 \(x_i\) 대신 \(\mu(\pi^*)\)와 \(\mu(\pi)\)를 넣어보자. 전문가 쪽으로의 거리와 다른 정책 쪽으로의 거리는 각각 다음과 같다.
\[ \text{전문가까지의 거리} = \frac{\omega^T \mu(\pi^*) - b}{\|\omega\|}, \qquad \text{다른 정책까지의 거리} = -\frac{\omega^T \mu(\pi) - b}{\|\omega\|} \]
다른 정책 쪽 거리에 음수가 붙는 이유는, 이 점이 초평면의 반대쪽(\(\omega^T \mu(\pi) - b \leq 0\))에 있기 때문에 부호를 뒤집어 양수 거리로 만들어주기 위함이다.
마진을 정의하고, 가장 마진이 작은 경우를 기준으로 최대화하기
우리가 최대화하고 싶은 마진은 이 두 거리의 평균이다. 그리고 모든 경쟁 정책 \(\pi\) 중에서 가장 마진이 가장 작은 경우를 상대로도 마진이 최대가 되도록 \(\omega\)를 고르고 싶으므로, \(\min_\pi\)와 \(\max_\omega\)가 함께 등장한다.
\[ \max_{\omega} \min_{\pi} \; \frac{1}{2}\left[ \frac{\omega^T \mu(\pi^*) - b}{\|\omega\|} + \left(-\frac{\omega^T \mu(\pi) - b}{\|\omega\|}\right) \right] \]
이 식을 정리해보자. 분모 \(\|\omega\|\)를 묶어내고 \(b\)는 서로 상쇄되어 사라진다.
\[ = \max_{\omega} \min_{\pi} \; \frac{\omega^T \mu(\pi^*) - \omega^T \mu(\pi)}{\|\omega\|} \]
\(1/\|\omega\|\)는 \(\pi\)에 대해서는 상수이므로 \(\min_\pi\) 바깥으로 뺄 수 있다.
\[ = \max_{\omega} \frac{1}{\|\omega\|} \min_{\pi} \left[ \omega^T \mu(\pi^*) - \omega^T \mu(\pi) \right] \]
스케일이 자유롭다는 점을 이용해 마진을 1로 고정하기
여기서 핵심 통찰이 등장한다. \(\omega\)의 스케일(크기)은 본질적으로 의미가 없다. \(\omega\)를 2배로 늘리면 분자도 2배, \(1/\|\omega\|\)는 절반이 되어 전체 값은 동일하게 유지된다. 즉 \(\omega\)의 "방향"만 실질적인 의미를 가지며, "크기"는 우리가 임의로 정할 수 있는 자유도다.
그래서 다음과 같이 약속한다. 어차피 크기는 자유로우니, \(\min_\pi [\omega^T \mu(\pi^*) - \omega^T \mu(\pi)]\)의 값을 그냥 1로 고정해버리자. 그러면 최대화해야 하는 식은 단순히 \(1/\|\omega\|\)가 되고, 이를 최대화하는 것은 \(\|\omega\|\)를 최소화하는 것과 동치다.
\[ \max_{\omega} \frac{1}{\|\omega\|} \min_{\pi}\left[\omega^T \mu(\pi^*) - \omega^T \mu(\pi)\right] \;\;\xrightarrow{\;\min_\pi(\cdot) = 1 \text{로 고정}\;}\;\; \min_{\omega} \|\omega\|, \quad \text{s.t. } \omega^T \mu(\pi^*) - \omega^T \mu(\pi) \geq 1 \;\; \forall \pi \]
이것이 바로 최대 마진 계획법의 최종 목적함수다. 마진을 1로 고정한 채로 \(\|\omega\|\)를 최소화한다는 것은, 결과적으로 마진을 최대화하는 것과 동치이며, 이는 정확히 SVM의 최적화 문제와 동일한 형태다.
왜 ‖ω‖를 최소화하는 게 마진을 최대화하는 것과 같은가
"차이를 1로 못 박아둔다"는 것은 "같은 1만큼의 점수 차이를 누가 더 적은 \(\omega\)로 만들어내는가"를 보는 것과 같다. 똑같이 일정한 차이를 만드는데, 눈금 한 칸이 작은 자(즉 \(\|\omega\|\)가 큰 경우)는 그 차이를 만드는 데 큰 \(\omega\)가 필요하고, 눈금 한 칸이 큰 자(즉 \(\|\omega\|\)가 작은 경우)는 작은 \(\omega\)로도 충분하다. 눈금이 큰 자일수록 실제 \(\mu\) 공간에서의 거리는 상대적으로 더 크다는 뜻이 된다. 그래서 \(\|\omega\|\)를 최소화하는 것이, 결국 실제 공간에서의 마진을 최대화하는 것과 동치가 되는 것이다.
이 제약이 어떻게 ω=0 같은 무의미한 답을 걸러내는가
원래 조건이었던 \(\omega^T \mu(\pi^*) \geq \omega^T \mu(\pi)\)에 \(\omega = 0\)을 넣으면 \(0 \geq 0\)으로 항상 참이 되어, 의미 없는 답도 통과해버리는 문제가 있었다. 하지만 MMP의 조건 \(\omega^T \mu(\pi^*) - \omega^T \mu(\pi) \geq 1\)에 \(\omega = 0\)을 넣으면 \(0 \geq 1\)이 되어 거짓이 된다. 즉 "최소 1점 차이"라는 구체적인 마진을 강제로 박아 넣었기 때문에, 다 똑같이 0점이라서 의미 없는 \(\omega = 0\) 같은 해가 자동으로 탈락하게 된다.
Maximum Entropy IRL
MMP는 "전문가가 다른 정책보다 마진을 두고 확실히 낫다"는 딱딱한 기준으로 모호성을 풀었다. 그런데 사람이 항상 한 치 오차 없이 최적만 고르진 않는다. 가끔 조금 덜 좋은 선택도 한다.
MaxEnt IRL은 "전문가 = 무조건 1등" 대신 **"좋은 선택일수록 더 자주 나온다"**는 확률적 가정으로 간다.
- \(\xi = \{(s_1, a_1), \dots, (s_T, a_T)\}\): 궤적 하나
- \(D = \{\xi_1, \dots, \xi_{|D|}\}\): 전문가 시범 모음
- \(f(\xi)\): 궤적 전체의 특징 벡터 (상태 특징을 시간에 따라 합친 것)
- \(f_D = \frac{1}{|D|} \sum_{\xi \in D} f(\xi)\): 시범에서 관찰된 특징 평균 (경험적 특징 기댓값)
보상이 특징에 선형(\(r = \lambda^T \phi\))이면, 누적 보상 기댓값이 특징 기댓값으로 깔끔하게 정리된다.
\[ \mathbb{E}_{\xi \sim p}\left[ \sum_t \gamma^t r(s_t) \right] = \lambda^T \mathbb{E}_{\xi \sim p}[f(\xi)] \]
핵심 가정: \(p(\xi) \propto \exp(r(\xi))\)
\[ p(\xi) \propto \exp(r(\xi)) \]
보상이 높은 궤적일수록 지수적으로 더 자주 뽑힌다는 뜻이다. \(\exp\)를 쓰는 이유는 두 가지 — (1) 항상 양수라 확률에 자연스럽게 맞고, (2) 점수 차이를 가파르게 벌려서 "보상이 크게 다르면 선택 확률도 크게 갈린다"는 직관을 반영한다.
세계관 정리: 전문가는 최적만 찍는 로봇이 아니라, **보상에 비례하는 확률로 궤적을 고르는 존재**다. 나쁜 선택도 아주 가끔은 나온다.
왜 엔트로피를 최대화하나
목표는 **경험적 특징 평균과 일치하면서, 엔트로피가 최대인 분포 \(p\)**를 찾는 것이다.
\[ \max_{p} \int -p(\xi) \log p(\xi) \, d\xi \]
\[ \text{s.t.} \quad \int p(\xi) f(\xi) \, d\xi = f_D, \quad \int p(\xi) \, d\xi = 1, \quad p(\xi) \ge 0 \]
왜 하필 엔트로피 최대인가는 동전 던지기로 보면 쉽다. "앞/뒤만 있다"는 정보뿐일 때 가장 합리적인 추측은 50:50이다. "앞면 90%"라고 우기는 건 없는 정보를 멋대로 끼워 넣는 것이다.
여기서 우리가 아는 건 "전문가 특징 평균 \(= f_D\)"뿐이다. 그 제약만 지키고 그 외엔 쓸데없이 한쪽으로 치우치지 않는 분포, 즉 엔트로피 최대 분포를 고른다. 행동으로 풀면: **보상 낮은 경로는 확실히 덜 뽑히게 하되, 똑같이 좋은 경로들끼리는 차별 없이 동등하게.**
라그랑지안으로 풀기
제약 두 개(특징 일치 → \(\lambda\), 정규화 → \(\nu\))에 승수를 붙인다.
\[ L = \int -p \log p \, d\xi + \lambda^T \left( \int p f \, d\xi - f_D \right) + \nu \left( \int p \, d\xi - 1 \right) \]
\(p\)로 미분해서 0으로 둔다 (\(-p \log p\)의 미분은 \(-\log p - 1\)).
\[ -\log p(\xi) - 1 + \lambda^T f(\xi) + \nu = 0 \quad \Rightarrow \quad p^*(\xi) = \exp\left( \lambda^T f(\xi) + \nu - 1 \right) \]
\(\nu\)는 정규화 제약에서 정해진다. 대입해 정리하면 \(\exp(-1)\)이 분자·분모에서 약분되어 깔끔한 꼴만 남는다.
\[ p^*(\xi) = \frac{\exp(\lambda^T f(\xi))}{\int \exp(\lambda^T f(\xi)) \, d\xi} \]
**여기가 핵심이다.** 엔트로피 최대화라는 순수 확률 원칙에서 출발했는데, 결과가 맨 처음 가정한 \(p \propto \exp(r)\)와 정확히 같은 꼴로 나온다(\(r = \lambda^T f\)). 그리고 **특징 일치 제약에 붙은 라그랑지 승수 \(\lambda\)가 곧 우리가 찾던 보상 가중치**다. 가정과 유도 결과가 맞물린다는 게 MaxEnt IRL의 묘미.
\(\lambda\) 찾기: 로그 가능도 최대화
관찰된 시범 \(D\)가 가장 잘 나오게 하는 \(\lambda\)를 찾는다.
\[ M(\lambda) = \lambda^T f_D - \log \int \exp\left( \lambda^T f(\xi) \right) d\xi \]
그래디언트 어센트로 \(M\)을 올린다. 그래디언트가 아주 깔끔하게 나온다.
\[ \nabla_\lambda M = f_D - \mathbb{E}_{\xi \sim p(\xi; \lambda)}[f(\xi)] \]
\[ \lambda_{i+1} \leftarrow \lambda_i + \alpha \nabla_\lambda M \]
의미: **(전문가 시범의 평균 특징) − (현재 \(\lambda\) 모델이 예측하는 평균 특징)**. 둘이 같아지면 그래디언트가 0이 되어 수렴한다. 결국 수렴 조건은 "특징 기댓값 맞추기(feature matching)"다.
> 그래디언트가 왜 이렇게 깔끔한가: \(\log \int \exp(\lambda^T f)\)를 \(\lambda\)로 미분하면 체인룰 + 적분·미분 교환으로 \(\dfrac{\int f e^{\lambda^T f}}{\int e^{\lambda^T f}}\)가 되는데, 이게 정확히 \(p(\xi; \lambda)\) 하의 \(\mathbb{E}[f]\)다. log-partition을 미분하면 기댓값이 떨어지는 지수족(exponential family)의 일반 성질이다.
전체 알고리즘과 한계
1. \(\lambda\) 초기화, 전문가 시범 \(D\) 수집
2. 현재 \(\lambda\)로 최적 정책 \(\pi_\lambda(a \mid s)\) 구하기 ← **강화학습 루프**
3. 상태 방문 빈도 \(P_\lambda(s)\) 계산
4. 그래디언트 \(\nabla_\lambda M\) 계산
5. \(\lambda\) 한 스텝 업데이트 → 반복
**한계는 2번에 있다.** \(\lambda\)가 한 번 바뀔 때마다 "그 보상에서의 최적 정책"을 처음부터 다시 풀어야 한다. 매 반복마다 강화학습을 통째로 새로 푸는 셈이다. 이 비용을 GAN식 경쟁 구조로 우회한 것이 GAIL이다.
GAIL
MaxEnt IRL은 보상 가중치를 한 번 갱신할 때마다 "그 보상에서 최적 정책은 뭔가"를 강화학습으로 매번 처음부터 다시 풀어야 한다. 이 내부 루프가 계산적으로 무겁다.
GAIL은 이 부담을 아예 우회한다. **보상을 복원하지 않는다.** 대신 GAN과 똑같은 구조로 정책과 판별기를 경쟁시켜서, "전문가와 구별되지 않는 행동"을 곧바로 학습한다.
- 정책 \(\pi\) = 생성자. 전문가처럼 행동하려는 에이전트
- 판별기 \(D\) = 주어진 \((s, a)\)가 정책에서 나왔는지 전문가에서 나왔는지 구분
- 목표: 정책의 \((s, a)\)가 전문가의 것과 구별 안 될 만큼 정교해지기
목적함수
GAIL은 다음 안장점(saddle point) 문제다.
\[ \min_{\pi} \max_{D} \mathbb{E}_{\pi}[\log D(s, a)] + \mathbb{E}_{\pi_E}[\log(1 - D(s, a))] - \lambda H(\pi) \]
- 첫째 항 \(\mathbb{E}_{\pi}[\log D]\): 정책이 만든 \((s, a)\)에 대한 판별기 점수
- 둘째 항 \(\mathbb{E}_{\pi_E}[\log(1 - D)]\): 전문가 \((s, a)\)에 대한 판별기 점수
- 셋째 항 \(-\lambda H(\pi)\): 엔트로피 정규화. 정책이 최소화하므로 결국 \(H(\pi)\)를 키우는 방향 → 행동이 한쪽으로 쏠리지 않게 함
판별기 \(D\)는 이 식을 최대화(잘 구분)하려 하고, 정책 \(\pi\)는 최소화(못 구분하게)하려 한다. 둘이 정반대로 움직여서 안장점이다.
헷갈렸던 부분: D는 "무엇일" 확률인가
여러 자료가 \(D\)를 "전문가일 확률"이라고 설명하는데, 식은 위처럼 \(\mathbb{E}_{\pi}[\log D] + \mathbb{E}_{\pi_E}[\log(1 - D)]\)로 써놔서 부호가 안 맞는 것처럼 보였다. 한참 꼬였던 지점인데, 식이 정의하는 대로 받아들이면 깔끔하다.
\(D(s, a)\) = "이 \((s, a)\)가 정책(가짜)에서 나왔을 확률"
이렇게 잡으면 전부 일관된다.
- 판별기 입장(max): 정책 데이터에는 \(D \to 1\), 전문가 데이터에는 \(D \to 0\). 즉 가짜는 가짜로, 진짜는 진짜로 맞히는 평범한 이진 분류.
- 정책 입장(min): 비용 \(c(s, a) = \log D(s, a)\)를 줄인다 → 자기 행동에서 \(D \to 0\) → 결국 전문가처럼 보이게 만든다.
"전문가일 확률"로 잡으면 매 단계 부호를 뒤집어 설명해야 해서 헷갈린다. "가짜일 확률"로 통일하는 게 식과 맞고 머릿속에서도 안 꼬인다.
학습: 두 단계를 번갈아
**1단계 — 판별기 업데이트.** 그냥 이진 분류 문제다. 정책 데이터는 가짜로(\(D \to 1\)), 전문가 데이터는 진짜로(\(D \to 0\)) 맞히도록 \(w\)를 한 스텝.
\[ \hat{\mathbb{E}}_{\tau_i}[\nabla_w \log D_w(s, a)] + \hat{\mathbb{E}}_{\tau_E}[\nabla_w \log(1 - D_w(s, a))] \]
**2단계 — 정책 업데이트.** 판별기 점수를 보상 대신 써서 TRPO 스텝.
\[ \hat{\mathbb{E}}_{\tau_i}[\nabla_\theta \log \pi_\theta(a \mid s) \, Q(s, a)] - \lambda \nabla_\theta H(\pi_\theta) \]
\[ Q(\bar{s}, \bar{a}) = \hat{\mathbb{E}}_{\tau_i}\left[ \log D_{w_{i+1}}(s, a) \mid s_0 = \bar{s}, a_0 = \bar{a} \right] \]
핵심은 일반 정책 그래디언트의 \(Q(s, a)\) 자리에 진짜 누적 보상 대신 판별기 점수 \(\log D\)를 꽂았다는 것뿐이다. "판별기가 이 행동을 얼마나 전문가스럽다고 보는지"가 보상 신호가 된다.
TRPO를 쓰는 이유: 정책 그래디언트는 추정 노이즈가 커서, 큰 보폭으로 따라가면 정책이 한 번에 망가진다. KL 제약으로 한 스텝당 변화량을 묶어 이걸 막는다.
알고리즘 전체

입력: 전문가 궤적 \(\tau_E \sim \pi_E\), 초기 파라미터 \(\theta_0, w_0\).
반복 \(i = 0, 1, 2, \dots\):
1. 현재 정책 \(\pi_{\theta_i}\)로 궤적 \(\tau_i\)를 샘플링
2. 위 판별기 그래디언트로 \(w_i \to w_{i+1}\)
3. \(\log D_{w_{i+1}}\)을 보상으로 써서 TRPO로 \(\theta_i \to \theta_{i+1}\)
판별기가 똑똑해지면 정책도 더 정교해져야 살아남고, 정책이 정교해지면 판별기도 더 똑똑해져야 구분한다. 이 경쟁이 수렴하면 정책은 전문가와 거의 구별되지 않는 행동을 한다.
출처: 포항공과대학교 Physical AI 강의
'VLA(Vision Langage Action)' 카테고리의 다른 글
| [Physical AI 강의] Part 5. VLA(Vision Language Action Models) (0) | 2026.06.29 |
|---|---|
| [Physical AI 강의] Part 4-2. VLM(Vision-Language Models) (0) | 2026.06.29 |
| [Physical AI 강의] Part 4-1. VLM(Vision-Language Models) (0) | 2026.06.29 |
| [Physical AI 강의] Part 2. 행동 복제(Behavioral Cloning) (0) | 2026.06.25 |
| [Physical AI 강의] Part 1. 모방 학습(Imitation Learning) (0) | 2026.06.25 |