2022. 11. 21. 18:19ㆍMachine Learning
이번 글에서는 머신러닝을 쉽고 빠르게 도입할 수 있도록 도와주는 AutoML (Automated Machine Learning) 에 대해 간단히 정리해보고자 한다. AutoML 이란 무엇이고, AutoML 에는 어떤 종류가 있고, 종류별 특징 및 장단점은 무엇인지 알아보자.
1. AutoML 이란?
AutoML 은 머신러닝 모델을 학습하고, 배포하는 과정을 자동화하는 기술 혹은 도구를 말하는데, AutoML 을 이해하기 위해서는 먼저 머신러닝 프로세스를 이해해야한다. 머신러닝 프로세스는 크게 데이터 전처리, 모델링, 후처리의 3단계로 구분할 수 있다[1].
데이터 전처리 단계에서는 데이터 수집(Acquisition), 데이터 클렌징(Cleaning), 결측값 처리(Imputation), 분포 변환(Transformation) 등의 학습 데이터 준비 작업을 수행한다. 데이터 준비가 완료되면 모델링 단계로 넘어가서, 변수 및 알고리즘 선택, 알고리즘별 하이퍼파라미터 튜닝을 수행한다. 이 단계에서는 후보 변수, 알고리즘, 하이퍼파라미터의 다양한 조합을 탐색하는 반복적인 계산 과정을 거쳐 최적을 결과를 도출한다. 마지막 후처리 단계에서는 모델의 평가, 결과 해석, 모델 배포와 같이 모델의 활용성을 검증하고, 실제 서비스에 적용하기 위한 작업들을 수행한다.
AutoML 은 기존의 머신러닝 전문가가 수행하던 영역 중 정형화된 과정을 자동화하여 업무 효율을 높여주고, 비전문가들도 머신러닝 모델을 생성할 수 있도록 쉬운 인터페이스를 제공하는 것을 목표로 한다. 하지만 AutoML 제품별로 구현 방법에 차이가 있고, 제공하는 자동화 범위와 세부 기능도 다양한 차이가 있다. 아래에서는 현재 AutoML의 제공 형태에 따라 3가지 종류로 나누어 살펴보자.
2. AutoML의 종류 및 특징
1) OSS (Open Source Software)
OSS 방식은 오픈소스 기반의 라이브러리 형태로 제공되는 AutoML 기능을 말한다. 그 예로 Scikit-learn 기반의 Auto-sklearn, TPOT, Keras 기반의 AutoKeras, Tensorflow 기반의 AdaNet 등이 있다. Scikit-learn 기반의 AutoML 라이브러리는 구조화된 데이터에 보다 적합하고 기존 Scikit-learn 의 전처리 방식을 자동화하여 적용 가능하다. 반면 Tensorflow, Keras 기반의 라이브러리는 텍스트, 이미지 처리와 같은 딥러닝 모델에 적합하며, 효율적인 신경망 구조 탐색이 가능하다.
OSS 방식의 장점은 기존 코드에 AutoML 라이브러리를 호출하여 사용할 수 있기 때문에 커스터마이징이 자유롭다는 점이다. 반면 약점으로는 높은 컴퓨팅 자원 활용이 가능한 환경을 갖추고 있어야하고, 후처리 단계(모델 평가, 배포, 모니터링 등)에 대한 기능 지원은 아직 미흡하다는 점이다.
아래는 각각 autosklearn 과 autokeras 의 간단한 사용 예시이다.
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)
2) Cloud Provider Solution
주요 클라우드 서비스는 클라우드 환경에서 이용 가능한 AutoML 솔루션을 제공한다. 대표적으로 Google의 Cloud AutoML, Amazon의 Sagemaker Autopilot, Microsoft의 Azure 가 있다. 코드 작성이 필요없는 UI 방식과 Python API 방식 둘 다를 제공하는 특징이 있다.
클라우드 환경에서 제공되기 때문에 필요한 만큼의 자원 할당이 가능하고, 자원 관리 서비스를 제공한다는 장점이 있다. 또한 데이터 전처리부터 모델링, 결과 평가, 모델 배포까지 기능을 제공하여 전체 프로세스에 대한 구현이 가능하다. 하지만 사용자가 구현된 시스템 내부를 투명하게 파악하기는 어렵다는 단점이 있다.
예시로 Amazon의 Sagemaker Autopilot 에서 제공하는 세부 기능들을 살펴보자.

