PyTorch로 배우는 딥러닝 입문
Jasmin Ludolf
Senior Data Science Content Developer, DataCamp
$$
도함수는 곡선의 기울기를 나타냅니다
$$
$$

이는 볼록 함수입니다

이는 비볼록 함수입니다

$$

$$

$$
세 개 층으로 된 네트워크를 가정합니다:

# 순전파 실행 model = nn.Sequential(nn.Linear(16, 8), nn.Linear(8, 4), nn.Linear(4, 2)) prediction = model(sample)# 손실과 그래디언트 계산 criterion = CrossEntropyLoss() loss = criterion(prediction, target) loss.backward()
# 각 층의 그래디언트 확인
model[0].weight.grad
model[0].bias.grad
model[1].weight.grad
model[1].bias.grad
model[2].weight.grad
model[2].bias.grad
# 학습률은 보통 작게 설정 lr = 0.001 # 가중치 업데이트 weight = model[0].weight weight_grad = model[0].weight.gradweight = weight - lr * weight_grad# 바이어스 업데이트 bias = model[0].bias bias_grad = model[0].bias.gradbias = bias - lr * bias_grad
$$
비볼록 함수에는 경사하강법을 사용합니다
PyTorch는 옵티마이저로 이를 단순화합니다
import torch.optim as optim # 옵티마이저 생성 optimizer = optim.SGD(model.parameters(), lr=0.001)# 파라미터 업데이트 수행 optimizer.step()
PyTorch로 배우는 딥러닝 입문