본문 바로가기
데이터사이언스(Data Science)/ML & DL

[딥러닝] Keras 케라스 완전 기초 1편 - 첫 번째 딥러닝 모델 만들기 (10줄)

by 데이터 벌집 2025. 4. 15.
반응형

[딥러닝] Keras 케라스 완전 기초 1편 - 첫 번째 딥러닝 모델 만들기 (10줄)

🧠 Keras로 딥러닝 시작하기! 첫 모델을 10줄로 만들자

딥러닝, 어렵게 느껴지시죠? 하지만 오늘은 딱 10줄짜리 코드를 가지고, 여러분의 첫 번째 딥러닝 모델을 만들어볼 거예요.
바로 숫자 이미지(MNIST)를 분류하는 신경망 모델입니다. 😎


🛠️ 준비: Keras와 TensorFlow 설치

Keras는 TensorFlow 안에 포함돼 있습니다. 먼저 설치부터 해볼까요?

pip install tensorflow

 


🧪 실습: 숫자 이미지 분류 모델 만들기 (MNIST)

MNIST는 0부터 9까지 손글씨 숫자 이미지 데이터셋입니다. 이미지 크기는 28x28이고, 흑백입니다.

 

MNIST, 출처: 위키피디아

 

이제 딥러닝 모델을 만들어볼게요. 👇

# 1. 필요한 모듈 불러오기
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical

# 2. 데이터 불러오기
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(-1, 28*28) / 255.0  # 정규화
x_test = x_test.reshape(-1, 28*28) / 255.0
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)

# 3. 모델 구성
model = Sequential([
    Dense(128, activation='relu', input_shape=(784,)),
    Dense(10, activation='softmax')
])

# 4. 컴파일
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

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

# 6. 평가
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"🧾 테스트 정확도: {test_acc:.4f}")

 

📊 결과 예시

Epoch 5/5
1500/1500 [==============================] - 2s 1ms/step - loss: 0.1345 - accuracy: 0.9612 - val_loss: 0.1511 - val_accuracy: 0.9572
313/313 [==============================] - 0s 942us/step - loss: 0.1424 - accuracy: 0.9582
🧾 테스트 정확도: 0.9582

 

💡 설명 요약

  • Sequential: 층을 순서대로 쌓는 가장 단순한 모델
  • Dense: 완전 연결층. 128개의 뉴런 → relu 활성화 함수 사용
  • Softmax: 확률을 출력해 10개의 클래스 중 가장 높은 확률 선택
  • Adam: 대표적인 최적화 알고리즘 (정답을 더 빨리 찾게 도와줌)
  • categorical_crossentropy: 다중 분류 문제에서 사용하는 손실 함수

오늘은 단 10줄의 Keras 코드로 숫자를 분류하는 첫 딥러닝 모델을 만들었습니다.


생각보다 간단하죠? 다음 시간에는 이 모델을 더 똑똑하게 만드는 방법을 배워볼게요!

반응형