TT Lab
요금제

한국어

시작하기
블로그

블로그

고전 방법과 강화학습: 무엇을 방정식으로 풀고 무엇을 학습에 맡길까

상태: 초안 (2026-10-18), 실측. 숫자는 노트북(Apple M1 Max, macOS 26.5)의 Python 3.9.6·numpy 2.0.2 로 계산한 시뮬레이션 값입니다. 원자료와 코드: 작업 디렉터리 measure/robot-arm-basics/의 m10_learn.py, out/m10_learn.json. 「실제 세계」도 시뮬레이션이며 실제 로봇 실험은 없습니다 (하드웨어 미실측). 논문 숫자는 각 원문(arXiv 판은 판 번호 표기)에서 확인했습니다. 참고 자료는 2026-10-18 에 열람했습니다. 작성 규칙: 실측 데이터가 기본이고, 못 잰 것은 「미실측」, 확인하지 못한 것은 「미확인」으로 표시합니다.

목차

1. 직관: 아는 것은 계산하고, 모르는 것은 배운다

1~9편은 모두 방정식이었습니다. 공의 비행은 뉴턴의 법칙, 라켓 자세는 기하, 궤적은 다항식, 제어는 역동역학이었습니다. 방정식은 데이터 없이 첫 공부터 동작하고, 왜 틀렸는지 설명할 수 있습니다. 대신 모델이 틀린 만큼 정확히 틀립니다. 7편에서 라켓 반발 계수가 0.05 틀리면 착지점이 13 cm 빗나갔습니다.

강화학습(reinforcement learning, RL)은 반대입니다. 모델 없이 시행착오로 배우므로 모델의 틀림에 묶이지 않지만, 많이 쳐 봐야 하고 무엇을 배웠는지 들여다보기 어렵습니다.

탁구 로봇을 만든 연구들은 모두 둘을 섞습니다. 질문은 「섞을까 말까」가 아니라 **「어디에 경계를 그을까」**입니다.

2. 그림: 네 시스템의 경계

네 시스템이 무엇을 학습에 맡겼나 공 예측 타격 결정 동작·궤적 관절 제어 Mülling 2013 EKF 물리 학습(선택) 시연+DMP 고전 Koç 2018 EKF 물리 최적화 최적 3차식 고전 Büchler 2022 모델(HYSR) RL RL RL(근육압) D'Ambrosio 2024 필터만 학습+규칙 선택 ES(관절속도) 로봇 제어기 학습이 맡음(실선) 방정식·고전 방법(점선) 각 논문 원문으로 확인한 구성을 단순화했다. 세부는 본문 표.
그림: 네 탁구 로봇 시스템이 공 예측, 타격 결정, 동작, 관절 제어 가운데 무엇을 학습에 맡겼는지 비교

3. 논문 비교

각 원문을 열어 확인한 구성입니다. 숫자 옆의 조건이 서로 달라 직접 비교할 수는 없습니다.

Mülling 외 2013 Koç 외 2018 Büchler 외 2022 D'Ambrosio 외 2024
로봇 Barrett WAM 7자유도 Barrett WAM 7자유도 공압 인공 근육 8개로 움직이는 4자유도 팔 ABB IRB 1100 6자유도 + 선형 갠트리 2축
인지 카메라 4대 60 Hz 카메라 4대 60 Hz 공 위치 180 Hz 카메라 2대 125 Hz
공 예측 EKF(중력·항력, 회전 무시) EKF + 비행 모델 모델(학습 중 공은 시뮬레이션) 필터(실시간 비행 예측은 하지 않음)
타격 결정 혼합 운동 원형(MoMP)이 상황에 맞는 원형을 골라 섞음 타격 시각·위치를 함께 최적화 PPO 정책이 전부 고수준 제어기가 타구마다 기술 하나를 고름
동작 사람이 팔을 잡고 가르친 25개 동작(DMP) 관절마다 3차 다항식 최적 궤적 PPO 가 근육 압력 변화를 100 Hz 로 기술 17개, 각각 약 1만 파라미터 CNN 이 관절 속도를 50 Hz 로
학습이 맡은 것 원형 선택 가중치(RL), 동작 모양(시연) 공 모델 상수 추정(시연 데이터) 팔 제어 전부 기술(시뮬레이션에서 진화 전략 계열 BGS 로 학습) + 기술 선택
보고된 결과 실기 반환 69% → 97%(150번 학습 후), 사람 상대 74.4% → 88% 실기 반환: 고정 타격 평면 약 10~40%, 제안 방식 약 40~60%(설정에 따라 80~90%) 반환 75%(107번), 스매시 29%(128번, 평균 약 12 m/s) 사람 29명과 29경기 13승(45%): 초급 7/7, 중급 6/11, 상급 이상 0/11

정리하면 경계가 오른쪽으로 갈수록 학습의 몫이 커집니다.

모델을 학습으로 보정하는 흐름도 있습니다. Sony AI 2026 은 공의 항력·Magnus·바운스 모델을 카메라 9대로 모은 궤적 약 5.8만 개로 다시 맞추고, 라켓 모델에는 물리식 위에 신경망 잔차를 더했습니다. 착지점 중앙 오차가 기준 모델의 0.37 m 에서 0.15 m 로 줄었다고 보고합니다.

4. 실측: 같은 질문을 작은 문제로

논문들의 결과는 로봇·공·평가가 모두 달라 「경계를 어디에 그으면 몇 번 쳐야 하나」를 직접 비교할 수 없습니다. 그래서 7편의 타격 문제를 그대로 가져와 작은 실험을 했습니다.

