2026.03.25
DeepLearning - 다중 선형 회귀

DeepLearning - 다중 선형 회귀

다중선형회귀, 텐서플로 용어

복습

평균제곱오차는 왜 나왔었을까.

오차를 그냥 더해버리면 양수 오차와 음수 오차가 서로 상쇄되어 ‘틀린 크기’를 정확히 알 수 없다. 그러므로, 그 오차를 제곱시킴으로써 양수로 평균을 내버리는 방법을 택한다. 그래서 나온 평균제곱오차(MSE, Mean Squared Error)가 아래의 수식을 가졌었다.

MSE=1n(yy^)2 MSE = \frac{1}{n}\sum(y-\hat{y})^2

1. 다중 선형 회귀

앞서 선형 회귀에서 오차가 있음을 확인했으니, 더 정교한 예측을 위하여 변수의 개수를 늘려야 한다

예시

  • 다이어트 과정에서, 운동시간에 대한 변수를 추가한다 y=a1x1+a2x2+by = a_1*x_1 + a_2*x_2 + b

코드화


x1 = np.array([1, 2, 3, 4, 5])  # 다이어트 경과일
x2 = np.array([30, 60, 60, 40, 50]) # 운동 시간(m)
y = np.array([46.0, 46.2, 45.9, 45.8, 45.7])  # 몸무게

x2x_2 를 Z축으로 생각하여 3차원의 세상을 생각해도 좋다.

  • 예측값을 구하는 식
predY = (a1*x1) + (a2*x2) + b
error = y - predY  # 오차 = 실제값(Y) - 예측값(predY)
  • 편미분 값(경사하강법의 평균제곱 오차 편미분 식 참고))
n = len(x1) # 변수 개수(n)
pDiff_a1 = (2/n) * sum(-x1 * (error)) # a1에 대한 편미분
pDiff_a2 = (2/n) * sum(-x2 * (error)) # a2에 대한 편미분
pDiff_b = (2/n) * sum(-(error)) # b에 대한 편미분

a1 = a1 - lr*pDiff_a1 // 학습률(lr) 곱하기
a2 = a2 - lr*pDiff_a2
b = b - lr*pDiff_b

2. 선형 회귀, 다중 선형 회귀 모델 in 텐서플로

가중치(w, weight)

  • 기울기 a: 변수 x에 어느 정도의 가중치를 곱할지를 결정

편향(bias)

  • 절편 b: 데이터의 특성에 따라 부여된 값

머신러닝에서의 용어

  1. y=ax+b y = ax + b
  • >H(x)=w\*x+b-> H(x) = w\*x + b
  1. 평균제곱오차 ⊃ 손실 함수(loss function)

  2. 경사하강법 ⊃ 옵티마이저(Optimizer)