참고로 보는 AI 학습 코드 예시 - Part 2
이번에는 지난 수업보다 조금 더 복잡한 AI 모델을 만들어보겠습니다.
이번에는 AI가 단순히 주어진 값의 2배가 아닌, 입력값의 제곱에 1을 더한 값을 예측하는 법을 배울 것입니다. 예를 들어, 입력값이 2일 때 결과값은 5(2의 제곱 4에 1을 더한 값)가 됩니다.
코드 설명
이제 실제 코드를 살펴보면서 각 부분이 무엇을 하는지 단계별로 살펴보겠습니다.
import tensorflow as tf
import numpy as np
AI 학습에 필요한 도구를 불러오는(import) 과정입니다. tensorflow
는 AI 모델을 만드는 도구이고, numpy
는 숫자를 다루는 도구입니다.
x_train = np.array([1.0, 2.0, 3.0, 4.0, 5.0], dtype=np.float32)
y_train = np.array([2.0, 5.0, 10.0, 17.0, 26.0], dtype=np.float32)
AI에게 보여줄 예시 데이터를 준비합니다.
x_train
은 입력값, y_train
은 그에 대응하는 결과값입니다. 각 결과값은 입력값의 제곱에 1을 더한 값입니다.
model = tf.keras.Sequential([
tf.keras.layers.Dense(50, activation='relu', input_shape=[1]),
tf.keras.layers.Dense(50, activation='relu'),
tf.keras.layers.Dense(1)
])
이 부분은 AI 모델의 구조를 만듭니다. 이전보다 복잡해졌습니다. 첫 번째 층에서 50개의 뉴런을 사용하고, relu
라는 활성화 함수를 사용합니다.
두번째 층에서도 50개의 뉴런을 사용하고, relu 활성화 함수를 사용합니다. 마지막 층에서는 1개의 뉴런을 사용합니다.
이렇게 하면 AI가 더 복잡한 패턴을 학습할 수 있습니다.
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.01), loss='mean_squared_error')
여기서는 AI가 학습하는 방식을 설정합니다. Adam
최적화 알고리즘을 사용하고, 학습률(learning rate)을 0.01로 설정했습니다.
손실 함수는 loss
로 설정하며, mean_squared_error
(평균 제곱 오차)를 사용합니다. 이 함수는 AI가 예측한 값과 실제 값의 차이를 계산합니다.
history = model.fit(x_train, y_train, epochs=4, verbose=0)
이제 AI를 실제로 훈련시킵니다. 전체 데이터를 100번 반복해서 학습합니다.
print(f"최종 손실: {history.history['loss'][-1]:.4f}")
학습이 끝난 후의 최종 손실
값을 출력합니다. 이 값이 작을수록 AI가 데이터를 잘 학습했다는 의미입니다.
x_test = np.array([2.0, 5.0, 8.0], dtype=np.float32)
predictions = model.predict(x_test, verbose=0)
print("\n예측 결과:")
for x, pred in zip(x_test, predictions):
print(f"x = {x:.1f}, 예측값 = {pred[0]:.2f}")
여기서는 새로운 입력값(2, 5, 8)에 대해 AI가 예측한 결과를 출력합니다.
print("\n실제 값과 예측값 비교:")
for x, y in zip(x_train, y_train):
pred = model.predict(np.array([x]), verbose=0)[0][0]
print(f"x = {x:.1f}, 실제값 = {y:.2f}, 예측값 = {pred:.2f}")
마지막으로, 학습에 사용된 데이터에 대해 AI의 예측값과 실제값을 비교합니다.
실습 환경의 코드 실행 버튼을 클릭하고, AI를 직접 훈련시켜보세요!
코드로 훈련시키는 AI
이번 코드는 이전보다 조금 더 복잡해 보일 수 있습니다. 하지만 기본 원리는 같습니다. AI는 주어진 데이터로부터 패턴을 학습하고, 그 패턴을 바탕으로 새로운 상황에 대응하는 것입니다.
실제 AI 시스템은 이보다 훨씬 더 복잡하고 다양한 데이터를 다룹니다. AI 프로그래밍에 대해 더 깊이 알고 싶으시다면, 파이썬 기초부터 차근차근 배워나가는 것을 추천드립니다.
다음 내용이 궁금하다면?
코드프 렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!