- 2021년 9월 21일 오전 9:55
- 조회수: 3378
REFERENCES
INFORMATION
- 2021년 9월 24일
- 오후 1시 ~
온라인 비디오 시청 (YouTube)

TOPIC
On-Line Video
OVERVIEW
[Summary]
머신러닝 모델의 성능을 제대로 이끌어내기 위해서는 '최적 하이퍼파라미터 탐색(HPO)'가 필수적입니다. 하지만, 최근 나오는 모델들의 복잡해짐에 따라 탐색해야할 하이퍼파라미터의 범위와 모델 자체를 학습시키는데 시간이 크게 늘어나 HPO 단계에 소요되는 시간이 크게 증가하고 있습니다. 이에 최근에 많은 HPO 방법론들이 제시되고 있으나 어떠한 방법론이 더 선호되어야 하는지 불분명한 경우가 많습니다. 따라서, 본 세미나에서는 기본적인 HPO부터 가장 최근의 HPO 방법론, 나아가 실무에서 바로 쓸 수 있는 HPO 프레임워크를 소개하고자 합니다.
[Video Link]
https://youtu.be/IqbCEkFQuYc (※ 쾌적한 시청을 위해 1.2x~1.5x 배속 재생 권장드립니다.)
[Timeline]
00:00 Start
00:29 Introduction
02:32 Preliminaries
03:58 Taxomony
04:47 Searching Method
04:49 Baby Sitting
05:05 Grid Search
05:26 Random Search
06:06 Bayesian Optimization
09:22 Evolutionary Search
16:38 Scheduling Method
17:07 Successive Halving Algorithm(SHA)
18:44 HyperBand
19:43 BOHB
20:00 ASHA
21:53 PBT
24:14 Experiments
28:14 Frameworks
29:01 Ray Tune
31:14 Optuna
32:25 FLAML
33:15 Conclusion
34:24 References
[References]
[1. Paper]
Yang, L., & Shami, A. (2020). On hyperparameter optimization of machine learning algorithms: Theory and practice. Neurocomputing, 415, 295-316.
Li, L., Jamieson, K., Rostamizadeh, A., Gonina, E., Hardt, M., Recht, B., & Talwalkar, A. (2018). A system for massively parallel hyperparameter tuning. arXiv preprint arXiv:1810.05934.
Loshchilov, I., & Hutter, F. (2016). CMA-ES for hyperparameter optimization of deep neural networks. arXiv preprint arXiv:1604.07269.
Wang, C., Wu, Q., Huang, S., & Saied, A. (2020, September). Economic hyperparameter optimization with blended search strategy. In International Conference on Learning Representations.
Wu, Q., Wang, C., & Huang, S. (2021, May). Frugal optimization for cost-related hyperparameters. In Proceedings of the AAAI Conference on Artificial Intelligence (Vol. 35, No. 12, pp. 10347-10354).
[2. Websites]
https://github.com/hibayesian/awesome-automl-papers
https://github.com/optuna/optuna
https://github.com/ray-project/ray
https://github.com/microsoft/FLAML
https://blog.ml.cmu.edu/2018/12/12/massively-parallel-hyperparameter-optimization/
https://medium.com/optuna/introduction-to-cma-es-sampler-ee68194c8f88
https://www.anyscale.com/blog/fast-automl-with-flaml-ray-tune
https://neptune.ai/blog/best-tools-for-model-tuning-and-hyperparameter-optimization
[3. Videos]
https://www.youtube.com/watch?v=6wRBGNLgQFU
https://www.youtube.com/watch?v=2QX6jjMt1Eg
https://www.youtube.com/watch?v=IqQT8se9ofQ
발표자 후기

