[HML Study] Chapter 1

Smiling Sammy·2023년 1월 4일
0

핸즈온머신러닝2

목록 보기
1/6

오렐리앙 제롱, 『Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow』, 박해선, 한빛미디어-OREILLY(2020), p29-67.


Learned

  • 데이터 마이닝 (Data Mining):
    • 가끔 예상치 못한 연관 관계나 새로운 추세가 발견되기도 해서 해당 문제를 더 잘 이해하도록 도와줌
    • 머신러닝 기술을 적용해서 대용량의 데이터를 분석하면 겉으로는 보이지 않던 패턴을 발견할 수 있음
  • 차원 축소 (Dimensionality reduction)
    • 너무 많은 정보를 잃지 않으면서 데이터를 간소화하는 방법
    • ex. 특성 추출 (Feature extraction) : 상관관계가 있는 여러 특성을 하나로 합치는 것
      • 차의 주행거리, 연식 -> 차의 마모 정도
  • 온라인 학습 (Online Learning)
    • 데이터를 순차적으로 한 개씩 or 미니배치와 같은 작은 묶음 단위로 주입하여 시스템을 훈련시킴
    • 매 학습 단계가 빠르고 비용이 적게 들어 시스템은 데이터가 도착하는 대로 즉시 학습할 수 있음
    • 연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야하는 시스템에 적합함
    • 문제점: 시스템에 나쁜 데이터가 주입되었을 때, 시스템 성능이 점진적으로 감소함
      • 시스템을 면밀히 모니터링
      • 성능 감소가 감지되면 즉각 학습을 중지 (가능하면 이전 운영 상태로 되돌리기)
      • 입력 데이터를 모니터링해서 비정상 데이터를 캐치 (w. 이상치 탐지 알고리즘)
  • 데이터 불일치
    • 훈련에 사용되는 데이터가 실제 제품에 사용될 데이터를 완벽하게 대표하지 못할 수 있음
    • 검증 세트로 모델을 평가할 때 성능이 낮으면 2가지를 의심
      1. 훈련 세트에 과대 적합
      2. 훈련 세트와 데이터가 불일치 -> 훈련 개발 세트로 해결
      • 훈련 개발 세트: 훈련 세트에서 일부를 떼어내서 다른 세트를 만드는 것
      • 모델을 훈련 세트로 학습한 후 훈련 개발 세트에서 평가
        • 검증 세트에서 나쁜 성능: 데이터 불일치 문제 (데이터 분포 차이) -> 전처리 후, 모델을 다시 훈련
        • 훈련 개발세트에서 나쁜 성능: 훈련 세트에 과대 적합 -> 모델을 규제 or 더 많은 훈련 데이터를 수집 or 훈련 데이터 정제 시도
  • 공짜 점심 없음 이론 (No Free Lunch; NFL):
    • 데이터에 관해 완벽하게 어떤 가정도 하지 않으면, 한 모델을 다른 모델보다 선호할 근거가 없음
    • 어떤 모델이 최선인지 확실히 알기 위해서는 모든 모델을 평가해야됨 -> 현실적으로 불가능 -> 데이터에 관해 타당한 가정을 하고 적절한 모델 몇 가지만 평가

Question

Q1) 온라인 학습은 어떻게 이루어지고 있는가?

  • 새로운 예를 보는 순간 최대한 빨리 학습
  • 온라인 학습에서는 속도가 다른 모든 것보다 우선하기 때문에 일반적으로 신경망과 같은 복잡한 알고리즘보다 간단한 학습 알고리즘을 사용
  • 실시간 학습은 어려움
    • 학습 속도를 너무 높게 설정하면 모델이 1초 이상 전에 발생한 모든 내용을 잊어버릴 수 있음 -> 과적합 or 과소적합 발생 가능
    • 시스템을 DDoS하여 그 과정에서 학습을 망칠 수 있음
    • 기술 아키텍처 측면에서 완전히 다른 접근 방식이 필요
      • API 뒤에서 학습된 매개변수 세트를 도출하면서 가능한 한 빨리 새 데이터를 받는 단일 모델 인스턴스를 가져야함
    • 새로운 데이터에 빠르게 액세스해야함
      • 일반적으로 Redis와 같은 메모리 내 저장소를 사용
      • Spark로는 충분하지 않음

Q2) 실제 기업에서는 어떻게 모델을 학습하고 배포하는걸까?

  • 모델 경량화 적용
    • 모델 경량화는 학습 과정에서 이루어짐
      • GPU resource, 메모리 등의 측면에서 이점
    • 모델 경량화 방법
      • 가지치기 (Pruning): 중요도가 떨어지는 node를 제거하고 재학습하는 과정을 반복
      • 지식 증류 (Knowledge Distillation): 학습이 잘 된 큰 딥러닝 모델(Teacher model)의 지식을 학습되지 않은 작은 크기의 모델(Student model)에게 전달
      • 양자화 (Quantization): 모델의 해상도를 낮춰 작게 만드는 방법
      • 파라미터의 Precision을 적절히 줄여서 연산 효율성을 높임
  • 온라인 모델: 예측을 위한 웹 서비스를 만드는 것
    • ex. Flask 웹 프레임워크로 랜덤포레스트 분류기 래핑
  • 오프라인 모델: 작업 인스턴스를 처리하고 더 복잡한 모델을 실행하도록 최적화할 수 있음
    • 서버 확장이나 관리에 대해 걱정할 필요가 없음
    • Airflow or Prefect를 사용하여 작업을 자동화
  • 기계 학습 모델을 내장형 모델로 에지 장치에 배포
    • 장치가 멀리 있는 서버보다 사용자에게 더 가깝기 때문에 대기 시간이 줄어듦
    • 원시 데이터 대신 처리된 결과를 클라우드로 다시 보내므로 데이터 대역폭 소비를 줄임
    • 모델이 크거나 추론을 실행하기 위해 광범위한 계산이 필요한 경우 기계 학습 모델을 이러한 장치에 직접 배포할 수 없음
    • 대신 정확도를 유지하면서 양자화 및 집계와 같은 기술을 사용하여 모델을 단순화해야함

Reference

profile
Data Scientist, Data Analyst

0개의 댓글