환경에서 모은 전이를 업데이트 입력으로 만든다
Rollout은 현재 정책으로 환경과 상호 작용해 모은 상태/관측·행동·보상·종료 정보 등의 연속 기록이다. Actor는 행동 분포를 정하고 critic은 상태 등의 가치를 추정한다. Critic의 값이 정답 성공 여부를 직접 측정하는 것은 아니다. 보상/전이/가치 추정으로 actor의 방향을 계산하는 데 사용한다. M23.01의 terminal/truncation과 마지막 관측 계약이 이 단계에서 실제 목표를 바꾼다.
PPO는 정책으로 데이터를 수집한 뒤 그 자료의 surrogate 목적을 여러 mini-batch/epoch로 최적화할 수 있다. 그러나 오래된 임의 정책의 데이터를 무제한 재사용하는 off-policy replay와 같지 않다. 수집한 old 정책의 행동 로그 확률과 현재 new 정책의 로그 확률을 같은 행동/관측에서 비교한다. 정책이 바뀌는 동안 old 값을 덮어쓰면 확률 비의 기준을 잃는다.
좋은 행동이라는 판단의 기준을 정의한다
Advantage A는 그 상태에서 행동한 결과가 기준 가치보다 얼마나 좋았는지 나타내는 추정량이다. 간단한 한 단계 TD 오차는 δ=r+γV_next−V_current다. 실제 terminal에서는 미래 항을 0으로 처리한다. r1·γ.9·Vnext4·Vcurrent3이면 δ1.6이다. terminal이면 δ−2다. 같은 보상이라도 이어지는 미래와 종료 이유에 따라 평가가 달라진다.
그림 M23.02-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.
GAE(Generalized Advantage Estimation)는 여러 시점의 TD 오차를 γλ 가중치로 누적하는 방식이다. λ는 bias/variance 절충에 영향을 준다. 경계를 넘어서 reset된 다음 episode의 TD 오차를 더하지 않는다. 여기서는 제공된 A로 PPO 목적을 계산하며 GAE 전체 구현/실제 학습을 수행하지 않는다. Advantage 정규화를 사용하는지·분모/마스크·critic의 입력을 설정과 함께 기록한다.
확률비로 정책 변화 방향을 읽는다
같은 행동의 old 확률이.2, new 확률이.3이면 비 r=.3/.2=1.5다. 연속 행동에서는 행동의 확률 밀도 비를 사용하며 점 하나의 확률과 혼동하지 않는다. 보통 로그 확률 차이의 지수로 안정적으로 계산한다. A>0은 그 행동을 더 선택하도록, A<0은 덜 선택하도록 하는 방향의 근거다. Critic 오류나 잘못된 보상으로 A도 틀릴 수 있다.
이 단원의 최대화 목적은 L=min(rA,clip(r,1−ε,1+ε)A)다. ε=.2이면 clip 범위는.8~1.2다. 구현에서는 이를 최소화 손실로 바꾸며 부호가 반대일 수 있으니 목적/손실의 방향을 명시한다. Clipping은 실제 행동을 기계적으로 제한하는 actuator clamp와 다르다. 안전한 행동 범위를 보장하는 기능도 아니다.
A=2,r1.5라면 원항 3·clip 항 2.4여서 L2.4다. 좋은 행동 확률을 이미 충분히 올렸다면 더 올릴 추가 이익을 제한한다. A=−2,r.5라면 원항 −1·clip 항 −1.6이므로 L−1.6이다. 음수 advantage에서 무조건 더 큰 값이나 절댓값 작은 값을 고르면 틀린다. min을 곱셈한 값끼리 적용한다. 반대로 A−2,r1.5는 min(−3,−2.4)=−3이어서 나쁜 행동의 확률을 올린 쪽을 불리하게 평가한다.
clipped 목적은 엄격한 거리 제한이 아니다
PPO clipping은 모든 관측에서 정책 변화 량을 반드시 ε 이내로 가두는 하드 제약이 아니다. 다른 표본과 공유 파라미터의 업데이트가 확률을 바꿀 수 있다. 평균 KL 추정·clip fraction·entropy·value loss·gradient norm·학습률과 실제 성과를 같이 본다. KL은 정책 분포의 차이를 나타내는 값이며 측정 방향/추정 방법을 명시한다. 일부 구현의 조기 중단 기준은 별도 설정이다.
Entropy는 정책의 분산/불확실성과 관련된 탐색 지표다. 크다고 항상 좋은 학습은 아니며 평가에서 확률적 행동을 그대로 쓸지 평균 행동을 쓸지 정해야 한다. Actor/critic 손실 가중치·보상 크기·관측 정규화·업데이트 epoch가 서로 영향을 주므로 한 숫자만으로 발산 원인을 단정하지 않는다.
rollout 경계를 먼저 점검한다
병렬 환경이 N 개이고 각 환경에서 T 스텝 수집하면 N×T 전이다. N64/T32 면 2048전이며 timestep/episode/optimizer step을 같은 카운터로 보고하지 않는다. 자동 reset의 마지막 관측과 reward/종료 마스크를 확인한다. 잘못된 미래 항이나 다른 episode의 관측이 섞이면 수식이 맞아도 목표가 틀린다. 기본 검수는 표본 몇 개의 old/new 로그 확률·A·clip 항·종료 이유를 손으로 대조하고, 학습/평가 seed·원본/체크 포인트를 보존하는 것이다.