Where are we in the search for an Artificial Visual Cortex for Embodied Intelligence? 정리
풀어내는 문제
- 로봇으로 다양한 작업을 수행하는 데 적합한 표현을 이미지로부터 얻는 문제
모델 아키텍처
- 모델이 새롭지는 않음
- 이름: VC-1
- MAE ViT임
- 높은 비율의 이미지 패치를 가린 뒤 전체 이미지를 재구성하는 것이 목표
- 인코더와 디코더로 구성. 인코더와 디코더 모두 vision transformer인 것으로 보임
- 인코더는 가려지지 않은 토큰 수열을 입력으로 받음
- 왜?: masked 토큰까지 입력에 포함하면 입력이 많아지면서 계산량이 늘어남
- 디코더는 masked 토큰과 가려지지 않은 토큰 수열을 입력으로 받음
- 인코더에 비해 디코더의 입력이 더 많기에 계산량이 늘어남
- 계산량을 줄이기 위해 디코더 모델의 파라미터 수를 줄임
- 자세한 내용은 He et al., 2022 참고
- 3억 개의 파라미터를 갖는 ViT-B와 6억 개의 파라미터를 갖는 ViT-L 두 모델을 사용.
실험
- 실험 환경: 17개의 로봇 작업
- 데이터 세트
- 다양성에 중점을 두고 데이터 세트를 구성함
- ImageNet: 정적인 인터넷 이미지
- 삼인칭 시점에서 여러 동작을 수행하는 비디오
- 일인칭 시점에서 여러 동작을 수행하는 비디오
- 미세 조정 방법
- 미세 조정에 쓰인 데이터 세트가 작은 경우
- 시각 표현을 생성하는 백본을 고정(frozen)함
- 이유: 데이터 세트가 작을 때 end to end 미세 조정은 오히려 성능 저하를 불러일으킴
- 미세 조정에 쓰일 데이터 세트가 큰 경우
- 백본과 policy 모두 end to end로 미세 조정함
- 백본을 실험하기 위한 policy
- 백본의 출력을 수정하여 policy의 입력으로 줌
- policy가 sequence 모델인 경우
- 백본이 CNN인 경우
- CNN의 마지막 convolution layer에서 global average pooling을 하지 않은 feature map을 policy의 입력으로 줌
- 백본이 ViT인 경우
- ViT 마지막 레이어의 토큰 수열을 policy의 입력으로 줌
- policy가 MLP인 경우
- 백본이 CNN인 경우
- CNN의 마지막 convolution layer에서 global average pooling을 한 뒤 이를 policy의 입력으로 줌
- 예시) 마지막 convolution layer의 출력이 512∗256∗256 (channel∗height∗width) 라고 가정하자. global average pooling을 하면 512∗1∗1이 된다. 이를 512차원의 벡터로 모양을 바꾼 뒤 policy의 입력으로 준다
- 백본이 ViT인 경우
- ViT에서 이미지를 나타내는 특수 토큰을 policy의 입력으로 준다
- 결과
- VC-1을 백본으로 갖는 policy가 평균적으로 제일 우월함
- 특정 작업에서는 더 작은 백본이 더 나은 성능을 보이기도 함
논문이 기여한 내용
- 사전 학습된 시각적 표현을 평가하는 벤치마크를 제시함.
- MAE ViT의 크기를 키우면 특정 작업에서의 성능은 낮아질 수 있으나 평균적으로는 성능이 좋아진다는 것을 밝힘
- 다양한 작업에 일반적으로 사용할 수 있는 사전 학습된 시각적 표현은 아직 없음을 실험적으로 보임
- 제어 트랜스포머
- 한 개의 이미지를 한 개의 벡터로 표현함
- 이미지로 다른 이미지를 예측하거나 행동을 예측하는 방식으로 학습함
- 행동을 예측하기에 agent의 행동이 데이터 세트에 포함됨
- Deepmind Control suite 에서만 실험함
- VC-1
- 한 개의 이미지를 여러 개의 토큰으로 표현함
- 이미지의 일부분을 가린 뒤, 가려지지 않은 이미지 패치로 이미지 전체를 재구성하는 방식으로 학습함
- 이미지로 다른 이미지를 예측하지 않고 행동 또한 예측하지 않음
- agent의 행동은 필요 없음
- Deepmind Control suite를 포함하는 다양한 환경에서 실험함