가중치 및 편향 보고서를 사용하여 손재주 학습 엔드투엔드
이 기사에서 Alex Paino는 OpenAI Robotics 팀이 가중치 및 편향 보고서를 사용하여 대규모 기계 학습 프로젝트를 실행하는 방법을 살펴봅니다.

Alex Paino
OpenAI Robotics 팀이 W&B 보고서를 사용하는 방법
OpenAI의 로보틱스 팀에서는 W&B 보고서를 워크플로에 적극 도입했으며, 지난 약 6개월 동안 팀 내에서 결과를 공유하는 주요 수단으로 이를 사용하고 있습니다.
실험에서 얻은 실제 데이터를 맥락과 결과에 대한 해설과 함께 결합할 수 있는 기능은 우리에게 가장 큰 판매 포인트였습니다. Reports가 출시되기 전에는 일반적으로 실험의 특정 라인에서 모든 “실행”을 추적하기 위한 Google 문서를 만들었고, 이러한 문서를 실험 데이터(W&B 또는 Tensorboard)에 적절하게 연결하는 데 상당한 시간을 할애해야 했습니다.
보고서를 통해 우리는 이런 번거로운 회계 업무에서 벗어날 수 있고, 데이터에 대한 전체적인 견해를 더 쉽게 공유할 수 있습니다(사용자는 어떤 실행을 볼지 선택하거나, 특정 실행을 자세히 살펴보거나, 심지어 보고서를 복제하여 더 많은 플롯을 추가할 수도 있음).
보고서가 있는 워크플로
새로운 실험(예: 배치 크기 제거, 아키텍처 검색)을 시작할 때마다 우리는 보고서에서 다음 워크플로를 사용하는 경향이 있습니다.
1단계 : 컨텍스트 , 테스트 중인 가설 , 실험 계획 을 설명하는 텍스트를 맨 위에 넣은 새 보고서를 만든 다음 , 이를 팀과 공유하여 검토합니다. 이렇게 하면 실험 프로세스에 더 많은 엄격성을 부여하고 팀원이 문제를 발견하거나 더 일찍 아이디어를 제안하는 데 도움이 됩니다.
2단계: 가설을 검증하기 위한 하나 이상의 실험을 시작합니다.
팁 : 각 실험을 시작하는 데 사용된 git SHA를 기록하거나 W&B의 코드 로깅 기능을 사용하세요. 우리는 쉽게 액세스할 수 있도록 실험 이름에 Git SHA 접두사를 포함하는 경향이 있습니다.
3단계: 실험이 올바르게 실행되고 있음이 확인되면(즉, 눈에 보이는 버그가 없으면) 각각을 별도의 실행 세트로 추가한 다음, 관심 있는 모든 메트릭에 대한 여러 플롯을 추가합니다. 이를 미리 수행하면 진행 중인 실험을 모니터링하기 쉽고, 특히 여러 실험을 동시에 실행하는 경우 더욱 그렇습니다.
팁 : 실행 세트에 설명적인 이름을 지정하고 주어진 섹션 내 각 실행 세트의 모든 실행을 같은 색상으로 지정하세요.
4단계: 실험을 모니터링합니다. 첫 번째 실험 세트 후에 충분한 데이터가 수집되었다면, 맨 위에 결론을 추가하고 팀과 공유합니다. 그렇지 않으면 가설과 실험 계획을 업데이트하고 2단계로 돌아갑니다.
이 보고서의 나머지 부분은 Learning Dexterity 릴리스의 블록 재정렬 작업을 종단 간 방식으로 해결하는 것을 목표로 하는 연구 라인에 적용된 이 워크플로의 한 가지 예를 보여줍니다(물론 내부 보고서에 비해 여기에는 좀 더 많은 맥락이 포함되어 있습니다). 이 작업에 익숙하지 않은 경우 아래의 축소된 “배경” 섹션을 읽어보시기 바랍니다.
배경
Learning Dexterity 에서 우리는 인간과 비슷한 로봇 손을 훈련시켜 전례 없는 손재주로 물리적 물체를 조작하도록 했습니다. 구체적으로, 이 손은 나무 블록을 원하는 위치와 방향으로 높은 성공률로 재조정할 수 있었습니다. 작년 11월, Solving Rubik’s Cube 에서 우리는 이 기본적인 접근 방식의 진화를 활용하여 같은 로봇 손으로 루빅 큐브를 조작했습니다.
이 두 릴리스 모두에서 우리는 학습 문제를 두 부분으로 분해했습니다.
1. 로봇 주변에 장착된 카메라의 이미지 관찰을 매핑하여 블록의 포즈를 추정하는 지도 학습을 통한 비전 모델 학습 :
2. 강화 학습을 통해 목표 조건 정책을 학습합니다. 이는 비전 모델(원하는 목표 상태와 함께)의 추정치를 사용하여 로봇 손을 제어하는 데 사용되는 명령을 생성합니다.
3. 이 두 모델은 모두 시뮬레이션에서 완전히 학습됩니다. 이러한 모델을 현실 세계로 전환하기 위해 각 모델의 훈련 분포에 도메인 랜덤화를 적용합니다 . 정책의 경우 다양한 시뮬레이터 물리학(예: 다양한 중력 상수, 마찰 계수 등)을 사용하여 훈련합니다. 비전 모델의 경우 OpenAI Remote Rendering Backend(ORRB)를 사용하여 다양한 측면의 모양이 랜덤화된 장면의 고품질 이미지를 렌더링합니다. 다음은 몇 가지 샘플 이미지입니다.
실제 세계에서 로봇을 실험할 시간이 되면 우리는 비전 모델과 정책을 결합합니다.
강화 학습 대 행동 복제
문맥
루빅 큐브 결과를 배송한 후, 이미지에서 직접 정책을 학습하여 학습 문제를 단일 단계로 줄일 수 있는지(일명 ” 종단 간 “) 에 대한 조사를 하려고 했습니다. 그 결과 정책은 다음과 같습니다.
엔드투엔드 학습에는 장점이 있습니다(예: 명시적 상태 표현을 설계할 필요 없음, 개념적 단순성). 최근 릴리스에 얼마나 잘 작동했을지 아는 것은 향후 연구 방향을 알리는 데 도움이 될 수 있습니다. 단순성을 위해 이 조사를 Learning Dexterity의 설정, 즉 블록 재조정으로 제한하기로 결정했습니다.
가설/연구 질문
-
블록 재배치 작업을 해결하기 위해 종단간 정책을 훈련할 수 있을까요?
-
이전에 훈련된 상태 기반 정책에 행동 복제 (BC)를 사용하면 이를 더욱 효율적으로 수행할 수 있을까요 ?
-
강화 학습 (RL)을 사용하여 이러한 정책을 “처음부터” 훈련하는 것이 가능할까요 ?
-
2번과 3번에 ‘예’라고 답한 경우, RL은 BC에 비해 얼마나 더 “비싸”요?
-
이러한 정책을 성공적으로 훈련하는 데 어떤 변경 사항(예: 사전 훈련된 비전 모델 사용)이 중요합니까?
계획
-
엔드투엔드 정책을 훈련하기 위해 행동 복제를 사용해 보세요. 사전 훈련된 비전 모델, 배치 크기, 비전 모델 아키텍처 등 다양한 측면에서 반복합니다.
-
행동 복제에 성공하면 (1)의 최적 설정을 사용하여 RL을 통해 정책을 훈련합니다.
결론
-
우리는 행동 복제를 사용하여 사전 학습된 상태 기반 정책을 “교사”로 사용하여 엔드투엔드 정책을 (비교적) 효율적으로 훈련할 수 있다는 것을 발견했습니다. 아래 1부에서는 모델 크기, 배치 크기 및 사전 학습된 비전 “하위 모델” 사용에 대한 절제를 포함하여 여기에서 발견한 내용을 자세히 설명합니다. 여기서 가장 주목할 만한 발견은 사전 학습된 비전 하위 모델을 사용하면 훈련 속도가 4배 빨라진다는 것입니다.
-
강화 학습을 사용하여 엔드투엔드 정책을 학습할 수도 있지만, 그렇게 하려면 행동 복제보다 약 30배 더 많은 컴퓨팅이 필요합니다 (둘 다 사전 학습된 비전 하위 모델을 사용할 때). 2부에서는 이 실험을 자세히 설명하고 최고의 행동 복제 실험과 비교합니다(주요 결과는 아래 플롯에 있습니다)
1부: 행동 복제
OpenAI의 로보틱스 팀 내에서 우리는 이미 훈련된 정책을 사용하여 정책을 빠르게 훈련하기 위해 행동 복제를 자주 사용합니다. 우리는 이것이 다른 모델 아키텍처 또는 관찰 공간을 사용하여 정책의 훈련을 시작하는 것을 포함한 몇 가지 시나리오에서 유용하다는 것을 발견했습니다. 자세한 내용은 루빅 큐브 논문 의 섹션 6.4를 참조하십시오 . 따라서 우리가 상태 기반 정책을 엔드투엔드 정책으로 복제할 수 있는지 확인하는 것으로 이 조사를 시작하는 것은 당연했습니다.
다행히도, 우리는 행동 복제가 엔드투엔드 정책을 훈련하는 데 매우 잘 작동한다는 것을 발견했습니다. 행동 복제는 효과적으로 감독 학습의 한 형태이므로 강화 학습에 비해 엔드투엔드 정책을 수렴하도록 훈련하는 데 훨씬 더 작은 배치 크기를 사용하고 훨씬 더 적은 최적화 단계가 필요합니다. 이는 특히 엔드투엔드 정책을 훈련할 때 유용합니다. GPU당 최대 배치 크기가 상태 기반 정책보다 훨씬 작기 때문입니다(훨씬 더 큰 관찰과 큰 크기의 비전 모델 활성화로 인해).
이러한 실험을 위해 우리는 또한 원래의 지도 상태 예측 학습 과제를 활용하여 비전 하위 모델을 사전 훈련했습니다(즉, 우리는 비전 모델을 해당 과제에서 수렴하도록 훈련한 다음, 최종 두 번째 계층까지 결과 매개변수를 사용하여 엔드투엔드 정책에서 비전 하위 모델을 초기화했습니다).
다음 하위 섹션에서 우리는 행동 복제를 통해 실행한 몇 가지 흥미로운 절제 실험의 결과를 제시합니다. 결론은 다음과 같습니다.
-
별도의 임베딩 매핑 학습: 정책 및 가치 함수 네트워크에 대한 별도의 임베딩 매핑(즉, 입력을 임베딩 공간에 매핑하는 완전 연결 계층, 즉 정책 LSTM에 대한 입력)을 학습하면 학습 속도가 크게 향상되는 것을 발견했습니다.
-
모델 아키텍처: 우리는 비전 하위 모델인 ResNet50과 IMPALA 의 더 큰 비전 인코더에 대해 두 가지 아키텍처를 시도했으며 , ResNet50이 수렴에 필요한 컴퓨팅 측면과 최종 성능 측면에서 모두 더 나은 성능을 보이는 것을 발견했습니다.
-
배치 크기: 총 유효 배치 크기를 512, 1024, 2048로 시도했으며(GPU 최적화 프로그램의 수를 조정하여 달성), 최대의 최종 성능을 달성하면서 가장 높은 컴퓨팅 효율성을 제공하는 배치 크기는 1024라는 것을 알아냈습니다.
-
비전 모델 사전 학습: 사전 학습된 모델을 사용하면 무작위로 초기화된 비전 하위 모델을 사용하는 것보다 학습 속도가 약 4배 빨라지는 것을 발견했습니다.
행동 복제 절제 1: 별도의 임베딩 매핑 학습
루빅 큐브 논문 의 섹션 6.2에 설명된 대로 , 우리는 정책 및 가치 함수 네트워크에 대한 모든 입력을 512차원 공간에 내장하고 이를 합산한 다음, 정책 및 가치 함수 네트워크에 전달하기 전에 비선형성을 적용합니다.
엔드투엔드 정책을 사용하여 동일한 설정을 사용했지만 정책 네트워크에서 사용할 수 있는 관찰만 달랐습니다. 구체적으로, 상태 관찰을 제거하고 비전 하위 모델의 출력에서 관찰을 추가했습니다. 비전 하위 모델 출력은 다른 입력과 동일한 방식으로 처리됩니다. 즉, 다른 모든 입력과 동일한 512차원 공간에 임베드하기 위해 완전히 연결된 레이어를 적용합니다. 이러한 완전히 연결된 레이어를 “임베딩 매핑”이라고 합니다.
루빅 큐브 릴리스에서 정책 및 가치 함수 네트워크 간에 이러한 임베딩 매핑을 공유했습니다. 그러나 엔드투엔드 정책을 학습할 때 별도의 임베딩 매핑을 학습하는 것이 약 2-3배 더 빠르다는 것을 발견했습니다 . 이는 가치 함수 최적화와 정책 네트워크 간의 간섭 때문이라고 생각합니다. 가치 함수는 여전히 전체 상태 정보에 액세스할 수 있으므로 비전 하위 모델의 (비교적 노이즈가 많은) 출력이 필요하지 않으므로 비전 임베딩을 0으로 밀어냅니다. 물론 정책 네트워크는 환경 상태를 이해하기 위해 이 비전 임베딩이 필요합니다. 따라서 충돌이 발생합니다.
아래에서는 분리 및 공유 임베딩 매핑을 사용한 실험의 진행 상황을 비교합니다. 왼쪽의 플롯은 엔드투엔드 정책의 롤아웃에서 관찰된 평균 보상을 비교합니다(이러한 롤아웃이 학습에 사용되는 경우). 오른쪽의 플롯은 에피소드당 평균 성공 횟수를 비교합니다. 여기서 “성공”은 블록을 원하는 목표로 재조정하는 것을 포함하며, 각 에피소드는 최대 50회의 성공으로 제한됩니다.
팁: 좋은 제목을 쓰고, 적절한 매끄러움을 추가하고, 일관된 색상을 적용하는 데 시간을 미리 조금만 투자하면 팀원들이 보고서를 읽는 데 걸리는 시간을 크게 절약할 수 있습니다.
행동 복제 절제 2: 모델 아키텍처
여기서 우리는 비전 하위 모델 아키텍처의 선택을 절제합니다. 우리는 훨씬 더 작은 IMAPALA 비전 인코더(IMPALA 논문 의 그림 3에서 오른쪽 이미지 )와 함께 ResNet50(루빅 큐브 릴리스에서 사용됨)을 사용하여 비교합니다. 우리는 ResNet50 모델이 IMPALA 인코더에 비해 약간 더 높은 최종 성능(평균 성공 횟수 측면에서)을 가져오는 반면 수렴하는 데 필요한 단계는 더 적다는 것을 발견했습니다. ResNet50 실험의 각 단계당 시간은 약간 더 길지만 IMPALA 실험에 비해 경과 시간 측면에서 여전히 더 빨리 수렴합니다.
왼쪽의 플롯은 엔드투엔드 정책의 롤아웃에서 관찰된 평균 보상을 비교합니다(이 롤아웃은 훈련에 사용됩니다). 오른쪽의 플롯은 에피소드당 평균 성공 횟수를 비교합니다. 여기서 “성공”은 블록을 원하는 목표로 재조정하는 것을 포함하며, 각 에피소드는 최대 50회의 성공으로 제한됩니다.
팁: 섹션을 복제하면 지루한 플롯 설정 작업 중 일부를 제거할 수 있습니다.
행동 복제 절제 3: 배치 크기
여기서 우리는 사용된 총 배치 크기를 절제하여 512, 1024, 2048을 비교합니다. 512의 배치 크기는 작동하지 않는 듯했습니다(38단계 후에도 여전히 음의 평균 보상을 보았지만, 동일한 수의 샘플을 처리한 후 1024 실험에서 양의 평균 보상을 보았습니다). 1024와 2048의 배치 크기는 모두 작동했지만, 2048의 배치 크기는 학습 속도를 약 30%만 높여 주므로 샘플과 계산 효율성 측면에서 1024가 최적이라고 생각합니다. 이는 아래의 첫 번째 플롯인 평균 보상 대 수집된 프레임에서 가장 쉽게 확인할 수 있습니다.
왼쪽의 플롯은 엔드투엔드 정책의 롤아웃에서 관찰된 평균 보상을 비교합니다(이 롤아웃은 훈련에 사용됩니다). 오른쪽의 플롯은 에피소드당 평균 성공 횟수를 비교합니다. 여기서 “성공”은 블록을 원하는 목표로 재조정하는 것을 포함하며, 각 에피소드는 최대 50회의 성공으로 제한됩니다.
아래에서 “대규모 배치 학습의 경험적 모델” 에서 설명한 대로 그래디언트 노이즈 스케일의 추정치를 표시합니다 . 수렴 시 대략 700인 것을 알 수 있으며, 이는 해당 지역에서 중요한 배치 크기를 의미합니다. 그러나 그래디언트 노이즈 스케일의 동작은 행동 복제에 대해 잘 연구되지 않았으므로 주로 어떤 배치 크기를 목표로 해야 하는지 대략적으로 이해하기 위해 사용했습니다. 이를 위해 배치 크기에 대한 최적의 크기를 올바르게 예측하기 때문에 유용했습니다.
팁: 일부 지표는 다른 지표보다 노이즈가 많을 수 있으므로 플롯에 맞는 평활화를 적용하는 것이 가장 좋습니다.
행동 복제 절제 4: 사전 훈련
여기서 우리는 사전 훈련된 비전 하위 모델의 사용을 절제합니다. 우리는 사전 훈련을 사용하지 않고도 엔드투엔드 정책을 훈련할 수 있지만 수렴하는 데 4배 더 느리다 는 것을 발견했습니다 .
왼쪽의 플롯은 엔드투엔드 정책의 롤아웃에서 관찰된 평균 보상을 비교합니다(이 롤아웃은 훈련에 사용됩니다). 오른쪽의 플롯은 에피소드당 평균 성공 횟수를 비교합니다. 여기서 “성공”은 블록을 원하는 목표로 재조정하는 것을 포함하며, 각 에피소드는 최대 50회의 성공으로 제한됩니다.
2부: 강화 학습 대 행동 복제
위의 절제를 완료한 후, 절제에 따른 가장 좋은 전체 설정을 취하고 강화 학습을 통해 종단 간 정책을 훈련하는 데 사용했습니다. 행동 복제 실험에서와 같이 사전 훈련된 모델도 사용했다는 점에 유의하세요.
우리는 RL을 통해 엔드투엔드 정책을 학습하는 것이 작동한다는 것을 발견했습니다.그냥 예상했던 대로 행동 복제보다 훨씬 느릴 뿐입니다.훨씬 더 높은 컴퓨팅 요구 사항으로 인해 여기서는 단 하나의 실험만 실행했습니다.RL 실험은 4일 동안 128개의 V100 GPU가 필요했지만, 행동 복제에서는 8시간 동안 48개의 V100 GPU가 필요했습니다.전체적으로 이는 행동 복제 에 비해 RL의 컴퓨팅이 약 30배 더 많고 , 단계당 컴퓨팅이 약 2.67배 더 많습니다.이 결론의 주요 가치는 RL을 사용하여 엔드투엔드 정책을 학습할 수 있지만, 추가 최적화를 찾지 않는 한 일반적으로 매우 컴퓨팅 집약적일 것이라는 것을 알려준다는 것입니다.
RL 실험에서 사용한 배치 크기가 훨씬 더 크기 때문에 아래 두 플롯의 모양이 다릅니다(왼쪽 플롯은 수집된 프레임의 x축을 사용함).