End to End Learning for Self-driving Cars
인지자 5강 - End to End Learning 내용 정리
3가지 primary approaches for autonomous driving
1) Modular Pipelines: Perception, Prediction, Planning-bsed system
2) End-to-end/End-to-mid/mid-to-mid Learning: Imitation Learning-based system
3) Direct Perception: System architecture to address the interpretability of the E2E solution
End-to-end Learning은
Imitation Learning-based system에 해당하는 유형 중 하나다.
Approach 1: Modular Pipelines
Perception은 카메라, LiDAR등 센서 데이터가 주어지면 물체의 bounding box를 특정ㅎ하는 것이다.
SLAM은 정확한 위치를 예측하기 위한 것으로 Perception 이전에 수행
장점: 별개의 component로 독립적으로 분리되어 있어 interpretability가 높고 Parallel하게 개발할 수 있다.
단점: 각각의 ML 모델을 만들어야 하고 컴퓨팅 자원이 많이 필요하다. 최적화가 어렵다. 독립적인 모듈을 개발해야 하는데 각각의 중요도가 다르다. Localization과 planning이 HD 맵ㅇ 대한 의존도가 높아 비용이 높다.
각각의 모듈마다 고립된 최적화가 수행된다.
개선 방안으로 Encoder와 Feature extractor를 통합하고 그 다음에 각각의 Task model(Lane Detection, Object Detectino, Lane Prediction)에 입력하는 방식이 있다.
Appraoch 2: Direct Perception
E2E Learning과 비슷하다. E2E Learning이란 Input(센서 데이터)으로부터 실제 핸들 등 기계의 조작(Output)까지 이어지는 ML 모델이다.
Input과 Output 사이에 이루어지는 중간 과정이 Direct Perception이다. 그 중에서도 Intermediate Representations가 중요하다. 이는 각 차량 간 거리 등의 features을 포함한다.
장점: Conpact Representation(Intermediate Representation: 인간이 정의함 - simple), Interpretability
단점: Control이 jointly하게 학습되지 않으므로 최적화되지 않는다. 또한 representation을 어떻게 선택할지 잘 고려해야 한다.
이 방식에 대한 연구는 적게 이뤄지고 있다. Modular Pipelines 방식이 꽤 강력하다고 알려져 있기떄문
Approach 3: E2E Learning(초기 버전)
Imitation Learning과 같은 model을 써서 direct policy learning을 통해 훈련된다(sensor to control).
모델 구현이 상대적으로 간단, annotatino과 trajectories 불필요
단점(~2018):
-
Interpretability가 낮다.
-
Generalization 어렵(Imitation Learning). 특히, agent가 이전에 경험하지 못한 새로운 state에 진입할 수 있다. -> DAgger, on-policy data, …
-
Multi-modality: 데이터 수집에 서로 다른 policy가 적용됨 -> 같은 state가 주어졌을 때 다른 action을 취할 수 있다
ChaufferNet (from Waymo Research)
Mid-to-mid model: Sensor data를 그대로 쓰지 않고 BEV(Bird-Eye View) map 기반의 perception output을 사용한다.(차선, 신호등, Routed route, 다른 차량, 이전 진행 경로 등) -> Output 역시, 직접적 장비 조작이 아닌 Predicted trajectory를 내놓는다.
Large-scale data: 1년이 넘는 기간동안 수지보딘 데이터 이용
Imitation Learning: distribution difference를 줄이기 위해 Noise injection 등의 방법이 이용됨
2D Map을 CNN에 넣고 -> feature 추출해서 RNN에 넣고 -> location prediction
Attentional Bottlneck을 추가해서 interpretability를 높일 수가 있다.
Multi-view Camera-based LSS
많이 사용됨. 카메라 6개로 이미지 받아서 BEV map으로 변환
Modular + E2E framework
intermediate task도입해서 중간에 BEV 생산 -> better interpretability
- Trained Jointly
UniAD
모든 서브모듈(for Perception, Prediction)에 Transformer 사용
각 trasnformer는 query로 연결됨
VAD
Improvements:
-
Vectorized Scene Representation -> 성능 개선
-
Driving commands(예: “Turn Left”), ego vehicle 의 state information 기반으로 final output이 생성됨
PARA-Drive
다양한 module의 결합으로 성능 향상을 꾀함
Other E2E approaches
-
ViDAR
-
ViP3D
Efficient Transformers
MoE(Mixture-of-Experts)(예: Switch Transformers) 사용
-
Sparse MoE Layers: 다수의 expert feed-forward networks(FFNs) 사용
-
Gate Network -> 최종 output을 만들 때 어떤 expert FFN을 사용할지 결정한다. 각 FFN의 Load balancing도 이루어짐