2026/05/30 4

MNIST Lab - 기본 MLP에 random 1px shift 적용하기

MNIST Lab 데이터 증강 실험기본 MNIST MLP 구현에서 출발해 학습 데이터에만 1픽셀 랜덤 이동을 적용하는 실험을 만든다.핵심부터 말하면기본 MNIST MLP 모델은 그대로 두고, 학습 batch에만 1픽셀 랜덤 이동을 적용해 본다. 모델 구조를 바꾸지 않고 입력 데이터만 살짝 흔들었을 때 학습 흐름이 어떻게 바뀌는지 확인하는 실험이다.이 글의 성공 기준독자가 기본 MLP 코드가 있는 상태에서 증강 함수와 학습 루프 변경 지점을 추가해 같은 실험을 실행할 수 있어야 한다.1. 왜 1픽셀만 움직이나선택지의미이번 글의 판단0픽셀원본 그대로 학습기본 모델 기준점이다.1픽셀숫자를 위/아래/좌/우/대각선으로 조금 이동MNIST 숫자의 의미는 유지하면서 위치 변화에 익숙하게 만든다.큰 이동숫자 위치가 크..

카테고리 없음 2026.05.30

MNIST Lab - 기본 MLP에서 CNN+BatchNorm 모델 구현하기

MNIST Lab CNN 실험기본 MNIST Lab 구현 위에 CNN+BatchNorm 모델을 직접 추가한 기록이다. 어떤 파일을 만들고 어떤 계층을 구현해야 하는지 코드 기준으로 정리한다.핵심부터 말하면이 글은 기본 MLP 구현에서 출발해 CNN+BatchNorm 모델을 새로 추가하는 실험 기록이다. 목표는 784개 픽셀을 한 줄로만 보던 모델에서 벗어나, MNIST 이미지를 이미지 모양 그대로 처리하는 모델을 직접 구성하는 것이다.이 글의 성공 기준독자가 기본 MNIST Lab 코드가 있는 상태에서 새 CNN 계층 파일, CNN 모델 파일, Momentum, CNN 학습 루프를 추가해 같은 방향의 실험을 실행할 수 있어야 한다.1. 왜 MLP에서 CNN으로 바꾸는가구분기본 MLPCNN 도전입력 해석..

카테고리 없음 2026.05.30

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

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 - 10BatchNorm..

카테고리 없음 2026.05.30

MNIST Lab 10편 - train/evaluate로 학습 루프 완성하기

MNIST Lab 기본 구현 10편이제 모든 부품을 실제 학습 루프로 연결한다. train()은 미니배치를 만들고, forward, loss, backward, optimizer update를 반복하며 epoch별 loss를 기록한다.1. 학습 루프의 전체 순서1데이터 섞기epoch마다 인덱스를 섞어 batch 순서를 바꾼다.2미니배치 만들기batch_size만큼 입력과 정답을 잘라 가져온다.3Forwardmodel.forward로 예측 확률을 만든다.4Losscross_entropy_loss로 벌점을 계산한다.5Backward 시작점softmax + cross entropy gradient를 만든다.6Backwardmodel.backward로 각 계층 gradient를 계산한다.7Updateoptimi..

카테고리 없음 2026.05.30