본문으로 건너뛰기
실습하기

참고로 보는 AI 학습 코드 예시 - Part 2

이번에는 지난 수업보다 조금 더 복잡한 AI 모델을 만들어보겠습니다.

이번에는 AI가 단순히 주어진 값의 2배가 아닌, 입력값의 제곱에 1을 더한 값을 예측하는 법을 배울 것입니다. 예를 들어, 입력값이 2일 때 결과값은 5(2의 제곱 4에 1을 더한 값)가 됩니다.


코드 설명

이제 실제 코드를 살펴보면서 각 부분이 무엇을 하는지 단계별로 살펴보겠습니다.

AI 학습에 필요한 도구 가져오기
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 강의를 등록해 주세요!