Forbes의 설문조사에 따르면 데이터 사이언티스트의 실무 비중의 대부분은 ‘데이터 정제’가 차지했다고 한다. 테크의 첨단을 달리는 미국 기업들에서 일하는 분이면 그래도 뭔가 더 멋드러진 일을 하겠거니라고 생각했지만, 그쪽 현실도 녹록치 않은듯하다. 실제로 산학 프로젝트를 하게 되면 대부분의 원성은 ‘데이터’ 자체의 질과 양으로부터 나오는데 마음 같아서는 이 데이터의 생성은 몰라도 정제 과정이라도 좀 자동화했으면...하는 마음이 제일 크지만,사실 해당 부분은 데이터를 받는 입장에서는 어떻게 할 수 있는 부분도 아니거와 데이터의 정제는 현업 전문가의 도움이 아직 많이 필요한 상황이기 때문에 아쉬운 마음은 살짝 접어두고 다른 부분에서라도 우리의 소중한 시간을 아껴줄 수 있는 부분이 없을까 생각해서 고른 것이 금일 주제인 Hyper-Parameter Optimization(HPO)이다. 최근 나오는 HPO라고 해서 모든 것을 뚝딱하고 해결해주는 도깨비 방망이는 아니지만, 그래도 최소한 각 기법의 장단점이라도 숙지한다면 프레임워크는 워낙 쓰기 쉽게 구성되어 있기 때문에 짜투리 시간 몇분만 투자한다면, 앞으로도 매일 하게 될 HPO 단계에서 소요되는 시간을 큰 폭으로 줄일 수 있으리라 생각해본다.
누구나 좋은 아이디어를 낼 수 있지만, 현실화하는 것은 다른 일이다. 그 간극을 매꾸기 위해서는 많은 시간 자원이 필요하게 되는데 시곗바늘은 생각보다 빨리 움직이는 경우가 부지기수라 때때로 결과가 나오기도 전에 초심은 온데간데 없고 어떻게든 되어버렸으면 하는 마음이 자라나기도 한다. ‘단순하고 반복적인 업무만은 누가 대신 좀 해줬으면 내가 더 중요한 일에 신경을 쓸 수 있을텐데’ 하는 마음은 비롯 나만 드는 생각은 아닐거라 생각한다. 본 세미나가 누군가의 연구에는 조금이나마 도움되길 소망하며 세미나 발표 후기를 마칩니다. 들어주셔서 감사합니다.
청취자 후기

이번 세미나는 “Introduction to Hyper-Parameter Optimization”을 주제로 진행되었다. Hyper-parameter Optimization (HPO)은 가장 성능이 좋은 hyper-parameter combination을 확인하여 선정함을 의미한다.
첫 번째로 조기종료 없이 매 trial을 끝까지 탐색하는 Searching method에 대하여 알아보았다. 모든 하이퍼파라미터를 살펴보는 grid search, 무작위로 뽑힌 hyper-parameter 쌍을 활용하는 random search 등이 있지만, 해당 두 방법은 계산 비효율성이 높다는 점에서 더 다양한 방법들이 제안되었다. Bayesian Optimization은 기존 trial들의 정보를 이용하여 후속 trial의 hyper-parameter를 확률분포로부터 선정하는 아이디어로 효율적인 자원 활용이 가능한 방법론이다. 하지만 시간복잡도가 높으며 연속변수에 한해서만 적용이 가능하다는 단점을 갖고 있다. Evolutionary Search는 변이(mutation)를 통하여 local optimal을 극복하며, hyper-parameter의 분포 크기를 adaptive하게 업데이트하는 Covariance Matrix Adaptation Evolution Strategy (CMA-ES)에 대하여 구체적으로 살펴보았다. 이는 하이퍼파라미터를 각각 다른 분포에서 샘플링하고자 공분산 행렬을 사용하기 때문에 타원형의 분포를 생성할 수 있으며, 능동적으로 업데이트 된다는 점에서 좋은 성능을 보이고 있다.
두 번째로 성능이 안좋은 trial은 조기종료하여 탐색 속도를 높이는 Scheduling method에 대하여 알아보았다. Successive Halving Algorithm (SHA)는 저조한 성능의 trial은 조기종료하여 좋은 성능을 보이는 trial에 계산 자원을 배분하는 방법이다. HyperBand는 여러 초기 조합(bracket)에 대하여 다 돌려보아 모든 bracket에서 좋은 성능을 보인 경우에만 선정하는 방법이며, Bayesian Optimization을 적용한 방법론도 존재한다. Asynchronous Successive Halving Algorithm(ASHA)는 작업이 끝난 worker가 기다리지 않고 다시 작업에 들어가는 방법으로, 높은 resource efficiency를 보인다. Population-based Training (PBT)는 algorithm, hyper-parameter에 대해서만 적용 가능한 방법론으로 진화 전략과 병렬 탐색을 동시에 수행하여 성능이 높은 경우에 약간의 변화를 주어 학습을 재개한다.
이번 세미나를 통하여 Hyper-Parameter Optimization의 Searching method와 Scheduling method의 많은 방법론에 대하여 살펴볼 수 있었다. 특히, 실제 활용이 가능한 라이브러리를 직접 소개해주어 실제 프로젝트를 진행할 때에도 해당 프레임워크를 활용한다면 더 좋은 성능을 확인할 수 있지 않을까 생각하였다.

