5 분 소요

Concept Drift는 시간이 지남에 따라 데이터의 통계적인 특성이 변하는 것을 말합니다. 이에 학습된 모델은 자연스레 성능이 떨어지기 때문에 drift를 잘 감지해야 합니다. 감지하는 방법들이 무엇이 있는지 살펴봅니다.
이미지출처 1





Concept Drift 정의

  • Concept Drift는 데이터 스트림의 통계적인 분포가 시간이 지남에 따라 바뀌는 현상을 말한다.
    • 스트림(stream) : 시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소
  • 기존의 데이터로 학습한 모델은 concept drift가 일어난 데이터에 대해 잘 대응하지 못하고, 모델의 정확도 하락을 야기해 잘못된 예측이나 의사결정을 할 수 있다.



Types of Concept Drift


이미지출처 2

  • change concept drift type : 시간 경과에 따른 데이터의 구성 패턴 변화를 의미한다.
  • 파란색을 s1, 빨간색을 s2라 할 때,
  • sudden drift : s1이 갑자기 s2로 바뀐 현상
  • gradual drift : 시간이 지날수록  s1로부터의 샘플링 확률은 감소하고  s2로부터의 샘플링 확률은 높아지는 현상
  • incremental drift : 데이터의 변화가 매우 적기 때문에, 긴 시간 동안 바라만 봐야 인지할 수 있는 현상
  • reoccurring context : s1이 s2에 의해 안 보이다가 시간이 지나 다시 나타나지는 현상



Concept Drift Detection

  • 본 글에서는 concept drift에 대해 자세히 다루지는 않는다. 대신에 concept drift detection에 대해 구체적으로 접근해 볼 것이다.
  • concept drift detection : 데이터 스트림에서 분포의 변화 시점을 감지(detect)하는 알고리즘을 말한다.
    • 대체로 알고리즘들은 시간 경과에 따른 데이터 스트림의 통계치(statistics)를 만들어 변경 시점(change point)를 정의하거나, 구간을 지정한다. 3
  • concept drift detection은 두 가지 접근법으로 나뉜다. (그러나 두 접근 방법 모두 error-based 이다.)
    1. statistics-based approaches : 평균과 표준편차같은 파라미터를 이용해 데이터 스트림의 예측 에러(prediction error)로 drift 여부를 판단한다.
    2. window-based approaches : 스트림의 두 개의 window의 예측 에러를 활용한다.



Statistics-based approaches


1. (DDM) Drift detection method 3

  • 우리 모델의 오류가 관리 상태에 있는지 확인하는 것이다.


  • 입력 데이터의 예측(prediction)에 대한 에러율(error rate)을 monitor한다.
    • 에러율(error rate; $p_n$) : 1 - 정확도(accuracy)
    • 각 예측마다 $p_n$은 처음부터 계산되며, 표준 편차 $s_n$은 $\sqrt{p_n(1-p_n)/n}$으로 계산된다.
  • $p_n+s_n$ 의 최소 : $p_{min}+s_{min}$
  • concept drift의 경고(warning) 수준 : $p_n+s_n>p_{min}+2*s_{min}$ :
  • concept drift가 detect 되었다고 판단, 알람(alarm) 수준 : $p_n+s_n>p_{min}+3*s_{min}$
  • DDM은 데이터 스트림이 베르누이 분포(Bernoulli distribution)로부터 생성된다고 가정한다.


  • Pros 4
    • DDM은 gradual drift(그러나 느리지 않는), incremental drift, sudden drift 일 때는 좋은 성능을 보여준다.
  • Cons 4
    • graudal drift가 천천히 바뀔 때는 감지를 잘 하지 못한다.
    • 많은 샘플들이 긴 시간 동안 저장되어 저장 공간이 부족할 수 있다.



2. (EDDM) Early Drift Detection method


이미지 출처 4

  • 2개의 연이은(consecutive) 에러의 거리를 측정하는 방법이다.
    • 정확히는 2개 사이의 평균 거리 분포
  • EDDM은 $p_t+s_t>p_{max}+s_{max}$ 일 때 $p_{max}$와 $s_{max}$를 업데이트한다.
  • concept drift의 경고(warning) 수준 : $\frac{p_t+2s_t}{p_{max}+s_{max}} < 0.95$
    • 0.95를 보통 $\alpha$라 한다.
  • concept drift가 detect 되었다고 판단, 알람(alarm) 수준 : $\frac{p_t+2s_t}{p_{max}+s_{max}} < 0.90$
    • 0.90을 보통 $\beta$라 한다.


  • Pros
    • EDDM은 gradual drift를 잘 확인할 수 있는 DDM의 수정 버전이다.
  • Cons
    • $\beta$에 대해 고정 임계값을 사용한다. 임의로 잡았기 때문에 다른 유형의 drift를 효율적으로 검출할 수 없다.



Window-based approaches

image
이미지출처 5


