역전파 2

[PyTorch] Autograd

PyTorch에서 신경망 학습을 위해 지원하는 자동 미분 엔진인 Autograd에 대해 간단한 예제를 통해 알아보자. Autograd import torch from torchvision.models import resnet18, ResNet18_Weights model = resnet18(weights=ResNet18_Weights.DEFAULT) data = torch.rand(1, 3, 64, 64) labels = torch.rand(1, 1000) prediction = model(data) # 순전파 단계(forward pass) loss = (prediction - labels).sum() loss.backward() # 역전파 단계(backward pass) # 옵티마이저 생성 optim ..

AI/PyTorch 2023.03.20

[Math] 다층 퍼셉트론

다층 퍼셉트론의 구조와 데이터를 갖고 학습하는 방식, 결과물을 만드는 방법에 대해 알아보자. 입력 데이터 X와 가중치 행렬 W, 절편 행렬 b의 선형 결합으로 결과 행렬 O가 생성된다. 하나의 입력 데이터, 즉 X 행렬에서 하나의 행 벡터(xk)는 W 행렬에서 하나의 열 벡터와 내적하여 하나의 결과값(ok)를 만들어 낸다. 위 선형 결합에서 p개의 선형 모델이 입력 데이터를 받아 p개의 결과값을 만들어낸다고 생각할 수 있다. (W 행렬의 열이 p개 이므로) Softmax 함수는 선형 모형의 출력을 확률로 해석할 수 있게 확률 벡터로 변환해주는 함수이다. 선형 결합의 결과 벡터 O를 Softmax 함수의 인자로 넣어 분류 문제를 해결할 수 있다. 신경망은 선형 모델과 활성함수를 합성한 함수이다. 활성 함수..

AI/AI Math 2023.03.12