Model Drift ?
왜 모델 성능이 하락하는가 ?
1) Data Drift
: 시간이 지남에 따라 model에 input으로 들어오는 데이터의 분포가 달라짐으로써 발생하는 성능하락
data drift란, 모델을 훈련할때의 input 데이터의 통계적 분포와 테스트 또는 프로덕트 환경에서의 input data의 통계적 분포에 차이가 발생하여 성능이 하락하는 현상을 의미한다.
이 현상은 data drift외에도 Feature drift 또는 Covariate shift라고도 불린다.
예를들어, 온라인 쇼핑 패턴을 예측하는 모델을 개발했다고 가정하자.
코로나 이전에는 온라인 쇼핑을 통해 주로 가격대는 중저가에 해당하는 물건이 많이 팔렸고, 판매물품은 주로 의류나 선물용도의 제품들이 많이 팔렸다. 하지만, 코로나19가 유행하며, 외부활동이 힘들어 식료품을 온라인을 이용해서 구매하는 고객들이 많아졌고, 외부 소비활동을 못하는 점에 대한 보상심리로 인해 대형TV와 같이 고가의 가전제품을 구매하는 고객들이 크게 늘었다. 이럴 경우, 이전의 데이터를 통해 학습된 모델은 이러한 변수에 대해 제대로 학습되지 못했기 때문에, 제대로 된 예측결과를 내놓을 수 없게 된다.
이때문에 시간이 지날수록 여러가지 새로운 변수를 학습하지못한 모델은 점차 성능이 하락할 수 있다.
2) Label Drift
: 시간이 지남에 따라, Target data의 분포가 달라짐으로써 발생하는 성능하락
label drift란 모델을 훈련할때의 target data의 분포가 달라짐으로써 발생하는 성능하락을 의미한다.
예를들어, 당뇨병의 발병확률을 예측하는 모델이 있다고 가정하자.
보통 당뇨는 40대 이후에 발병하는 확률이 매우 높았지만, 최근 사람들이 섭취하는 음식 중 당분이 많이 첨가된 음식들이 너무나 많다.
그리고 어릴때부터 이런 음식에 많이 노출된 어린아이들이나 청년층들의 당뇨병 발병 연령은 분명히 예전보다 빨라졌을것이다.
만약 의료 데이터를 학습한 모델이, 과거의 중장년층 이상에서 당뇨가 많이 발생하는 label 분포를 가진 data로 학습되었을 경우 최근의 이런 target 분포 변화를 반영하지 못했을것이므로, 당연히 최근 데이터를 통한 당뇨예측에서는 성능이 하락할것으로 예상할 수 있다.
3) Concept Drift
: 시간이 지남에 따라 input과 target간의 관계가 변하는 현상으로 발생하는 성능하락
예를들어, 최근 많이 발생하는 '금융 사기 패턴'을 학습한 모델이 있다고 가정하자.
금융 사기는 사기범들의 수법이 정교해지고 다양해짐에 따라, input data와 target data의 관계가 계속해서 변화할 수 있다.
만약, 금융사기를 탐지하는데 key feature로 활용되던 'A' feature가 있었는데, 사기범들이 이를 우회하기 위해 다른 방법으로 이상거래를 시도할 경우 'A' Feature와 target과의 관계는 더 이상 의미를 가지지 못하게 된다.
또, 사람들에게 적합한 의류를 추천해주는 모델이 있을때, 예전에는 성별은 의상선택에 매우 큰 영향을 끼치는 요소였지만, 현재는 unisex 가 트렌드로 성별을 초월하여 의상을 선택하곤 한다. 이럴 경우 성별이라는 feature가 의상선택에 끼치는 영향이 약화되기때문에 학습된 모델의 성능도 하락할 수 있다.
4) 기타
이 외에도, 만약 모델에 투입되는 전처리 과정에서, 다양한 input데이터의 형태를 고려하지 못한, 또는 또다른 예외 형태의 데이터가 input될 경우, 그리고 이런 모델의 input case 빈도가 높아질 경우에도 모델의 성능이 하락할 수 있다.
오늘 정리를 통해서 모델의 성능이 하락하는 원인과 사례에 대해서 고민해볼 수 있었다.
다음에는 모델의 성능을 탐지하고 원인을 분석할 수 있는 방법에 대해 정리해보도록 하겠다.
출처: https://abluesnake.tistory.com/163
출처: https://engineer-mole.tistory.com/278 [매일 꾸준히, 더 깊이:티스토리]
'DEVELOP_NOTE > MLOps' 카테고리의 다른 글
Drift를 감지하는 방법 (2) Concept Drift Detection (+ADWIN, Page-Hinkley Test, CUSUM, DDM) (0) | 2023.12.19 |
---|---|
Drift를 감지하는 방법 (1) Data Drift Detection (0) | 2023.12.17 |
MLOps란? (0) | 2023.12.14 |