1. (ADWIN) Adaptive WINdowing

  • ADWIN은 time window $w$가 있는데, 만약 내용의 변화가 보이지 않는다면 동적으로 window $w$ 크기를 증가하고, 만약 변화가 감지(detect)되면 윈도우 $w$ 크기를 축소한다.
    • 윈도우(window) : 시계열 데이터가 있을 때 창같은 고정된 크기를 생성해 다음 시간 데이터를 예측
    • 슬라이딩 윈도우(sliding window) : 고정 사이즈의 윈도우가 이동하면서 윈도우 내에 있는 데이터를 읽는 방법


      이미지출처 6


  • 이 알고리즘은 뚜렷한(distinct) 평균을 나타내는 $w$의 2개의 하위 윈도우(sub window)를 찾으려고 한다.
  • $w$의 하위 윈도우를 $w_0$, $w_1$이라 하고, 각각 크기를 $n_0$, $n_1$, 즉 $w$의 크기 $n$은 $n=n_0+n_1$이다. 7
    • $w_0$ : older instances
    • $w_1$ : recent instances
  • $\hat \mu_{w_0}$와 $\hat \mu_{w_1}$을 각각 $w_0$, $w_1$의 평균 값이라 한다.
  • $\epsilon_{cut}$을 다음과 같이 정의할 수 있다.
    • $\epsilon_{cut}=\sqrt{\frac{1}{2m}\cdot ln{\frac{4n}{\delta}}}$
      • $m=\frac{2}{1/n_o+1/n_1}$
      • $\delta$ : 사용자 정의 신뢰도 수준 (보통 0.2로 설정)
  • 변화가 감지될 때 : $\vert\hat \mu_{w_0} - \hat \mu_{w_1}\vert\ge \epsilon_{cut}$
  • 따라서, $\vert\hat \mu_{w_0} - \hat \mu_{w_1}\vert < \epsilon_{cut}$ 될때까지 $w$의 오래된 부분을 버린다.
  • 만약 찾았고, 해당 기대값이 다르다면, 윈도우의 오래된 부분은 데이터가 실제보다 분포가 다르다는 의미이므로 삭제한다. 8



  • Pros 7
    • FP(false positive)와 FN(false negative) 비율의 bound 형태로 성능에 대한 엄격한 보증을 제공한다.
    • ADWIN은 abrupt drift일 때 좋은 성능을 낸다.
  • Cons 7
    • $\hat \mu_{w_0} \ge \hat \mu_{w_1}$ 일 때, 에러의 평균은 최근 윈도우에서 감소했는데, 이는 learner가 성능을 향상시켰다는 의미이다. 이 경우, ADWIN은 이런 변화를 drift로 잘못 고려할 수 있다.
    • 데이터 스트림 분포가 안정적일 때 큰 위도우 크기를 저장해야 한다.
    • 오직 평균만 사용하여 변화를 특성화(characterize)한다.
    • 상당한 메모리 사용량이 요구된다.



2. (SeqDrift) Sequential Hypothesis Testing Drift Detector 9

  • 두개의 sliding window는 샘플의 평균을 계산하는데 사용된다.
  • 두 개의 샘플 평균의 차이는 번스타인 부등식(Bernstein inequality) statistical test에 의해 평가된다.
    • Bernstein inequality : $P(\vert \bar X_i-\mu \vert > \epsilon)$ $\le 2e^{(\frac{-n\epsilon^2}{2\hat \alpha^2+\frac{2}{3}\epsilon (b-a)})}$
  • 이 부등식은 실제 평균값(true mean)과 샘플 평균값 사이의 차이에 대한 엄격한 경계(bound)를 제공한다.
  • 만약 이 차이가 임계값(threshold)보다 크면, 오래된 부분(older instance)은 버려진다.
  • 그렇지 않으면 오래된 윈도우는 새로운 인스턴스를 받아들인다.
    • left 저장소에 저장한다.
    • 새로 들어오는 데이터를 right 저장소에 저장한다.


  • Pros
    • cut을 위한 이전 블록 경계를 재검사하지 않고, 새로 도착한 블록과 이전에 도착한 블록의 모음 사이의 경계만 검사한다.
      • 그래서 OnePassSampler는 컷을 검색할 때 메모리 버퍼를 한 번에 통과하기 때문에 붙여진 이름이다.
    • 평균들을 평가하는 데 효율적인 배열 구조에 기반한 랜덤 샘플링을 이용하기 때문에 계산 자원을 줄일 수 있다.
  • Cons
    • 샘플의 분산을 사용하고 샘플 데이터는 정규 분포를 따른다고 가정하는데, 이는 현실 세계에서 너무 제한적일 수 있다. 10
    • 번스타인 부등식은 분산 파라미터값이 필요하다는 점에서 보수적(conservative)이라 할 수 있다. 이는 detection delay가 길어지고 정확도가 떨어질 수 있다.
    • ADWIN과 마찬가지로 SeqDrift 또한 메모리가 많이 필요하다.



