일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- writeup
- C언어
- 웹
- 워게임
- 웹해킹
- webhacking.kr
- 어셈블리어
- 리버싱 워게임
- 회귀 수식
- sql injection
- 자바스크립트
- 보안
- 해킹
- MySQL
- CodeEngn
- 백준 알고리즘
- abex crackme
- 컴퓨터 구조
- 알고리즘
- 인공지능
- 백준
- 리버싱
- html
- 리버싱 문제
- 리액트
- 넘파이
- php
- 머신러닝
- webhacking
- 리눅스
- Today
- Total
로보틱스 연구일지
Navigation에서 context token(ctx)만으로 trajectory를 예측하는 이유 (+ pretext task) 본문
Navigation에서 context token(ctx)만으로 trajectory를 예측하는 이유 (+ pretext task)
Prcnsi 2025. 4. 27. 16:36최근 VANP: Learning Where to See for Navigation with Self-Supervised Vision-Action Pre-Training라는 논문을 읽었다.
간략하게는 Navigation시 어디를 집중해서 볼지 제안한 논문이다.
https://arxiv.org/abs/2403.08109
VANP: Learning Where to See for Navigation with Self-Supervised Vision-Action Pre-Training
Humans excel at efficiently navigating through crowds without collision by focusing on specific visual regions relevant to navigation. However, most robotic visual navigation methods rely on deep learning models pre-trained on vision tasks, which prioritiz
arxiv.org
Navigation에서 context token(ctx)만으로 trajectory를 예측하는 이유
다음 framework는 왼쪽 부분에서 navigation relevant feature를 추출하고, 오른쪽 CNN(ResNet50) 블록에서 아까 추출한 feature를 pretrained weight로 받아와서 transformer 인코더에 입력으로 넣는다. 마지막으로 transformer를 통과한 마지막 context token(ctx)만을 이용하여 최종 trajectory를 예측한다.
(참고로 저 CNN - ResNet50에서 마지막 layer는 flatten해서 transformer에 인코더로 들어감 => 이때 flatten 해서 공간적 정보를 일부 잃지만, transformer의 positional encoding으로 어느 정도 보완 가능)
ctx는 BERT에서 나온 개념으로 "전체 시퀀스에 대한 요약 정보"이다.
BERT에서 ctx는
- BERT에서는 입력 문장 앞에 [CLS] token을 추가
- 이 [CLS] token은 처음에는 랜덤한 임베딩
- Transformer 층을 거치는 동안 [CLS] token은 다른 모든 단어들과 attention하면서 → 문장의 전체 의미를 요약하게 학습
VANP에서 context token은 이 [CLS] token 개념을 그대로 가져와서 Transformer에 image patch token을 입력하기 전에 ctx 토큰을 맨 앞에 추가해서 학습시킴.
하지만 각 이미지 patch token들도 각각 전체 시퀀스에 대한 요약 정보를 담고 있는데, ctx을 추가하는 이유는?
- Transformer 안의 각 patch token은 "자기 자신의 지역적 의미 + 주변 context" 만을 반영
- 반면, ctx는 "내가 전체를 바라보는 대표자"로서 학습되기 때문에, → 전 범위의 요약된 의미를 집중적으로 가지게 됨
- 전체 입력 정보를 요약한 벡터로 간단하고 효율적으로 downstream task(분류, 경로 예측 등)를 처리하기 위해
- MLP는 여러 feature를 일일이 입력받는 것보다 하나의 통합 벡터(ctx)만 받아서 출력하는 게 더 효율적
이러한 이유로 transformer에서 하나의 context token (CLS token)만 사용해서, 예측을 하는 구조는 다른 모델에서도 종종 사용됨.
Self-supervised learning에서 Pretext task란?
Self-supervised learning에서 pretext task란 본래 최종 목적과는 다른 보조 task를 설정 후 이를 푸는 과정에서 유용한 feature를 뽑아내도록 학습시킴.
- VANP 논문에서 pretext task: past observation, future action, goal image를 활용해서 서로 정보량이 최대(mutual informatio maximization)가 되도록 학습시키는 것
감사합니다.