← AI 놀이터 홈으로

🧠 신경망 놀이터 (Neural Network Playground)

작은 신경망을 브라우저에서 직접 학습시켜 보세요. 배경색은 신경망의 '생각'(예측)이고, 점은 정답 데이터예요. 배경이 점의 색과 같아지도록 학습됩니다.

📖 따라하기 가이드 — 1 / 7 단계

Step 1. 화면 읽는 법

점이 정답 데이터(파랑/주황 두 편), 배경색이 신경망의 생각이에요. 처음엔 아무렇게나 칠해져 있죠 — 학습 전 신경망은 백지상태니까요. 오른쪽 구조도의 연결선 굵기가 가중치, 즉 신경망이 배운 내용 전부입니다.
🎯 미션: ▶ 학습 시작을 눌러 배경이 점의 색을 따라가는 걸 지켜보세요
직선으로는 절대 못 나눠요. 뉴런 3개 이상 필요!

🗺️ 결정 경계 — 신경망의 생각

파란 영역 = "파란 점이라고 생각해", 주황 영역 = "주황 점". 옅은 곳은 자신이 없는 곳이에요.

🎛️ 신경망 만들기

활성화 함수 (구부리는 방법)

같은 데이터로 함수만 바꿔 다시 학습해 보세요 — ReLU는 경계가 직선 조각으로 각지고, tanh는 부드럽고, 시그모이드는 눈에 띄게 느려요. 왜 그런지는 ⚡ 활성화 함수 실험실에서!

🕸️ 신경망 내부 — 연결선이 곧 '배운 것'

선이 굵고 파랗다 = 강한 양(+)의 가중치, 굵고 주황 = 강한 음(−)의 가중치. 학습이란 이 선들의 굵기를 조정하는 일이에요.

📉 손실 그래프

📊 지금 상태

정확도
—
학습 횟수 (epoch)
0
손실
—

🧪 이렇게 실험해 보세요

  1. 두 덩어리를 뉴런 1개로 학습 → 직선 경계 하나로 충분!
  2. 동그라미를 뉴런 2개로 학습 → 아무리 기다려도 안 돼요. 3개 이상으로 늘려 보세요. 왜일까요?
  3. 체크무늬(XOR)는 뉴런 몇 개부터 풀리나요? (역사적으로 단층 신경망이 못 풀어서 AI 겨울에 한몫했던 문제!)
  4. 나선은 은닉층 2개 + 뉴런 8개 + 오랜 기다림이 필요해요
  5. 같은 설정에서 가중치 초기화만 다시 하면 매번 같은 모양으로 학습될까요?
  6. 동그라미를 tanh vs ReLU로 각각 학습해 보세요 — 경계 모양(부드러움 vs 각짐)이 다르죠? 시그모이드로 나선을 학습하면 왜 한참 걸릴까요?

🧮 수식과 파이썬

h = tanh(W₁x + b₁), ŷ = σ(W₂h + b₂)
층마다 '직선 긋기(Wx+b) → 구부리기(tanh)'를 반복해요.
🐍 파이썬 코드로 보면? (펼치기)
import torch
import torch.nn as nn

model = nn.Sequential(
    nn.Linear(2, 4),   # 입력 2 → 은닉 뉴런 4
    nn.Tanh(),         # 직선을 부드럽게 구부리기
    nn.Linear(4, 1),   # 은닉 4 → 출력 1
    nn.Sigmoid(),      # 0~1 확률
)
loss_fn = nn.BCELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.5)

for epoch in range(3000):
    p = model(X)              # X: (N, 2) 좌표들
    loss = loss_fn(p, y)      # y: (N, 1) 정답 0/1
    optimizer.zero_grad()
    loss.backward()           # 역전파 — 모든 가중치의 기울기
    optimizer.step()