3. (HDDMs) Drift Detection methods based on Hoeffding’s Bound

  • $HDDMs$은 $HDDM_{A-test}$와 $HDDM_{W-test}$가 있다.
    • $HDDM_{A-test}$ : 이동 평균(moving average)를 이용하여 drift를 detect
    • $HDDM_{W-test}$ : 가중 이동 평균(weighted moving average)를 이용하여 drift를 detect
  • 모두 Hoeffding 부등식을 이용하여 상한선을 잡아 평균 사이의 차이의 수준을 정한다.
    • Hoeffding 부등식 : 변수들의 관찰 평균값($\nu$)이 기대치($\mu$)에서 벗어날 확률을 계산 11
      • $P[\vert \nu - \mu \vert > \epsilon] \le 2e^{-2\epsilon^2N}$
    • 이 부등식은 샘플 데이터가 임의로 선택되었을 때만 적용된다.


  • Pros
    • DDM과는 달리 HDDM은 데이터 스트림에 대한 어떤 가정도 하지 않는다.
  • Cons
    • $HDDM_{A-test}$은 abrupt drift를 detect할 때 유용
    • $HDDM_{M-test}$은 gradual drift를 detect할 때 유용
    • 즉, 이것은 각각 다르게 사용해야 된다는 점에서 단점이 될 수 있다.



4. (FHDDM) Fast Hoeffding Drift Detection Method 12

  • 슬라이딩 윈도우(sliding window) 메커니즘과 Hoeffding 부등식에 기반한다.
  • 윈도우 크기 n을 분류 결과에 슬라이드한다.
    • 만약 예측이 맞았다면 숫자 1을 삽입하고, 틀렸다면 숫자 0을 삽입한다.
  • 입력 데이터가 들어옴에 따라, 시간 $t$에서 슬라이딩 윈도우에서 $p_t^1$을 관찰할 확률을 계산하고, 1초동안 발생하는 최대 확률 $p_{max}^1$를 유지한다.
  • $p_t^1$이 $p_{max}^1$보다 크다면 그 값을 $p_{max}^1$으로 업데이트한다.
    • $if p_{max}^1< p_t^1\Rightarrow $ $p_t^1\rightarrow p_{max}^1$
  • $\nabla p = p_{max}^1 - p_t^1 \ge \epsilon_d \Rightarrow Dirft := True$
    • $\epsilon_d=\sqrt{\frac{1}{2n}ln{\frac{1}{\delta}}}$


image
이미지 출처 12

  • 위 그림을 예시로 설명해본다.
  • $n$=10, $\delta$=0.2라 하면, 위 정의대로 $\epsilon_d$=0.28이 된다.
  • 위 예제에서 real drift가 12번째 인스턴스 직후 발생했다.
  • 윈도우에 $p_{max}^1$가 0으로 삽입된다.
    • 따라서, $p_{10}^1$는 0.7이 된다.
  • 11번째부터 예측 정확도가 점점 떨어지는 걸 볼 수 있다.
  • 18번째부터 $p_{max}^1$와 $p_t^1$의 차이가 $\epsilon_d$ 보다 커진 것을 알 수 있으므로(0.3>0.28) FHDDM 알고리즘은 drift을 위한 alarm 수준에 이른다.


  • Pros
    • 지연(delay)를 다른 윈도우 기반 알고리즘 대비 대폭 증가시켰다.
    • SOTA 정확도를 달성했다.
  • Cons
    • 아직 메모리 사용량이 많은 편에 속한다.
    • 슬라이딩 윈도우의 사이즈 크기가 고정되어 있어 상황에 유동적이지 못할 수 있다.





References

  1. Machine Learning Concept Drift – What is it and Five Steps to Deal With it 

  2. Lu, Jie, et al. “Learning under concept drift: A review.” IEEE Transactions on Knowledge and Data Engineering 31.12 (2018): 2346-2363 

  3. Nguyen, Viet An. “Performance evaluation of online learning system based on concept drift adaptation scheme for AMI data processing”  2

  4. 8 Concept Drift Detection Methods - Danny Geyshis  2 3

  5. 논문(thesis of pohang university) : Concept drift detection using SGT and trace clustering in process mining 

  6. [시계열] Time Series에 대한 머신러닝(ML) 접근 - 다이엔 스페이스 

  7. Khamassi, Imen, et al. “Self-adaptive windowing approach for handling complex concept drift.” Cognitive Computation 7.6 (2015): 772-790.  2 3

  8. Gonçalves Jr, Paulo M., et al. “A comparative study on concept drift detectors.” Expert Systems with Applications 41.18 (2014): 8144-8156. 

  9. Sakthithasan, Sripirakas, Russel Pears, and Yun Sing Koh. “One pass concept change detection for data streams.” Pacific-Asia conference on knowledge discovery and data mining. Springer, Berlin, Heidelberg, 2013. 

  10. Pesaranghader, Ali, Herna Viktor, and Eric Paquet. “Reservoir of diverse adaptive learners and stacking fast hoeffding drift detection methods for evolving data streams.” Machine Learning 107.11 (2018): 1711-1743. 

  11. Learning From Data: 통계 학습 이론 정리 

  12. Pesaranghader, Ali, and Herna L. Viktor. “Fast hoeffding drift detection method for evolving data streams.” Joint European conference on machine learning and knowledge discovery in databases. Springer, Cham, 2016.  2

댓글남기기