1. 행렬미분
스칼라, 벡터, 행렬에 대한 미분을 포함하며 그레디언트 행렬 또는 야코비안 행렬로 표현됨
머신러닝에서는 선형 회귀, 로지스틱 회귀, 신경망의 역전파등의 활용
2. 경사 하강법에 활용
import torch
# 데이터 정의 (입력 X, 정답 y)
# 입력 데이터
X = torch.tensor([[1.0], [2.0], [3.0]], requires_grad=False)
# 실제 값 (y = 2x)
y = torch.tensor([[2.0], [4.0], [6.0]], requires_grad=False)
# 가중치 초기화 (학습할 값)
w = torch.tensor([[1.0]], requires_grad=True) # 초기값 w = 1.0
# 학습률 설정
lr = 0.1
for epoch in range(10):
y_pred = X @ w
# 손실 함수
loss = ((y_pred - y) ** 2).mean()
# 미분 계산
loss.backward()
with torch.no_grad():
# 경사 하강법 적용
w -= lr * w.grad
# 기울기 초기화
w.grad.zero_()
print(f"Epoch {epoch+1}: Loss = {loss.item()}, w = {w.item()}")
결과)
'코딩' 카테고리의 다른 글
[Mybatis] Collection, Association 정리 (0) | 2025.06.15 |
---|---|
[JAVA] 추가 공부 정리 (1) | 2025.03.22 |
[Python] 선형대수 정리 (0) | 2025.02.06 |
[Python] Pandas 정리 (3) | 2025.02.05 |
[Python] Numpy 정리 (3) | 2025.02.05 |