표현과 과제 수행 신호: Dreamer라는 실전 사례
지표가 인터페이스와 맞아떨어져야 하는 이유
반례: FID로 MuZero를 평가하는 경우입니다. MuZero는 애초에 픽셀 이미지를 생성하지 않습니다. 월드모델도 암묵적으로만 존재해 FID 자체가 무의미합니다. 마찬가지로 "토큰 예측 손실"로 Dreamer를 평가하면, Dreamer가 마치 언어 모델인 것 같은 착각만 심어줄 뿐입니다.
서로 다른 월드모델은 서로 다른 지점에서 실패합니다.
| 아키텍처 | 가장 흔한 실패 지점 |
|---|---|
| RNN/RSSM(Dreamer) | 인코더 퇴화, 상상 보상 왜곡, KL 붕괴 |
| 암묵적 모델(MuZero) | 가치 추정 편향, 표현 안정성 약화, 탐색 트리 퇴화 |
| 잠재 MPC(TD-MPC) | 잠재 표현 불일치, 표현 붕괴, 계획 효율 저하 |
| Transformer 동역학(STORM) | teacher forcing과 free-running 사이의 격차, 장기 토큰 드리프트 |
| Diffusion 월드모델(Diamond) | 물리 일관성 붕괴, 장면 내 물체 소실 |
Dreamer(RNN/RSSM)
P03에서 Dreamer의 전체 파이프라인을 직접 구현해봤습니다. 인코더가 RSSM 예측을 잠재 Actor-Critic에 넘기고, 그 Actor-Critic의 정책이 실행할 동작을 선택하는 구조입니다.
Dreamer는 생성 모델이 아니라 강화학습 알고리즘입니다. Dreamer V1/V2/V3 논문 전체를 관통하는 핵심 질문은 단 하나, 바로 이것입니다.
정책이 실제 환경에서 높은 보상을 얻을 수 있는가?
모든 지표는 "이미지 재구성이 얼마나 그럴듯한가"에 답하기 위한 것이 아니라, 바로 이 질문에 답하기 위한 것입니다.
정책 보상 곡선(Episode Return)
이는 Dreamer 시리즈 전체에서 가장 핵심적인 지표입니다. Hafner et al.(2019)는 DMControl에서 과제별 episode return을 보고했고, Hafner et al.(2020)은 Atari에서 2억 프레임에 걸친 episode return을 보고했으며, Hafner et al.(2023)은 단일 하이퍼파라미터 세트로 7개 도메인에 걸친 episode return을 보고했습니다. 세 논문 모두의 핵심 그림은 학습 스텝 대비 누적 보상 곡선이며, 모델 프리 베이스라인(SAC, Soft Actor-Critic, 최대 엔트로피 프레임워크에 기반한 off-policy Actor-Critic 알고리즘으로 연속 제어 태스크에서 강력한 모델 프리 베이스라인입니다; DrQ-v2, Data-regularized Q, SAC에 데이터 증강과
진단 규칙: 학습 곡선이 오랫동안 정체되거나 하락한다면 원인은 두 가지입니다. 첫째, 보상 예측이 왜곡된 경우(월드모델이 거짓말을 하는 상태)로, Actor-Critic이 잘못된 상상 보상을 기준으로 최적화하게 됩니다. 둘째, RSSM의 동역학 예측이 드리프트하는 경우로, 상상 롤아웃이 실제 환경 분포에서 점점 멀어집니다. 둘을 구분하려면 보상 상관관계를 함께 살펴봐야 합니다.
P03 실험에서 추적하는 법: 일정 간격(예: 1만 스텝마다)으로 학습을 멈추고 실제 환경에서 여러 개의 완전한 에피소드를 실행해 평균 episode return을 기록하고 곡선을 그립니다. 이 곡선이 Dreamer가 제대로 학습되고 있는지 판단하는 최종 기준입니다.
보상 상관관계(Reward Correlation)
Dreamer는 "상상" 속에서 궤적을 펼치며 보상을 예측합니다. Actor-Critic이 쓸모 있는 정책을 학습하려면, 이 상상 보상이 실제 환경이 반환하는 보상과 높은 상관관계를 가져야 합니다.
📖 피어슨 상관계수(Pearson correlation coefficient): 두 변수 사이의 선형 상관 정도를 측정하는 표준 지표로, 값의 범위는
입니다. 은 완전한 양의 상관관계(한쪽이 커지면 다른 쪽도 일정한 비율로 커짐)를, 은 선형 상관관계 없음을, 은 완전한 음의 상관관계를 나타냅니다. 공식은 이며, 는 공분산, 는 표준편차입니다. 여기서는 상상 보상 시퀀스와 실제 보상 시퀀스의 추세가 함께 움직이는지를 측정하는 데 씁니다.
실전에서는 롤아웃 배치 하나(예: 1000스텝)를 가져와 상상 보상 시퀀스와 실제 보상 시퀀스 사이의 피어슨 상관계수를 계산하며, 목표치는 ρ ≥ 0.8입니다.
진단 규칙: ρ가 계속 0.5 아래에 머문다면, RSSM의 확률적 상태 z_t가 보상 정보를 충분히 인코딩하지 못하고 있다는 뜻입니다. 잠재 차원을 늘리거나 KL 어닐링(KL annealing) 스케줄을 연장하는 것이 좋습니다.
실험 제안: 상상 롤아웃과 실제 롤아웃의 보상 곡선을 시각화해보는 것이 좋습니다. 구체적으로는, 같은 초기 상태에서 출발해 Dreamer가 20스텝짜리 상상 롤아웃을 펼치는 동시에 실제 환경에서도 같은 동작 시퀀스를 실행한 뒤, 두 보상 곡선을 한 그래프에 겹쳐 그립니다. 두 곡선의 추세가 비슷하다면(완전히 겹치지 않더라도) 월드모델이 환경을 충실히 반영하고 있다는 뜻입니다. 반대로 상상 보상이 실제 보상보다 계속 높고 추세마저 반대로 간다면, 월드모델이 거짓말을 하고 있는 것이고 정책은 가짜 최적화 목표를 상대로 요령만 익힌 셈입니다. 이것이 바로 모델 악용 문제의 근본 원인입니다.
인코더 퇴화 진단: 재구성 FID(Fréchet Inception Distance)
FID는 Dreamer 논문이 직접 보고하는 지표가 아닙니다. Dreamer의 ELBO 목적함수에는 재구성 손실이 포함되어 있지만, 논문에서 정책의 좋고 나쁨을 FID로 측정하지는 않습니다. 여기서 FID는 보조 진단 도구로 쓰입니다. 인코더가 퇴화하면 이미지 재구성 품질이 떨어지는데, FID는 이 신호를 일찍 포착해 episode return이 무너지기 전에 개입할 수 있게 해줍니다.
FID는 Inception-v3(2015년 Google이 제안한 심층 합성곱 이미지 분류 신경망으로 ImageNet으로 사전학습되었으며, 중간층 특징 벡터가 이미지 품질을 가늠하는 지각적 대리 지표로 널리 쓰입니다)로 실제 프레임과 재구성 프레임에서 심층 특징을 추출한 뒤, 두 특징 분포 사이의 프레셰 거리(Fréchet distance)를 계산합니다(Heusel et al., 2017). FID는 낮을수록 좋습니다. FID가 높다는 것은 재구성 프레임의 특징 분포가 실제 프레임에서 멀어졌다는 뜻으로, 인코더의 표현이 퇴화하고 있음을 나타냅니다.
📖 FID 계산 세부 사항(펼치기)
① Inception-v3의 중간층으로 대량의 실제 이미지와 생성 이미지 각각에서 특징 벡터를 추출합니다. ② 각 특징 집합에 다변량 가우시안 분포(평균
여기서 Tr(·)는 행렬의 대각합(trace, 대각선 원소의 합)입니다. 픽셀 단위 MSE 대신 Inception-v3 특징을 쓰는 이유는, 이 특징 공간이 이미지에 대한 인간의 지각적 판단에 더 가깝기 때문입니다.
진단 규칙: 학습 도중 FID가 갑자기 치솟는다면 인코더에 표현 붕괴가 일어나 합성곱 가중치가 상수 출력으로 퇴화했다는 뜻입니다. 완화 방법: 인코더의 학습률을 낮추거나, 인코더 뒤에 LayerNorm을 추가하는 것이 좋습니다.
FID가 정상이라고 해서 Dreamer가 제대로 작동한다는 뜻은 아닙니다. 시각적 재구성은 그럴듯해 보이는데 상상 보상은 조용히 왜곡되어 있는 경우가 충분히 있을 수 있습니다. RSSM의 확률적 상태 z_t가 재구성 품질은 만족시키면서도 보상 정보는 충분히 인코딩하지 못할 수 있기 때문입니다. FID가 정상이라는 건 인코더가 퇴화하지 않았다는 것만 확인해줄 뿐이고, 보상 상관관계도 반드시 함께 확인해야 합니다.
상상 궤적 엔트로피(Imagined Trajectory Entropy)
놓치기 쉽지만 대단히 중요한 조기 경보 지표입니다. RSSM의 확률적 상태 z_t는 가우시안 분포에서 샘플링되며, 원칙적으로는 매 스텝마다 일정한 분산을 지녀야 합니다. 이 분산이 환경 고유의 확률성과 모델의 불확실성을 함께 반영하기 때문입니다.
진단 규칙: 상상 롤아웃 동안 RSSM이 모든 상태에 대해 거의 비슷한 z_t 값만 내놓는다면(분산 σ²가 모두 0에 가까워짐), 확률 변수가 결정론적으로 퇴화했다는 뜻입니다. 이는 KL 붕괴(KL collapse)의 초기 신호입니다. KL 붕괴가 일어나면 손실 함수 속 KL 발산 항이 거의 0이 되어 인코더가 z_t에 더 이상 추가 정보를 주입하지 않게 되고, RSSM 전체가 순수한 RNN으로 퇴화합니다.
완화 전략:
- KL 어닐링(KL annealing)을 사용합니다(학습 초기에 손실 함수 속 KL 발산 항의 가중치 계수를 0에서 목표값까지 서서히 끌어올리는 방법으로, 예를 들어 처음 1만 스텝 동안 0에서 1로 올려, 인코더가 먼저 재구성을 배울 시간을 준 뒤 점차 확률적 잠재 변수에 정보를 인코딩하도록 강제합니다). 즉 학습 초기에는 KL 가중치를 0에서 목표값까지 서서히 올려, 인코더가 먼저 재구성을 배우고 그다음에 확률성을 인코딩하는 법을 배우게 합니다.
- KL 자유 비트(free bits)를 설정합니다(KL 손실을 계산할 때 KL 값이 임계값
(예: 1나트) 아래인 차원에는 그라디언트를 적용하지 않는 방법으로, 즉 이며, 모델이 각 잠재 차원마다 최소 나트의 정보를 유지하도록 강제해 모든 차원이 동시에 0으로 붕괴하는 것을 막습니다). 즉 KL 항이 최소한의 값에는 도달하도록 강제해, 너무 이른 붕괴를 막는 것입니다.