🧠 딥러닝 시뮬레이터

신경망 구조를 직접 조작하며 딥러닝 원리를 시각적으로 학습하세요.

딥러닝(Deep Learning)은 다층 신경망을 이용해 데이터에서 복잡한 패턴을 자동으로 학습하는 기법입니다. 구조 & 개념에서 신경망 레이어를 시각화하고, 파라미터 가이드에서 각 하이퍼파라미터의 의미와 효과를 확인하며, 훈련 시뮬레이터에서 파라미터가 학습 곡선에 미치는 영향을 직접 실험해 보세요.
입력 특성 4
은닉층 수 2
은닉 노드 5
출력 클래스 2
입력층 (Input Layer) — 원시 데이터 피처
은닉층 (Hidden Layer) — 특징 추출 및 비선형 변환
출력층 (Output Layer) — 예측값 / 클래스 확률
➡️
순전파 (Feedforward)
입력 데이터가 각 층의 가중치(W)·편향(b)·활성화 함수를 차례로 통과하며 출력층까지 전달됩니다.
a = f(Wx + b)
⬅️
역전파 (Backpropagation)
출력 오차를 체인룰(Chain Rule)로 미분해 각 가중치의 기울기(∂L/∂W)를 역방향으로 계산합니다. 이를 통해 손실을 줄이는 방향으로 W를 업데이트합니다.
📉
경사하강법 (Gradient Descent)
손실 함수의 기울기 반대 방향으로 가중치를 조금씩 이동시켜 최솟값을 찾습니다.
W ← W − η · ∂L/∂W
η는 학습률(learning rate)입니다.
에포크 (Epoch)
전체 데이터셋 반복 횟수
훈련 제어
1 epoch = 전체 학습 데이터를 한 번 모두 학습. 에포크가 너무 적으면 과소적합, 너무 많으면 과적합이 발생합니다. 파란선=Train, 주황선=Val.
Epochs 60
적을 때 → 과소적합
(Underfitting)
많을 때 → 과적합 위험
(Overfitting)
배치 크기 (Batch Size)
1회 업데이트에 사용하는 샘플 수
훈련 제어
전체 데이터를 배치 단위로 나눠 기울기를 계산합니다. 작은 배치는 노이즈가 크지만 일반화에 유리하고, 큰 배치는 안정적이지만 메모리를 더 씁니다.
Batch 32
소(4~16) → 노이즈↑
일반화↑, 느림
대(256~) → 안정적
메모리↑, 과적합↑
학습률 (Learning Rate)
η — 가중치 업데이트 보폭
훈련 제어
손실 함수 기울기에 곱하는 스케일 계수입니다. 너무 크면 손실이 발산하고, 너무 작으면 수렴이 매우 느려집니다. 회색=느림 · 파랑=현재 · 빨강=너무 큼.
LR 0.001
너무 작 → 수렴 느림
Local minima 위험
너무 큼 → 발산
Loss 진동·폭발
옵티마이저 (Optimizer)
가중치 업데이트 알고리즘
훈련 제어
SGD: 단순 기울기 하강. Momentum: 이전 방향 관성 추가. RMSprop: 기울기 크기를 적응 조절. Adam: Momentum + RMSprop 결합, 가장 널리 사용.
비교
✓ Adam: 대부분의 경우 기본 선택. 학습률 조정 부담 적고 빠른 수렴.
활성화 함수 (Activation)
비선형 변환 함수
구조
선형 변환만으로는 복잡한 패턴을 학습할 수 없어 비선형 활성화 함수를 추가합니다. 은닉층은 주로 ReLU, 출력층 다중분류에 Softmax, 이진분류에 Sigmoid를 씁니다.
함수
Sigmoid/Tanh → 깊은 망에서
기울기 소실(Vanishing)
ReLU → 빠른 수렴
은닉층 표준 선택
드롭아웃 (Dropout)
정규화 — 랜덤 노드 비활성화
정규화
훈련 중 매 배치마다 지정 비율의 뉴런을 무작위로 끄는 기법입니다. 특정 뉴런 의존도를 낮춰 과적합을 방지합니다. 추론(Inference) 시에는 모든 뉴런을 사용합니다.
Rate 0.3
0 → 정규화 없음
과적합 위험
0.5+ → 과소적합
학습 속도 저하
에포크 80
배치 크기 32
학습률 η 0.001
옵티마이저
드롭아웃 0.2
은닉층 수 2
데이터셋 난이도
손실 곡선 (Loss)
Train
Val
정확도 곡선 (Accuracy)
Train
Val
최종 Val 정확도
훈련 후 확인
최적 에포크
Val loss 최솟값 시점
과적합 갭
Train−Val Acc
진단
적합도 판단
📉
과소적합 (Underfitting)
High Bias
모델이 너무 단순해 훈련 데이터의 패턴도 제대로 학습하지 못하는 상태.
Train 오차 ↑ · Val 오차 ↑
해결: 복잡도↑ · 에포크↑ · 특성 추가
적합 (Good Fit)
Balanced
훈련 오차와 검증 오차가 모두 낮고 비슷한 이상적인 상태.
Train 오차 ↓ · Val 오차 ↓ (비슷)
목표: 편향-분산 트레이드오프의 최적 지점
📈
과적합 (Overfitting)
High Variance
훈련 데이터를 외워 새로운 데이터에 일반화하지 못하는 상태.
Train 오차 ↓ · Val 오차 ↑
해결: 드롭아웃 · 정규화 · 데이터 증강
📐 다항식 복잡도 시뮬레이터 — 차수를 조절해 과적합/과소적합을 직접 확인하세요
다항식 차수 (모델 복잡도) 3
1~2: 과소적합 · 3~5: 적합 · 7+: 과적합
노이즈 수준 0.3
훈련 데이터 크기 20
데이터 & 피팅 곡선
복잡도 vs 오차 — 편향-분산 트레이드오프
Train MSE
Val MSE
진단
📈 학습 곡선 — 훈련 데이터 크기 증가에 따른 오차 변화 (현재 차수 기준)
학습 곡선 해석 — 데이터가 적을 때: Train 오차 ↓, Val 오차 ↑ (과적합 패턴). 데이터가 충분히 많아지면 두 곡선이 수렴합니다. 높은 위치에서 수렴 → 과소적합 / 낮은 위치에서 수렴 → 양호. 결론: 과적합은 데이터 추가로도 완화할 수 있습니다.
📈 과적합 해결 방법
  • 💧 드롭아웃(Dropout) — 훈련 중 뉴런을 무작위 비활성화
  • 📏 L1 / L2 정규화 — 가중치 크기에 패널티 부여
  • 📦 데이터 증강 — 훈련 샘플 수 늘리기
  • ✂️ Early Stopping — Val 오차 상승 시점에 조기 종료
  • 🧩 모델 단순화 — 레이어·뉴런 수 줄이기
  • 🔀 배치 정규화 — 층 간 입력 분포 안정화
📉 과소적합 해결 방법
  • 🧠 모델 복잡도 증가 — 레이어·뉴런·차수 추가
  • 에포크 증가 — 더 오래 훈련시키기
  • 📐 특성 공학 — 유용한 특성 추가·변환
  • 📉 정규화 감소 — Dropout rate 낮추기
  • 학습률 조정 — 수렴 속도 최적화
  • 🔣 활성화 함수 변경 — ReLU 등 비선형성 강화