
🏷️ 선형회귀 모델 학습 프로세스
목표: 모델이 예측한 값과 실제 값의 차이(손실)를 줄여서 최적의 가중치( W )와 편향( b )를 찾는 것.
1. 모델 클래스 작성:
- 단순선형회귀든 다중선형회귀든, 기본적으로 모델 클래스를 정의해야 한다.
MultiLinearRegression 클래스 작성 후 여기서 입력과 출력 차원을 설정.
- 단순선형회귀: 하나의 입력 ( x )와 하나의 출력 ( y ).
- 다중선형회귀: 여러 개의 입력 ( x_1, x_2, ..., x_n )과 하나의 출력 ( y ).
2. 하이퍼파라미터 설정:
- 학습률(learning rate), 에포크 횟수(epochs), 옵티마이저(optimizer) 등 모델 학습에 필요한 파라미터를 설정.
- 단순선형회귀와 다중선형회귀 모두에서 이 과정은 동일.
- 입력 차원과 출력 차원 역시 이 단계에서 설정. (단순선형회귀는 입력 차원이 1, 다중선형회귀는 그 이상.)
3. 데이터 텐서로 변환:
- 이유: 기능 사용을 위한 준비(다차원 배열 표현 가능, 효율적인 연산, GPU 활용한 병렬처리, 자동 미분 지원 등)
tensor는 다차원 배열을 의미
- 입력 데이터를
torch.tensor 형식으로 변환하여 모델이 학습할 수 있도록 준비.
- 단순선형회귀든 다중선형회귀든 이 과정은 동일하며, 다만 다중선형회귀에서는 더 많은 독립변수 데이터를 다룸.
5. 예측 함수 계산:
- 모델에 입력 데이터를 전달하면, 모델은 예측 함수 H(x)=Wx+b를 사용해 예측값을 계산.
- 단순선형회귀: 하나의 ( x ) 값에 대해 하나의 ( y )를 예측.
- 다중선형회귀: 여러 ( x ) 값(입력 변수들)에 대해 하나의 ( y )를 예측.
6. 손실 함수로 오차(Loss) 측정:
- 손실 함수(주로 MSE: Mean Squared Error)를 사용하여, 예측값과 실제값 사이의 오차를 계산.
- 단순선형회귀와 다중선형회귀 모두에서 손실 함수를 사용하여 오차를 측정.
7. 최적화 Optimizer (손실 함수(Loss function)의 기울기(gradient) 계산 및 경사하강법 적용):
- 손실 함수의 기울기(Gradient)를 계산한 뒤(
오류 역전파 방식), 경사하강법(Gradient Descent) with 학습률(Learning Rate) 고려을 사용해 가중치(Weight)와 편향(Bias)를 조정.
- 이 과정을 통해 손실을 줄이며 최적의 가중치와 편향을 찾아낸다.
- 단순선형회귀와 다중선형회귀 모두 동일한 과정으로, 여러 입력이 있으면 각 입력에 맞는 가중치들을 조정.
8. 과정을 반복하여 모델 학습:
- 위의 과정을 여러 번(
Epochs에포크 횟수 만큼) 반복하여, 손실을 최소화하고 최적의 모델을 학습.
- 단순선형회귀와 다중선형회귀 모두 동일하게 반복.
9. 결과 확인 및 평가:
- 학습된 모델의 가중치(W)와 편향(b)를 확인하고, 모델이 얼마나 잘 학습했는지 평가.
- 여기서 다중선형회귀는 여러 가중치를 확인.
- 다중선형회귀에서는 여러 독립변수 x1,x2,...,xn 가 있기 때문에, 각각의 독립변수에 대한 가중치 w1,w2,...wn가 필요.