RANSAC에 대해 설명해주세요.

SJ·2024년 11월 14일
0

RANSAC은 outlier를 제거하기 위한 알고리즘입니다.

RANdom SAmple Consensus를 줄여서 RANSAC이라고 합니다.

무작위하게 샘플을 뽑아 모델을 추정하고 모델에 대한 데이터의 합의도를 구해 정확한 모델인지를 판단합니다.

  • RANSAC의 작동방식
  1. Hypothesis
    전체 데이터에서 N개의 샘플을 선택하고, 선택된 샘플을 통해 모델을 예측합니다.

  2. Verifiaction
    데이터셋에서 모델과 일치하는 데이터의 수를 센 후, 최대 값일 경우 모델 파라미터를 새롭게 저장합니다.

  • RANSAC 수식

    T = log(1p)log(1(1e)s)\frac{log(1-p)}{log(1-(1-e)^s)}

    T: 샘플링 횟수
    p: 고른 data가 inlier일 확률
    e: 전체 데이터의 inlier:outlier 비율
    s: minimal set을 만들기 위한 데이터의 개수

p에 대한 식으로 정리하는걸로 알고 있었는데 제가 정리한 블로그에서는 이렇게 써놔서 그대로 들고 왔습니다.
뭐 그냥 정리만 해서 p에 대해 정리해주면 됩니다.

  • RANSAC의 장/단점

장점

outlier를 효과적으로 제거할 수 있습니다.

단점

무작위 샘플링 기반 알고리즘이기 때문에 결과가 달라질 수 있습니다.
실패할 경우 model 추론에 완전히 실패합니다.
tuning을 사람이 하기 때문에 정확도에 차이가 발생할 수 있습니다.


그냥 outlier 제거하는 알고리즘이라고 간단히 알고 있었는데 이렇게 하는거였네요.

profile
student

0개의 댓글