2022년 1월 24일(월)부터 28일(금)까지 네이버 부스트캠프(boostcamp) AI Tech 강의를 들으면서 개인적으로 중요하다고 생각되거나 짚고 넘어가야 할 핵심 내용들만 간단하게 메모한 내용입니다. 틀리거나 설명이 부족한 내용이 있을 수 있으며, 이는 학습을 진행하면서 꾸준히 내용을 수정하거나 추가해 나갈 예정입니다.
Hyperparameter Tuning
모델의 Parameter는 학습 과정에서 조정되는 값이지만, Hyperparameter(하이퍼파라미터)는 사용자가 직접 설정하는 값이다.
모델이 스스로 학습하지 않는 learning rate, 모델의 크기, optimizer의 종류 등이 이에 해당된다.
최적의 Hyperparameter는 데이터마다 다르며, 이에 대한 튜닝은 성능을 높일 수 있는 방법이다.
그래서 시간적 여유가 되면 최적의 Hyperparameter를 찾는 것이 필요하지만, 시간 대비 효과가 떨어져서 최근에는 그 영향력이 크진 않다.
보통 모델 자체를 손보거나 데이터를 추가하는 방법 이후에 시도하며, 무엇보다 더 중요한 건 질 좋은 데이터를 고르고 이를 학습에 추가하는 것이다.
대표적으로 Grid Search와 Random Search가 있으며, 최근에는 Bayesian Optimization 기법이 사용된다.
[출처] Random search for hyper-parameter optimization. Journal of Machine Learning Research 13, 281–305 (2012)
Grid Search
적용해볼 값들을 Hyperparameter로 미리 정하여 모든 조합을 시행하는 것이다.
원하는 값만 직접 지정하면 되어서 간단하지만 Hyperparameter의 개수가 많을수록 수행하는 데 시간이 오래 걸린다.
Random Search
랜덤하게 Hyperparameter 값을 사용해보고 그중 우수한 Hyperparameter를 활용하는 것이며, 최적의 모델을 생성하는 데 있어서 시간 대비 성능이 뛰어나다고 알려져 있다. 적용해볼 값들을 Hyperparameter로 미리 정하여 범위 내 무작위 값을 추출하는데, Grid Search보다 훨씬 다양한 조합들을 시험해볼 수 있다.
Bayesian Optimization
베이지안 정리를 기반으로 관측치를 사용하여 후보가 될 수 있는 Hyperparameter를 결정하는 기법인데, 이를 정리하면 다음과 같다고 할 수 있다.
관측치를 바탕으로 최적값을 구하고자 하는 objective function에 대해 확률적으로 추정한다.
이를 바탕으로 새로운 Hyperparameter를 관측할 값을 선정하고, 그 조합을 바탕으로 다시 objective function을 추정한다.