Differentiability

신경망을 학습시키려면 손실로부터 파라미터까지 그래디언트가 흘러야 한다. 하지만 고전적인 SLAM은 그래디언트를 막는 연산들로 가득하다: RANSAC은 이산적인 가설 선택(argmax)을 수행하고, keypoint 검출은 non-maximum suppression과 top-kk 선택을 적용하며, bundle adjustment 같은 최적화 solver는 닫힌 형태(closed-form)의 함수가 아니라 반복적인 절차다. Differentiability(미분 가능성) 연구는 다음을 묻는다: 이런 고전적 기하 알고리즘들을 어떻게 미분 가능하게 만들어서, 네트워크가 그것들을 통과하며 학습될 수 있게 할 수 있을까 — 어떤 proxy 라벨이 아니라 최종 포즈나 맵 품질을 위해 최적화하도록?

고전적 SLAM이 그래디언트를 막는 이유

표준적인 relocalization 파이프라인을 생각해보자: 네트워크가 2D-3D 대응 관계를 예측하고, RANSAC이 최소 집합을 샘플링하고, PnP가 각 가설을 풀고, inlier 개수가 점수를 매기고, argmax 가설이 선택된다. 이 중 세 단계는 미분 불가능하다:

체인의 어느 한 연결이 그래디언트를 죽이면, 그 위쪽에 있는 모든 것은 시스템이 실제로 해야 하는 일과 맞지 않을 수도 있는 proxy 손실(ground-truth 깊이 모방, 수동 라벨링된 매칭 모방)로 학습되어야 한다.

주요 기법들

각 기법은 대표적인 시스템과 결부되어 있어, 구체적으로 학습할 수 있다:

그 대가: 태스크 수준 학습

이 모든 장치의 목적은 *태스크 수준 학습(task-level training)*이다: ground-truth 깊이나 수동 라벨링된 매칭을 모방하도록 네트워크를 가르치는 대신, RANSAC/PnP/BA가 제 역할을 마친 후 최종 카메라 포즈가 정확하도록 학습시킨다. 학습 목표와 시스템 목표가 동일한 것이 된다. 이러한 정렬(alignment)이 바로 미분 가능한 기하학 시스템(DSAC에서 ACE로 이어지는 relocalization 계열, DROID-SLAM)이 PoseNet 같은 naive한 종단간 포즈 회귀보다 더 잘 일반화되는 이유다 — 기하는 여전히 정확한 solver에 의해 강제되며; 네트워크는 학습으로부터 이득을 보는 부분만 학습한다.

두 번째 대가는 *자기지도(self-supervision)*다: 미분 가능한 투영과 solver가 있으면, 알려진 카메라 포즈를 통한 재투영 손실이 3D ground truth를 완전히 대체할 수 있다 — DSAC++가 도입했고 ACE 계열이 몇 분 단위의 매핑을 위해 의존하는 트릭이다.

흔한 함정들

이 분야의 많은 엔지니어링은 바로 이런 문제들을 관리하는 데 관한 것이다.

SLAM에서의 의미

Differentiability는 레벨 5의 두 절반을 잇는 다리다: 이는 학습된 프론트엔드가 기하학적 백엔드를 루프 안에 둔 채로 학습될 수 있게 하여, 고전적 최적화의 엄밀함을 유지하면서 그 주변의 모든 것을 학습하는 하이브리드 시스템을 만든다. 소프트 선택, solver unrolling, Lie-group autodiff를 이해하면 DSAC부터 DROID-SLAM까지의 논문들을 하나의 아이디어에 대한 변주로 읽을 수 있게 된다.

관련 문서