이 게시글은 장형기님의 SLAM 기술면접 질문 100선에 대해 제 나름대로 정리한 것입니다.
Covariance Matrix는 랜덤 벡터 X에 대해 각 성분의 분산과 공분산을 나타내는 행렬입니다.
행렬 \sum의 (i,j)번째 원소는 다음과 같습니다.
이 행렬은 데이터의 분포, 불확실성 그리고 변수 간의 관계를 설명해줍니다.
왜 Covariance가 불확실성을 나타내나요?
우리는 이 데이터의 분포가 몰려있을수록 평균값에 가까운 걸 뽑았을 때 이 데이터에 속할 확률이 커집니다.
예를 들어 집합 = {1.8 1.9 2.0 2.1 2.2} 이고 집합 = {1.0 1.5 2.0 2.5 3.0 }이라고 생각해봅시다.
우리는 평균인 2 근처에서 뽑았을 때 집합에 속한 원소를 뽑을 확률이 이 높을지 가 높을지 생각해본다면 분산이 클수록 불확실성이 높다고 생각할 수 있습니다.
Covariance 활용
PCA를 활용하여 주성분 방향과 크기를 계산하면 분포의 특성을 알 수 있습니다.
Kalman Filter에서 상태의 불확실성을 모델링할 수 있습니다.
정의: Covariance Matrix의 역행렬
Filter나 분포를 계산할 때 Covariance의 역행렬이 식에 들어가는 경우가 많습니다.
이것을 표현하기 위해 Information matrix라고 이름을 붙였습니다.
=
Fisher Information matrix
Fisher information matrix는 information matrix의 일반화된 형태로, 확률 모델에서 관측 데이터가 얼마나 많은 정보를 제공하는지 나타냅니다.
정의:
주어진 데이터 x에 대한 확률 모델 에서, 파라미터 에 대한 Fisher Information Matrix는 다음과 같이 정의됩니다.
Fisher information matrix는 gaussian distribution에서는 Covariance matrix의 역행렬이 됩니다. 이렇기 때문에 information matrix라는 이름이 붙지 않았나 생각해봅니다.
저도 처음에 SLAM 공부할 때 Covariance에 대한 이해가 부족했어서 많이 헷갈렸던 경우가 있습니다. 계산 방식과 무엇을 의미하는지만 제대로 알면 논문 읽을 때 문제 없을 것이라고 생각합니다.