딥러닝(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.
Epochs60
적을 때 → 과소적합 (Underfitting)
많을 때 → 과적합 위험 (Overfitting)
배치 크기 (Batch Size)
1회 업데이트에 사용하는 샘플 수
훈련 제어
전체 데이터를 배치 단위로 나눠 기울기를 계산합니다. 작은 배치는 노이즈가 크지만 일반화에 유리하고, 큰 배치는 안정적이지만 메모리를 더 씁니다.
Batch32
소(4~16) → 노이즈↑ 일반화↑, 느림
대(256~) → 안정적 메모리↑, 과적합↑
학습률 (Learning Rate)
η — 가중치 업데이트 보폭
훈련 제어
손실 함수 기울기에 곱하는 스케일 계수입니다. 너무 크면 손실이 발산하고, 너무 작으면 수렴이 매우 느려집니다. 회색=느림 · 파랑=현재 · 빨강=너무 큼.
LR0.001
너무 작 → 수렴 느림 Local minima 위험
너무 큼 → 발산 Loss 진동·폭발
옵티마이저 (Optimizer)
가중치 업데이트 알고리즘
훈련 제어
SGD: 단순 기울기 하강. Momentum: 이전 방향 관성 추가. RMSprop: 기울기 크기를 적응 조절. Adam: Momentum + RMSprop 결합, 가장 널리 사용.
비교
✓ Adam: 대부분의 경우 기본 선택. 학습률 조정 부담 적고 빠른 수렴.
활성화 함수 (Activation)
비선형 변환 함수
구조
선형 변환만으로는 복잡한 패턴을 학습할 수 없어 비선형 활성화 함수를 추가합니다. 은닉층은 주로 ReLU, 출력층 다중분류에 Softmax, 이진분류에 Sigmoid를 씁니다.
함수
Sigmoid/Tanh → 깊은 망에서 기울기 소실(Vanishing)
ReLU → 빠른 수렴 은닉층 표준 선택
드롭아웃 (Dropout)
정규화 — 랜덤 노드 비활성화
정규화
훈련 중 매 배치마다 지정 비율의 뉴런을 무작위로 끄는 기법입니다. 특정 뉴런 의존도를 낮춰 과적합을 방지합니다. 추론(Inference) 시에는 모든 뉴런을 사용합니다.
Rate0.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
📈 과적합 해결 방법
💧 드롭아웃(Dropout) — 훈련 중 뉴런을 무작위 비활성화
📏 L1 / L2 정규화 — 가중치 크기에 패널티 부여
📦 데이터 증강 — 훈련 샘플 수 늘리기
✂️ Early Stopping — Val 오차 상승 시점에 조기 종료
🧩 모델 단순화 — 레이어·뉴런 수 줄이기
🔀 배치 정규화 — 층 간 입력 분포 안정화
📉 과소적합 해결 방법
🧠 모델 복잡도 증가 — 레이어·뉴런·차수 추가
⏳ 에포크 증가 — 더 오래 훈련시키기
📐 특성 공학 — 유용한 특성 추가·변환
📉 정규화 감소 — Dropout rate 낮추기
⚡ 학습률 조정 — 수렴 속도 최적화
🔣 활성화 함수 변경 — ReLU 등 비선형성 강화
데이터 & 피팅 곡선
복잡도 vs 오차 — 편향-분산 트레이드오프
Train MSE
—
Val MSE
—
진단
—
📈 학습 곡선 — 훈련 데이터 크기 증가에 따른 오차 변화 (현재 차수 기준)
학습 곡선 해석 —
데이터가 적을 때: Train 오차 ↓, Val 오차 ↑ (과적합 패턴).
데이터가 충분히 많아지면 두 곡선이 수렴합니다.
높은 위치에서 수렴 → 과소적합 / 낮은 위치에서 수렴 → 양호.
결론: 과적합은 데이터 추가로도 완화할 수 있습니다.
💡 뉴런을 관통하는 3가지 핵심 원리
🌿 1. 수상돌기 → 입력 × 가중치생물 뉴런이 여러 신호를 받아들이듯, 인공 뉴런은 입력(x)마다 중요도(가중치 w)를 곱해 받아들입니다.
🧫 2. 세포체 → 가중합 + 편향받은 신호를 전부 더합니다: z = w₁x₁ + w₂x₂ + b. 편향(b)은 뉴런이 얼마나 쉽게 흥분할지 정하는 기준선입니다.
⚡ 3. 축삭 → 활성화 함수합이 임계치를 넘을 때만 신호를 내보냅니다. 이 '문턱'을 수학으로 만든 것이 활성화 함수 f(z)입니다.
🧬 시각적 비교 다이어그램 — 부분을 클릭하면 매핑 설명이 열립니다
🌱 생물학적 뉴런 (Biological)
🤖 인공 뉴런 (Artificial / Perceptron)
🔗 핵심 매핑 관계
생물학적 뉴런
인공 뉴런
수상돌기 (Dendrites)
→
입력값 (Inputs, x)
시냅스 강도 (Synapses)
→
가중치 (Weights, w)
세포체 (Cell Body)
→
가중합 연산 (∑ + b)
축삭 · 임계치 (Axon)
→
활성화 함수 (f(z))
축삭말단 → 다음 뉴런
→
출력 (y) → 다음 계층
🔵 퍼셉트론 시뮬레이터 — 가중치·편향을 조절해 발화를 관찰하세요
🎛 입력·가중치 설정
입력 x₁1.0
입력 x₂0.0
가중치 w₁1.0
가중치 w₂1.0
편향 b-1.5
활성화 함수
—
가중합 z = w₁x₁+w₂x₂+b
—
출력 y = f(z)
—
🗺 결정 경계 — 이 퍼셉트론이 (x₁,x₂) 평면을 어떻게 가르나
퍼셉트론은 w₁x₁ + w₂x₂ + b = 0 이라는 직선 하나로 평면을 두 영역으로 나눕니다.
· 초록 영역 = 발화(출력 1) · 빨강 영역 = 침묵(출력 0)
· ★ = 현재 입력 (x₁, x₂) · 가중치를 움직이면 직선의 기울기가, 편향을 움직이면 직선의 위치가 변합니다.
직선 '하나'라는 제약이 곧 XOR을 못 푸는 이유입니다 — 논리 게이트 실습 탭에서 확인하세요.
📈 활성화 함수 비교 — 같은 z가 함수마다 어떻게 변환되나
🎛 입력 설정 & 특징 비교
입력 z0.0
📋 특징 비교
함수
출력 범위
특징
주 용도
계단 (Step)
0 / 1
미분 불가 — 역전파 학습 불가
전통 퍼셉트론
Sigmoid
0 ~ 1
확률 해석, 양끝 기울기 소실
이진 분류 출력층
ReLU
0 ~ ∞
음수→0, 빠르고 소실 완화
은닉층 표준
Tanh
-1 ~ 1
0 중심, 기울기 큼
RNN 계열
🎚️ 논리 게이트 트레이닝 — 결정 경계선을 움직여 진리표를 모두 맞추세요
🎛 게이트·네트워크 설정
게이트 선택
네트워크 구조
가중치 w₁1.0
가중치 w₂1.0
편향 b-1.5
은닉층이 입력을 새 좌표 (s₁, s₂)로 변환합니다:
· 은닉 노드 1 (NAND 역할): s₁ = step(−x₁ − x₂ + 1.5)
· 은닉 노드 2 (OR 역할): s₂ = step(x₁ + x₂ − 0.5)
출력 노드는 이 은닉 공간에서 다시 직선 하나를 긋습니다.