운동하는 공대생

Automated Machine Learning (AutoML) 본문

Machine Learning

Automated Machine Learning (AutoML)

운동하는 공대생 2023. 5. 12. 19:04
728x90
반응형

1. Intro 

 이번에 새로운 프로젝트로 AutoML에 대한 인프라를 구축하는 프로젝트를 시작하게 되었습니다. 그래서 이번에 프로젝트를 들어가기 이전에 내용을 한번 정리하고 AutoML에 대하여 간단하게 설명하겠습니다. 

 

2. What is AutoML

 AutoML은 "Automated Machine Learning"의 약어로, 기계 학습 모델을 자동으로 만들고 최적화하는 기술을 말합니다. 이 기술은 인공지능 모델을 개발하는 데 필요한 일련의 과정을 자동화하여, 개발자가 더 적은 노력으로 더 나은 결과물을 얻을 수 있도록 합니다.

AutoML은 전통적인 기계 학습 모델 개발 방법의 몇 가지 한계를 극복할 수 있습니다. 기존에는 데이터 전처리, 특징 추출, 모델 선택 및 하이퍼파라미터 튜닝 등 다양한 작업을 수동으로 수행해야 했지만, AutoML은 이러한 작업을 자동화하여 개발자가 이러한 작업을 직접 처리하지 않아도 됩니다.

AutoML 기술은 현재 많은 기업에서 사용되고 있으며, 기계 학습 기술의 보급과 활용을 증가시키는 데 중요한 역할을 하고 있습니다.

 

-from chat gpt thx :)

 

이렇게 위의 설명과 같이 AutoML이란 머신러닝의 고도화 작업을 전문적으로 구축이 가능한 이용자가 아니더라고 머신러닝 모델을 비즈니스 프로세스에 적용시키는 게 가능하고 더 나아가 생성한 모델로 지속 가능한 인프라를 구축하여 비스니스에 발전을 도와준다.

 

3. Feature Engineering 

사용자에게 데이터를 입력을 받으면 데이터를 기반으로 비즈니스 프로세스와 모델의 정확성을 위해서 전처리 방식은 반드시 필요로 한다.  AutoML이론에서는 이를 자동화를 통해서 사용자가 데이터만 입력을 한다면 자동으로 진행을 해준다는 게 이론적인 내용입니다.

 

- 자동 특징 선택(Automated Feature Selection) 

 데이터를 먼저 생성을 해야 하는데 입력받은 데이터를 기반으로 모델에 필요한 그리고 전체 프로세스에서 필요한 데이터가 무엇인지를 분석하여서 선택한다.

 

-자동 특징 추출(Automated Feature Extraction)

이를 위해 AutoML은 사전 학습된 딥러닝 모델을 사용하거나 데이터에서 특징을 추출하는 데 사용할 수 있는 다양한 기술을 활용합니다. 이러한 기술을 사용하면 모델이 입력 데이터에서 자동으로 유용한 특징을 추출하고, 이를 모델 입력으로 사용합니다.

 

 

-전처리 자동화

AutoML에서는 데이터의 전처리를 자동화할 수 있습니다. 이를 위해 일부 AutoML 프레임워크에서는 데이터에 대한 자동 스케일링, 결측값 처리, 이상치 제거 등의 전처리 작업을 자동으로 수행합니다.

 

 

4. Model Selection

AutoML에서 모델 선택은 모델 선택 및 하이퍼파라미터 튜닝을 자동화하여 최적의 모델을 찾는 과정입니다. 일반적으로 AutoML에서는 여러 가지 다양한 모델을 시도하고 검증 데이터를 사용하여 각 모델의 성능을 측정한 후, 최적의 모델을 선택합니다.

이를 위해 AutoML은 여러 가지 다양한 모델을 시도합니다. 예를 들어, AutoML은 선형 회귀, 로지스틱 회귀, 결정 트리, 랜덤 포레스트, 그래디언트 부스팅, 신경망 및 서포트 벡터 머신 등 다양한 모델을 시도할 수 있습니다. 각 모델은 여러 가지 하이퍼파라미터를 가지며, AutoML은 이러한 하이퍼파라미터를 자동으로 튜닝하여 최적의 하이퍼파라미터를 찾습니다.

AutoML은 보통 교차 검증을 사용하여 각 모델의 성능을 측정하고 최종 모델을 선택합니다. 교차 검증은 데이터를 여러 개의 폴드로 나누고, 각 폴드에서 모델을 학습하고 다른 폴드에서 모델을 검증하는 방법입니다. AutoML은 이러한 교차 검증을 반복하여 최적의 모델을 찾습니다.

