![[공부] AutoML 내용 정리](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D%255B%25EA%25B3%25B5%25EB%25B6%2580%255D%2520AutoML%2520%25EB%2582%25B4%25EC%259A%25A9%2520%25EC%25A0%2595%25EB%25A6%25AC%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3D%25EC%258A%25A4%25ED%2583%25AF%25EB%25B8%2594%25EB%25A1%259C%25EA%25B7%25B8%2520-%2520%25EB%258D%25B0%25EC%259D%25B4%25ED%2584%25B0%2520%25EC%2582%25AC%25EC%259D%25B4%25EC%2596%25B8%25EC%258A%25A4&w=2048&q=75)
정의
AutoML은 머신러닝을 적용 할 때 마다 이러한 과정을 되풀이하면서 발생하는 비효율적인 작업을 최대한 자동화하여 생산성과 효율을 높이는 프로세스다.
AutoML은 머신러닝 모델을 학습하고, 배포하는 과정을 자동화하는 기술을 의미한다. 구체적으로 데이터 전처리 과정에서부터 알고리즘 선택 및 튜닝까지의 과정에서 모델 개발자의 개입을 최소화 하여 품질 좋은 모델을 효과적으로 개발할 수 있도록 만들어주는 기술이다.
대표적인 Toolkit은 아래와 같다.
AutoML이 기여하는 부분
- 모델을 학습하고 평가할 때 다양한 알고리즘들과 연관된 하이퍼 파라미터들을 실험하고 성능을 비교하여 최상의 성능을 갖는 모델을 찾는 과정을 자동화 하는 문제
- 인공 신경망 기술을 활용함에 있어서 문제에 적합한 architecture를 찾는 과정을 자동화 하는 문제
문제
Combined Algorithm Selection and Hyper-parameter (CASH) optimization
문제에 적합한 알고리즘을 찾고, 나아가 그 알고리즘의 성능을 극대화 할 수 있는 하이퍼파라미터를 찾는 작업
종류
- Conventional optimization: grid search, random search, genetic algorithm, simulated annealing
- 전통적인 방법
- Reinforcement learning: Successive-halving, Hyperband
- Bayesian optimization: Gaussian Processes (GP), Sequential Model-based Algorithm Configuration (SMAC), FLASH: Fast Bayesian Optimization for Data Analytic Pipelines, FABOLAS
- Hybrid: BOHB, Maxtrix Factorization
- BO 프레임워크 내에서 다양한 방법들을 적용하는 중
Neural Architecture Search (NAS)
AutoML은 문제에 적합하도록 잘 설계돼야 한다. NAS는 이 과정을 사람이 직접하지 않고 자동으로 하는 것을 목표로 한다.
NAS 문제를 풀기위한 방법은 크게
- search space를 어떻게 정의하고
- 어떤 search 알고리즘을 적용하느냐
에 따라 나누어 질 수 있습니다.
CASH 문제와 유사하게, random search, Bayesian optimization, evolutionary algorithm, reinforcement learning 등의 search 알고리즘을 적용하는 방법들이 연구되어 왔으며, 근래에는 search space를 continuous variable 로 relaxation 하여 gradient-based optimization 방법을 적용하여 탐색을 더 효율화하는 연구도 진행중이다.
NAS 문제를 풀기 위한 주요 방법들:
- Evolutionary algorithm: NEAT, AmeobaNet, Hierarchical NAS, JASQNet
- Reinforcement learning: NAS with RL, NASNet, MnasNet, ENAS
- Relaxation: One-Shot NAS, DARTS, ProxylessNAS

