오늘은 다양한 공학 분야에서 쓰이는 재귀 필터인 '칼만 필터(Kalman Filter)'에 대해 소개하겠습니다!
칼만필터는 루돌프 칼만이라는 전기 엔지니어가 개발한 재귀 필터입니다. 칼만 필터에 대해 찾으시다 보면 자주 보이는 단어가 등장하는데 바로 '재귀'라는 말입니다. 말 그대로 재귀란 '자기 자신을 참조하는 것'을 뜻하는데 칼만 필터가 작동하는 방식이 '자신의 정보를 계속 사용한다는 것'입니다.
칼만 필터 작동방식
- 칼만 필터는 과거의 정보와 새로운 측정 값을 사용하여, 측정값에 포함된 잡음(noise)을 제거합니다.
- 칼만 필터는 선형적 움직임을 갖는 대상에 재귀적으로 작동 시킵니다.
- 잡음은 시간에 영향이 없는 백색 잡음이고 정규분포(Gaussian)를 따라야하는데 이는 평균과 공분산으로 정확히 모델링이 가능합니다.
- 만일 시스템이 비선형이고 잡음도 정규분포가 아닌 경우, 칼만 필터의 변형인 확장 칼만필터(EKF)를 사용할 수 있습니다.
칼만 필터 특징
- 칼만 필터는 1차 저주파 통과 필터와 유사합니다. 두 필터 모두 가중치를 부여한 후 더해서 추정값을 계산하는 형식입니다.
- 칼만 필터의 가중치인 칼만 이득(K)는 매번 새로 계산 됩니다
- 칼만 이득이 작아지면 측정값이 덜 반영되고, 칼만 이득이 커지면 측정값이 더 많이 반영됩니다
- 오차 공분산은 추정값의 오차를 나타내는 척도입니다
- Pk(오차 공분산)가 크면 추정 오차도 크고, 작으면 추정 오차도 작습니다.
- 칼만 필터의 성능은 시스템 모델에 크게 의존합니다.
칼만 필터 가중치 산정
- 각 데이터의 중요도는 표준편차 제곱의 반비례로 작동합니다.
- 표준편차가 클수록 그 값의 중요도는 떨어지고, 평균에 대한 기여도도 떨어져야 할 것 입니다
이와 같이 연속적인 이전의 출력값과 새로운 입력값의 중요도를 감안하여 과거와 현재 2개 데이터로 평균을 구할 수 있고, 새로운 최적값을 계산하는 측정 갱신 알고리즘 형태가 바로 '칼만 필터(Kalman Filter)'입니다 ✨
칼만 필터 알고리즘
알파벳 위에 '-'가 있으면 '추정값'의 의미, k는 현재 step, k-1은 직전 과거 step을 의미합니다.
계산 시 A는 상태 전이 행렬로 시스템 변수 중 하나로서 시스템이 어떻게 움직이는지를 나타냅니다.
Q, H, R은 시스템 모델과 관련된 변수로서 정해진 값입니다
1. 초기값 선정
- 이전 스텝에서의 결과값이 그 다음 스텝에서의 초기값이 됩니다.
2. 추정값과 오차 공분산 예측
3. 칼만 이득 계산
4. 측정값 계산
5. 오차 공분산 계산
6. 다시 추정값과 오차 공분산 예측 (2번으로 돌아감)
칼만 필터는 공학에서 물체의 상태를 측정할 때 사용하는 알고리즘으로, 재귀적 특성으로 인해 외부의 정보가 아닌 본인의 과거 정보로 물체의 상태를 예측합니다. 이러한 알고리즘은 시계열 개념과도 유사하게 쓸 수 있어 공학 분야에서 한정 될 알고리즘이 아닌 더 다양한 분야에서 활용될 여지가 높은 알고리즘이라고 생각합니다! 이상 칼만 필터에 대한 간단한 소개를 마치겠습니다 😉
'Data Science' 카테고리의 다른 글
코드업 기초100제 Python (0) | 2022.07.08 |
---|---|
[R] 비용 효율성 분석(Cost-effectiveness analysis)이란? (0) | 2022.06.20 |
파이썬을 이용한 정렬 알고리즘(버블, 선택, 삽입, 퀵) (0) | 2022.06.10 |
파이썬을 이용한 검색 알고리즘2(해시) (0) | 2022.06.09 |
파이썬을 이용한 검색 알고리즘(선형, 이진) (0) | 2022.06.08 |
댓글