Keras를 활용한 모델 학습 및 평가
이번 수업에는 케라스를 활용하여 간단한 신경망 모델을 학습하고 평가하는 방법을 살펴보겠습니다.
데이터 준비
Keras는 자체적으로 다양한 데이터셋을 제공하며, 이를 활용하여 딥러닝 모델 학습을 연습할 수 있습니다.
아래 예제는 손글씨 숫자 데이터셋(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)
코드 설명
-
mnist.load_data()를 사용하여 손글씨 숫자 데이터셋을 불러옵니다. -
x_train과x_test는 각각 훈련 데이터와 테스트 데이터의 이미지 배열입니다. -
y_train과y_test는 각각 훈련 데이터와 테스트 데이터의 레이블(정답)입니다. -
x_train과x_test의 픽셀 값을 0~1 범위로 정규화합니다. 이는 신경망 학습을 더 효과적으로 만들기 위함입니다. -
x_train과x_test의 이미지를 28x28 크기의 2D 배열에서 784개의 1차원 벡터로 변환합니다. 이는 신경망의 입력 형식에 맞추기 위함입니다. -
to_categorical()함수를 사용하여 레이블을 원-핫 인코딩으로 변환합니다. 예를 들어, 숫자 3은[0,0,0,1,0,0,0,0,0,0]로 변환됩니다. -
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)
코드 설명
-
model.evaluate(x_test, y_test)를 사용하여 테스트 데이터에 대한 성능을 평가합니다. -
model.predict(x_test[:5])를 호출하여 테스트 데이터 일부의 예측값을 출력합니다.
지금까지 케라스를 활용하여 신경망 모델을 생성하고 학습한 후 평가하는 기본적인 과정을 배웠습니다.
다음 수업에서는 지금까지 Keras에 대해 배운 내용을 바탕으로 간단한 퀴즈를 풀어보겠습니다.
이 챕터의 강의 · 데이터에서 패턴을 학습하는 프로그램, 머신러닝
- 1. 화제의 그 단어, 머신러닝이란?
- 2. 인간의 뇌를 모방한 신경망이란?
- 3. 퍼셉트론이 동작하는 원리
- 4. 머신러닝을 더 깊게, 딥러닝이란?
- 5. 머신러닝 vs 딥러닝 핵심 차이점 정리
- 6. 선택형 퀴즈
- 7. AI를 학습시킨다는 것은 무슨 의미일까?
- 8. AI 학습의 결과물 - 행렬로 구성된 파일
- 9. 정답과 함께 알려주는 지도 학습
- 10. 정답 없이 스스로 패턴을 찾는 비지도 학습
- 11. 보상을 통해 배우는 강화 학습
- 12. 빈칸 채우기 퀴즈
- 13. 머신러닝과 딥러닝을 위한 라이브러리, TensorFlow
- 14. 텐서플로우의 기본 단위, 텐서(Tensor)
- 15. 텐서의 차원
- 16. 선택형 퀴즈
- 17. 텐서 연산 이해하기
- 18. 자주 사용하는 TensorFlow API 5가지
- 19. TensorFlow로 간단한 선형 회귀 모델 만들기
- 20. 빈칸 채우기 퀴즈
- 21. 쉽고 직관적인 신경망 라이브러리, Keras
- 22. Keras를 활용한 모델 학습 및 평가
- 23. 선택형 퀴즈
Keras에서 신경망 모델을 학습할 때, validation_split=0.2는 학습 데이터의 20%를 검증 데이터로 사용한다.
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말