카테고리 없음

MNIST Lab 11편 - 21개 테스트와 98.41% 결과 해석하기

cedis 2026. 5. 30. 22:49

MNIST Lab 기본 구현 11편

마지막 글은 구현 결과를 해석한다. 21개 테스트는 부품 검증이고, 98.41% 정확도는 실제 MNIST 학습 검증이다. 둘은 비슷해 보이지만 의미가 다르다.

1. 21 passed가 의미하는 것

테스트 21개는 ReLU, Softmax, Affine, 손실 함수, 옵티마이저, 네트워크 조립, 학습 루프가 최소 조건을 만족했는지 확인한다.

구분 확인한 것 확인하지 않는 것
계층 테스트 forward/backward shape와 기본 계산 실제 데이터에서 정확도가 높은지
optimizer 테스트 파라미터가 변하는지 최적 학습률인지
train/evaluate 테스트 루프가 동작하는지 loss가 충분히 잘 내려가는지

2. 실제 학습 결과

항목
모델 구조 784 - 512 - 256 - 10
BatchNorm 사용
Dropout 사용, ratio 0.5
Optimizer Adam, lr 0.001
Epoch / Batch 15 epoch, batch size 128
Test Accuracy 98.41%
Parameter Count 537,354
Training Time 264.63초, 약 4분 25초
loss_history:
0.4089 -> 0.1936 -> 0.1521 -> 0.1265 -> 0.1107
-> 0.0981 -> 0.0928 -> 0.0820 -> 0.0760 -> 0.0706
-> 0.0673 -> 0.0647 -> 0.0594 -> 0.0569 -> 0.0538

test_accuracy: 98.41%
params: 537,354
elapsed_sec: 264.63

3. 결과를 어떻게 봐야 하나

98.41%는 과제 기준으로 충분히 좋은 결과다. 하지만 이 모델은 이미지를 28x28 구조로 보는 CNN이 아니라, 784개 숫자 목록으로 펼쳐 보는 MLP다.

판단 의미
과제 완성선 95%, 97% 기준을 모두 넘었다.
구현 검증 21개 테스트와 실제 학습 결과가 함께 확인되었다.
개선 여지 이미지의 지역 구조를 직접 활용하지는 않는다.
다음 실험으로 이어지는 이유

여기서 CNN+BatchNorm으로 넘어가면 숫자의 획처럼 가까운 픽셀들이 만드는 지역 패턴을 직접 볼 수 있다. 그래서 다음 개선 글에서 99%를 넘기는 구조를 실험한다.

이번 글에서 기억할 것

21 passed는 구현 부품 검증이고, 98.41%는 실제 학습 검증이다. 이 둘을 함께 봐야 기본 구현이 완성됐다고 말할 수 있다.

스스로 점검

  1. 21개 테스트 통과와 실제 정확도는 어떻게 다른가?
  2. MLP가 MNIST를 784개 숫자 목록으로 본다는 말은 무슨 뜻인가?
  3. CNN으로 넘어갈 이유는 무엇인가?

다음 글 예고

다음 큰 흐름에서는 이 기본 구현을 바탕으로 CNN+BatchNorm 구조를 추가한다. 그 뒤 train-only random 1px shift로 한 번 더 밀어본다.

한 줄 정리

21 passed는 구현 부품 검증이고, 98.41%는 실제 학습 검증이다. 이 둘을 함께 봐야 기본 구현이 완성됐다고 말할 수 있다.