단일 변수 선형 회귀를 넘어, 여러 개의 변수를 다루는 다중 변수 선형 회귀와 모델 훈련을 최적화하기 위한 핵심 개념, 그리고 경사 하강법의 대안이 되는 정규 방정식에 대해 자세히 정리한다.
1. 다중 변수 선형 회귀 (Multivariable Linear Regression)
하나의 입력 변수(feature)가 아닌, 여러 개의 입력 변수를 사용하여 결과를 예측하는 모델. 예를 들어, 집 크기뿐만 아니라 방의 개수, 집의 나이 등을 모두 고려하여 집 가격을 예측하는 경우다.
- 모델 함수 (Hypothesis):
입력 변수가
n개 (x₁,x₂, ...,xₙ)일 때, 모델 함수는 다음과 같이 확장된다.
H(x₁, ..., xₙ) = w₁x₁ + w₂x₂ + ... + wₙxₙ + b
- 행렬 표현 (Matrix Representation): 수식이 길어지는 것을 막기 위해, 행렬을 사용하여 간결하게 표현하는 것이 일반적이다.
X는 입력 변수들을 모아놓은 행렬,W는 각 변수에 대한 가중치를 모아놓은 행렬(벡터)이다.
H(X) = XW + b
변수가 많아져도 비용 함수(MSE)와 경사 하강법의 기본 원리는 완전히 동일하게 적용된다. 단지, 이제는 모든 가중치
w₁, w₂, ... wₙ 각각에 대해 동시에 경사 하강을 진행할 뿐이다.2. 훈련 최적화 기법
2.1. 피처 스케일링 (Feature Scaling)
여러 피처들의 값의 범위(scale)가 크게 다를 때, 이를 비슷한 범위로 맞춰주는 매우 중요한 작업.
- 필요성: '집 크기'(50~100)와 '방 개수'(1~5)처럼 피처 간 스케일 차이가 크면, 비용 함수가 찌그러진 타원형이 된다. 이 경우 경사 하강법 알고리즘이 최저점을 향해 효율적으로 이동하지 못하고, 이리저리 헤매면서 학습 속도가 매우 느려진다.
- 목표: 각 피처의 값 범위를 비슷하게 (예: -1 ~ 1 사이) 만들어 비용 함수의 모양을 원형에 가깝게 만든다. 이를 통해 경사 하강법이 훨씬 빠르고 안정적으로 최저점을 찾아가도록 돕는다.
- 주요 방법:
- 표준화 (Standardization): 각 값에서 평균을 빼고 표준편차로 나눈다.
(x - 평균) / 표준편차 - 정규화 (Normalization): 모든 값을 0과 1 사이로 조정한다.
(x - 최소값) / (최대값 - 최소값)
2.2. 학습률 (Learning Rate, α)
경사 하강법에서 파라미터를 업데이트하는 보폭(step size)을 결정하는 핵심 하이퍼파라미터.
- 학습률이 너무 작으면: 학습 속도가 매우 느리다.
- 학습률이 너무 크면: 최적점을 지나쳐 버리고 값이 발산(diverge)하면서 학습이 실패할 수 있다.
- 적절한 학습률 찾기: 정해진 정답은 없다. 학습 과정에서 반복 횟수에 따른 비용(cost)의 변화를 그래프로 그려보며, 비용이 꾸준히 감소하는지 확인해야 한다. 보통 0.001, 0.01, 0.1, 1 등 10배 단위로 테스트하며 최적의 값을 찾는다.
3. 정규 방정식 (Normal Equation)
경사 하강법과 달리, 반복적인 계산 없이 단 한 번의 수식 계산으로 최적의 가중치
W를 찾아내는 해석적(analytical) 방법.- 핵심 원리: 선형 회귀의 비용 함수는 아래로 볼록한(convex) 함수이므로, 미분값이 0이 되는 지점에서 최솟값을 갖는다. 이 원리를 이용해 비용 함수를
W에 대해 미분하여 0으로 놓고,W에 대한 방정식을 풀어 해를 구한다.
- 결과 공식:
X: 입력 데이터 행렬y: 실제 결과값 벡터Xᵀ: X의 전치 행렬(Transpose)( ... )⁻¹: 역행렬(Inverse)
W = (XᵀX)⁻¹ Xᵀy
경사 하강법 vs. 정규 방정식: 언제 무엇을 쓸까?
구분 | 경사 하강법 (Gradient Descent) | 정규 방정식 (Normal Equation) |
원리 | 반복적(Iterative) 최적화 | 해석적(Analytical) 해법 |
학습률 (α) | 선택 필요 (Tuning) | 필요 없음 |
피처 스케일링 | 필수적 | 필요 없음 |
계산 복잡도 | O(k·n·m) <br>(k:반복, n:피처, m:데이터) | O(n³) <br>(n x n 역행렬 계산) |
적합한 경우 | 피처(n)가 매우 많을 때 | 피처(n)가 적을 때 ( n < 10,000 권장) |
결론: 피처의 개수(
n)가 적다면, 학습률 튜닝이나 피처 스케일링이 필요 없는 정규 방정식이 훨씬 빠르고 간편하다. 하지만 딥러닝과 같이 피처(파라미터)의 수가 수만 개 이상으로 매우 많은 경우에는 O(n³)의 계산 비용을 갖는 역행렬 계산이 사실상 불가능하다. 따라서 현대의 복잡한 모델들은 거의 모두 경사 하강법 기반의 최적화 알고리즘을 사용한다.