정책의 한 지표가 좋아지면 다음 체크포인트로 승격시키고 싶어집니다. G1 보행 실험에서도 M158d는 접촉 횟수를 87회에서 71회로 줄였고, 충격량은 9.8347 N·s에서 7.6006 N·s로 낮췄습니다. 이 두 숫자만 보면 teacher-overlay 방향을 더 밀어도 될 것처럼 보였습니다.
하지만 같은 실험에서 최소 clearance는 -0.151 mm에서 -0.826 mm로 나빠졌습니다. 접촉이 줄었다는 결과와 발이 지면을 더 파고들었다는 결과가 동시에 나온 것입니다. washout gate도 통과하지 못했습니다. 그래서 저는 이 결과를 ‘부분 개선’으로 기록하되 정책 승격 근거로 쓰지 않았습니다.
하나의 성공 지표가 다른 실패를 지우지 못하게 했습니다
현재 보행 후보는 생존과 발 교차뿐 아니라 저속 이동거리, 진행 방향, 발 사이 간격, 골반·허리 형태, 팔 자세, raw action의 포화와 변화율을 함께 봅니다. v590은 낙상과 발 교차 0%를 유지했지만 저속 이동거리가 2.8568 m에서 2.1369 m로 0.7199 m 줄었습니다. v600도 2.6089 m로 기준보다 0.2479 m 짧았고, 전체 morphology와 raw-action gate를 통과하지 못했습니다.
이 판정은 안전한 정책과 좋은 정책을 구분합니다. 넘어지지 않는 것은 필요조건이지만, 저속 명령에서 전진하지 못하거나 상체가 다른 방식으로 보상하면 다음 기준점으로 삼을 수 없습니다. 그래서 M148 model 1850도 현재는 배포 후보가 아니라 비교용으로만 남겨 두었습니다.
M157–M159는 실패를 더 오래 반복하지 않기 위해 중단했습니다
teacher-overlay 계열의 목적은 팔과 보행의 응답 관계를 더 선명하게 관찰하는 것이었습니다. 그러나 M159 진단에서는 독립 onset이 17개뿐이었고 설계 행렬 rank는 27/44, 조건수는 8.72×1017이었습니다. 이 상태에서는 어떤 관절 자극이 관찰된 차이를 만들었는지 안정적으로 식별하기 어렵습니다.
여기서 rank 27/44는 44개의 설명 열을 서로 독립적인 정보로 채우지 못했다는 뜻입니다. 조건수 8.72×1017은 작은 측정 오차에도 추정값이 크게 흔들릴 수 있는 수준이었습니다. 독립 onset 17개 역시 관절별 자극을 분리해 비교하기에 부족했습니다. 결과 trace가 더 많이 쌓여도 입력이 함께 움직이면 어떤 관절이 변화를 만들었는지는 여전히 모호합니다.
여기서 학습 횟수를 늘리는 것은 문제를 해결하지 않습니다. 입력 설계가 식별 가능하지 않으면 더 많은 실행은 같은 모호함을 반복합니다. 따라서 저는 M157–M159 분기를 중단하고, 학습을 배제한 오른팔 독립 excitation으로 질문을 줄였습니다.
M160a의 7/7 통과가 허용한 범위
M160a는 128 reset pair와 44열 CPU 설계를 만들었고, 구현 테스트 7/7, CPU_CONTRACT_VALID, 정규화 조건수 17.457, leave-one-pair-out 최대 17.758을 확인했습니다. 이 결과는 독립 자극 스케줄이 CPU 수준에서 충분히 식별 가능하다는 뜻입니다.
leave-one-pair-out 검사는 128개 reset pair 중 하나를 빼도 설계의 조건이 갑자기 무너지지 않는지를 봅니다. 전체 행렬 한 번만 통과시키면 특정 pair가 우연히 식별 가능성을 지탱하는 상황을 놓칠 수 있습니다. 최대 17.758이 전체 정규화 조건수 17.457과 가까웠다는 결과는 적어도 CPU 설계가 한 pair에 과도하게 의존하지 않는다는 근거가 됐습니다.
반대로 Isaac runtime capture, PPO, actor 선택, checkpoint 승격, keyboard, router, WBC 연결은 승인하지 않았습니다. ‘테스트가 통과했다’는 문장 뒤에 무엇이 여전히 금지돼 있는지를 함께 적어야 자동화가 다음 단계를 과잉 해석하지 않습니다.
다음 실행보다 먼저 다음 계약을 씁니다
다음 단계는 AppLauncher를 바로 여는 일이 아닙니다. 기존 산출물을 덮어쓰지 않는 경로와 post-policy/pre-physics 계측 지점을 명시한 runtime-capture 제안을 별도로 만들고, 적대검토를 통과해야 합니다. 이 프로젝트에서 멈춤은 실패 선언이 아닙니다. 현재 증거가 답할 수 있는 질문의 경계를 확정하고, 다음 질문을 더 작게 만드는 작업입니다.
runtime capture 제안에는 최소한 자극 스케줄 ID, reset pair, 정책 출력, 물리에 적용되기 직전의 명령, 관절 상태와 접촉, 기존 결과를 덮어쓰지 않는 출력 경로가 들어가야 합니다. 이 연결이 있어야 CPU에서 만든 독립 입력이 시뮬레이터 안에서도 보존됐는지 확인할 수 있습니다. 그 전에는 더 많은 PPO 학습이나 checkpoint 비교가 같은 모호함을 키울 가능성이 높습니다.
중단 기록에는 다시 열 수 있는 조건까지 적습니다
분기를 멈췄다는 문장만 남기면 나중에 같은 아이디어가 다른 이름으로 다시 들어올 수 있습니다. M157–M159에는 중단 근거인 onset 수, rank, 조건수와 함께 teacher-overlay 학습을 재개하지 않는다는 경계를 남겼습니다. 다시 열려면 독립 입력 설계와 runtime 계측이 먼저 검증돼야 합니다. M148 model 1850도 삭제하지 않되 비교용이라는 사용 범위를 붙였습니다.
이 기록은 실패를 영구 폐기하기 위한 것이 아닙니다. 어떤 새 증거가 들어오면 판단을 바꿀 수 있는지를 명시하는 장치입니다. 독립 자극의 runtime trace가 충분한 rank와 안정적인 조건수를 유지하고, 팔 응답과 보행 변화가 paired reset에서 반복된다면 다음 가설을 세울 수 있습니다. 그 전까지는 학습량을 늘리는 일이 아니라 측정 계약을 닫는 일이 우선입니다.
평가 항목 자체는 보행 정책을 생존율만으로 평가할 수 없는 이유에서, 전체 흐름은 Physical AI 프로젝트 파이프라인에서 이어서 설명합니다.