[AI Competition Tutorial] Ensemble & Hyperparameter Optimization

임수정·2022년 2월 23일

AI Competition

목록 보기
8/10

Ensemble

Overview

  • 여러 실험을 하다 보면 여러가지 모델로 여러 결과를 만들었을 것
  • 이 모델을 합쳐서 더 좋은 결과를 내고자 하는 것이 ensemble

Ensemble

  • 여러 다른 결과를 내는 모델을 합쳐서 사용하는 방법
  • 사실 모델을 합치면 무거울 수 있기 때문에 현업에서는 잘 안 쓰기도..
  • 하지만 성능이 좋아야 하는 분야이거나 대회에서는 많이 사용

Ensemble(앙상블)의 의미

싱글 모델보다 더 나은 성능을 위해 서로 다른 여러 학습 모델을 사용하는 것

Ensemble of Deep NN

  • Low Bias, High Variance -> Overfitting
  • Bagging, Bootstrapping 등의 방식이 존재
    • 참고로, Variance가 높은 상황에서 bagging을 많이 쓰는 알고리즘은 randomforest가 있다.

Model Averaging(Voting)

The reason that model averaging works is that different models will usually not make all the same errors on the test set.

  • 구분이 애매한 클래스들이 존재할 때 앙상블을 사용해 해결할 수 있음
    • hard voting: 제일 높게 나온 것만 고려
    • soft voting: 모델이 가지고 있던 여러 다른 클래스 점수까지 모두 고려

Cross Validation

  • 훈련 셋과 검증 셋을 분리는 하되, 검증 셋을 학습에 활용할 수는 없을까?
  • Cross Validation : validation set을 바꿔가면서 학습해서 ensemble

Stratified K-Fold Cross Validation

  • 가능한 경우를 모두 고려 + Split 시에 Class 분포까지 고려

TTA(Test Time Augmentation)

  • 테스트를 할 때 augmentation을 진행하는 방식
  • 훈련할 때 다양한 상태에 대해 augmentation을 하게 되는데, test에서도 여러 augmentation을 부여해서 모델이 잘 동작하는지 확인
  • 테스트 이미지를 augmentation 후 모델 추론, 출력된 여러가지 결과를 앙상블 => 좀 더 일반화

성능과 효율의 trade-off

  • 앙상블 효과는 확실히 있지만 그만큼 학습, 추론 시간이 배로 소모되기 때문에 성능과 효율을 고민

Hyperparameter Optimization

Hyperparameter?

  • 시스템의 매커니즘의 영향을 주는 주요한 파라미터

Hyperparameter Optimization

  • 학습에 있어 직접 조정해야 하는 파라미터인 하이퍼 파라미터를 최적화하는 과정
  • 파라미터를 변경할 때마다 학습을 해야 함...
    • 시간과 장비가 충분하다면 해볼 수 있지만 시간대비 효율이 좋지 않음..
  • 시간때문에 딥러닝할 때 잘 하지는 않는 기법. 최후의 수단
  • Hyperparameter Optimization 방법론
    • grid search
    • random search
    • basian optimization(가장 잘 동작)

Optuna

  • 하이퍼 파라미터 튜닝에 도움을 주는 라이브러리
  • 파라미터 범위를 주고 그 범위 안에서 trials 만큼 시행


Special Mission

  1. Test Time Augmentation을 3회 정도 하는 것으로 구현해서 결과를 확인해봅시다.

  2. Tensorboard, wandb를 이용해서 학습 과정을 모니터링할 수 있도록 구성해보세요.

Further Reading

profile
유쾌하게, 열정적으로, 진심을 다해

0개의 댓글