MLOps-Error analysis & Performace auditing

Error analysis & Performace auditing


Error analysis Example

새로운 Model 을 개발할 때, 처음부터 Learning algorithm이 완벽하게 동작할거라는 기대는 하지않으며 실제로도 그렇지 않을것이다.

그렇기에 Machine Learning 개발 과정의 핵심은 Error anaylsis라고 해도 과언이 아니다.

Model의 Prediction 결과에 따른 Error analysis 방법 중 한가지는 잘못 labeled 된 결과에 대해서 tag를 달아주는 것이다. (해당내용)

Model을 deploy 하는것이 반복적 작업인것처럼 Error anaylsis도 반복해서 수행하면 어떤 부분을 얼마나 발전시켜야 할지 Insight를 얻을 수 있다.


Prioritizing what to work on

Error anaylsis를 하며 가장 개선이 필요한 tags를 고를때는 다음과 같은 아이디어를 참고할 수 있다.

  • 얼마나 많은 개선여부가 남아있는지
  • 얼마나 해당 카테고리가 등장하는지
  • 얼마나 해당 카테고리의 정확도 향상이 쉬운지
  • 얼마나 그 카테고리의 정확도 향상이 중요한지

error

Human level performance 와의 Gap을 본다면 Car Noise를 개선할 여지가 더많이 남아있고 성능 향상 가능성이 높다.

하지만 해당 Type의 data가 전체에서 차지하는 분량까지 고려해봤을 때, 4%의 개선은 결과적으로 0.16%의 개선이 되므로 People Noise를 2%개선하여 0.6%의 개선을 기대하는 것이 더 효과적이라고 생각할 수 있다.

특정 카테고리에 대한 성능을 개선하는 방법은 다음과 같이 생각할 수 있다.

  • 더 많은 데이터 모으기
  • Data augmentation 시도해보기.
  • Label accuracy / Data quality 올리기

Deep learning의 특성 상 더 많은 Data가 있을수록 더 높은 정확성을 기대할 수 있다. 하지만 Data collection은 매우 시간적 비용이 많이 드는 일이다.

따라서 이런 Error analysis를 반복적으로 수행함으로서 어떤 Data가 필요한지 정확히 알고, 그 type에 집중하여 Data를 모을 수 있을것이다.


Skewed datasets

Skewed dataset는 postivie와 negative의 구성이 50-50에 가깝지 않은 데이터를 말한다.

생산시스템에서 99.7%가 정상품이고 결함품의 비율을 0.3%인경우, 의료정보에서 99%의 환자는 특정 질병이 없고 1%만있을경우 등을 예로들 수 있다.

이런 경우에서 평소에 쓰던 accuracy는 의미있는 metric이 아닐 수 있다. 위와 같은 예에서 그냥 0을 프린트하는 함수도 높은 정확도를 얻을 수 있기 때문이다. 대신 우리는 Confusion Matrix를 활용할수있다.

confusion

True negative/positive는 실제label과 예측이 같은경우, False negative/positive는 실제와 예측이 반대인 경우다.

Confusion Matrix를 이용하면 Precision과 Recall이라는 수치를 구할 수 있다.

Precision = TP/(TP+FP) 의 값을 가진다. 위의 예에서는 68/77 = 0.883 -> 88.3%이다.

Recall = TP/(TP+FN) 의 값을 가진다. 위의 예에서는 79.1%이다.

Precision과 Recall의 수치를 활용할 경우 Skewed Dataset에서 print(0)이 높은 정확도를 얻는것을 방지할 수 있다.

print(0)인 경우에 Confusion Matrix를 작성할 경우 TN=914, FN=86, FP와TP는 0일것이다. 따라서 Precision과 Recall 모두 0이된다.

confcomp

그럼 Precision과 Recall값이 다른 두 모델은 어떻게 비교할 수 있을까?

두가지 수치를 모두 고려하는 F1 score 라는것을 이용해 비교할 수 있다. F1 score는 precision과 recall의 Harmonic mean을 이용한 수치이다.

f1

Harmonic mean을 사용한 F1 score는 두 수치 모두를 고려하여 평균을 내지만 둘 중 더 낮은 수치에 더 강한 영향을 받는다.

위의 두 모델에 대해서 F1 score를 계산해 보면 Model1은 83.4%가나오고 Model2는 매우 낮은 Recall 값을 가지고 있기 때문에 13.6%라는 결과가 나오게 된다.

F1 score를 사용하면, 중요한 요소를 많이 놓치고 있지만 그 비중이 적어 무시되고 있는 data type을 알아내어 올바른 방향으로 모델의 개선을 진행할 수 있을것이다.


Performance auditing

개발한 Model이 정확도, F1 score, 적절한 metric들에 대해서 잘 작동한다면 Production 전에 확인할 수 있는 한가지 요소가 있다.

diagram

모델을 튜닝하고, 학습시키고, 에러분석을 하는 반복적인 과정을 마친 뒤, Deploy 하기 전에 마지막 한번으로 Audit performance을 하는것은 많은 도움이 된다.

Audit Framework의 과정은 다음과 같다.

  1. System이 잘못된 가능성을 Brainstorming 해보기

    • Performance of subsets of data (ethnicity, gender)
    • How common are certain errors(FP, FN)
    • Performance on rare classes
  2. 위에서 생각한 Issue들에 대해 평가할 수 있는 적절한 Metric들을 설립하기(on slices of data)
  3. Get business/product owner buy-in.

    • Service의 구매자/사용자 를 기준으로 요구사항 등을 잘 고려해야한다.

이와 같은 Audit Performance 과정을 거치면, 추후에 발생할 수 있는 여러가지 문제들을 Deploy 전에 미리 발견함으로서 시간과 비용을 아낄 수 있을 것이다.



연관글

Establishing a baseline

Error analysis

Experiment tracking

Brundage, M., Avin, S., Wang, J., Belfield, H., Krueger, G., Hadfield, G., … Anderljung, M. (n.d.). Toward trustworthy AI development: Mechanisms for supporting verifiable claims∗. Retrieved May 7, 2021 http://arxiv.org/abs/2004.07213v2

Nakkiran, P., Kaplun, G., Bansal, Y., Yang, T., Barak, B., & Sutskever, I. (2019). Deep double descent: Where bigger models and more data hurt. Retrieved from http://arxiv.org/abs/1912.02292