Auto-ML holds the promise of eliminating the tedious manual tuning of hyperparameters and model selection. One example is the Auto-Sklearn API, which provides a simplistic high-level interface to automatically evaluate multiple preprocessing and model fitting pipelines. A key ingredient to previous Auto-ML systems has been the use of so-called meta-features, which are initially computed for the dataset at hand. These features are then used to select a “policy” for sequentially searching through the solution space. The policy selection is based on the meta-feature distance to a meta-dataset of representative datasets. Sometimes this may lead to problems in generalisation if your dataset differs substantially from the meta-dataset. Furthermore, it can be hard to design representative meta-features and to tune the hyperparameters of the Auto-ML algorithm itself. Auto-Sklearn 2.0 aims to overcome both of these challenges by introducing two modifications: First, instead of relying on meta-features, they use a meta-learned portfolio of initial pipelines. Initially, these portfolio candidates are evaluated in order to warmstart the Bayesian Optimization inner loop. Second, they introduce a meta-learned policy selector, which prescribes a model selection strategy (e.g. cross-validation versus simple holdout evaluation) and a budget allocation strategy (full budget versus more aggressive successive halving) based on the number of samples and features in the considered dataset. Hence, the system comes closer to a hierarchical meta-meta approach. The authors validate their proposed modifications on the OpenML Benchmark and provide a new state-of-the-art for both 10 and 60 minute time budgets.
작동 방식
1) meta-learning process : 데이터에 어울릴 알고리즘 및 파라미터를 추천
- OpenML은 다양한 데이터셋의 meta feature와 알고리즘 및 파라미터에 따른 성능 변화에 대한 정보를 가지고 있다. (auto-sklearn 에서는 Bayesian Optimization 을 이용해서 기존 데이터 셋들에 대한 ‘최적의 조합’을 찾고, 기록해두었다)
- 이 사전정보를 가지고, 새로운 데이터와 기존 데이터 간의 meta-feature 유사도(Minkowski Distance)를 측정한 후, 가장 유사한 데이터셋을 찾아 해당 데이터셋에 가장 성능이 높다고 매칭되어 있는 알고리즘 및 파라미터 조합을 추천해준다
2) 앙상블 기법을 활용해 추천된 알고리즘 / 파라미터 셋들의 최적화를 진행
- 앞서 추천된 개별적인 “알고리즘 및 파라미터 조합”을 가지는 모델들의 정확도를 구한다.
- 이 정확도를 기반으로 모델 들 중 Top N개의 모델을 선별한다
- 이 Top N의 모델들을 하나씩 합치면서 정확도를 비교한다 (합쳐지는 두 모델이 각각 예측한 확률의 평균을 구한 후, 그 평균 확률 스코어를 기반으로 제대로 예측을 하는지를 평가)
- Top N 의 모델들을 합치는 과정을 반복하며 최적의 앙상블 모델을 결정한다 (정해진 반복의 수 혹은 프로세싱 시간 등으로 루프를 제한할 수 있다.)
V2의 4가지 개선사항
- early stopping : 각 ML 파이프 라인이 전체 검색 공간 내에서 early stopping 전략을 사용할 수 있도록 수정함
- 모델 선택 전략 개선 : auto sklearn V2에서는 BOHB와 같은 다중 충실도 최적화 방법을 사용 (단일 모델 선택이 모든 유형의 문제에 적합하지 않을 수 있기 때문에 여러 전략을 통합해 모델 선택 전략을 개선함)
- 유사한 데이터셋 선택 전략 개선 : 포트폴리오를 구축하여 지식 기반에서 유사한 데이터 세트를 찾음
- 자동화 된 policy 선택 구축
사용법
from autosklearn.classification import AutoSklearnClassifier
from sklearn.model_selection import train_test_split
automl = AutoSklearnClassifier(time_left_for_this_task = 300,
tmp_folder = "./log/")
automl.fit(x_train, y_train)
predictions = automl.predict(x_test)
- time_left_for_this_task : 파라미터를 찾는 전체 과정에 소요되는 총 시간을 결정할 수 있는 옵션
- tmp_folder : .fit 을 콜 한 후 일어나는 모든 과정에서 기록되는 산출물을 저장하는 root file path
Reference