AutoKeras는 AutoML을 위한 Keras 기반 라이브러리이다. 이는 복잡한 모델 구조나 튜닝 없이 최적의 딥러닝 모델을 빠르게 개발할 수 있게 도와준다. 기능은 다음과 같다.
먼저, 라이브러리를 설치해준다.
!pip install autokeras
import numpy as np
import tensorflow as tf
import autokeras as ak
# 데이터 로딩
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
# 데이터 전처리: 스케일링
x_train = x_train.astype('float32') / 255.
x_test = x_test.astype('float32') / 255.
# 데이터 전처리: 차원 확장 (AutoKeras에 맞게 4D로 만듦)
x_train = np.expand_dims(x_train, -1)
x_test = np.expand_dims(x_test, -1)
# AutoKeras 모델 생성
clf = ak.ImageClassifier(overwrite=True, max_trials=1)
# 모델 훈련
history = clf.fit(x_train, y_train, epochs=10)
# 모델 평가
print(clf.evaluate(x_test, y_test))
모델을 알아서 생성해 주었다. 만들어진 모델의 아키텍쳐를 보면 다음과 같다.
import matplotlib.pyplot as plt
# 모델의 구성 출력
model = clf.export_model()
model.summary()
놀라운 기능이다. 손실/정확도 그래프는 다음과 같다.
plt.subplot(1, 2, 1)
plt.plot(history.history['loss'], label='Train Loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()
plt.subplot(1, 2, 2)
plt.plot(history.history['accuracy'], label='Train Accuracy')
plt.xlabel('Epochs')
plt.ylabel('Accuracy')
plt.legend()
plt.tight_layout()
plt.show()
기계 학습 모델의 전체 과정을 자동화하여, 비전문가도 쉽게 모델을 개발하고 최적화할 수 있게 하는 기술이다.
이번 시간에는 H2o 실습을 진행하겠다. 먼저, h2o 라이브러리를 설치하고 초기화 해준다.
pip install h2o
import h2o
from h2o.automl import H2OAutoML
# H2O 초기화
h2o.init()
데이터를 불러온다.
data = h2o.import_file\
("https://s3.amazonaws.com/erin-data/higgs/higgs_train_10k.csv")
데이터를 8:2로 분할해준다.
# 데이터 분할
train, test = data.split_frame([0.8])
응답 변수, 입력 변수를 설정한다.
response = "response"
train[response] = train[response].asfactor()
test[response] = test[response].asfactor()
AutoML 설정 및 실행
aml = H2OAutoML(max_runtime_secs=120, seed=1)
aml.train(y=response, training_frame=train)
여기서 120은 120초이고, 2분동안 학습이 끝나지 않으면 멈추게 된다.
성능을 평가한다.
lb = aml.leaderboard
print(lb.head())
최고 성능 모델을 예측한다.
preds = aml.leader.predict(test)
preds
기존의 머신러닝보다 훨씬 간단한 모습이다.
허허... 인공지능에 관해 잠깐 배운적 있긴 하지만 역시 쉽지 않다. 인공지능을 배우고 적용하고 써먹는 분들 존경합니다.. 아무튼. 그래서 오늘은 수업을 듣는데 신기..해야 하는데 배웠던거라 그냥 그랬다 ㅎㅎ. 강사님한테 피드백 많이 해야하는데 그러지 못해 죄송할 따름이다. 이번주는 앞으로 gpt의 api를 따와서 무언가 만들어보는 시간, 프롬프트를 어떻게 잘 써야 좋은 결과가 나올지 등을 한다고 하는데 요거는 집중해서 들어야 할 것 같다. 단순 코더가 아닌 도구를 사용할 줄 아는 개발자가 되기 위해서!