Hamilton-Jacobi-Bellman 방정식: Reinforcement Learning과 Diffusion Model의 수학적 연결고리
Hamilton-Jacobi-Bellman Equation: Reinforcement Learning and Diffusion Models
TL;DR Highlight
1840년대 물리학 방정식이 연속 시간 RL과 Diffusion Model 훈련을 같은 최적 제어 문제로 통합하며 수학적으로 두 분야의 동형성을 증명한다.
Who Should Read
강화학습이나 Diffusion Model의 수학적 배경을 깊게 이해하고 싶은 ML 연구자나 대학원생. 특히 이산 시간 Bellman 방정식은 알고 있지만 연속 시간으로의 확장이 낯선 개발자.
Core Mechanics
- Richard Bellman이 1952년 동적 프로그래밍(Dynamic Programming) 이론을 발표했고, 이후 이를 연속 시간으로 확장하면서 1840년대 물리학에서 나온 Hamilton-Jacobi 방정식과 수학적으로 동일한 구조임을 발견했다. 즉 현대 RL의 핵심 방정식이 고전역학 방정식의 재발견인 셈이다.
- 이산 시간 Bellman 방정식에서 시간 간격 h를 0으로 보내면 PDE(편미분방정식) 형태의 HJB(Hamilton-Jacobi-Bellman) 방정식이 나온다. 핵심은 '지금 당장 받는 보상 + 미래 가치의 기울기 × 시스템 변화율 = 0'이라는 구조로, 최적 제어 조건을 미분 방정식으로 표현한 것이다.
- 노이즈가 있는 확률적 시스템(Itô 프로세스, 즉 Brownian Motion이 섞인 동역학)에서는 Itô의 공식 덕분에 HJB에 Laplacian 항(σσᵀ의 trace 항)이 추가된다. 이게 결정론적 시스템과의 핵심 차이다.
- 연속 시간 RL의 Policy Iteration은 두 단계로 구성된다. Policy Evaluation 단계에서는 Feynman-Kac 공식을 써서 현재 정책의 가치 함수를 Monte Carlo로 추정하고, Policy Improvement 단계에서는 추정된 가치 함수의 기울기를 이용해 더 나은 행동을 찾는다.
- Model-Free 연속 시간 Q-learning도 소개된다. Q함수(상태-행동 쌍의 가치)를 직접 학습하는데, 이산 시간 Q-learning의 TD 오차에 해당하는 연속 시간 버전의 조건을 신경망으로 근사한다.
- 실용 예제로 Stochastic LQR(선형 동역학 + 이차 비용 + 노이즈)과 Merton Portfolio(연속 시간 포트폴리오 최적화) 문제를 다룬다. 두 문제 모두 HJB를 풀면 closed-form 해가 나오므로 알고리즘 검증에 유용하다.
- Diffusion Model 훈련을 확률적 최적 제어 문제로 해석할 수 있다. 노이즈에서 데이터로 가는 역방향 프로세스를 제어 문제로 보면, score function(데이터 분포의 로그 기울기)이 최적 제어 입력에 해당한다는 연결이 나온다.
Evidence
- RL 입문자라고 밝힌 댓글 작성자가 '이 포스트는 내 수준을 넘어서는데, ML 라이브러리로 step-by-step 구현한 예제가 있는 좋은 책이나 자료가 있냐'고 질문했다. 이 글이 수학적 배경이 상당히 요구된다는 방증이다.
- 전기공학 학부에서 제어 이론을 배웠던 사람이 '제어 이론의 수학이 이렇게 오랫동안 유용하게 남아있다는 게 반갑다'는 댓글을 남겼다. 제어 이론 배경이 있으면 이 글의 내용이 훨씬 자연스럽게 받아들여진다는 점을 시사한다.
- 일반 소프트웨어 엔지니어 댓글 작성자는 '수학자들에게 완전히 압도당하는 느낌이고, 소프트웨어 분야가 5년 안에 살아남을지도 모르겠다. 얼음 장수를 하고 있는데 냉장고가 발명될 것 같은 느낌'이라고 솔직한 불안감을 표현했다. 이 글의 수학적 난이도가 일반 개발자에게는 상당히 높다는 걸 보여준다.
- 한 댓글 작성자가 '디지털 컴퓨터에서 연속 시간 수학이 왜 적용 가능한지 명확하지 않다'는 근본적인 문제를 제기했다. 실수(Real Number)는 Dedekind cut이나 Cauchy sequence의 동치류로 정의되는데, 디지털 컴퓨터는 유한한 bit string만 다루므로 무한 정밀도가 필요한 해석학 방정식이 알고리즘에 그대로 대응된다는 게 전혀 자명하지 않다는 지적이다. 이 점은 수치 해석 분야에서 항상 '양탄자 밑으로 쓸어 넣어지는' 문제라고 비판했다.
- 댓글에서 수식 레이아웃 버그(Bellman equation 레이블이 수식과 겹침)와 인용 기호가 HJB 수식에 섞여 들어간 문제, '수정 제안' 링크가 404 에러를 내는 문제가 보고됐다. 블로그 포스트가 아직 polish가 덜 된 상태임을 알 수 있다.
How to Apply
- 연속 시간 RL 환경(로보틱스, 금융 포트폴리오 최적화 등)을 다루는 경우, 이산 시간 Q-learning 대신 이 포스트에서 설명하는 연속 시간 Q-learning을 적용하면 시간 간격 선택에 덜 민감한 학습이 가능하다. 특히 Merton Portfolio 예제는 금융 강화학습 프로젝트의 baseline 검증용으로 바로 활용할 수 있다.
- Diffusion Model을 커스터마이징하거나 새로운 샘플링 알고리즘을 연구하는 경우, 역방향 SDE를 확률적 최적 제어 문제로 재해석하면 score function 설계에 새로운 관점을 얻을 수 있다. 이 포스트의 Diffusion Models 섹션을 참고해 자신의 모델의 score matching 목적 함수가 어떤 제어 문제를 푸는 것인지 확인해볼 수 있다.
- 신경망으로 가치 함수(Value Function)를 근사하는 Neural Policy Iteration을 구현할 때, 이 포스트의 Feynman-Kac Monte Carlo 기법을 Evaluation 단계에 적용하면 PDE를 직접 풀지 않고도 경로 샘플링만으로 가치를 추정할 수 있다. LQR처럼 analytic 해가 있는 간단한 문제로 먼저 검증한 뒤 복잡한 환경에 확장하는 순서를 권장한다.
Terminology
관련 논문
Neural Particle Automata: 자기조직화 파티클 시스템을 학습하는 신경망 모델
고정된 격자 대신 움직이는 파티클 위에서 동작하는 Neural Cellular Automata의 확장 버전으로, 형태 생성·포인트 클라우드 분류·텍스처 합성 등 다양한 작업에서 자기조직화 동작을 학습할 수 있다.
PyTorch Training Loop 완전 해부: 각 줄이 하는 일과 순서를 바꾸면 생기는 문제
PyTorch 학습 루프의 각 코드 줄이 왜 그 위치에 있어야 하는지, 순서를 바꾸거나 빠뜨렸을 때 어떤 문제가 생기는지를 단계별로 설명한 심층 가이드다.
좋은 Verifier도 망가질 수 있다: Self-Improving VLM이 새로운 태스크에서 오히려 퇴보하는 현상
VLM 자가학습 루프에서 verifier가 특정 태스크에 맞지 않으면 학습할수록 오히려 성능이 떨어지는데, DPO 손실값은 멀쩡히 내려가서 눈치채기도 어렵다.
Self-Distillation에서 Feedback Alignment의 역할
LLM이 스스로를 가르칠 때, 피드백을 모델의 추론 흐름에 단계별로 맞추면 GRPO보다 16점 이상 수학 추론 성능이 오른다.
작고 수정 가능한 CUDA 기반 Language Model 직접 구현체
CUDA로 작성된 GPT(Generative Pretrained Transformer) 미니멀 구현체로, 텍스트뿐 아니라 모든 바이트 스트림을 학습할 수 있어 LLM 내부 구조를 직접 뜯어보고 싶은 개발자에게 유용하다.
Stanford CS336: Language Modeling from Scratch - LLM을 처음부터 직접 만드는 강의
Stanford에서 운영하는 LLM 전 과정 구현 강의로, 토크나이저부터 데이터 수집, 트랜스포머 구현, 분산 학습, RL 기반 정렬까지 직접 코딩하며 배운다. 이론이 아닌 구현 중심이라 실제로 LLM이 어떻게 작동하는지 깊이 이해하고 싶은 개발자에게 가장 체계적인 커리큘럼 중 하나다.