- 데이터 전처리, 피처 엔지니어링 : 결측값 자동 처리, 데이터 탐색 결과에 대한 통계 보고서 생성
- 자동 기계학습 모형 선택 : 타겟 변수의 타입에 따라 예측 유형을 자동 추론, 예측 유형에 따른 머신러닝/딥러닝 알고리즘 자동 학습 및 하이퍼파라미터 최적화
- 모형 리더보드 : 데이터에 대해 자동 생성된 모형 간을 성능 순으로 비교, 가장 적합한 모델을 배포 가능
- 모형 해석 : Amazon Sagemaker Clarify 에서 설명가능한 보고서를 제공 (SHAP 기반 변수 중요도, Confusion matrix)
- 자동 노트북 생성 : 자동 생성한 모델에 대한 노트북을 자동 생성, 세부정보를 확인, 구체화, 재사용이 가능함
3) Enterprise solution
마지막은 AutoML 서비스 제공을 목적으로 만들어진 전문 AutoML 플랫폼들이 있다. 대표적인 예로 DataRobot과 H2O가 있다. 해당 플랫폼(솔루션)들은 AutoML 에 특화된 기능과 각 프로세스에서 커스터마이징이 가능하도록 구현되어 있다. 또한, AutoML 플랫폼 기업 제품들은 원하는 곳에 설치 가능하므로 민감한 데이터를 다루는 경우에 적합한 방식이다. 하지만 초기에 라이센스 구매 비용이 큰 부담이 될 수 있다.
예시로 데이터로봇의 머신러닝 자동화 플랫폼을 살펴보자.



- 데이터 준비, 피처 엔지니어링 : 데이터를 카탈로그화, 프로파일링, 전처리 (이미지, 텍스트 데이터 처리 가능)
- 자동 모델 생성, 모델 검증 : 타겟 설정 후 학습 실행하면 수십 개의 모델을 생성, 성능 비교, 정확도와 예측 속도를 기반으로 배포할 모델 추천
- 모델 배포, 모니터링 : 클릭을 통해 모델을 배포, 서비스 상태 및 정확성 모니터링 기능, 모델 해석
3. 정리
공통적으로 AutoML 은 쉽고 빠르게 모델을 생성을 도와주는 기능으로 모델 개발 프로세스의 효율성을 향상시켜줄 수 있다. 기본적으로 하이퍼파라미터 튜닝 기능을 제공하기에 알고리즘별 하이퍼파라미터에 대한 이해가 덜 요구된다. 하지만 데이터 전처리 단계의 경우 인간의 개입이 필요한 부분이 아직도 많고, 배경지식과 전처리 과정에 따라 모델 성능이 개선될 수 있는 여지가 충분히 남아 있다는 점에서 한계점도 있다.
AutoML의 세가지 종류와 특징에 대해 살펴봤다. 비전문가도 머신러닝 모델을 개발할 수 있다는 목적을 달성하기 위해서는 기업의 플랫폼/솔루션과 같은 UI 제공 방식을 사용하는 것이 적절할 것이다. 반면 모델링 전후처리에 능숙한 경우 오픈소스 라이브러리를 활용하여 초기 모델을 만들고 커스터마이징을 통해 고도화해나가는 방향이 있다. 클라우드 혹은 솔루션 제품은 사용자의 데이터 및 개발 환경, 비용에 따라 적합한 방식을 선택하면 될 것 같다.
4. 참고
[1] https://arxiv.org/pdf/2101.04834.pdf
'Machine Learning' 카테고리의 다른 글
ChatGPT란? (개념 및 원리) (0) | 2023.04.14 |
---|---|
공부 기록 1일. AutoML 도입 효과 및 학습 목적 (0) | 2023.02.16 |
NLP 실습 - (2) BERT 모델 학습 (0) | 2023.02.02 |
NLP 실습 - (1) 데이터 수집 및 전처리 (1) | 2023.01.29 |
ROC-AUC, PR-AUC 개념 비교 정리 (0) | 2022.07.21 |