Automated Machine Learning (AutoML)
자동 머신러닝(AutoML)은 모델 선택, 하이퍼파라미터 튜닝, 특징 준비를 자동화합니다. 탐색 방식, 도구, YOLO 튜닝을 다룹니다.
자동화된 머신러닝(AutoML)은 머신러닝(ML) 모델을 구축할 때 수행하는 시행착오 작업, 즉 특성 준비, 알고리즘 선택, 하이퍼파라미터 설정, 때로는 네트워크 아키텍처 설계나 여러 모델 결합을 자동화하는 것입니다. 데이터셋, 목표 지표, 컴퓨팅 예산을 입력하면 AutoML 시스템은 후보 파이프라인을 탐색하고, 각 파이프라인을 홀드아웃 데이터로 평가한 뒤, 탐색한 후보 중 가장 좋은 결과를 반환합니다. Auto-WEKA 프로젝트는 이 작업의 핵심을 결합 알고리즘 선택 및 하이퍼파라미터 최적화(CASH) 문제로 정립했으며, auto-sklearn과 같은 후속 도구도 이 공식을 채택했습니다. AutoML은 비전문가에게 강력한 기준 성능을 제공하고, 전문가가 반복적인 실험 작업에 들이는 시간을 줄여 줍니다.
AutoML의 작동 방식#
AutoML 시스템은 세 가지 요소로 구성됩니다. 탐색 공간은 데이터 전처리 및 특성 엔지니어링 단계부터 선형 회귀, XGBoost, 신경망과 같은 모델 계열, 그리고 각 계열의 학습률 같은 설정까지 변경 가능한 항목을 정의합니다. 탐색 전략은 무작위 탐색, 공간에서 유망해 보이는 영역을 모델링하는 베이지안 최적화, 또는 우수한 구성을 변이 및 재조합하는 진화 알고리즘을 사용하여 시도할 후보를 선택합니다. 평가 단계에서는 검증 데이터 또는 교차 검증을 사용하여 각 후보를 평가합니다. 많은 시스템은 이전 데이터셋에서 얻은 메타러닝으로 탐색을 워밍 스타트하고, 마지막에는 최상의 후보를 결합하여 모델 앙상블을 만듭니다.
모든 후보를 끝까지 학습하는 데 가장 많은 비용이 들기 때문에, 다중 충실도 방법은 먼저 여러 구성을 적은 비용으로 학습하고 유망한 구성에만 더 많은 자원을 투입합니다. Hyperband의 기본 구성 요소인 연속적인 절반 제거는 하나의 구성만 남을 때까지 라운드를 반복합니다:
대규모 탐색은 검증 데이터에 과적합될 수도 있습니다. 여러 후보 중 우승한 후보가 단지 운이 가장 좋았을 수 있기 때문이며, 이것이 최종 모델을 별도의 테스트 세트로 평가하는 이유입니다.
AutoML 도구#
- AutoGluon: Amazon에서 시작한 오픈 소스 라이브러리로, 표 형식 데이터, 텍스트, 이미지, 시계열 데이터에 여러 유형의 모델을 학습시키고 이를 스태킹하여 앙상블을 구성합니다.
- auto-sklearn: 베이지안 최적화, 메타러닝, 앙상블 구성을 사용하여 scikit-learn 파이프라인을 탐색합니다.
- FLAML: 표 형식 모델과 하이퍼파라미터를 저비용으로 탐색하는 데 중점을 둔 Microsoft 라이브러리입니다.
- Optuna: 유망하지 않은 시행을 조기에 중단하는 프루너를 갖춘 하이퍼파라미터 최적화 프레임워크로, 사용자 정의 AutoML 루프의 탐색 엔진으로 자주 사용됩니다.
- Google Cloud AutoML: 현재 Gemini Enterprise Agent Platform에 포함된 관리형 서비스로, 이전에는 Vertex AI라는 이름으로 제공되었으며 코드 작성 없이 이미지 분류, 객체 탐지, 표 형식 모델을 학습합니다.
- Amazon SageMaker Autopilot: AWS의 AutoML 서비스로, 현재 인터페이스는 SageMaker Canvas에 통합되어 있습니다.
소규모 표의 경우 표 형식 파운데이션 모델을 사용하면 데이터셋별 탐색 없이 학습 행을 컨텍스트에 포함해 예측함으로써 같은 목표를 달성할 수 있습니다.
YOLO 자동 튜닝#
고정된 사전 학습 아키텍처를 사용하는 컴퓨터 비전 모델에서는 자동 탐색의 대상이 주로 학습 레시피입니다. Ultralytics YOLO의 model.tune()는 기본적으로 학습률, 모멘텀, 손실 가중치, 증강 강도를 포함한 26개의 학습 하이퍼파라미터를 진화시킵니다. 각 반복에서 지금까지 찾은 최상의 구성을 변이 및 재조합하고, 짧게 학습한 뒤 적합도를 기록하며, 실행 결과로 best_hyperparameters.yaml과 반복별 적합도 그래프를 저장합니다. use_ray=True를 전달하면 대신 Ray Tune이 탐색을 수행합니다.
from ultralytics import YOLO
# 튜닝할 사전 학습 YOLO26 모델을 불러옵니다
model = YOLO("yolo26n.pt")
# 하이퍼파라미터 진화: 각 반복에서 지금까지 찾은 최상의 구성을 변이시키고, 학습한 뒤 적합도를 평가합니다
model.tune(data="coco8.yaml", epochs=30, iterations=10, plots=False, save=False, val=False)AutoML과 관련 용어 비교#
- 하이퍼파라미터 튜닝: 선택한 하나의 모델 설정을 최적화합니다. AutoML은 보통 모델 선택도 포함하는 더 넓은 탐색의 한 단계로 하이퍼파라미터 튜닝을 수행합니다.
- 신경망 아키텍처 탐색(NAS): 계층 유형, 깊이, 연결 방식과 같은 네트워크 아키텍처를 설계하는 AutoML 분야입니다.
- 전이 학습: 처음부터 학습하는 대신 사전 학습 모델을 사용합니다. AutoML 시스템은 사전 학습된 백본을 탐색하는 경우가 많으므로 두 방식은 상호 보완적입니다.
- 머신러닝 운영(MLOps): 배포, 모니터링, 재학습을 비롯해 모델의 전체 수명 주기를 다루며, 학습 파이프라인의 한 단계로 AutoML을 실행하는 경우가 많습니다.