금일 세미나는 ML 하이퍼파라미터 탐색 자동화에 대해 다루어졌다. 세미나를 듣고 프로젝트에 유용하게 적용할 수 있는 HPO framework에 대한 인싸이트(Ray tune, optuna,FLAML 메모...)를 얻을 수 있어 실용적이였다. Framework에 대한 직접적인 코드 리뷰도 뒷부분에 같이 설명해주었기 때문에, 본 세미나는 두고 두고 열람하게 될 세미나가 될 것 같다.
최신 HPO searching method들에 대해 비교 리뷰해준 설명 부분을 들으며, 민재형 같이 발 빠른 연구자, 신문물에 적응을 잘하는 연구자와 같은 연구실을 공유하고 있다는 게 장점같다. 본 받아야할 점이다. 근래 머신러닝에 관한 공학적인 개념이 중요하다 몸으로 느끼고 있었는데, 본 세미나를 듣고 그 중요성에 대해 더 실감되는 순간이였다. AutoML 고도화, Hyperscale AI에 관한 연구 내용들이 뛰어난 성과를 보이고 있는데, 미래에는 우리와 같은 데이터 분석가들을 필요로 할까 겁이 나기도 했다. 물론 세미나 마지막에서 언급했듯 무작정 사용하기 전에 사전에 확인해야 할 여러 요소들이 있지만, 이러한 영역들도 언젠가 자동으로 대체될 것만 같다. 열심히 연구해야겠다는 생각을 하며 세미나 후기를 마치도록 한다. 고생하셨습니다.

오늘은 하이퍼파라미터 최적화(HPO)에 대한 주제로 세미나가 진행되었다. 데이터 사이언스 실무는 데이터 수집, 정제, 모델학습과 배포, 모니터링이 계속해서 반복되는데, 이때 모델을 구축하고 좋은 성능을 얻기 위해서는 데이터 정제 활동과 같은 엔지니어링에 대한 소요가 매우 크다. 머신 러닝의 모델 자체는 손쉽게 접근할 수 있도록 제공되나, 여기에 맞게 데이터를 가공하고 좋은 성능을 내기 위해서는 다양한 공학적 업무들이 속도있게 이뤄질 수 있어야 한다. 이번 세미나에서는 그러한 엔지니어링 중에서 HPO의 방법론을 소개해 주었다.
먼저 Baby sitting은 사용자의 경험에 의존하여 직접 조정하는 방법이고, Grid search는 모든 쌍의 하이퍼 파라미터를 뒤져보는 방식이며, Random search는 무작의 k개로 뽑힌 쌍을 확인하는 방식이다. 하지만 이러한 방법들은 말 그대로 폭넓게 탐색하는 방법이기 때문에 계산량이 많아 비효율적이다. 이에 기존 trial 정보를 이용하여 후속 하이퍼 파라미터를 찾아 나가며 불필요한 탐색 비용을 줄이는 Bayesian 방식이 있다. 여기서는 사람이 하는 추론과정을 확률모델로 표현하여, 추가되는 정보에 따라 업데이트 시키면서 더 정확한 근사모델을 얻는다. Evolutionary Search의 경우는, 여러개의 하이퍼파라미터의 성능을 측정해서 가장 좋은 k개를 뽑은다음, 그들을 섞거나 살짝 변경해서 사용하는 방식으로 진행한다. 이렇게 searching method는 계속해서 trial별로 끝까지 진행하며 결과를 확인하므로, 속도 상한이 명백하다는 문제를 지닌다. 즉, 더 빠르게 하기위해서는 추가적인 시간 계산 자원을 고려해야한다. 이러한 방법론은 Successive Halving Algorithm 은 처음 가용 가능한 자원을 나누어서 한꺼번에 진행한다음 중간 중간 저조한 trial은 떨어뜨리고 남은 것들에 집중하면서 속도를 높이는 방식이다. HyperBand는 초기 자원 배분에 따라 최종 best값이 달라지는 문제를 해결하기위해 쳐러 초기 조합을 다 돌려보는 방식이고, 조합이 너무 많을 때에 대한 문제를 개선한 BOHB 방법도 있었다. 이후에는 실제 각 방법론마다의 성능이 어떤지 하나하나 알아보면서, 실제로 내가 필요할 때 어떤식으로 튜닝하면 좋은지 라이브러리와 방법들을 차근차근 설명해주었다.
사실 세미나를 듣는 내내 아직까지도 SOTA를 달성할수 있는지에 대해 심도있게 고민해본적이 없어서, 하이퍼파라미터 튜닝에 대해 너무 무심했구나 싶었다. 사실 모든 모델이 거쳐야할 과정인데 제대로 수행해보지 않은 스스로에게 반성이 필요하단 생각이 들 정도로 아주 체계적으로 잘 정리해서 알려줘서 도움이 많이 되었다. 특히 마지막에 어떻게 사용하면 좋은지, 어떻게 찾아가야하는지, 쌓이고 쌓인 노하우를 잔뜩 풀어준 느낌이 들었다. 정말 감사하다. 이런 세미나는 두고두고 펼쳐볼 생각이 들 것 같다. 준비해준 민재에게 감사의 마음을 전한다!

