Pytorch로 시작하는 딥러닝 입문(04-02. 파이토치로 로지스틱 회귀 구현하기)

2024. 2. 25. 12:44딥러닝 모델: 파이토치

♣ 파이토치로 로지스틱 회귀 구현하기

1. 데이터를 텐서로 구현하기 

 

 

입력 데이터가 x_train, 출력 데이터가 y_train이고 WX = Y를 성립하기 위해서는 가중치 W가 2×1 크기여야 한다. 

 

 

2. W와 b 선언하기

 

3. 가설식 세우기

앞선 W와 b는 torch.zeros를 통해 전부 0으로 초기화된 상태이다. 

실제값 y_train과 크기가 동일한 6×1의 크기를 가지는 예측값 벡터가 나오는데 모든값이 0.5이다. 

 

이미 파이토치에서 시그모이드 함수를 구현하여 제공하고 있기 때문에 가설식을 더 간단하게 구현할 수도 있다.

 

이는 앞선 식과 본질적으로 동일한 식이다.

 

4. 비용함수값(cost) 구하기

 

우선 현재의 예측값과 실제값을 출력해보자

 

 

여섯 개의 원소가 존재하지만 하나의 원소에 대해서만 오차를 구하는 식을 작성해보자

 

 

모든 원소에 대해서 오차를 구해보자

 

그 후, 전체 오차에 대한 평균을 구한다. 

 

지금까지는 비용 함수의 값을 직접 구현하였지만 파이토치에서는 로지스틱 회귀의 비용 함수를 이미 구현해서 제공하고 있다. 

 직접 구현한 값과 같은 결과가 나온다. 

 

 

 

5. 완성 코드(훈련 포함)

 

 

6. 결과 예측하기

현재 W와 b는 훈련 후의 값을 가지고 있다. 이를 이용하여 결과를 예측해보자

 

예측된 값들은 0과 1 사이의 값을 가지고 있다. 0.5를 넘으면 True, 넘지 않으면 False로 값을 정하여 출력해보자

실제값인 y_train을 보면 [[0], [0], [0], [1], [1], [1]] 이므로 이는 결과적으로 False, False, False, True, True, True와 동일하다. 즉 실제값과 동일하게 예측한 것을 볼 수 있다. 

 

훈련 후의 W와 b의 값을 출력해보자