무엇을 알아내고 무엇을 넓힐지 구분한다
System Identification은 입출력 관측으로 시스템의 모형/파라미터를 추정하는 식별이다. 이미 정한 구조의 관성/마찰·지연 계수를 맞출 수도 있고 모형 구조를 비교할 수도 있다. Domain Randomization은 조명/질감·물리/센서 파라미터 등을 정한 분포에서 바꾸어 다양한 조건을 만들고 학습/시험하는 접근이다. 자료 수집 재설계는 빠진 조건/실패·개입·시간 계약 등을 기록/분할하는 방식을 바꾸는 작업이다. 세 방법은 보완 관계지만 같은 문제를 자동으로 해결하지 않는다.
예를 들어 τ가 같은데 가속/속도가 다르면 동역학/구동 가설과 식별 자료를 검토하고, 조명 변화에만 인지가 약하면 해당 관측 조건/표현과 시각 다양화를 검토한다. 희귀 실패/물체를 학습에서 보지 못했다면 조건별 수집이 필요할 수 있다. rad/degree나 absolute/delta가 섞인 계약 오류를 무작위 범위로 덮지는 않는다. M30.01의 경로/대안 가설을 먼저 확인한다.
MIT 저자 System Identification은 모형 적합 문제와 한 단계 예측 오차/장기 simulation 오차의 차이를 다룬다. 작은 자료에 맞는 모형이 모든 상태/폐루프에 맞는 것은 아니다. Tobin 등 논문의 렌더링 다양화/전이 사례도 임의의 로봇/구동·시간 차이에 대한 보장은 아니다. 아래 모형은 그 연구 성과를 재현하지 않고 두 접근의 역할을 계산한다.
양의 정상 속도에서 두 계수를 적합한다
가상 한 축이 양의 각속도 ω로 일정하게 움직이며 가속/중력/외력 등 다른 항을 제외했다고 하자. 저항과 균형을 이루는 양의 적용 토크 τ를 τ=c+bω로 근사한다. c는 이 양의 운동 구간의 일정 저항 토크(N·m), b는 속도 비례 계수(N·m·s/rad), ω는 rad/s다. 이는 정지 마찰/역방향·백래시나 모든 속도의 모형이 아니다. 측정 토크/속도는 동일 축/정상 구간으로 정렬되어 있다고 입력한다.
적합 자료는 (ω,τ)=(1,0.07),(2,0.09),(3,0.11)이다. ω가 1 증가할 때 τ가 0.02 증가하므로 b=0.02, c=0.07−0.02×1=0.05다. 평균 속도는 2, 평균 토크는 0.09다. 잡음이 있는 일반 자료에서는 관측과 예측 차이의 제곱 합을 최소화하는 두 계수를 구할 수 있다. 평균을 각각 ω_bar/τ_bar라 하고 자료 순서를 i로 쓰면 다음 식이다.
분모가 0이면 모든 속도가 같아 이 방식으로 두 계수를 분리할 수 없다. ω=2에서 τ=0.09만 반복 관측하면 c+2b=0.09를 만족하는 조합이 여럿이다. 데이터를 많이 복제해도 속도 다양성이 없다는 문제는 사라지지 않는다. 센서/환산 잡음과 속도 추정 오차가 있으면 단순 적합 계수에도 불확실성·편향이 남을 수 있다.
적합한 행과 다른 행에서 예측을 확인한다
선택적 완전한 표준 Python 예제는 위 표의 계수를 계산한다. 입력은 합성값이며 실제 식별 실험/구동기 측정을 한 것이 아니다.
speed = [1.0, 2.0, 3.0]
torque = [0.07, 0.09, 0.11]
mx, my = sum(speed)/len(speed), sum(torque)/len(torque)
den = sum((x-mx)**2 for x in speed)
if den == 0:
raise ValueError("speed variation is required")
b = sum((x-mx)*(y-my) for x, y in zip(speed, torque))/den
c = my - b*mx
pred = c + b*4.0
print(f"b={b:.3f} c={c:.3f}")
print(f"pred={pred:.3f} residual={0.15-pred:.3f}")
기대 출력은 b=0.020 c=0.050과 pred=0.130 residual=0.020이다. 이 계산은 작성 환경 Darwin/macOS·Python 3.13.4 CPU에서 확인했다. 별도 검증 행 ω=4/τ=0.15에서 예측은 0.13 N·m이고 관측−예측 잔차는 +0.02 N·m다. 적합 행의 오차는 0이지만 새 속도에서는 차이가 남는다. 모형 누락/부하·환산·온도 등 대안을 확인하며, 이를 실제 마찰의 참값이라고 선언하지 않는다.
검증 행을 보고 모형/계수를 다시 선택하면 그 행은 선택에 사용한 자료가 된다. 독립 최종 시험은 따로 남겨야 한다. 한 단계 잔차만 작게 만들고도 반복 전이/접촉·제어 동작이 다를 수 있어 실제 사용 목적의 장기 경로/조건별 지표도 필요하다. 이 단위의 정적 표 적합을 실제 폐루프 안정성 검증으로 확대하지 않는다.
랜덤 범위는 근거와 물리적 조합을 가진다
합성 랜덤화 후보를 c=0.04~0.06 N·m, b=0.015~0.025 N·m·s/rad에서 각각 균등 샘플한다고 하자. 균등은 이 구간에서 같은 길이의 부분 구간을 같은 확률로 뽑는다는 뜻이다. 독립 샘플 가정은 과제에서 정한 것이며 실제 계수 간 관계가 독립이라는 증거가 아니다. 양의 ω=2에서 토크의 가능한 범위는 0.04+0.015×2=0.07부터 0.06+0.025×2=0.11 N·m다.
이 구간이 적합 자료의 0.09를 포함한다고 실제 전이가 보장되지는 않는다. 단일 고정 모형이 맞지 않는 원인·시간/센서 차이를 빠뜨렸을 수 있고, 동일 범위 안에서도 정책이 학습하지 못할 수 있다. 범위를 크게 잡으면 항상 좋다는 법칙도 없다. 물리적으로 불가능한 계수 조합이나 관측/행동 계약을 깨는 랜덤화는 과업을 바꿔 버린다. 예를 들어 카메라 외부 파라미터를 바꾸면 영상/정답 좌표의 관계도 일관되게 유지해야 한다.
시각/시간·동역학 범위를 한꺼번에 바꾸기 전에 범주별 비교로 민감도를 확인한다. 측정/문서·불확실성을 근거로 분포와 상관/고정 조건을 기록한다. seed는 같은 난수 절차를 재현하는 데 도움을 주지만 소프트웨어/장치·데이터/모든 연산의 동일성을 보장하지 않는다. 학습용 랜덤 조건과 평가할 잠근 조건/새 조건을 분리한다.
수집 계획에는 실패와 독립 그룹도 들어간다
자료 수집 표에는 조건(조명/물체·부하/속도/방향), 반복/세션, 입력/출력·센서 기준/시각·포화/오류/개입을 둔다. 이 과제에서는 실제 실험 대신 어떤 기록이 필요할지 설계한다. 정상 속도만 있으면 정지/반전과 접촉을 판단할 수 없고 성공만 저장하면 실패 조건이 사라진다. 실패 시연을 곧바로 모방 목표로 학습시키는 대신 용도/품질·수정 구간을 명시한다.
같은 세션의 인접 프레임/증강본은 같은 그룹으로 관리해 학습/시험의 중복을 막는다. 모형 식별/랜덤 범위 선택에 쓴 기록과 최종 시험을 나눈다. 수정 전후 입력/모델·통계/버전과 조건별 성공/잔차·지연을 함께 남겨 효과를 평가한다. 기존 6.1 Reality Gap과 5.4 데이터 품질을 연결하자. 합성 적합/범위 계산은 실제 장비의 식별/수집·일반화 성과가 아니다.