경사하강법 ; Gradient Descent

: 함수의 최솟값을 찾기 위해 반복적으로 함수의 기울기를 따라 내려가는 방식

작동 과정

순전파 Forward Propagation

: 입력을 넣어서 예측값을 계산

손실 함수 계산 Loss Calculation

: 예측값, 실제값 차이 계산

역전파 Backpropagation

: 손실을 각 가중치에 대해 미분 후 기울기를 구함

→ 각 파라미터가 손실에 얼마나 영향을 주는 가

파라미터 업데이트

: 가중치 업데이트

criterion = nn.CrossEntropyLoss()                     # 손실 함수 정의
optimizer = optim.Adam(model.paramters(), lr=0.001)   # 옵티마이저 정의

for epoch in range(num_epochs):
	outputs = model(inputs)                             # 순전파
	loss = criterion(outputs, labels)                   # 손실 계산
	optimizer.zero_grad()                               # 기존 기울기 초기화
	loss.backward()                                     # 역전파 
	optimizer.step()                                    # 가중치 업데이트

종류

배치 경사하강법 Batch Gradient Descent

: 전체 데이터를 사용해 한 번에 파라미터를 업데이트