Lecture

Keras를 활용한 모델 학습 및 평가

이번 수업에는 케라스를 활용하여 간단한 신경망 모델을 학습하고 평가하는 방법을 살펴보겠습니다.


데이터 준비

Keras는 자체적으로 다양한 데이터셋을 제공하며, 이를 활용하여 딥러닝 모델 학습을 연습할 수 있습니다.

아래 예제는 손글씨 숫자 데이터셋(MNIST)을 사용하여 신경망 모델을 학습하는 과정을 보여줍니다.


MNIST 데이터 로드
from tensorflow.keras.datasets import mnist from tensorflow.keras.utils import to_categorical # MNIST 데이터 불러오기 (x_train, y_train), (x_test, y_test) = mnist.load_data() # 데이터 전처리: 정규화 및 원-핫 인코딩 x_train = x_train / 255.0 x_test = x_test / 255.0 # 이미지를 28x28 (2D 배열)에서 784개의 1차원 벡터로 변환 (신경망 입력 형식에 맞춤) x_train = x_train.reshape(-1, 28 * 28) x_test = x_test.reshape(-1, 28 * 28) # 숫자 레이블(정답)을 원-핫 인코딩으로 변환 (예: 숫자 3 → [0,0,0,1,0,0,0,0,0,0]) y_train = to_categorical(y_train, num_classes=10) y_test = to_categorical(y_test, num_classes=10)

코드 설명

  1. mnist.load_data()를 사용하여 손글씨 숫자 데이터셋을 불러옵니다.

  2. x_trainx_test는 각각 훈련 데이터와 테스트 데이터의 이미지 배열입니다.

  3. y_trainy_test는 각각 훈련 데이터와 테스트 데이터의 레이블(정답)입니다.

  4. x_trainx_test의 픽셀 값을 0~1 범위로 정규화합니다. 이는 신경망 학습을 더 효과적으로 만들기 위함입니다.

  5. x_trainx_test의 이미지를 28x28 크기의 2D 배열에서 784개의 1차원 벡터로 변환합니다. 이는 신경망의 입력 형식에 맞추기 위함입니다.

  6. to_categorical() 함수를 사용하여 레이블을 원-핫 인코딩으로 변환합니다. 예를 들어, 숫자 3은 [0,0,0,1,0,0,0,0,0,0]로 변환됩니다.

  7. num_classes=10은 0부터 9까지의 숫자 클래스 수를 지정합니다.


모델 학습

이제 이전 강의에서 정의한 신경망 모델을 학습시키겠습니다.

모델 학습
# 모델 학습 model.fit(x_train, y_train, epochs=10, batch_size=32, validation_split=0.2)

주요 매개변수

  • epochs=10: 에폭 수를 10으로 설정합니다. 즉, 전체 훈련 데이터를 10번 반복하여 학습합니다.

  • batch_size=32: 한 번에 32개의 샘플을 사용하여 가중치를 업데이트합니다.

  • validation_split=0.2: 학습 데이터의 20%를 검증 데이터로 사용합니다.


모델 평가 및 예측

학습이 완료된 모델을 테스트 데이터로 평가하고, 새로운 입력 데이터에 대한 예측을 수행할 수 있습니다.

모델 평가 및 예측
# 모델 평가 test_loss, test_acc = model.evaluate(x_test, y_test) # 예측 수행 predictions = model.predict(x_test)

코드 설명

  1. model.evaluate(x_test, y_test)를 사용하여 테스트 데이터에 대한 성능을 평가합니다.

  2. model.predict(x_test[:5])를 호출하여 테스트 데이터 일부의 예측값을 출력합니다.


지금까지 케라스를 활용하여 신경망 모델을 생성하고 학습한 후 평가하는 기본적인 과정을 배웠습니다.

다음 수업에서는 지금까지 Keras에 대해 배운 내용을 바탕으로 간단한 퀴즈를 풀어보겠습니다.

Mission
0 / 1

Keras에서 신경망 모델을 학습할 때, validation_split=0.2는 학습 데이터의 20%를 검증 데이터로 사용한다.

True
False

Lecture

AI Tutor

Design

Upload

Notes

Favorites

Help