도메인 무작위화: 시뮬레이션에서 실제로 옮기기
렌더링을 무작위로 흔든 시뮬레이션 이미지만으로 실제 물체 위치를 약 1.5cm 정확도로 찾은 sim-to-real 연구
먼저 알아야 할 것
다루는 내용
시뮬레이터를 현실에 맞추는 대신 질감·조명·카메라·방해 물체를 학습 샘플마다 무작위로 바꿔, 실제 세계가 학습 분포의 한 변형으로 보이게 하는 도메인 무작위화를 제안합니다. 실제 사진 없이 학습한 VGG-16 기반 검출기가 실제 책상 위 기하학적 물체를 평균 1.5cm 안팎으로 찾았고, Fetch 로봇이 이를 이용해 40번 중 38번 물체를 집었습니다. 절제 실험에서 방해 물체와 다양한 질감이 핵심이었고, ImageNet 사전 학습은 데이터가 많으면 필수가 아니었습니다.
초록
시뮬레이션 속 로봇 공학과 실제 하드웨어 실험을 가르는 '현실 격차'를 메울 수 있다면, 데이터를 더 쉽게 얻게 되어 로봇 연구가 빨라질 수 있습니다. 이 논문은 도메인 무작위화를 탐구합니다. 도메인 무작위화는 시뮬레이터의 렌더링을 무작위로 바꿔, 시뮬레이션 이미지로 학습한 모델이 실제 이미지로 옮겨 가도록 하는 단순한 기법입니다. 시뮬레이터의 변이가 충분히 크면, 모델에게 실제 세계는 그저 또 하나의 변형으로 보일 수 있습니다. 우리는 일반적인 로봇 조작 기술로 가는 디딤돌인 물체 위치 추정 과제에 집중합니다. 사실적이지 않은 무작위 질감을 쓰는 시뮬레이터의 데이터만으로, 실제 세계에서 1.5cm 정확도를 내고 방해 물체와 부분 가림에도 강건한 물체 검출기를 학습할 수 있음을 확인했습니다. 검출기의 능력을 보이기 위해, 이 검출기로 어지러운 환경에서 물체를 집을 수 있음을 보여 줍니다. 우리가 아는 한, 이것은 (실제 이미지로 사전 학습하지 않고) 시뮬레이션 RGB 이미지만으로 학습한 심층 신경망을 로봇 제어 목적으로 실제 세계에 옮기는 데 성공한 첫 사례입니다.
해설
도메인 무작위화: 시뮬레이션에서 실제로 옮기기
사진처럼 그럴듯한 시뮬레이터를 만드는 대신, 일부러 엉뚱한 색 · 조명 · 카메라 위치를 수십만 가지로 바꿔 가며 학습시켰더니, 실제 사진을 한 장도 보지 않은 물체 검출기가 실제 책상 위 물체를 평균 1.5cm 안팎으로 찾아냈습니다. "현실을 흉내 내지 말고, 현실이 변형의 하나로 보일 만큼 다양하게 만들라"는 이 발상은 이후 로봇 학습의 시뮬레이션→실제(sim-to-real) 전이에서 기본 도구가 됐습니다.
| 항목 | 내용 |
|---|---|
| 원제 | Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World |
| 저자 | Josh Tobin · Rachel Fong · Alex Ray · Jonas Schneider · Wojciech Zaremba · Pieter Abbeel (OpenAI · UC Berkeley) |
| 발표 | 2017 · arXiv 1703.06907 (IROS 2017 투고본) |
| 트랙 · 수준 | 피지컬 AI · 기초 |
| 먼저 알면 좋은 것 | 합성곱 신경망(CNN), 지도 학습과 손실 함수, 과적합 · 일반화, 데이터 증강, 로봇 시뮬레이터 |
들어가기 전에
이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.
- 스탠퍼드 CS231n 강의 노트(합성곱 신경망) — 합성곱 한 칸 · 출력 크기 · 파라미터 수 · 풀링 · 수용 영역을 손계산으로 익히는 CNN 수업
- 모던 로보틱스: 역학 · 계획 · 제어 — 자유도 · 회전 행렬 · 동차 변환 · 2관절 팔 순기구학 · 자코비안 · 역기구학 · PD 제어를 손계산하는 수업
- 시뮬레이션에서 현실로, 그리고 VLA: 로봇 기반 모델을 읽는 지도 — 현실 격차와 이를 메우는 세 방법(무작위화 · 시스템 식별 · 특권 학습)을 먼저 정리합니다
한눈에 보기
- 시뮬레이션과 실제 사이의 차이인 현실 격차(reality gap) 가 무엇이고, 왜 로봇 학습의 걸림돌인지 압니다.
- 시뮬레이터를 현실과 똑같이 맞추는 대신 렌더링을 무작위로 바꿔 실제 세계를 "또 하나의 변형"으로 만드는 도메인 무작위화(domain randomization)의 발상을 압니다.
- 이 논문이 무엇을 얼마나 무작위화했는지(질감 · 조명 · 카메라 · 방해 물체 · 잡음)와 그 이유를 압니다.
- 실제 사진 없이 학습한 검출기가 실제 세계에서 낸 정확도와, 어느 요소가 가장 중요했는지(절제 실험)를 압니다.
- 이 검출기로 실제 로봇이 어지러운 책상에서 물체를 집은 결과를 압니다.
초록 (번역)
시뮬레이션 속 로봇 공학과 실제 하드웨어 실험을 가르는 '현실 격차'를 메울 수 있다면, 데이터를 더 쉽게 얻게 되어 로봇 연구가 빨라질 수 있습니다. 이 논문은 도메인 무작위화를 탐구합니다. 도메인 무작위화는 시뮬레이터의 렌더링을 무작위로 바꿔, 시뮬레이션 이미지로 학습한 모델이 실제 이미지로 옮겨 가도록 하는 단순한 기법입니다. 시뮬레이터의 변이가 충분히 크면, 모델에게 실제 세계는 그저 또 하나의 변형으로 보일 수 있습니다. 우리는 일반적인 로봇 조작 기술로 가는 디딤돌인 물체 위치 추정 과제에 집중합니다. 사실적이지 않은 무작위 질감을 쓰는 시뮬레이터의 데이터만으로, 실제 세계에서 1.5cm 정확도를 내고 방해 물체와 부분 가림에도 강건한 물체 검출기를 학습할 수 있음을 확인했습니다. 검출기의 능력을 보이기 위해, 이 검출기로 어지러운 환경에서 물체를 집을 수 있음을 보여 줍니다. 우리가 아는 한, 이것은 (실제 이미지로 사전 학습하지 않고) 시뮬레이션 RGB 이미지만으로 학습한 심층 신경망을 로봇 제어 목적으로 실제 세계에 옮기는 데 성공한 첫 사례입니다.
무엇을 풀었나
로봇을 실제로 움직이며 데이터를 모으는 일은 느리고 비쌉니다. 심층 강화 학습은 수십만~수백만 개의 샘플을 요구하기도 하고, 무작위 탐색은 실제 기계에서 위험할 수 있습니다. 그래서 물리 시뮬레이터 안에서 학습하고 실제 로봇에서 그대로 돌리는 것이 이상적입니다.
문제는 현실 격차(reality gap) 입니다. 시뮬레이터는 물체의 휨, 기어 유격, 마모, 유체 같은 효과를 담지 못하고, 렌더러(renderer, 장면을 그려 내는 프로그램)가 만든 이미지도 실제 카메라의 풍부한 질감과 잡음을 따라가지 못합니다.
기존 대응은 크게 두 갈래였습니다.
- 시뮬레이터를 현실에 맞추기: 시스템 식별(system identification, 시뮬레이션 파라미터를 실제 장치에 맞게 조정)과 고품질 렌더링. 시간이 많이 들고 오류가 나기 쉽습니다.
- 도메인 적응(domain adaptation): 시뮬레이션에서 배운 모델을 실제 데이터로 미세 조정하거나 두 도메인의 특징을 맞춥니다. 하지만 실제 데이터 · 라벨 · 보상이 어느 정도 필요합니다.
이 논문은 세 번째 길을 시험합니다. 실제 데이터로 추가 학습을 전혀 하지 않고, 빠르지만 사실적이지 않은 렌더러로도 실제 세계에 통하는 모델을 만들 수 있는가입니다. 과제는 카메라 이미지 한 장에서 책상 위 물체의 위치를 찾는 물체 위치 추정(object localization)으로 좁혔습니다. 논문은 이것을 일반적인 조작 행동을 옮기기 위한 디딤돌로 봅니다.
핵심 아이디어
1. 도메인 무작위화 — 현실을 "또 하나의 변형"으로 만들기
한 문장 직관: 운전 연습을 맑은 낮에만 하면 첫 빗길에서 당황하지만, 비 · 눈 · 밤 · 안개를 모두 겪어 봤다면 오늘 날씨는 그중 하나일 뿐입니다(해설용 비유).
단계별 설명
- 시뮬레이터에는 장면을 정하는 여러 설정값이 있습니다. 질감, 조명, 카메라 위치, 물체 배치 등입니다. 이 묶음을 라고 부르겠습니다.
- 보통은 를 현실과 최대한 비슷한 값 하나로 고정하고 학습합니다.
- 도메인 무작위화는 학습 샘플마다 를 넓은 범위에서 새로 뽑습니다.
- 모델은 매번 다른 겉모습 속에서 바뀌지 않는 것(여기서는 물체의 모양 · 크기와 위치)에만 기대도록 학습됩니다.
- 변이가 충분히 크면, 실제 카메라 이미지도 학습 때 본 분포의 한 점처럼 보이게 됩니다. 논문의 가설은 바로 이것입니다.
수식 (해설용 정식화 — 논문에는 이 식이 나오지 않습니다)
기호 풀이
| 기호 | 뜻 |
|---|---|
| 검출기 신경망의 가중치 | |
| 장면 설정값 묶음(질감 · 조명 · 카메라 · 방해 물체 등) | |
| 설정값을 뽑는 무작위 분포 | |
| 그 설정으로 그린 이미지 와 정답 위치 의 쌍을 만드는 과정 | |
| 이미지를 받아 물체 좌표를 내는 검출기 | |
| 예측과 정답 좌표 차이의 제곱 거리(L2 손실) |
일반 학습은 가 한 점에 몰려 있는 경우입니다. 도메인 무작위화는 를 일부러 넓게 펼치는 것입니다.
숫자로 해 보기 (해설용 예 — 논문 수치 아님)
설정값을 "책상 색"과 "조명 밝기" 두 개로만 생각해 봅시다. 책상 색은 빨강 · 초록 · 파랑 · 노랑 중 하나, 밝기는 0.2 · 0.5 · 0.8 중 하나라고 합니다.
- 고정 학습: (갈색, 0.5) 한 가지 장면만 봅니다. 실제 책상이 (베이지, 0.7)이면 처음 보는 조건입니다.
- 무작위화: 가지 조합을 고루 봅니다. 모델은 "색과 밝기는 정답과 관계없다"는 것을 배울 수밖에 없습니다.
- 실제 장면 (베이지, 0.7)은 학습 조합 어느 것과도 같지 않지만, 색과 밝기를 무시하도록 배운 모델에게는 큰 문제가 되지 않습니다.
왜 이렇게 했나
현실과 똑같은 시뮬레이터를 만드는 길은 끝이 없습니다. 아무리 맞춰도 남는 차이가 있고, 그 작은 차이에 모델이 과하게 기대면 실제에서 무너집니다. 논문은 반대로 사실성을 포기하고 다양성을 얻는 쪽을 택했습니다. 그 덕분에 속도에 최적화된 저품질 렌더러를 쓸 수 있습니다.
2. 무엇을, 얼마나 무작위화했나
한 문장 직관: 시험 문제의 숫자만 바꾸지 말고 문제지 색, 글꼴, 조명까지 매번 바꿔서 "정말 봐야 할 것"만 남기는 것입니다(해설용 비유).
단계별 설명 (논문 기준)
학습 샘플마다 다음을 무작위로 정합니다.
- 책상 위 방해 물체(distractor)의 개수와 모양 — 장면마다 0~10개.
- 책상 위 모든 물체의 위치와 질감.
- 책상 · 바닥 · 배경 하늘 상자(skybox) · 로봇의 질감.
- 카메라의 위치 · 방향 · 시야각(field of view).
- 장면의 조명 개수, 각 조명의 위치 · 방향 · 반사 특성.
- 이미지에 더하는 무작위 잡음의 종류와 양.
질감은 다음 세 종류 중에서 고릅니다.
- (a) 무작위 RGB 색 하나
- (b) 무작위 RGB 두 색 사이의 그러데이션
- (c) 무작위 RGB 두 색의 체크무늬
모든 물체의 질감이 무작위라서, 검출기는 학습 중에 목표 물체의 색을 알 수 없고 크기와 모양만 알 수 있습니다. 렌더링은 MuJoCo 물리 엔진에 내장된 렌더러로 했고, 이 렌더러는 사진 같은 사실성을 목표로 하지 않습니다.
카메라는 이렇게 다룹니다.
- 실제 카메라와 대략 같은 위치 · 시야각에 시뮬레이션 카메라를 손으로 놓습니다.
- 샘플마다 그 점 주변 cm 상자 안에서 카메라 위치를 무작위로 정합니다.
- 카메라가 책상 위 고정점을 향하도록 각도를 계산한 뒤, 각 방향으로 최대 0.1 라디안 흔듭니다.
- 시야각도 처음 값에서 최대 5% 늘이거나 줄입니다.
또 보정하지 않은 단안 카메라 한 대로 위치를 추정하므로, 시뮬레이션의 책상 높이는 고정했습니다. 그래서 실질적으로는 책상 평면 위의 2차원 위치 추정 문제가 됩니다.
수식 (카메라 무작위화를 식으로 쓴 해설용 표현)
기호 풀이
- : 실제 카메라에 맞춰 손으로 놓은 시작 위치
- : 샘플마다 뽑는 위치 흔들림. 상자 크기 cm를 중심 기준 ± 절반으로 쓴 것은 해설용 가정입니다(논문은 "그 점 주변의 상자"라고만 씁니다).
- , : 처음 시야각과 그 배율 변화(최대 5%)
숫자로 해 보기 (해설용 예)
시작 시야각이 라고 가정하면, 무작위화 범위는 부터 까지입니다. 실제 웹캠의 시야각을 정확히 몰라도, 참값이 이 범위 안에 있으면 모델은 이미 그 근처를 겪어 본 셈입니다. 카메라 보정(calibration)을 하지 않아도 되는 이유가 여기에 있습니다.
왜 이렇게 했나
- 사실적 질감 대신 단순한 무작위 질감: 비슷한 선행 연구(드론 비행)는 대부분 사실적인 재질 약 200개에서 골랐습니다. 이 논문은 단순한 무작위 생성만 써서 장면의 고유한 질감 조합을 수십만 개 이상 만들 수 있었습니다.
- 카메라 무작위화: 실제 카메라를 정밀하게 보정하고 배치하는 수고를 없앱니다.
- 방해 물체는 책상 위에만: 실제 사진의 바닥에 케이블 같은 잡동사니가 있었지만, 바닥 · 배경의 방해 물체는 필요 없었다고 논문은 말합니다.
3. 검출기 구조와 학습
한 문장 직관: 사진을 보고 "물체가 책상 어디쯤 있는지"를 좌표 숫자 세 개로 바로 말하는 신경망입니다(해설용 비유).
단계별 설명 (논문 기준)
- 입력은 외부 웹캠 이미지를 로 줄인 것입니다.
- 몸통은 VGG-16의 표준 합성곱 층을 그대로 씁니다.
- 끝의 완전 연결층은 원래보다 작은 256 · 64 크기로 바꾸고, 드롭아웃(dropout)은 쓰지 않습니다.
- 출력은 목표 물체의 좌표입니다. 정답은 월드 좌표계에서 물체 질량 중심의 좌표입니다.
- 손실은 예측 위치와 실제 위치 사이의 L2 손실이고, 최적화는 Adam입니다.
- 학습률은 Adam의 표준값 1e-3 대신 1e-4 정도를 썼습니다. 그래야 수렴이 좋아지고, "모든 물체를 책상 가운데로 예측하는" 흔한 지역 최적점을 피할 수 있었다고 합니다.
- 실험마다 학습률 2개(1e-4, 2e-4)와 배치 크기 3개(25, 50, 100)의 조합을 탐색해 가장 좋은 망을 보고했습니다.
- 대부분 실험에서 합성곱 층을 ImageNet 사전 학습 가중치로 초기화했지만, 실제로는 무작위 초기화도 대부분 경우 비슷하게 잘 됐습니다.
수식 (L2 손실과 평가 오차)
학습은 왼쪽 손실을 줄이고, 결과 표의 "오차(cm)"는 오른쪽처럼 예측과 정답 사이의 거리로 읽으면 됩니다. 평균을 내는 형태로 쓴 것은 해설용 표기입니다.
기호 풀이
| 기호 | 뜻 |
|---|---|
| 번째 학습 이미지 | |
| 그 이미지 속 목표 물체의 정답 좌표 | |
| 검출기의 예측 좌표 | |
| 미니배치 안의 샘플 수 | |
| 예측과 정답 사이의 거리(오차) |
숫자로 해 보기 (해설용 예 — 논문 수치 아님)
책상 위 평면만 보겠습니다. 정답이 cm, 예측이 cm라면
- 차이:
- 제곱: → 이것이 L2 손실 한 항입니다.
- 거리: cm → 이것이 오차입니다.
논문이 말하는 "평균 1.5cm 정확도"는 이런 거리를 여러 실제 사진에서 평균 낸 값이라고 보면 됩니다.
왜 이렇게 했나
- VGG-16: 여러 시각 과제에서 성능이 좋고, 사전 학습 가중치를 구하기 쉬워서 골랐다고 논문은 밝힙니다.
- 바로 좌표를 회귀: 전통 방식은 3차원 모델을 만들고 특징점을 맞추는 복잡한 파이프라인이 필요했습니다. 이 방식은 3차원 복원을 피하고, 구현이 단순해 더 어려운 문제로 넓히기 쉽다고 봅니다. 대신 전통 방식처럼 물체의 전체 3차원 자세(위치와 방향)를 얻지는 못합니다.
4. 처리 흐름
flowchart LR
A["물체 메시 · 책상 장면"] --> B["설정값 무작위로 뽑기<br/>질감 · 조명 · 카메라 · 방해 물체 · 잡음"]
B --> C["MuJoCo 렌더러로 이미지 생성<br/>+ 정답 좌표 라벨"]
C --> D["수정한 VGG-16 검출기<br/>L2 손실 · Adam"]
D --> E["실제 웹캠 이미지<br/>추가 학습 없음"]
E --> F["물체 좌표 (x, y, z) 예측"]
F --> G["모션 플래너로 집기<br/>Fetch 로봇"]5. 과적합을 어떻게 볼 것인가
한 문장 직관: 연습 문제는 거의 다 맞히는데 실전 점수가 더 낮다면 과적합이지만, 실전 문제를 미리 볼 수 없는 상황에서는 그 차이를 학습 도중에 확인할 수 없습니다(해설용 비유).
단계별 설명
- 시뮬레이션 학습 데이터에서 오차는 0.3~0.5cm였습니다.
- 실제 이미지에서 오차는 평균 1.5cm 안팎이었습니다.
- 논문은 이를 여전히 시뮬레이션 데이터에 과적합한 상태라고 봅니다.
- 일반 지도 학습이라면 검증 세트로 과적합을 막지만, 여기서는 학습 중에 실제 데이터가 없다고 가정하므로 실제 데이터로 검증할 수 없습니다. 시뮬레이션 데이터의 검증 세트는 썼다고 합니다.
숫자로 해 보기 (해설용 계산 — 위 논문 수치를 나눈 것)
실제 오차 1.5cm를 시뮬레이션 오차 0.3~0.5cm로 나누면 3~5배입니다. 남은 현실 격차가 그만큼이라는 대략의 감을 줍니다. 논문이 직접 계산한 비율은 아닙니다.
결과
아래 수치는 모두 논문이 보고한 값입니다.
평가 데이터: 기하학적 물체 8종(원뿔 · 정육면체 · 원기둥 · 육각기둥 · 피라미드 · 직육면체 · 사면체 · 삼각기둥)을 카메라에서 70~105cm 떨어진 책상 위에 놓고 웹캠 사진 480장을 찍었습니다. 물체마다 60장으로, 물체만 있는 사진 20장, 방해 물체가 있는 사진 20장, 다른 물체에 일부 가린 사진 20장입니다. 조명이나 책상 주변은 통제하지 않았습니다(로봇 일부, 바닥의 테이프와 전선이 찍혀 있음).
물체별 실제 검출 오차 (cm, 평균 ± 표준편차, 논문 표 I)
| 물체 | 물체만 | 방해 물체 있음 | 가림 있음 |
|---|---|---|---|
| 원뿔 | 1.3 ± 1.1 | 1.5 ± 1.0 | 1.4 ± 0.6 |
| 정육면체 | 1.3 ± 0.6 | 1.8 ± 1.2 | 1.4 ± 0.6 |
| 원기둥 | 1.1 ± 0.9 | 1.9 ± 2.8 | 1.9 ± 2.9 |
| 육각기둥 | 0.7 ± 0.5 | 0.6 ± 0.3 | 1.0 ± 1.0 |
| 피라미드 | 0.9 ± 0.3 | 1.0 ± 0.5 | 1.1 ± 0.7 |
| 직육면체 | 1.3 ± 0.7 | 1.2 ± 0.4 | 0.9 ± 0.6 |
| 사면체 | 0.8 ± 0.4 | 1.0 ± 0.4 | 3.2 ± 5.8 |
| 삼각기둥 | 0.9 ± 0.4 | 0.9 ± 0.4 | 1.9 ± 2.2 |
- 표의 여러 칸은 사전 학습 없이 처음부터 학습한 검출기가 가장 좋았던 경우입니다(논문 표의 각주 표시).
- 논문은 이 정확도가 비슷한 거리에서 더 높은 해상도 이미지를 쓰는 전통적 단안 자세 추정 기법의 위치 오차와 견줄 만하다고 말합니다.
절제 실험 — 무엇을 빼면 나빠지나 (평균 오차 cm, 각 모델 학습 예제 20,000개, 논문 표 II)
| 학습 방식 | 물체만 | 방해 물체 있음 | 가림 있음 |
|---|---|---|---|
| 전체 방법 | 1.3 ± 0.6 | 1.8 ± 1.7 | 2.4 ± 3.0 |
| 잡음 추가 없음 | 1.4 ± 0.7 | 1.9 ± 2.0 | 2.4 ± 2.8 |
| 카메라 무작위화 없음 | 2.0 ± 2.1 | 2.4 ± 2.3 | 2.9 ± 3.5 |
| 학습 때 방해 물체 없음 | 1.5 ± 0.6 | 7.2 ± 4.5 | 7.4 ± 5.3 |
- 방해 물체는 핵심입니다. 학습 때 빼면 물체만 있는 사진은 괜찮지만, 방해 물체 · 가림이 있는 실제 사진에서 오차가 7cm대로 커집니다.
- 카메라 무작위화는 꾸준히 조금씩 정확도를 올리지만, 없어도 꽤 높은 정확도가 나옵니다.
- 잡음 추가는 결과에 거의 영향이 없었습니다. 다만 학습 때 잡음을 조금 넣으면 수렴이 좋아지고 지역 최솟값에 덜 빠졌다고 합니다.
- 논문은 잡음을 뺀 나머지 모든 요소에 방법이 적어도 어느 정도는 민감하다고 정리합니다.
학습 데이터 양과 사전 학습 (논문 그림 4 설명)
- 사전 학습 모델은 학습 샘플 5,000개만으로도 비교적 정확했고, 약 50,000개까지 성능이 좋아졌습니다.
- "사전 학습이 꼭 필요할 것"이라는 저자들의 가설은 틀렸습니다. 데이터가 많으면 무작위 초기화도 거의 같은 성능을 냈고, 물체별 최고 검출기는 무작위 초기화인 경우가 많았습니다.
- 다만 데이터가 적을 때는 사전 학습이 성능을 크게 높였습니다.
질감 개수 (논문 그림 5 설명)
- 학습 예제를 10,000개로 고정하고 고유한 질감 조합 수만 바꿨을 때, 1,000개보다 적으면 성능이 크게 떨어졌습니다.
- 질감 1,000개를 쓰면 이미지 10,000장과 1,000장의 성능이 비슷했습니다. 논문은 데이터가 적은 구간에서는 물체 위치 무작위화보다 질감 무작위화가 더 중요하다고 해석합니다.
실제 로봇 집기
- 가장 꾸준히 정확했던 검출기 2개로, 점점 어지러워지는 장면 20개에서 집기를 시험했습니다. 위치 추정 결과를 기성 모션 계획 소프트웨어(MoveIt)에 넘겨 Fetch 로봇이 집었습니다.
- 40번 중 38번 목표 물체를 찾아 집었습니다. 목표가 크게 가려진 어지러운 장면도 포함됩니다.
- 일부 시험 장면에는 학습 때 없던 방향으로 놓인 방해 물체(옆으로 눕힌 육각기둥 등)도 있었습니다. 같은 색 물체가 바로 옆에 있어도 찾아냈습니다.
- 질감이 고르지 않은 실제 물체로는 YCB 데이터셋의 스팸(Spam) 통조림을 시험했습니다. 학습 땐 기하학적 방해 물체와 함께, 시험 땐 처음 보는 다른 음식 물체들과 함께 놓았는데, 10번 중 9번 집었습니다.
왜 중요한가 · 이후 영향
- "사실성보다 다양성"이라는 관점을 실험으로 보였습니다. 실제 이미지로 사전 학습하지 않은 심층 신경망을 시뮬레이션 RGB 이미지만으로 학습해 로봇 제어용으로 실제에 옮긴 첫 성공 사례라고 논문은 밝힙니다.
- 정밀한 과제에도 통한다는 것을 보였습니다. 비슷한 선행 연구는 충돌 회피 비행처럼 정밀도가 크게 필요 없는 과제였지만, 이 논문은 cm 단위 위치 추정과 집기를 다뤘습니다.
- 값싼 렌더러를 쓸 수 있게 했습니다. 시뮬레이터를 현실에 맞추는 수고 대신 무작위화로 버틴다는 전략은 이후 손 조작(OpenAI Dactyl)처럼 물리 파라미터까지 무작위화하는 연구로 이어졌습니다(이 섹션의 108번 항목).
- 도메인 적응과 함께 쓸 수 있습니다. 논문은 이 방법이 대부분의 도메인 적응 기법과 쉽게 결합될 수 있다고 말하고, 그 결합을 향후 과제로 꼽습니다.
한계 · 주의할 점
- 과제가 좁습니다. 책상 높이를 고정한 사실상 2차원 위치 추정이고, 물체의 방향(자세)은 추정하지 않습니다. 단안 카메라 한 대, 기하학적 물체 8종과 통조림 하나로 시험했습니다.
- 시각만 무작위화했습니다. 원리상 현실 격차의 어느 부분에도 쓸 수 있지만, 이 논문은 카메라 이미지의 격차만 다룹니다. 물리 동역학의 격차는 다루지 않습니다.
- 여전히 과적합이 남습니다. 시뮬레이션 오차 0.3~0.5cm와 실제 오차 사이의 차이가 크고, 학습 중 실제 데이터로 검증할 방법이 없습니다.
- 가림에 약한 물체가 있습니다. 사면체는 가림 조건에서 3.2 ± 5.8cm로 편차가 컸습니다.
- 접촉이 많은 조작은 아직입니다. 논문은 접촉이 많은 조작이나 더 높은 정밀도가 필요한 과제를 향후 과제로 남기고, 고해상도 카메라 · 구조 최적화 · 더 다양한 무작위화 · 다중 시점이나 깊이 정보 · 도메인 적응과의 결합을 개선 방향으로 제시합니다.
- 무작위화 범위는 손으로 정했습니다. 무엇을 얼마나 흔들지는 사람이 설계한 값이고, 최적 범위를 찾는 방법은 이 논문의 범위 밖입니다.
이어서 읽을 것
- 뒤: OpenAI Dactyl — 로봇 손 조작 학습 — 시각뿐 아니라 마찰 · 질량 같은 물리 파라미터까지 무작위화해 실제 로봇 손으로 옮김
- 뒤: 험한 지형의 사족 보행 학습 — 시뮬레이션에서 강화 학습한 보행 제어기를 실제 자연환경에 추가 학습 없이 적용
- 뒤: Eureka — 시뮬레이션 학습의 보상 설계를 언어 모델로 자동화
- 뒤: Cosmos — 피지컬 AI용 데이터를 만드는 월드 모델 플랫폼
- 기초: PPO — 시뮬레이션 로봇 학습에서 널리 쓰이는 강화 학습 알고리즘
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 현실 격차(reality gap) | 시뮬레이션과 실제 세계의 차이 때문에 시뮬레이션에서 배운 것이 실제에서 잘 안 되는 문제 |
| 도메인 무작위화(domain randomization) | 시뮬레이터 설정을 학습 샘플마다 무작위로 바꿔, 실제 세계가 변형의 하나로 보이게 하는 기법 |
| sim-to-real 전이 | 시뮬레이션에서 학습한 모델을 실제 로봇에 옮겨 쓰는 것 |
| 시스템 식별(system identification) | 시뮬레이터 파라미터를 실제 장치 동작에 맞게 조정하는 과정 |
| 도메인 적응(domain adaptation) | 한 도메인에서 배운 모델을 다른 도메인 데이터로 맞추는 방법들 |
| 렌더러(renderer) | 3차원 장면을 이미지로 그려 내는 프로그램 |
| 방해 물체(distractor) | 장면에 함께 있지만 무시해야 하는 물체 |
| 부분 가림(partial occlusion) | 목표 물체 일부가 다른 물체에 가려진 상태 |
| 물체 위치 추정(object localization) | 이미지에서 물체가 어디 있는지 좌표를 구하는 과제 |
| 시야각(field of view) | 카메라가 한 번에 볼 수 있는 각도 범위 |
| L2 손실 | 예측과 정답 차이의 제곱합으로 오차를 재는 손실 |
| 절제 실험(ablation study) | 구성 요소를 하나씩 빼 보며 각 요소의 기여를 확인하는 실험 |
스스로 점검
1. 이 논문은 왜 사실적인 렌더링 대신 일부러 엉뚱한 질감을 썼나요? 답: 현실과 똑같이 맞추는 데는 끝이 없고, 남은 작은 차이에 모델이 기대면 실제에서 실패합니다. 대신 질감 · 조명 · 카메라를 넓게 흔들어 모델이 겉모습을 무시하고 모양과 위치에만 기대게 하면, 실제 이미지도 학습 분포의 한 변형처럼 보이게 됩니다. 덕분에 빠른 저품질 렌더러도 쓸 수 있습니다.
2. 절제 실험에서 가장 중요했던 요소와 거의 영향이 없던 요소는 무엇인가요? 답: 학습 때 방해 물체를 넣는 것이 가장 중요했습니다. 빼면 방해 물체 · 가림이 있는 실제 사진에서 평균 오차가 7cm대로 커졌습니다. 이미지 잡음 추가는 결과에 거의 영향이 없었고, 다만 수렴을 돕는 효과가 있었습니다.
3. 사전 학습(ImageNet 가중치)은 꼭 필요했나요? 답: 아니었습니다. 저자들은 필요할 것이라 예상했지만, 학습 데이터가 많으면 무작위 초기화도 거의 같은 성능을 냈고 물체별 최고 검출기가 무작위 초기화인 경우도 많았습니다. 다만 데이터가 적을 때는 사전 학습이 크게 도움이 됐습니다.
다음에 볼 것
이 글을 이해했다면 이어서 보면 좋은 항목입니다.
- 로봇 손으로 물체 돌리기 학습 (OpenAI Dactyl) — 물리·겉모습을 무작위화한 시뮬레이션 강화 학습만으로 실제 로봇 손이 정육면체를 연속으로 돌리게 한 연구
출처
- 원문: arxiv.org/abs/1703.06907 (2017 · Josh Tobin 외)
AI 원리부터 이해하기 · 피지컬 AI 모듈
피지컬 AI 모듈 학습
이 글은 피지컬 AI 모듈의 학습 자료입니다. 전체 26개 자료 중 6번째입니다.
출처·원문
원문 보기요약만