[ML 자동화 도구] 1. AutoML

ofohj·2023년 4월 19일
0

새로운 걸 공부할 때 뭘 어떻게 시작해야되는지 당~최~ 모르겠다.
그래서
도와줘 지피티~

1. 개념

  • AutoML : Auto Machine Learning
  • ML 모델을 자동으로 구축하고 최적화하는 방법

효과

데이터를 입력하고 사용자가 얻고자 하는 결과를 지정하면
👉 자동으로 최적의 머신러닝 모델을 생성하고 학습시킴

이런 기술을 통해!
🪄 확장성, 효율성, 생산성이 높은 ML 모델 생성 가능
🪄 머신러닝 모델을 개발하고 유지보수에 필요한 시간과 비용 절감

장점

  1. 접근성
    : 경험이 부족한 개발자나 비전문가도 머신러닝 모델을 쉽게 구축할 수 있음
  2. 개발 효율성
    : 머신러닝 모델을 최적화하여 정확성을 높이고, 더 빠른 결과를 얻을 수 있도록 해줌

단점

  1. 자동화된 프로세스의 부작용
    : 자동화로 인해 모델이 예상치 못한 방식으로 작동하거나, 어떻게 작동하는지 이해하기 어려울 수 있음

  2. 높은 비용
    : AutoML은 일반적으로 클라우드 기반이라 비용이 높을 수 있음
    (모델 구축에 많은 컴퓨팅 자원이 필요)

  3. 데이터의 품질에 대한 의존
    : 데이터가 부적절하거나 누락되거나 일관성이 없으면, 생성된 모델의 성능이 매우 저하될 수 있음
    👉 데이터를 넣기 전, 충분히 확인하기!


2. 역할

automl이 하는 일은 다음과 같습니다.

  1. 데이터 전처리
  2. 알고리즘 탐색
  3. 모델 평가
  4. 최적 모델 선택

3. 사용법

사용자가 automl을 사용하는 방법은 다음과 같습니다.

  1. 데이터 수집 및 전처리
    : 데이터 정제, 결측값 처리, 특성 선택 등
    🤷‍♂️ automl도 전처리를 할 수 있는데 제가 직접? 전처리를? 해줘야하나요?
    💁‍♀️ 안해줘도 되지만, 더 좋은 성능을 내고싶다면 미리 전처리를 해 주는게 좋습니다!
  1. AutoML 플랫폼 선택
    : Google AutoML, H2O.ai, DataRobot 등

  2. AutoML 모델 구축
    : AutoML 플랫폼을 사용하여 본격적으로 머신러닝 모델 구축!

  3. 모델 평가 및 튜닝
    : 교차 검증, 그리드 서치 등의 기법을 사용하여 최적의 모델 탐색

  4. 모델 배포
    : 최종 모델을 선택 후 배포
    : 모델을 프로덕션 환경에 배포하고, 실제 데이터를 이용하여 예측 수행
    👉 프로덕션 환경
    : 실제로 머신러닝 모델을 운영하고 예측을 수행하는 환경
    ex. 모델이 은행 시스템과 연결되어, 대출 가능 여부에 대한 예측을 수행


4. 실습

1) 개요

  • 주제: MNIST 데이터 분류
  • 데이터: colab이 제공하는 MNIST 데이터
  • 사용 모델: autokeras
  • 사용 이유
    • 무료 서비스👍👍👍👍👍
    • 설치가 간단하다
    • 코드도 간단하다. 일반 모델링 코드처럼 뚝딱

2) 코드

# 1. autokeras 설치
!pip install autokeras

# 2. 라이브러리 불러오기 
import tensorflow as tf
from tensorflow.keras.datasets import mnist
import autokeras as ak

# 3. MNIST 데이터셋 로드
(x_train, y_train), (x_test, y_test) = mnist.load_data()

# 4. AutoKeras 모델 정의
clf = ak.ImageClassifier(
    num_classes=10, # 출력 클래스의 수
    multi_label=False, # 다중 레이블 분류 수행 여부
    max_trials=10, # 모델 탐색 횟수
    objective='val_accuracy' # 최적화 기준
)

# 5. 모델 훈련
clf.fit(x_train, y_train, epochs=10)

# 6. 모델 평가
score = clf.evaluate(x_test, y_test)
print('Test accuracy:', score[1])

3) 특이점

autokeras 결과가 너무 안나와서 autokeras 찾아보다가 알게된 특이점을 작성하려한다.

💡 autokeras는 최적화된 딥러닝 모델 탐색을 자동화하는 도구이다!

🤷‍♂️ 의문 1. 딥러닝 관련 자동화 도구인데 auto'ML'에 속하나요?
👉 (오늘의 선생님 chatgpt가 잘못알려준줄 알았다) 확실히 automl에 속합니다!


🤷‍♂️ 의문 2. 그럼 머신러닝 자동화는 못하나요?
👉 할 수는 있지만 autokeras는 딥러닝 자동화를 목적으로 만들어졌기 때문에, 머신러닝 자동화를 하고싶다면 다른 모델을 사용하는게 더 적합합니다.


🤷‍♂️ 궁금 3. 그럼 머신러닝 자동화 코드를 알려주세요

👉
import pandas as pd
import autokeras as ak
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# 1. iris 데이터셋 로드
iris = load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
y = pd.Series(iris.target)

# 2. 데이터셋 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# 3. AutoKeras 분류 모델 생성
clf = ak.StructuredDataClassifier(max_trials=10)

# 4. 모델 훈련
clf.fit(X_train, y_train, epochs=10)

# 5. 모델 평가
accuracy = clf.evaluate(X_test, y_test)[1]
print('Accuracy:', accuracy)

🤷‍♂️ 궁금 4. 기존 코드와 위 머신러닝 코드의 차이점이 뭔가용?
👉 사용된 클래스 차이

  • 딥러닝: ImageClassifier
  • 머신러닝: StructuredDataClassifier
    💡autokeras가 딥러닝 자동화 도구이지만, 그렇다고 머신러닝에 사용하는 클래스의 성능이 떨어지진 않는다고 합니다~

4) 결과

없다.
아니 아직 없다
두시간째 돌리는중인데 아직도 돌고있다.
그래.. 나 취업하기전까지만 결과를내다오..

.
.
.

근데 혹시나..혹시나 평생돌아갈까봐..
선생님께 autokeras의 일반적인 결과 도출 형태를 여쭤봣다...



[참고]
🔻 2022 automl 파이썬 라이브러리
https://moez-62905.medium.com/top-automl-python-libraries-in-2022-2d306cf7acf0

🔻 automl 패키지 별 특성 및 설치 코드
https://data-newbie.tistory.com/915

🔻 automl과 그 한계점
https://yozm.wishket.com/magazine/detail/1267/

0개의 댓글