반응형
1. 신경망(Neural Network) 복습
신경망은 여러 개의 뉴런(Neuron) 이 층(Layer) 형태로 연결된 구조입니다.
데이터가 입력층(Input Layer) → 은닉층(Hidden Layer) → 출력층(Output Layer) 을 거치며 점차 복잡한 패턴을 학습합니다.
1.1 신경망의 주요 요소
- 가중치(Weight): 입력 데이터의 중요도를 조절
- 활성화 함수(Activation Function): 뉴런이 출력을 낼지 결정 (ReLU, Sigmoid 등)
- 손실 함수(Loss Function): 예측값과 실제값 차이를 측정
- 옵티마이저(Optimizer): 가중치를 조정해 손실을 최소화 (SGD, Adam 등)
2. 왜 신경망을 쓰는가?
머신러닝 전통 기법은 사람이 특징을 직접 뽑아야 했습니다.
반면 신경망은 데이터에서 특징을 자동으로 학습합니다.
예시:
- 전통적 방법: 사진에서 "고양이 귀, 수염 길이" 등을 사람이 정의
- 신경망: 수많은 사진을 학습해 고양이를 스스로 인식
3. 이미지 분류(Image Classification)란?
이미지 분류는 주어진 사진이 어떤 클래스(종류)에 속하는지 판별하는 작업입니다.
예: MNIST 데이터셋 → 28x28 픽셀 손글씨 숫자 이미지를 0~9로 분류
4. 딥러닝 개발 절차
- 데이터 준비: 학습/검증 데이터셋 구분
- 모델 설계: 층(Layer) 쌓기
- 학습(Training): 데이터로 가중치 최적화
- 평가(Evaluation): 정확도, 손실값 확인
- 예측(Prediction): 새로운 입력에 결과 출력
5. 실습 – MNIST 손글씨 분류 (TensorFlow/Keras)
환경 준비
pip install tensorflow
import tensorflow as tf
from tensorflow.keras import layers, models
# 1. 데이터 로드
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()
# 2. 데이터 전처리
X_train = X_train.reshape(-1, 28, 28, 1).astype("float32") / 255.0
X_test = X_test.reshape(-1, 28, 28, 1).astype("float32") / 255.0
# 3. 신경망 모델 구성
model = models.Sequential([
layers.Flatten(input_shape=(28, 28, 1)), # 28x28 → 784 벡터
layers.Dense(128, activation="relu"), # 은닉층
layers.Dense(10, activation="softmax") # 출력층 (숫자 0~9)
])
# 4. 컴파일
model.compile(optimizer="adam",
loss="sparse_categorical_crossentropy",
metrics=["accuracy"])
# 5. 학습
model.fit(X_train, y_train, epochs=5, validation_data=(X_test, y_test))
# 6. 평가
test_loss, test_acc = model.evaluate(X_test, y_test)
print("테스트 정확도:", f"{test_acc*100:.2f}%")
6. 실행 결과 예시
Epoch 1/5
1875/1875 [==============================] - 5s 2ms/step - loss: 0.3000 - accuracy: 0.9130 - val_loss: 0.1430 - val_accuracy: 0.9580
...
테스트 정확도: 97.8%
7. 오늘의 핵심 요약
- 신경망은 가중치 + 활성화 함수로 이루어진 계층적 구조
- 이미지 분류는 대표적인 신경망 활용 분야
- TensorFlow/Keras로 간단한 모델을 쉽게 구현 가능
- MNIST 데이터셋으로 97% 이상 정확도 달성
반응형
'개발 창고 > AI' 카테고리의 다른 글
순환 신경망(RNN, Recurrent Neural Network) 기초 (0) | 2025.08.20 |
---|---|
자연어 처리(NLP) 기초 – 텍스트 데이터 다루기와 감정 분석 실습 (0) | 2025.08.19 |
비지도학습 실습: 군집과 차원 축소 (2) | 2025.08.16 |
지도학습 실습: 분류(Classification)와 회귀(Regression) (2) | 2025.08.16 |
데이터 전처리와 시각화: AI 모델 학습을 위한 필수 단계 (2) | 2025.08.14 |