MLOps 프로젝트/도서 '케라스 창시자에게 배우는 딥러닝'

1부 4.5 보편적인 머신 러닝 작업 흐름

youjin86 2021. 9. 1. 13:00

1부 딥러닝의 기초

4장 머신 러닝의 기본 요소


4.5 보편적인 머신 러닝 작업 흐름

 

문제 정의와 데이터셋 수집

입력 데이터와 출력 데이터 확인

 

성공 지표 선택

정확도일지 정밀도일지 재현율일지 등 성공의 지표를 잘 생각해 선택해야 함.

성공의 지표가 모델의 최적화할 손실 함수를 선택하는 기준이 됨.

 

클래스 분포가 균일한 분류 문제 : 정확도 / ROC / AUC가 일반적

클래스가 균일하지 않은 문제 : 정밀도 / 재현율이 일반적

랭킹 문제나 다중 레이블 문제 : 평균 정밀도 사용 가능

 

캐글에서 다양한 문제들과 측정 지표들을 볼 수 있음.

 

평가 방법 선택

  • 홀드아웃 검증 세트 분리
    데이터가 풍부할 때 사용
  • K-겹 교차 검증
    홀드아웃 검증을 사용하기에 샘플의 수가 너무 적을 때 사용
  • 반복 K-겹 교차 검증
    데이터가 적고 매우 정확한 모델 평가가 필요할 때 사용

 

데이터 준비

  • 텐서로 구성된 데이터
  • 텐서에 있는 값은 일반적으로 작은 값으로 스케일 조정 ([-1, 1] 또는 [0, 1]
  • 특성마다 범위가 다르면 정규화해야 함.
  • 특성 공학을 수행할 수 있음. (특히 데이터가 적을 때)

 

기본보다 나은 모델 훈련하기

통계적 검정력 달성하기

즉, 아주 단순한 모델보다 낭느 수준의 작은 모델을 개발하기

 

모델을 만들기 위한 3가지 선택

  • 마지막 층의 활성화 함수
  • 손실 함수
  • 최적화 설정

 

모델에 맞는 마지막 층의 활성화 함수와 손실 함수 선택

문제 유형 마지막 층의 활성화 함수 손실 함수
이진 분류 시그모이드 binary_crossentropy
단일 레이블 다중 분류 소프트맥스 categorical_crossentropy
다중 레이블 다중 분류 시그모이드 binary_crossentropy
임의 값에 대한 회귀 없음 mse
0과 1 사이 값에 대한 회귀 시그모이드 mse 또는 binary_crossentropy

 

몸집 키우기: 과대적합 모델 구축

1. 층 추가

2. 층 크기 키우기

3. 더 많은 에포크 동안 훈련

 

훈련, 검증 지표, 훈련 손실, 검증 손실을 모니터링 시, 검증 데이터에서 모델 성능이 감소하기 시작했을 때 과대적합에 도달한 것

 

모델 규제와 하이퍼파라미터 튜닝

반복적으로 모델을 수정하고 훈련하고 검증 데이터에서 평가 (이때 테스트 데이터를 사용하지 않음.)

그리고 다시 수정하고 가능한 좋은 모델을 얻을 때까지 반복

 

적용해 볼 것들

  • 드롭아웃 추가
  • 층을 추가하거나 제거해서 다른 구조를 시도
  • L1이나 L2 또는 두 가지 모두 추가
  • 최적의 설정을 찾기 위해 하이퍼파라미터를 바꾸어 시도 (층의 유닛 수나 옵티마이저의 학습률 등)
  • 선택적으로 특성 공학을 시도 (새로운 특성을 추가하거나 유용하지 않을 것 같은 특성을 제거)