상태: 초안 (2026-10-18), 실측. 숫자는 노트북(Apple M1 Max, macOS 26.5)의 Python 3.9.6·numpy 2.0.2 로 직접 계산한 시뮬레이션 값입니다. 원자료와 코드: 작업 디렉터리
measure/robot-arm-basics/rl/의ttenv.py,ppo.py,exp_rl.py, 결과out/rl/rew_*,out/rl/hyb_*,out/rl/ppo_base_*. 모든 학습은 시드 3개이고 평가는 학습에 쓰지 않은 공 1,000개입니다. 실제 로봇 실험은 없습니다(하드웨어 미실측). 참고 자료는 2026-10-18 에 열람했습니다. 작성 규칙: 실측 데이터가 기본이고, 못 잰 것은 「미실측」, 확인하지 못한 것은 「미확인」으로 표시합니다.
목차
1. 직관: 시킨 대로 한다
강화학습 에이전트는 설계자의 뜻을 모릅니다. 보상의 합을 키우는 일만 압니다. 「공을 맞히면 상」이라고 하면 공을 맞히는 데 가장 쉬운 방법을 찾고, 그 방법이 공을 탁구대에 넣는지는 신경 쓰지 않습니다. 보상이 원하는 것과 어긋난 틈을 파고드는 현상을 보상 해킹(reward hacking)이라 부릅니다. Amodei 외 2016 은 AI 안전의 구체적 문제 다섯 가지 가운데 하나로 이것을 꼽았습니다.
행동 공간(action space)도 같은 무게의 설계입니다. 정책이 10 ms 마다 관절 가속도를 정하게 할 수도 있고, 한 번만 「언제, 얼마나 세게」를 정하게 하고 나머지를 1~10편의 고전 방법에 맡길 수도 있습니다. 앞의 것은 자유롭지만 배울 것이 많고, 뒤의 것은 빨리 배우지만 고전 부분이 틀리면 그 한계에 갇힙니다.
2. 보상 다섯 가지
모두 직접 제어(10 ms 마다 관절 가속도), PPO 기본 설정(12편), 에피소드 19,200개입니다.
| 이름 | 보상 | 의도 |
|---|---|---|
| 희소 | 상대 탁구대에 넣으면 1, 아니면 0 | 원하는 것 그대로 |
| 형태(기본) | 맞히면 0.3, 넣으면 +1, 목표(y = 0.9 m)에 가까울수록 최대 +0.5, 놓치면 라켓과 공의 최근접 거리만큼 감점(최대 −0.5) | 학습 초기에 길잡이를 준다 |
| 형태 + 한계 벌점 | 위에 더해, 관절 한계에 닿은 걸음마다 −0.05 | 안전 |
| 맞히기만 | 라켓에 맞으면 1 | 해킹 실험 |
| 공 속도 | 맞은 뒤 공 속력 ÷ 10 | 해킹 실험(「세게 치면 좋겠지」) |
학습은 보상으로 하지만 평가는 늘 같은 기준, 즉 「상대 탁구대에 넣었나」로 합니다. 보상을 바꾼 실험에서 보상 숫자를 비교하는 것은 의미가 없기 때문입니다.
3. 실측: 보상
| 보상 | 성공 중앙(최소~최대) | 라켓에 맞음 | 관절 한계에 닿은 에피소드 | 맞은 공 속력 중앙 |
|---|---|---|---|---|
| 희소 | 86.8% (75.4~90.7) | 92~96% | 5~48% | 5.2 m/s |
| 형태(기본) | 82.9% (76.8~90.9) | 88~94% | 4~79% | 5.3~5.6 m/s |
| 형태 + 한계 벌점 | 89.2% (77.9~90.3) | 84~92% | 5~8% | 5.3~5.5 m/s |
| 맞히기만 | 0.0% (0.0~8.9) | 98~99% | 100% | 9~28 m/s |
| 공 속도 | 0.0% (0.0~0.0) | 98% | 100% | 28.6 m/s |
3.1 보상 해킹
「맞히기만」과 「공 속도」는 보상 기준으로는 크게 성공했습니다. 라켓이 공의 98% 를 맞혔고, 「공 속도」 정책은 공을 평균 28.6 m/s 로 날려 보냈습니다. 하지만 탁구대에 들어간 공은 거의 없었습니다. 두 정책 모두 모든 에피소드에서 관절을 한계까지 휘둘렀습니다. 라켓을 가장 빠르게 하면 공에 닿기 쉽고 공도 빨라지기 때문입니다. 실제 로봇이었다면 매 타구마다 관절 멈춤 장치를 때리는 정책입니다.
교훈은 단순합니다. 보상의 숫자가 아니라 진짜 목표로 평가하고, 보상이 오르는데 목표가 그대로면 해킹을 의심합니다.
3.2 희소 보상과 형태 보상
형태 보상은 「학습 초기 길잡이」로 흔히 권해지지만, 이 문제에서는 희소 보상(86.8%)이 형태 보상(82.9%)보다 오히려 조금 높았습니다(시드 3개라 차이는 범위 안). 이유를 추정하면 둘입니다. 첫째, 무작위 정책도 1.5% 는 성공하므로(11편) 반복마다 64개 에피소드 가운데 한두 개는 성공 신호를 받습니다. 성공이 그만큼 드물지 않으면 길잡이가 크게 필요하지 않습니다. 둘째, 「맞히면 0.3」 같은 중간 보상은 「맞히고 탁구대 밖」을 「놓치기」보다 낫다고 가르치므로 목표와 조금 다른 방향을 섞습니다. 형태 보상은 성공이 훨씬 드문 문제(예: 처음부터 7자유도 팔로 스매시)에서 값을 하고, 그때도 목표와 어긋나지 않게 설계해야 합니다(미실측).
3.3 관절 한계 벌점
벌점 하나로 한계에 닿은 에피소드가 4~79% 에서 5~8% 로 줄었고 성공률은 떨어지지 않았습니다(89.2%). 12편의 기본 정책이 한계를 친 것은 한계를 치는 것이 필요해서가 아니라 치지 말라는 말을 듣지 못해서였습니다. 안전 조건은 보상이 아니라 제약으로 다루는 편이 더 확실하다는 관점도 있습니다. 실제 로봇은 벌점과 별도로 제어기 쪽의 하드 리밋을 둡니다.
4. 행동 공간: 직접 제어 대 하이브리드
직접 제어는 11편 그대로입니다. 에피소드마다 결정이 100번 안팎이고, 타이밍·궤적·라켓 각을 모두 정책이 스스로 찾아야 합니다.
하이브리드는 첫 걸음에 숫자 두 개만 고릅니다. 접점 각에 더할 보정 Δφ(±0.15 rad)와 타격 순간 라켓 각속도 φ̇_c(0~8 rad/s)입니다. 나머지는 고전 방법입니다. 공 비행 모델(6편)로 공이 라켓 원호에 들어오는 위치와 시각을 예측하고, 그 자리에 그 속도로 닿는 5차 궤적(8편)을 만들어 그대로 실행합니다. 강화학습 문제로는 한 걸음짜리(문맥 밴딧)가 됩니다. 반복마다 공 64개로 120번 반복(공 7,680개)을 학습했습니다.
예측기는 두 가지로 바꿔 봤습니다. 6편의 「B 모델」처럼 회전을 모르는 예측기와, 회전을 아는 예측기입니다.
| 행동 공간 | 성공 중앙(최소~최대) | 40% 를 처음 넘은 공 수(시드 중앙) | 관절 한계에 닿은 에피소드 |
|---|---|---|---|
| 직접 제어(형태 보상) | 82.9% (76.8~90.9) | 5,120 | 4~79% |
| 하이브리드, 회전 모르는 예측기 | 46.3% (36.1~48.0) | 1,920 | 0~0.7% |
| 하이브리드, 회전 아는 예측기 | 65.6% (39.0~73.8) | 1,280 | 0.3~0.9% |
학습 없는 기준선은 하이브리드 행동 공간의 최선 상수 행동 46%, 회전 모르는 모델의 격자 계획기 40%, 참 결과로 고른 격자 상한 85% 였습니다(11편).
4.1 읽은 것
- 하이브리드는 빠릅니다. 40% 를 넘는 데 직접 제어는 공 5,120개(시드 중앙)가 들었고 하이브리드는 1,280~1,920개였습니다. 평가는 공 640개마다 했으므로 이보다 거칠게 잰 값입니다. 숫자 두 개만 배우면 되기 때문입니다. Tebbe 외 2021 도 타격 순간의 라켓 상태(방향·속도)만 행동으로 두어 사전 학습 없이 200 에피소드 안에 정확한 결과를 얻었다고 초록에 적었습니다.
- 하지만 고전 부분의 한계에 갇힙니다. 회전 모르는 예측기를 쓴 하이브리드는 최선 상수 행동(46%)을 넘지 못했습니다. 예측한 접점이 틀리면 Δφ ±0.15 rad 의 보정으로는 공에 닿을 수조차 없기 때문입니다. 예측기가 회전을 알게 하자 66% 로 올라갔습니다. 하이브리드의 성능은 고전 부분의 품질이 정합니다. 10편의 「방정식이 모르는 것을 좁혀 줄 때만 학습이 싸다」와 같은 이야기입니다.
- 하이브리드는 안전합니다. 궤적을 한계 안에서 계획하므로 한계에 닿은 에피소드가 1% 아래였습니다. 직접 제어는 벌점 없이는 최대 79% 였습니다.
- 하이브리드 학습은 출렁였습니다. 회전 아는 하이브리드의 평가 성공률은 학습 중에 10~81% 사이를 오갔고, 마지막 값을 쓰면 시드 하나가 39% 였습니다. 반복마다 공 64개는 밴딧 문제에서 잡음이 큰 표본입니다. 「가장 좋았던 순간」이 아니라 「마지막」을 보고하는 규칙을 지켰습니다(15편).
- 직접 제어가 하이브리드 상한(85%)과 비슷한 곳까지 간 것은 직접 제어가 타격 각과 속도를 1자유도 안에서 더 자유롭게(예: 휘두르는 도중 감속) 조합할 수 있어서로 봅니다(추정).
4.2 실제 시스템의 선택
| 시스템 | 학습이 고르는 것 |
|---|---|
| Büchler 외 2022(v1) | 근육 8개의 압력 변화(가장 낮은 수준) |
| D'Ambrosio 외 2023 | 관절 속도 8개가 기본, 라켓 위치 3 + 법선 2 의 작업 공간 행동도 비교 |
| D'Ambrosio 외 2024 | 기술 정책은 관절 속도(50 Hz), 그 위의 고수준 제어기는 기술 17개 가운데 하나 |
| Tebbe 외 2021 | 타격 순간 라켓 상태(방향·속도) |
아래로 갈수록 고전 부분(궤적, 역기구학, 공 예측)에 더 많이 맡깁니다. 오픈하드웨어 첫 로봇에는 하이브리드로 출발해 표본 효율과 안전을 얻고, 고전 부분의 약점(회전 예측)을 드러낸 뒤 그 부분을 고치거나 학습으로 넓히는 순서를 권합니다.
5. 한계
- 형태 보상의 계수(0.3, 0.5, 0.05)를 한 벌만 시험했습니다. 다른 계수에서는 결과가 달라질 수 있습니다(미실측).
- 하이브리드의 정책 입력은 처음 관측 하나뿐이고, 예측한 접점 정보를 입력에 넣지 않았습니다. 넣으면 더 나아질 수 있습니다(미실측).
- 시드 3개라 비슷한 설정 사이(희소 대 형태, 기본 대 벌점)의 차이는 통계적으로 구분되지 않습니다.
6. 정리
- 보상은 원하는 것을 말하는 유일한 통로입니다. 「맞히기」나 「세게」를 보상하면 98% 맞히고 0% 넣는 정책이 나옵니다. 평가는 늘 진짜 목표로 합니다.
- 이 문제에서는 희소 보상만으로도 충분했습니다. 형태 보상은 성공이 매우 드물 때를 위한 도구입니다.
- 안전은 말해야 지킵니다. 관절 한계 벌점 하나로 한계 충돌이 열 배 줄었습니다.
- 타격 파라미터만 배우는 하이브리드는 빠르고 안전하지만, 고전 부분이 틀린 만큼 갇힙니다. 회전을 아는 예측기로 바꾸자 46% 가 66% 가 되었습니다.
티티 한마디. 「공을 맞히면 칭찬」이라고 했더니 로봇이 공을 다 맞히고 하나도 안 넣었어요. 칭찬은 진짜 원하는 것에만 해야 해요!
참고
모든 자료는 2026-10-18 에 열람했습니다.
- Amodei 외, Concrete Problems in AI Safety, arXiv:1606.06565, 초록.
- Tebbe, Krauch, Gao, Zell, Sample-efficient Reinforcement Learning in Robotic Table Tennis, arXiv:2011.03275(ICRA 2021), 초록.
- D'Ambrosio 외, arXiv:2309.03315(행동 공간 비교), arXiv:2408.03906(기술 정책과 고수준 제어기).
- Büchler 외, arXiv:2006.05935 v1.