이번 세미나는 "Introduction to Hyper-Parameter Optimization"이라는 주제로 진행됐다. 하이퍼 파라미터는 모델을 학습하기 전 사용자가 직접 정해줘야 하는 값을 의미하며 해당 값에 따라 모델의 성능이 크게 좌우될 수 있기 때문에 적합한 하이퍼 파라미터를 찾는 것은 매우 중요하다. HPO는 조기 종료 없이 매 시점 끝까지 탐색하는 searching method와 탐색 도중 성능이 좋지 않다고 판단되면 조기 종료하는 scheduling method로 나눌 수 있다. Searching method 중 널리 사용되는 방법은 특정 후보군을 지정하고 모든 종류의 후보군에 대해 실험하는 grid search와 후보군 중 랜덤한 값을 지정해 실험하는 random search가 있다. 두 방법 모두 탐색 범위를 수동으로 좁혀가야 하므로 많은 시간이 든다는 단점이 있다. Bayesian optimization은 이전 시도에서 얻은 정보를 바탕으로 다음 시도에 조금 더 나은 하이퍼 파라미터를 찾아 나가는 방법이다. Evolutionary Search는 몇 가지 후보군을 실험한 후 우수한 후보군을 섞고 약간 변형함으로써 더 나은 후보군을 찾아가는 방법론이다. 다음으로 scheduling method에 속하는 SHA가 소개되었다. SHA는 단계를 진행할 때마다 성능이 저조한 후보군을 버리고 해당 후보군에 쓰이는 자원을 다른 후보군에 할당해 효율적인 탐색을 할 수 있게 해주는 알고리즘이다. HyperBand는 후보군의 수와 budget의 집중도 사이의 균형을 잘 맞춰주기 위해 모든 초깃값에 대해 SHA를 수행한다. BOHB는 HyperBand가 큰 budget에서 좋은 성능을 보이지 못한다는 단점을 극복하기 위해 bayesian optimization을 적용했다. ASHA는 기존의 SHA가 다른 작업이 끝날 때까지 각 budget이 기다림으로써 발생하는 bottleneck을 작업이 끝나는 대로 각 budget을 다른 작업에 할당함으로써 성능을 끌어 올렸다. 마지막으로 소개된 PBT는 evolutionary strategy와 parallel search를 활용해 주기적으로 exploit과 explore를 수행함으로써 학습 중에 좋은 성능을 끌어낼 수 있다. 세미나의 후반부에서는 현재 활용할 수 있는 다양한 HPO 프레임워크들이 소개되었다. 이번 세미나를 통해 다양한 HPO 방법론들에 대해 처음 접할 수 있었으며 실제 적용할 수 있는 프레임워크까지 소개되어 의미 있는 세미나였다. 세미나를 위해 고생해준 민재 형에게 감사의 뜻을 전하며 세미나 후기 마무리한다.

