딥러닝(Deep Learning)은 여러 층(Layer)의 신경망을 사용해 데이터에서 고수준 특징을 자동 학습하는 머신러닝 방법이다. 이미지 인식, 자연어 처리, 음성 인식에서 인간 수준의 성능을 달성했다.
머신러닝 vs 딥러닝
머신러닝:
원본 데이터 → [특징 추출(수동)] → [ML 모델] → 결과
딥러닝:
원본 데이터 → [신경망(자동 특징 학습)] → 결과
학습 과정
1. 순전파 (Forward Pass):
입력 → 각 레이어 통과 → 예측값
2. 손실 계산:
예측값 vs 실제값 → Loss 계산
3. 역전파 (Backward Pass):
체인 룰로 각 파라미터의 그래디언트 계산
4. 가중치 업데이트:
W = W - lr * ∂Loss/∂W
python
import torch
import torch.nn as nn
class SimpleNet(nn.Module):
def __init__(self):
super().__init__()
self.layers = nn.Sequential(
nn.Linear(784, 256),
nn.ReLU(),
nn.Dropout(0.2),
nn.Linear(256, 128),
nn.ReLU(),
nn.Linear(128, 10)
)
def forward(self, x):
return self.layers(x)
model = SimpleNet()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
criterion = nn.CrossEntropyLoss()
# 학습
for epoch in range(100):
output = model(X_train)
loss = criterion(output, y_train)
optimizer.zero_grad()
loss.backward()
optimizer.step()
관련 개념
참고문헌
- •LeCun, Y. et al. (2015). Deep Learning (Nature)
- •Goodfellow et al. Deep Learning (딥러닝 교과서)