AutoML에서 모델 선택은 매우 중요합니다. 최적의 모델을 선택하지 않으면 모델의 성능이 떨어질 수 있으며, AutoML의 목표인 모델 개발 시간 단축과 모델의 성능 향상을 달성할 수 없습니다. 따라서 AutoML은 최적의 모델을 선택하기 위해 다양한 모델 및 하이퍼파라미터를 시도하고 교차 검증을 사용하여 각 모델의 성능을 측정합니다.

 

5. AutoML libraried

-Auto-sklearn (https://automl.github.io/auto-sklearn/master/manual.html#manual)

sklearn 에서 제공하는 AutoML모델로 데이터 세트를 가지고 Classification, Regression 등등을 지정하면 자동으로 앙상블 최적의 모델을 선택하여 모델을 학습하고 생성한다.

-Auto-keras (https://autokeras.com/)

sklearn 과 비슷하게 데이터세트와 예측 타입을 설정하면 자동으로 모델을 선택하여 진행한다.

-AutoPyTorch(https://automl.github.io/Auto-PyTorch/development/manual.html#manual)

-H2O's AutoML(https://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html)

import h2o
from h2o.automl import H2OAutoML

# Start the H2O cluster (locally)
h2o.init()

# Import a sample binary outcome train/test set into H2O
train = h2o.import_file("https://s3.amazonaws.com/erin-data/higgs/higgs_train_10k.csv")
test = h2o.import_file("https://s3.amazonaws.com/erin-data/higgs/higgs_test_5k.csv")

# Identify predictors and response
x = train.columns
y = "response"
x.remove(y)

# For binary classification, response should be a factor
train[y] = train[y].asfactor()
test[y] = test[y].asfactor()

# Run AutoML for 20 base models
aml = H2OAutoML(max_models=20, seed=1)
aml.train(x=x, y=y, training_frame=train)

# View the AutoML Leaderboard
lb = aml.leaderboard
lb.head(rows=lb.nrows)  # Print all rows instead of default (10 rows)

# model_id                                                  auc    logloss    mean_per_class_error      rmse       mse
# ---------------------------------------------------  --------  ---------  ----------------------  --------  --------
# StackedEnsemble_AllModels_AutoML_20181212_105540     0.789801   0.551109                0.333174  0.43211   0.186719
# StackedEnsemble_BestOfFamily_AutoML_20181212_105540  0.788425   0.552145                0.323192  0.432625  0.187165
# XGBoost_1_AutoML_20181212_105540                     0.784651   0.55753                 0.325471  0.434949  0.189181
# XGBoost_grid_1_AutoML_20181212_105540_model_4        0.783523   0.557854                0.318819  0.435249  0.189441
# XGBoost_grid_1_AutoML_20181212_105540_model_3        0.783004   0.559613                0.325081  0.435708  0.189841
# XGBoost_2_AutoML_20181212_105540                     0.78136    0.55888                 0.347074  0.435907  0.190015
# XGBoost_3_AutoML_20181212_105540                     0.780847   0.559589                0.330739  0.43613   0.190209
# GBM_5_AutoML_20181212_105540                         0.780837   0.559903                0.340848  0.436191  0.190263
# GBM_2_AutoML_20181212_105540                         0.780036   0.559806                0.339926  0.436415  0.190458
# GBM_1_AutoML_20181212_105540                         0.779827   0.560857                0.335096  0.436616  0.190633
# GBM_3_AutoML_20181212_105540                         0.778669   0.56179                 0.325538  0.437189  0.191134
# XGBoost_grid_1_AutoML_20181212_105540_model_2        0.774411   0.575017                0.322811  0.4427    0.195984
# GBM_4_AutoML_20181212_105540                         0.771426   0.569712                0.33742   0.44107   0.194543
# GBM_grid_1_AutoML_20181212_105540_model_1            0.769752   0.572583                0.344331  0.442452  0.195764
# GBM_grid_1_AutoML_20181212_105540_model_2            0.754366   0.918567                0.355855  0.496638  0.246649
# DRF_1_AutoML_20181212_105540                         0.742892   0.595883                0.355403  0.452774  0.205004
# XRT_1_AutoML_20181212_105540                         0.742091   0.599346                0.356583  0.453117  0.205315
# DeepLearning_grid_1_AutoML_20181212_105540_model_2   0.741795   0.601497                0.368291  0.454904  0.206937
# XGBoost_grid_1_AutoML_20181212_105540_model_1        0.693554   0.620702                0.40588   0.465791  0.216961
# DeepLearning_1_AutoML_20181212_105540                0.69137    0.637954                0.409351  0.47178   0.222576
# DeepLearning_grid_1_AutoML_20181212_105540_model_1   0.690084   0.661794                0.418469  0.476635  0.227181
# GLM_grid_1_AutoML_20181212_105540_model_1            0.682648   0.63852                 0.397234  0.472683  0.223429
#
# [22 rows x 6 columns]

# The leader model is stored here
aml.leader

 

 

728x90
반응형
Comments