이번 세미나는 'Introduction to Hyper-Parameter Optimization'이라는 주제로 진행되었다. 모델 파라미터는 학습데이터에 적합 되어야 할 값을 의미하는 반면, 하이퍼파라미터는 학습 데이터에 의해서 변경되지 않는 값을 의미한다. 따라서, 일반적으로 hyperparameter optimization(HPO)을 통해 가장 좋은 validation set 성능을 얻은 모델을 선택하게 된다. HPO는 크게 조기종료 없이 매 trial을 끝까지 탐색하는 searching method와 searching 도중 성능이 좋지 않은 trial을 조기종료하여 전체 탐색 속도를 높인 scheduling method로 나뉜다. Searching method의 대표적 방법론으로는 grid search와 random search, bayesian optimization, evolutionary search 등을 소개해주었다. 이후 searching method의 여러 한계점을 극복한 scheduling method의 대표적 방법론으로는 successive halving algorithm, hyperband, bayesian optimization with hyperband, asynchronous successive halving algorithm, population-based training 등을 소개해주었다. 추가적으로 다양한 HPO 라이브러리를 직접 소개해주며, 추후 하이퍼파라미터 탐색 시 유용하게 쓸 수 있을 만한 정보를 다채롭게 제공해주었다. 현재는 비록 모델의 기본 성능을 높이는데 주력하고, 또 이에 초점을 맞추어 연구를 진행하고 있지만 머지않아 민재오빠가 소개해준 다양한 HPO 방법론을 적용해볼 수 있는 날이 오길 세미나를 청취하는 내내 소망하였다. 좋은 세미나를 위해 고생해준 민재오빠에게 감사한 마음을 전하며 세미나 후기를 마무리한다.

이번 세미나는 Hyper-Parameter Optimization(HPO)에 대한 소개로 진행되었다. 개인 연구를 하면서 하이퍼 파라미터를 탐색하는데에 많은 어려움이 있었는데, 이번 세미나를 진작에 알았다면 좋았겠다는 생각이 들었다. 내가 했던 하이퍼 파라미터 탐색 방법은 세미나에서 가장 처음에 언급한 Baby sitting, 즉 GSD(Graduate Student Descent)였다는 것을 알게 되었다. 앞으로의 연구에서는 이번 세미나에서 배운 방법들을 꼭 활용해볼 것이다. 하이퍼 파라미터를 최적화하는 방법을 전체적으로 분류하면 Searching method와 Scheduling method로 나눌 수 있다. Searching method에는 Grid Search(GS), Random Search(RS), Bayesian Optimization(BO), Evolutionary Search(ES)가 있고, Scheduling method에는 Successive Halving Algorithm(SHA), HyperBand(HB), Bayesian Optimization with HyperBand(BOHB), Asynchronous SHA(ASHA), Population Based Training(PBT)가 있다. 이 때 Searching method는 조기종료 없이 매 trial을 끝까지 탐색하지만 Scheduling method는 Searching 도중 성능이 안좋은 trial을 조기종료하여 효율적으로 탐색한다는 큰 차이점이 있다. HPO에서 SOTA의 성능을 보이는 방법은 ASHA와 PBT인데 PBT는 알고리즘 하이퍼 파라미터에만 적용 가능하기 때문에 상황에 맞게 방법론을 적용해야 하겠다. 이번 세미나를 통해 하이퍼 파라미터 최적화를 위한 다양한 방법론을 알 수 있었고, 라이브러리 활용법까지 친절하고 자세하게 알려주어 향후 연구에 정말 많은 도움이 될 수 있을 것 같다. 세미나 준비에 수고해준 민재에게 감사의 말을 전한다.

이번 세미나는 하이퍼 파라미터 튜닝에 대해서 민재형이 발표를 해주었다. 딥러닝 모델이 복잡해지고 거대해지면서 사용자가 직접 설정해야하는 하이퍼 파라미터의 개수도 증가하였다. 하이퍼 파라미터는 모델의 성능에도 크게 영향을 주기 때문에 이를 잘 설정하는 것은 매우 중요한 일이지만 가장 성능이 좋은 하이퍼 파라미터 조합을 찾는 것은 매우 어려운 문제이다.
이 문제를 해결하기 위해 하이퍼 파라미터 최적화 방법론들이 등장하게 되었고 크게 searching method와 scheduling method로 나눌 수 있다. searching method와 scheduling method의 가장 큰 차이점은 조기종료의 유무이며 scheduling method는 성능이 안 좋은 조합에 대해 조기종료를 도입하여 전체 탐색속도를 높였다.
이번 세미나를 통해서 하이퍼 파라미터 튜닝 방법론과 이러한 방법론들을 간단하게 적용할 수 있는 패키지에 대해서 알게 되었다. 하이퍼 파라미터 튜닝을 매번 세미나에서 나왔던 graduate student descending만 해왔었지만 이번 세미나를 통해서 더 효율적으로 할 수 있게 되었다. 이번 세미나는 정말 연구나 프로젝트에 도움이 많이 되는 실용적인 세미나였던 것 같다. 좋은 세미나를 준비해준 민재형에게 감사드리며 세미나를 마친다.