

확률부터 LLM까지, 원리부터 제대로 배우는 자기주도 학습 플랫폼
원하는 개념·랩·가이드를 검색해보세요
Ctrl K정답을 몰라도 괜찮습니다 — 먼저 예측을 정해야 시뮬레이션 결과가 기억에 남습니다. 예측을 고른 뒤 아래 시뮬레이션으로 직접 확인하고, 그다음 결과를 열어 보세요.
현재 구조: 2 → 4 → 2 · Adam(학습률 0.02) · 학습 70% / 테스트 30%
XOR·동심원·두 나선 2D 데이터(생성 규칙 공개)에 은닉층 0~3개 × 층당 뉴런 2~16개 × tanh/ReLU 구조를 조립해 브라우저에서 실제 학습(Adam 0.02, 300에폭)시키고, 결정 경계가 실시간으로 그려지는 것과 학습/테스트 정확도(70/30 분할)를 실측하는 실험입니다.
바로잡는 오개념: "층과 뉴런은 늘릴수록 항상 좋다"는 착각 — 용량이 커지면 표현력과 함께 훈련 노이즈를 암기하는 힘도 커져서, 데이터 규모에 맞지 않는 큰 모델은 과적합으로 테스트 성능이 오히려 나빠진다.
— 정답 대신 힌트로 유도합니다. 지금 화면의 실험 상태를 알고 답해요.
예: “방금 결과가 이론과 다른데 왜죠?”, “이 값을 올렸는데 왜 반대로 변하죠?”
은닉층이 1개라도 뉴런이 충분히 많으면, 임의의 연속 함수를 (콤팩트 영역에서) 원하는 정확도로 근사할 수 있습니다 (Cybenko 1989; Hornik, Stinchcombe & White 1989). 단, 이것은 "표현이 가능하다"는 존재 증명일 뿐입니다 — 필요한 뉴런 수가 매우 클 수 있고, 경사하강이 그 가중치를 실제로 찾아낸다는 보장도, 유한한 데이터에서 잘 일반화한다는 보장도 아닙니다. 나선 실험에서 봤듯 실제로는 깊이·폭·학습이 모두 맞아야 합니다.
두 나선 분류는 1980년대 말부터 신경망의 난제 벤치마크로 쓰인 고전 과제입니다 (Lang & Witbrock, 1988, "Learning to Tell Two Spirals Apart"). 원 논문의 3회전 나선은 원저자들조차 순수 MLP로는 풀지 못해 지름길(shortcut) 연결이 있는 특수한 망을 썼을 만큼 어렵습니다 — 이 실습의 나선은 학습이 가능하도록 회전 수를 줄인 단순화 버전입니다.
과적합은 모델 용량과 데이터 양·품질의 관계에서 나오는 자연스러운 현상이며, 좋은 개발자의 실력은 이를 "안 겪는 것"이 아니라 감지하고 관리하는 것입니다. 감지 도구가 학습/테스트 정확도의 분리이고, 관리 도구(드롭아웃·가중치 감쇠·조기 종료)는 정규화 실습에서 다룹니다. 큰 모델이 작은 모델보다 항상 나은 것도 아닙니다 — 노이즈까지 학습해 일반화가 나빠질 수 있기 때문입니다.