설정. 「실제 세계」의 라켓은 모델과 다릅니다. 반발 계수 e = 0.72(모델 0.8), 접선 속도 보존율 k = 0.88(모델 1.0, 러버 마찰로 접선 속도가 12% 줄어듦). 공은 1편의 데이터셋에서 고른 실제 타구 300개(학습 200, 시험 100)이고, 목표는 상대 쪽 (0.3, 0.9) m 에 0.6초 만에 떨어뜨리기입니다.

세 가지 방법.

# (b) 한 번 칠 때마다 e, k 를 최소제곱으로 다시 맞춘다
n, vrn = racket_general(V, v_out_wanted, e, k)        # 지금 추정값으로 닫힌 해
vout = true_racket(V, n, vrn)                          # 실제 세계(모델과 다름)
Vm, Om = V + noise(), vout + noise()                   # 관측
A_e.append(vrn - Vm @ n);  b_e.append(Om @ n - vrn)    # e 에 대해 선형인 식
e = dot(A_e, b_e) / dot(A_e, A_e)
모델이 틀린 라켓: 몇 번 쳐 봐야 맞추나 1 10 100 1,000 10,000 0.1 1 10 100 쳐 본 공의 수(로그) 착지 오차 중앙값(cm, 로그) 방정식만(명목 모델) 24.5 cm 물리 상수만 학습 0.33 cm 모델 없이 정책 탐색(CEM) 실제 라켓 e=0.72, 접선 보존 0.88 / 모델 e=0.8, 1.0. 시험 공 100개. 물리 상수 학습은 10번 시드의 중앙값, CEM 은 선형 정책 18개 파라미터.
그림: 모델이 틀린 라켓에서 쳐 본 공의 수에 따른 착지 오차
방법 쳐 본 공 시험 착지 오차 중앙값
(a) 방정식만(명목 모델) 0 24.5 cm(90% 29.3)
(a') 방정식 + 정확한 상수(참고) 0 0.0007 cm
(b) 물리 상수만 학습 1 2.1 cm
3 1.8 cm
10 1.3 cm
30 0.77 cm
100 0.33 cm
(c) 선형 정책 CEM 2,000 129 cm
8,000 25.0 cm
16,000 30.6 cm
24,000 25.4 cm

(b) 는 시드 10개의 중앙값이고, 100번 친 뒤 추정한 e 는 0.720, k 는 0.876 이었습니다(참값 0.72, 0.88).

이 실험은 의도적으로 단순합니다. 실제 세계도 시뮬레이션이고, 모델과 다른 점이 「모델 안의 상수」라서 (b) 에 유리합니다. 모델의 꼴 자체가 틀린 경우 (예: 러버가 회전을 거는 효과를 모델이 아예 모름)에는 상수를 아무리 맞춰도 남는 오차가 있고, 그 잔차를 학습하는 것이 Sony AI 2026 의 신경망 잔차입니다.

5. 어디에 경계를 그을까: 이 시리즈의 제안

오픈하드웨어 첫 로봇을 위한 출발점으로 다음을 제안합니다. 실험으로 바뀔 수 있습니다.

단계 처음에는 학습을 더할 자리
공 예측(6편) EKF + 물리 모델 항력·Magnus·바운스 상수를 우리 공·탁자 데이터로 다시 맞추기. 회전 추정
타격 결정(7편) 사격법 + 반발 모델의 닫힌 해 라켓 반발 상수 맞추기(이 글의 b), 그다음 모델 잔차
역기구학·궤적(4·8편) 해석해 + 5차 다항식/시간 최적 거의 필요 없음
제어(9편) PD + 역동역학 앞먹임 관성·마찰 상수 식별, 반복 학습 제어(같은 동작을 되풀이하며 앞먹임을 고침)
전략(어디로 칠지) 고정 목표점 강화학습. 상대에 따라 바뀌는 부분이라 방정식으로 쓰기 어렵다

원칙은 하나입니다. 방정식이 「무엇을 모르는지」를 좁혀 줄 수 있으면 그 좁혀진 것만 학습한다. 모델을 세우기 어려운 구동기(공압 근육)나 정답이 없는 판단(전략)은 처음부터 학습이 맡는 편이 낫습니다.

6. 한계

7. 1부를 마치며

열 편 동안 공 하나를 치기 위한 일곱 단계를 계산으로 따라왔습니다. 오픈하드웨어로 옮길 때 기억할 숫자를 모으면 이렇습니다.

숫자 값 편
공이 끝줄에 오기까지 데이터셋 중앙 0.65 s, 12 m/s 공 0.32 s 1
예측 오차의 주범 회전 모름 5 cm, 회전 앎 0.5 cm 6
라켓 각 1° / 속도 0.1 m/s / 반발 0.05 착지점 6 / 10 / 13 cm 7
돌려보내기에 필요한 관절 속도 약 10 rad/s(사람처럼 치려면 약 25) 5
휘두르기 시간 0.05~0.1 s(가속도 한계 300~600 rad/s²) 8
제어 1 kHz + 앞먹임, 전류 루프 1~2 kHz 대역폭 9
관절 영점 0.1° 가 라켓 방향 0.1~0.2° 3

다음 단계는 이 숫자를 실제 부품과 시뮬레이터에서 다시 재는 일입니다. 그 전에 11~15편에서 강화학습의 원리(MDP, PPO, 보상 설계와 행동 공간, 시뮬레이션에서 실물로, 평가)를 장난감 문제로 직접 구현하며 이어 갑니다.

티티 한마디. 다 배우려고 하면 공을 2만 번 쳐도 모자라요. 아는 건 방정식에 맡기고, 모르는 두 숫자만 배우니까 열 번이면 충분했어요!

참고

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

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

댓글

아직 댓글이 없습니다.

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