AutoML 작동방식
일반적으로 AutoML 과정은 다음과 같은 단계로 진행된다:
- 모델 훈련을 위한 데이터가 제공되며 이는 AutoML 시스템의 입력물이 된다. 데이터는 일반적으로 전처리된 정제된 대용량 데이터셋으로, 모델 훈련에 사용할 준비가 돼있다.
- AutoML 시스템은 데이터를 전처리하며, 주로 feature 엔지니어링 및 정규화 작업이 포함된다. 이는 데이터를 모델이 학습하는데 더 적합하게 만들어주고 모델의 정확도를 향상시킬 수 있다.
- AutoML 시스템은 다양한 알고리즘과 하이퍼파라미터를 사용하여 여러 모델을 훈련한다. 이를 통해 시스템은 데이터에 가장 잘 맞는 모델을 찾을 수 있다.
- AutoML 시스템은 훈련된 모델의 성능을 평가하고 가장 우수한 성능을 보이는 모델을 선택한다. 이 모델은 그 후 AutoML 시스템의 출력물이 된다.
- 그런 다음 사용자는 훈련된 모델을 사용하여 이전에 보지 못한 데이터를 기반으로 예측하거나 작업할 수 있다. 이는 일반적으로 모델을 웹 서비스로 배포하여 다른 응용 프로그램이나 사용자가 액세스할 수 있도록 만들어 준다.
Output
지도 학습 머신러닝 모델은 입력 데이터를 기반으로 예측을 수행한다.
모델은 훈련을 통해 입력 데이터와 출력 간의 올바른 관계를 학습하고 이를 바탕으로 사용하여 새로운 예측을 수행한다.
Input
머신러닝 모델에게 입력 데이터의 퀄리티는 제일 중요하다.
왜냐하면 모델의 정확도와 성능에 직접적으로 영향을 미치기 때문이다. 데이터의 품질이 낮으면 모델은 입력과 출력 간의 부정확하거나 잘못된 관계를 학습할 수 있다.
하이퍼파라미터
하이퍼파라미터는 모델의 학습 및 성능을 결정하는 설정 또는 매개변수다.
학습률, 신경망의 은닉층 수, 정규화 강도 등이 여기에 해당한다. 매개변수는 일반적으로 모델을 훈련하기 전에 설정되며 모델의 성능에 큰 영향을 미칠 수 있다. 그러나 하이퍼파라미터를 최적화하는 것은 많은 전문지식과 경험이 필요한 까다로운 작업이 될 수 있다.
AutoML 시스템은 주어진 머신러닝 모델에 대한 최적의 하이퍼파라미터 조합을 자동으로 찾아내어 최적화한다. 이는 다양한 하이퍼파라미터 조합을 사용하여 모델을 훈련하고 각 조합의 성능을 평가함으로써 이루어진다.
실제 종류 및 특징

OSS (Open Source Software)
- 오픈소스 기반의 라이브러리 형태로 제공
- Scikit-learn 기반의 Auto-sklearn, TPOT
- Scikit-learn 기반의 AutoML 라이브러리는 구조화된 데이터에 보다 적합하고 기존 Scikit-learn 의 전처리 방식을 자동화하여 적용 가능
- Keras 기반의 AutoKeras
- Tensorflow 기반의 AdaNet
- Tensorflow, Keras 기반의 라이브러리는 텍스트, 이미지 처리와 같은 딥러닝 모델에 적합하며, 효율적인 신경망 구조 탐색
장점
OSS 방식의 장점은 기존 코드에 AutoML 라이브러리를 호출하여 사용할 수 있기 때문에 커스터마이징이 자유롭다.
단점
약점으로는 높은 컴퓨팅 자원 활용이 가능한 환경을 갖추고 있어야하고, 후처리 단계(모델 평가, 배포, 모니터링 등)에 대한 기능 지원이 미흡하다.
예시
import autosklearn.classification clf = autosklearn.classification.AutoSklearnClassifier() clf.fit(X_train, y_train) results = clf.predict(X_test)
import autokeras clf = autokeras.ImageClassifier() clf.fit(X_train, y_train) results = clf.predict(X_test)

