본문 바로가기

개발 일기

데이터분석에서 선형대수,미적분,통계가 왜 필요한가?

 

통계는 기본적인 개념을 이해해야 데이터 수집, 탐색적 데이터 분석(EDA), 모델 평가 등에 사용할 수 있다고 생각했지만, 선형대수와 미적분 개념까지 알아야 하나 싶었어요.ㅋㅋㅋ

 

저는 결과 위주로 접근해서, 선형대수와 미적분을 몰라도 파이토치나 텐서플로우 프레임워크로 어떤 상황에서 사용하는지 알고 코드로 구현하면 된다고 생각했어요. 코드가 알아서 계산해주는데, 어땔때 쓰면 되는것을 정확히 아는것이 중요한게 아닌가? 딥러닝에서 모델의 최적화? 중요하지만 코드로 어떨때 보통 쓰인다를 외우면 코드가 알아서 계산해 주지 않는가?미적분은 성능이 좋아지는지 왜 좋아지는지에 대해서 주안점 두면 될듯해요 선형대수 는 차원축소할 때 쓰이는것..등등

 

그러나 딥러닝이나 복잡한 모델을 깊이 이해하고 논문을 읽으려면 알야 할 듯요 . 논문을 찾아보면 수식이 많이 나오는데, 이를 읽고 이해하려면 선형대수와 미적분이 필요하다는 것을 알게 되었습니다. 기초수학지식은 데이터 과학에 중요하다고 하는 얘기를 혼자서 궁굼해하며 찾아보고 공부하면서 알 수 있었습니다.

 

모델 배포와 모니터링 과정 (MLOps 도입)- 백엔드 역량 kubeflow

  1. 모델 배포:
  • 학습된 머신러닝 모델을 실제 환경(프로덕션)에 배포합니다.
  • 사용자가 이 모델을 통해 예측이나 분류 등의 서비스를 받게 됩니다.
  1. 모니터링:
  • 성능 지표 추적: 모델이 얼마나 정확하게 예측하는지, 얼마나 빠르게 동작하는지 등의 성능 지표를 지속적으로 추적합니다.
  • 통계적 분석: 다양한 성능 지표(예: 정확도, 정밀도, 재현율, F1 점수 등)를 통계적으로 분석하여 모델의 성능을 평가합니다.
  • 알림 시스템: 모델 성능이 특정 기준 이하로 떨어지면 자동으로 알림을 보내거나 조치를 취합니다
  1. 재학습:
  • 데이터 변화 감지: 모델이 학습한 데이터와 실제 환경의 데이터가 다를 경우 성능이 떨어질 수 있습니다. 이를 데이터 드리프트(Data Drift)라고 합니다.
  • 재학습 필요성 판단: 통계적 지표를 통해 모델의 성능이 떨어졌다고 판단되면, 새로운 데이터로 모델을 재학습시킵니다.
  • 모델 업데이트: 재학습된 모델을 다시 배포하여 최신 데이터를 반영하고 성능을 유지합니다.
  •  

통계학의 역할

  1. 평균, 분산, 표준편차 등 기본 통계 지표를 사용하여 모델의 예측값과 실제값의 차이를 분석합니다.
  2. 모델 성능 지표(정확도, 정밀도, 재현율, F1 점수 등)를 계산하고, 이를 바탕으로 모델이 잘 동작하는지 평가합니다.
  3. A/B 테스트와 같은 방법을 통해 새로운 모델과 기존 모델의 성능을 비교하여, 더 나은 모델을 선택합니다.
  4. 데이터 드리프트 탐지를 위해 통계적 방법을 사용하여, 모델이 배포된 이후에 입력 데이터 분포가 변했는지 감지합니다.

예시

  1. 정확도(Accuracy): 모델이 전체 데이터 중 얼마나 많은 데이터를 올바르게 예측했는지 비율을 계산합니다.
  2. 정밀도(Precision): 모델이 양성으로 예측한 것 중 실제로 양성인 비율을 계산합니다.
  3. 재현율(Recall): 실제 양성 중 모델이 양성으로 예측한 비율을 계산합니다.
  4. F1 점수: 정밀도와 재현율의 조화 평균을 계산하여, 두 지표 간의 균형을 평가합니다.

이러한 통계적 분석을 통해, 모델의 성능을 지속적으로 모니터링하고 필요할 때 재학습함으로써 모델이 항상 최상의 성능을 발휘하도록 유지할 수 있습니다.