RANSAC은 outlier를 제거하기 위한 알고리즘입니다.
RANdom SAmple Consensus를 줄여서 RANSAC이라고 합니다.
무작위하게 샘플을 뽑아 모델을 추정하고 모델에 대한 데이터의 합의도를 구해 정확한 모델인지를 판단합니다.
Hypothesis
전체 데이터에서 N개의 샘플을 선택하고, 선택된 샘플을 통해 모델을 예측합니다.
Verifiaction
데이터셋에서 모델과 일치하는 데이터의 수를 센 후, 최대 값일 경우 모델 파라미터를 새롭게 저장합니다.
RANSAC 수식
T: 샘플링 횟수
p: 고른 data가 inlier일 확률
e: 전체 데이터의 inlier:outlier 비율
s: minimal set을 만들기 위한 데이터의 개수
p에 대한 식으로 정리하는걸로 알고 있었는데 제가 정리한 블로그에서는 이렇게 써놔서 그대로 들고 왔습니다.
뭐 그냥 정리만 해서 p에 대해 정리해주면 됩니다.
장점
outlier를 효과적으로 제거할 수 있습니다.
단점
무작위 샘플링 기반 알고리즘이기 때문에 결과가 달라질 수 있습니다.
실패할 경우 model 추론에 완전히 실패합니다.
tuning을 사람이 하기 때문에 정확도에 차이가 발생할 수 있습니다.
그냥 outlier 제거하는 알고리즘이라고 간단히 알고 있었는데 이렇게 하는거였네요.