하이퍼 파라미터 튜닝으로 대단하게 성능을 끌어 올릴 수는 없지만, 마치 튜닝이라는 의미에서 알 수 있듯이 최고의 결과를 위해서 살짝 더 나은 결과를 얻고자 실행해보는 것이 하이퍼 파라미터 조정, 즉 하이퍼 파라미터 튜닝이다. 모델 스스로 학습하지 않는 값(learning rate, optimizer 등 등)같은 인자들에 대해서 사람이 조정해주는 과정을 말한다고 볼 수 있다.
강의를 들으면서 막연히 좀 해보고 싶은 것들, 실제로 궁금했던 것들에 대해서 정리해보고 해보려고 한다.
AutoML(Automated Machine Learning)은 머신러닝을 적용 할 때 마다 되풀이하면서 발생하는 비효율적인 작업을 최대한 자동화하여 생산성과 효율을 높이기 위하여 등장했다. 특히, 데이터 전처리 과정에서부터 알고리즘 선택 및 튜닝까지의 과정에서 모델 개발자의 개입을 최소화 하여 품질 좋은 모델을 효과적으로 개발할 수 있는 기술에 대한 연구가 오랜동안 진행되어 왔다. 위의 과정을 코드 몇 줄로 구현해주는 package toolkit들이 개발되어왔고, 통칭해서 AutoML 방식이라고 한다. 주요 AutoML Package로, Auto-WEKA(2013), auto-sklearn(2015), TPOT(2016), AutoKeras(2019), Neural Network Intelligence(2019), AutoGluon(2020)이 있다.
AutoML 기술로 해결하고자 하는 문제는 크게 두가지다.
:모델을 학습하고 평가할 때 다양한 알고리즘들과 연관된 하이퍼 파라미터들을 실험하고 성능을 비교하여 최상의 성능을 갖는 모델을 찾는 과정을 자동화 하는 문제 (즉, 알고리즘을 선택하고 그 알고리즘의 hyperparameter들의 최적의 집합을 찾는 것)
: 인공 신경망 기술을 활용함에 있어서 문제에 적합한 architecture를 찾는 과정을 자동화 하는 문제 (즉, NAS는 가장 성능이 좋은 신경망 구조를 탐색하는 것)
위의 두 가지 문제를 해결하고자 만든 몇몇 AutoML 모델들을 보려고 한다. 제공 방법에 따라서 3가지로 구분해서 보면 아래와 같다.
최근에는 베이지안 기법들이 하이퍼 파라미터 튜닝에 대중적으로 쓰이고, 여러 Optimizer를 Bayesian Optimizer랑 섞어서 최적화에 활용한다고 한다. 그렇다면 베이지안 최적하는 무엇인가?
🔖 Reference
AutoML 이란 무엇일까?
AutoML-NAS-CASH
Neural architecture search (NAS)
AutoML 종류 및 특징