선형회귀 모델은 어떤 과정으로 학습할까? (feat. Torch Library)

공장장·2024년 9월 16일

🏷️ 선형회귀 모델 학습 프로세스


목표: 모델이 예측한 값과 실제 값의 차이(손실)를 줄여서 최적의 가중치( 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+bH(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,...,xnx_{1}, x_{2}, ..., x_{n} 가 있기 때문에, 각각의 독립변수에 대한 가중치 w1,w2,...wnw_{1}, w_{2}, ... w_{n}가 필요.
profile
연장 대신 키보드 뚱땅거리며 분석하는 '데이터분석 공장 529'

0개의 댓글