OpenAI Dactyl: 도메인 랜덤화를 통한 손재주 학습
OpenAI는 인간과 유사한 로봇 손을 사용하여 전례 없는 손재주로 물리적 물체를 조작할 수 있는 시스템인 Dactyl을 개발했습니다. 완전히 시뮬레이션에서 훈련하고 도메인 랜덤화를 활용함으로써, Dactyl은 물리적으로 정확한 모델링이나 실제 세계에서의 미세 조정 없이도 학습한 기술을 실제 세계에 전이합니다.
정교한 조작 과제
로봇 손 안에서 물체를 재배치하는 것은 네 가지 주요 기술적 난관 때문에 복잡한 작업입니다:
- 실제 세계 적용: 강화 학습은 시뮬레이션에서는 종종 성공하지만 물리적 하드웨어로 전이하는 데 어려움을 겪습니다.
- 고차원 제어: Dactyl이 사용하는 Shadow Dexterous Hand는 24개의 자유도를 가지고 있어, 일반적인 로봇 팔에 흔히 있는 7개보다 훨씬 많습니다.
- 노이즈가 있는 부분 관측: 물리 시스템은 지연된 센서 읽기와 가림 현상을 포함하며, 에이전트가 마찰 및 미끄러짐과 같은 관측할 수 없는 요소를 추론하도록 요구합니다.
- 물체 일반화: 시스템은 하나의 형태에 특화된 전략에 의존하지 않고 다양한 물체 형상을 조작할 수 있을 만큼 유연해야 합니다.
도메인 랜덤화 접근법
시뮬레이션과 현실 사이의 격차를 극복하기 위해 OpenAI는 도메인 랜덤화를 사용했습니다. 복잡한 접촉력과 변형 가능한 물질에 대해 완벽히 현실적인 시뮬레이션을 만드는 것은 종종 불가능하므로, Dactyl은 물리적 및 시각적 속성이 무작위로 선택된 다양한 시뮬레이션 환경에서 훈련되었습니다.
이 접근법은 에이전트가 방대한 양의 경험을 빠르게 축적할 수 있게 합니다. 정책이 다양한 무작위 시뮬레이션 환경에서 성공한다면 실제 세계에 일반화될 가능성이 높아집니다. Dactyl은 제어를 위해 MuJoCo 물리 엔진을, 시각적 자세 추정을 위해 Unity 게임 엔진을 사용해 구축되었습니다.
기술 아키텍처: 제어와 비전
제어 학습
Dactyl은 환경의 동역학을 처리하기 위해 LSTM(Long Short-Term Memory) 신경망을 사용합니다. 동역학 파라미터는 단일 관측만으로는 추론할 수 없기 때문에, LSTM의 메모리는 네트워크가 환경의 행동에 따라 행동을 조정하도록 합니다.
훈련은 Rapid를 사용해 수행되었으며, 이는 Proximal Policy Optimization (PPO)의 확장 구현입니다. 훈련 과정에서는 6,144개의 CPU 코어와 8개의 GPU를 활용해 약 100년 분량의 시뮬레이션 경험을 50시간 안에 수집했습니다.
시각 학습
임의의 물체를 조작하기 위해 Dactyl은 자세 추정기로서 합성곱 신경망(CNN)을 사용합니다. 이 네트워크는 세 개의 RGB 카메라에서 들어오는 비디오 스트림을 처리해 물체의 위치와 방향을 추정합니다. 제어 네트워크와 마찬가지로, 비전 네트워크도 Unity를 사용해 다양한 시각 현상을 모델링한 시뮬레이션에서 완전히 훈련되었습니다.
결과 및 성능
자율 전략 발견
Dactyl은 자율적으로 손 안에서의 조작 전략을 풍부하게 발견했으며, Tip Pinch, Palmar Pinch, Tripod, Quadpod, Power grasp, 5-Finger Precision grasp와 같은 다양한 잡기 유형을 포함합니다. 특히 Dactyl은 이러한 잡기를 자체 하드웨어에 맞게 조정했으며, 정밀 잡기에서는 인간이 보통 사용하는 검지나 중지보다 엄지와 새끼손가락(새끼손가락의 추가 자유도 때문에)을 선호했습니다.
전이 성공률
도메인 랜덤화로 훈련된 정책은 이를 사용하지 않은 정책보다 현저히 우수했습니다. 블록 조작 테스트에서 결과는 다음과 같습니다:
| 랜덤화 | 물체 추적 | 최대 성공 수 | 중간 성공 수 |
|---|---|---|---|
| 모든 랜덤화 | 비전 | 46 | 11.5 |
| 모든 랜덤화 | 동작 추적 | 50 | 13 |
| 랜덤화 없음 | 동작 추적 | 6 | 0 |
훈련 효율성
물리적 동역학에 대한 견고함을 확보하려면 상당한 데이터가 필요합니다. 무작위화되지 않은 시뮬레이션에서 물체를 회전시키는 학습은 약 3년 분량의 시뮬레이션 경험이 필요하지만, 완전히 무작위화된 시뮬레이션에서 유사한 성능을 달성하려면 약 100년의 경험이 필요합니다.
주요 발견 및 한계
놀라운 발견
- 촉각 감지: 손끝의 촉각 센서는 필요하지 않았습니다. 시뮬레이션에서 효과적으로 모델링할 수 있는 제한된 센서 집합을 사용할 때 성능이 더 좋았으며, 모델링이 어려운 풍부한 센서 집합보다 더 나았습니다.
- 일반화: 블록을 위해 설계된 랜덤화는 팔각 프리즘에 잘 일반화되었습니다. 그러나 구체에는 일반화되지 않았는데, 이는 시뮬레이션에서 구르는 동작이 랜덤화되지 않았기 때문으로 보입니다.
- 시스템 엔지니어링: 하드웨어와 소프트웨어 인프라가 핵심적인 역할을 했습니다; 예를 들어, 느린 노트북으로 인한 타이밍 버그가 일부 팀원의 성능을 크게 저하시켰습니다.
비효과적인 기법
- 반응 시간: 행동 간 시간을 80ms에서 40ms로 줄였지만, 훈련 시간이 더 많이 소요됨에도 실제 세계 성능이 눈에 띄게 향상되지 않았습니다.
- 실제 데이터: 비전 정책에 시뮬레이션 데이터와 실제 데이터를 혼합해 사용했지만, 실제 데이터가 지연 및 측정 오류를 초래해 시뮬레이터 전용 훈련보다 이점이 없었습니다.
Sources
- OriginalLearning dexterity