TT Lab
요금제

한국어

시작하기
블로그

블로그

강화학습 평가: 학습 공과 평가 공, 시드 여러 개의 중앙값, 마지막 값 보고, 기준선

상태: 초안 (2026-10-18), 실측. 숫자는 11~14편의 학습 결과(measure/robot-arm-basics/out/rl/*_s{0,1,2}.json, 설정 16가지 × 시드 3개)를 다시 읽어 계산했습니다. 환경은 노트북(Apple M1 Max, macOS 26.5), Python 3.9.6·numpy 2.0.2 입니다. 실제 로봇 실험은 없습니다(하드웨어 미실측). 참고 자료는 2026-10-18 에 열람했습니다. 작성 규칙: 실측 데이터가 기본이고, 못 잰 것은 「미실측」, 확인하지 못한 것은 「미확인」으로 표시합니다.

목차

1. 직관: 좋은 곡선 하나는 거짓말을 할 수 있다

강화학습은 같은 코드, 같은 설정이라도 난수 시드에 따라 결과가 크게 달라집니다. 학습 곡선은 위아래로 출렁이므로 「가장 높았던 점」을 고르면 실력이 부풀려집니다. 그리고 시뮬레이터 안에서 잘하는 정책이 실물에서도 잘한다는 보장은 없습니다(14편).

Henderson 외 2017 은 벤치마크 환경의 비결정성과 방법 자체의 분산이 심층 강화학습 결과를 재현하기 어렵게 만든다고 지적했고, Agarwal 외 2021 은 적은 횟수의 실행으로 결과를 낼 때 구간 추정과 사분위 평균(IQM) 같은 튼튼한 지표, 성능 분포 그림을 쓰자고 제안했습니다(두 논문 모두 초록). 이 글은 이 시리즈가 지킨 규칙 다섯 가지를 11~14편의 실제 숫자로 점검합니다.

2. 규칙 1: 학습 공과 평가 공을 나눈다

라켓 원호 근처를 지나는 공 7,315개 가운데 1,000개를 처음부터 떼어 두고 학습에 쓰지 않았습니다. 학습이 끝난 정책을 학습용 공 1,000개와 평가용 공 1,000개에서 각각 평가했습니다.

비교 값
학습 공 − 평가 공 성공률 차이(성공률 10% 넘는 학습 36번) 중앙 +0.7%p, 범위 −0.9~+4.1%p
명목 시뮬레이션 − 「실물」 차이(랜덤화 없는 정책, 14편) 중앙 +10.2%p

공을 나눠도 차이가 작았던 것은 두 공 묶음이 같은 분포에서 나왔기 때문입니다. 공 6,315개를 1만 9천 번 뽑아 쳤으니 정책이 개별 공을 외우기는 어렵습니다. 진짜 위험은 분포가 바뀔 때였습니다. 같은 정책이 물리 상수가 조금 다른 「실물」에서는 10%p 를 잃었습니다. 그러니 평가는 두 가지를 다 해야 합니다. 학습에 쓰지 않은 같은 분포의 공, 그리고 의도적으로 다른 분포(다른 반발, 지연, 더 빠른 공, 더 센 회전)입니다.

3. 규칙 2: 시드 여러 개를 돌리고 중앙값과 범위를 적는다

같은 설정, 다른 시드: 마지막 평가 성공률 0 25 50 75 100 PPO 기본 엔트로피 0.01 GAE λ=1 희소 보상 한계 벌점 하이브리드(회전) 좁은 랜덤화(실물) 점 = 시드 하나, 세로 막대 = 중앙값(%), 가로선 = 범위
그림: 설정별 시드 3개의 마지막 평가 성공률
설정 시드 0 시드 1 시드 2 중앙
PPO 기본 82.9% 76.8% 90.9% 82.9%
엔트로피 0.01 87.7% 87.5% 87.8% 87.7%
GAE λ = 1 84.2% 41.9% 42.6% 42.6%
하이브리드(회전 아는 예측기) 65.6% 39.0% 73.8% 65.6%
넓은 랜덤화(「실물」) 54.7% 52.6% 75.4% 54.7%

시드 0 만 돌렸다면 「GAE λ = 1(84.2%)이 PPO 기본(82.9%)보다 낫다」고 썼을 것입니다. 세 시드를 보면 λ = 1 은 두 번 실패했습니다. 반대로 엔트로피 보너스는 세 시드가 0.3%p 안에 모여 「안정적」이라는 말에 근거가 생깁니다. 시드 3개는 여전히 적어서, 12~14편에서 범위가 겹치는 설정 사이에는 순위를 매기지 않았습니다.

4. 규칙 3: 가장 좋았던 순간이 아니라 마지막 값을 보고한다

학습 중에는 20번(하이브리드는 10번) 반복마다 평가했습니다. 그중 가장 높은 값을 고르면 어떻게 되는지 비교했습니다.

설정 마지막 값 중앙 가장 좋았던 값 중앙 부풀림
PPO 기본 82.9% 82.9% 0%p
하이브리드(회전 모르는 예측기) 46.3% 47.8% +1.5%p
GAE λ = 1 42.6% 45.6% +3.0%p
넓은 랜덤화 57.4% 60.3% +2.9%p
하이브리드(회전 아는 예측기) 65.6% 79.6% +14.0%p

학습이 꾸준히 오르는 설정에서는 차이가 없지만, 출렁이는 설정에서는 「가장 좋았던 값」이 14%p 를 부풀렸습니다. 더 근본적인 문제는 그 「가장 좋았던 값」을 평가 공으로 골랐다는 것입니다. 평가 공이 체크포인트 선택에 쓰이면 더 이상 처음 보는 공이 아닙니다. 체크포인트를 골라야 한다면 학습 공에서 따로 떼어 둔 검증 공으로 고르고, 평가 공은 마지막에 한 번만 씁니다.

5. 규칙 4: 기준선과 나란히 놓는다

방법 평가 공 성공률
무작위 정책 1.5%
회전 모르는 모델로 격자를 뒤진 고전 계획기 40.0%
하이브리드 행동 공간의 최선 상수 행동 45.9%
하이브리드 행동 공간의 상한(참 결과로 고름) 85.4%
PPO 직접 제어(형태 보상) 82.9%
PPO 직접 제어 + 관절 한계 벌점 89.2%

「PPO 로 83%」라는 숫자만으로는 좋은지 알 수 없습니다. 무작위가 1.5%, 고전 계획기가 40%, 같은 행동 공간의 상한이 85% 라는 것을 함께 놓아야 「틀린 모델을 쓴 계획기의 두 배이고, 1자유도 라켓으로 낼 수 있는 상한 근처」라고 말할 수 있습니다. 13편의 하이브리드(46%)가 최선 상수 행동(46%)과 같다는 사실도 기준선이 없었다면 「학습이 됐다」로 읽혔을 것입니다.

6. 규칙 5: 진짜 목표로, 재현할 수 있게

7. 다음: 실제 탁구 팔

11~15편의 장난감 문제는 원리를 숫자로 보이기 위한 것이었습니다. 같은 프로젝트에서는 MuJoCo 탁구 시뮬레이터 위에서 실제 구조에 가까운 팔로 강화학습을 진행하고 있습니다. 이 글을 쓰는 시점에는 그 결과가 아직 정리되지 않았으므로 숫자를 옮기지 않았습니다. 결과가 나오면 이 시리즈에서 「실제 학습 결과」 편으로, 이 글의 다섯 규칙(나눈 평가 공, 시드 여러 개, 마지막 값, 기준선, 진짜 목표)에 맞춰 보고하겠습니다.

편 장난감 문제에서 잰 핵심
11 기준선: 무작위 1.5%, 틀린 모델의 계획기 40%, 행동 공간 상한 85%. 병렬 4,096개로 처리량 353배
12 PPO 83%(엔트로피 0.01 이면 88%). 자르기 없음·λ = 0 은 0%
13 보상 해킹: 98% 맞히고 0% 넣음. 한계 벌점으로 한계 충돌 79% → 8% 아래. 하이브리드는 빠르지만 고전 부분에 갇힘(46% → 회전 알면 66%)
14 「실물」에서 랜덤화 없음 −10%p, 좁은 랜덤화가 「실물」 80% 로 가장 좋음
15 시드에 따라 42% 대 84%, 「가장 좋았던 값」은 최대 14%p 부풀림

8. 한계

9. 정리

티티 한마디. 연습 공 하나 잘 친 영상만 보여 주면 누구나 선수처럼 보여요. 처음 보는 공으로, 여러 번, 마지막 실력을 보여 줘야 진짜예요!

참고

모든 자료는 2026-10-18 에 열람했습니다.

로그인하면 좋아요를 누를 수 있습니다

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다