Cloud Provider Solution
주요 클라우드 서비스는 클라우드 환경에서 이용 가능한 AutoML 솔루션을 제공한다. 대표적으로 Google의 Cloud AutoML, Amazon의 Sagemaker Autopilot, Microsoft의 Azure 가 있다. 코드 작성이 필요없는 UI 방식과 Python API 방식 둘 다를 제공하는 특징이 있다.
클라우드 환경에서 제공되기 때문에 필요한 만큼의 자원 할당이 가능하고, 자원 관리 서비스를 제공한다는 장점이 있다. 또한 데이터 전처리부터 모델링, 결과 평가, 모델 배포까지 기능을 제공하여 전체 프로세스에 대한 구현이 가능하다. 하지만 사용자가 구현된 시스템 내부를 투명하게 파악하기는 어렵다는 단점이 있다.
Amazon Lex
Amazon Lex는 Amazon Web Services (AWS)에서 제공하는 서비스로, 개발자들이 응용 프로그램 및 서비스를 위한 자연어 인터페이스를 구축할 수 있다. 이는 아마존의 가상 어시스턴트인 Alexa에 기반하고 있으며, 개발자들이 사용자의 자연어 입력을 이해하고 응답할 수 있는 챗봇 및 기타 대화형 인터페이스를 생성할 수 있게 한다.
Amazon Lex의 일부 기능:
- 자연어 이해
- 음성 인식
- 사용자 정의 가능한 대화 흐름
- 다른 AWS 서비스와의 통합
Google Cloud AutoML
Google Cloud AutoML은 Google Cloud에서 제공하는 머신러닝 도구 및 서비스 모음이다. 이는 개발자 및 기업이 머신러닝 모델을 개발, 훈련 및 배포하기 쉽게 만드는 다양한 도구 및 서비스를 포함하고 있다.
- AutoML Vision: 이미지 인식 작업을 위한 머신러닝 모델을 훈련한다. 예를 들어 객체 감지 및 분류와 같은 작업이 포함.
- AutoML Natural Language: 자연어 처리 작업을 위한 머신러닝 모델을 훈련시킨다. 감정 분석 및 개체 인식과 같은 작업이 여기에 포함된다.
- AutoML Tables: 구조화된 데이터를 위한 머신러닝 모델을 훈련시킨다. 데이터베이스나 CSV 파일에서 가져온 테이블 형식의 데이터 등이 여기에 해당한다.

Enterprise solution
마지막은 AutoML 서비스 제공을 목적으로 만들어진 전문 AutoML 플랫폼들이 있다.
대표적인 예로 DataRobot과 H2O가 있다. 해당 플랫폼(솔루션)들은 AutoML 에 특화된 기능과 각 프로세스에서 커스터마이징이 가능하도록 구현되어 있다. 또한, AutoML 플랫폼 기업 제품들은 원하는 곳에 설치 가능하므로 민감한 데이터를 다루는 경우에 적합한 방식이다.
하지만 초기에 라이센스 구매 비용이 큰 부담이 될 수 있다.

- 데이터 준비, 피처 엔지니어링 : 데이터를 카탈로그화, 프로파일링, 전처리 (이미지, 텍스트 데이터 처리 가능)
- 자동 모델 생성, 모델 검증 : 타겟 설정 후 학습 실행하면 수십 개의 모델을 생성, 성능 비교, 정확도와 예측 속도를 기반으로 배포할 모델 추천
- 모델 배포, 모니터링 : 클릭을 통해 모델을 배포, 서비스 상태 및 정확성 모니터링 기능, 모델 해석
H2O AutoML
H2O는 H2O.ai에서 제공하는 머신러닝 도구 및 서비스 모음이다.
개발자 및 기업이 머신러닝 모델을 개발, 훈련 및 배포하기 쉽게 만드는 다양한 도구 및 서비스를 포함하고 있다.
H2O에서 제공하는 도구 및 기능:
- AutoML: H2O AutoML에서 제공하는 주요 서비스로, 사용자가 회귀, 분류, 클러스터링을 포함한 다양한 작업에 대한 머신러닝 모델을 훈련할 수 있게 한다.
- Grid Search: H2O AutoML의 기능 중 하나로, 사용자가 주어진 머신러닝 모델에 대한 최적의 하이퍼파라미터 조합을 자동으로 탐색할 수 있게 한다.
- 모델 관리: 사용자가 훈련된 머신러닝 모델을 관리할 수 있게 해주며, 이는 저장, 정리 및 응용 프로그램이나 기타 서비스에서 사용하기 위한 배포를 포함한다.
GitHub repo: https://github.com/h2oai/h2o-3
Reference
- Xbrain, JungKap Park
- https://www.run.ai/guides/automl#:~:text=What Is Automated Machine Learning,model selection%2C and hyperparameter tuning.
Share article