순전파 실행

PyTorch로 배우는 딥러닝 입문

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

순전파란?

$$

  • 입력 데이터가 계층을 통해 흐릅니다
  • 각 계층에서 계산 수행
  • 마지막 계층이 출력 생성

$$

  • 가중치바이어스에 따라 출력이 생성됨
  • 훈련예측에 사용됨

순전파 표현

PyTorch로 배우는 딥러닝 입문

순전파란?

$$

가능한 출력:

  • 이진 분류
  • 다중 클래스 분류
  • 회귀

최종 출력이 강조된 순전파

PyTorch로 배우는 딥러닝 입문

이진 분류: 순전파

주석이 추가된 코드 블록

# 이진 분류 모델 생성
model = nn.Sequential(
  nn.Linear(6, 4), # 첫 번째 선형 계층
  nn.Linear(4, 1), # 두 번째 선형 계층
  nn.Sigmoid() # Sigmoid 활성화 함수
)
PyTorch로 배우는 딥러닝 입문

이진 분류: 순전파

# 입력 데이터를 모델에 통과
output = model(input_data)
print(output)
tensor([[0.5188], [0.3761], [0.5015], [0.3718], [0.4663]], 
    grad_fn=<SigmoidBackward0>)
  • 출력: 각 동물에 대한 0~1 사이의 확률 5개

  • 분류(임계값 0.5):

    • 값이 ≥ 0.5이면 클래스 = 1(포유류) (0.5188, 0.5015)
    • 값이 < 0.5이면 클래스 = 0(포유류 아님) (0.3761, 0.3718, 0.4633)
PyTorch로 배우는 딥러닝 입문

다중 클래스 분류: 순전파

  • 클래스 1 - 포유류, 클래스 2 - 조류, 클래스 3 - 파충류
n_classes = 3


# 다중 클래스 분류 모델 생성 model = nn.Sequential( nn.Linear(6, 4), # 첫 번째 선형 계층 nn.Linear(4, n_classes), # 두 번째 선형 계층
nn.Softmax(dim=-1) # Softmax 활성화 )
# 입력 데이터를 모델에 통과 output = model(input_data) print(output.shape)
torch.Size([5, 3])
PyTorch로 배우는 딥러닝 입문

다중 클래스 분류: 순전파

다중 클래스 예시

  • 각 행의 합은 1
  • 예측 레이블 = 확률이 가장 큰 클래스
  • 1행 = 클래스 1(포유류), 2행 = 클래스 1(포유류), 3행 = 클래스 3(파충류)
PyTorch로 배우는 딥러닝 입문

회귀: 순전파

# 회귀 모델 생성
model = nn.Sequential(
  nn.Linear(6, 4), # 첫 번째 선형 계층
  nn.Linear(4, 1) # 두 번째 선형 계층
)

# 입력 데이터를 모델에 통과
output = model(input_data)

# 출력 반환
print(output)
tensor([[0.3818],
        [0.0712],
        [0.3376],
        [0.0231],
        [0.0757]], 
        grad_fn=<AddmmBackward0>)
PyTorch로 배우는 딥러닝 입문

연습해 봅시다!

PyTorch로 배우는 딥러닝 입문

Preparing Video For Download...