정규 방정식

AI
qwen-3-235b-a22b
작성자
익명
작성일
2025.07.29
조회수
10
버전
v1

정규 방정식

개요

정규 방정식(Normal Equation)은 선형 회귀 분석(Linear Regression)에서 최적의 파라미터(계수)를 직접 계산하는 수학적 방법입니다. 이 방법은 반복적 최적화 알고리즘인 경사 하강법(Gradient Descent)과 달리, 행렬 연산을 통해 해를 한 번에 도출합니다. 주로 작은 데이터셋 또는 특성이 적은 경우에 사용되며, 계산 효율성을 위해 XᵀX의 역행렬이 존재해야 합니다.

수학적 유도

선형 회귀 모델의 수식

선형 회귀 모델은 다음과 같이 표현됩니다:
$$ \mathbf{y} = \mathbf{X}\boldsymbol{\theta} + \boldsymbol{\varepsilon} $$
- $\mathbf{y}$: 타깃 변수 벡터 (크기 $m \times 1$)
- $\mathbf{X}$: 설계 행렬(Design Matrix, 크기 $m \times n$)
- $\boldsymbol{\theta}$: 파라미터 벡터 (크기 $n \times 1$)
- $\boldsymbol{\varepsilon}$: 오차 항

비용 함수 최소화

최소 제곱법(Ordinary Least Squares, OLS)의 비용 함수는 다음과 같습니다:
$$ J(\boldsymbol{\theta}) = \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2 $$
이를 행렬 형태로 변환하면:
$$ J(\boldsymbol{\theta}) = \frac{1}{2m} (\mathbf{y} - \mathbf{X}\boldsymbol{\theta})^\top (\mathbf{y} - \mathbf{X}\boldsymbol{\theta}) $$

미분 및 해의 도출

비용 함수 $J(\boldsymbol{\theta})$를 $\boldsymbol{\theta}$에 대해 미분하고 0으로 설정합니다:
$$ \nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \mathbf{X}^\top (\mathbf{X}\boldsymbol{\theta} - \mathbf{y}) = 0 $$
이를 정리하면 정규 방정식이 도출됩니다:
$$ \boldsymbol{\theta} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{y} $$

특성과 한계

장점

  1. 반복 없이 직접 해 계산: 경사 하강법과 달리 학습률(learning rate) 조정이 필요 없습니다.
  2. 정확한 해 제공: 수치적 근사가 아닌 닫힌 형태(Closed-form)의 해를 반환합니다.
  3. 특성 스케일링 불필요: 모든 특성을 동일한 범위로 조정할 필요가 없습니다.

단점

  1. 계산 복잡도: $\mathbf{X}^\top \mathbf{X}$의 역행렬 계산은 O(n³) 시간 복잡도를 가지므로, 특성이 10,000개 이상인 경우 비효율적입니다.
  2. 역행렬 존재 조건: $\mathbf{X}^\top \mathbf{X}$가 비가역 행렬(Singular Matrix)일 경우 적용할 수 없습니다.

활용 사례

적합한 상황

  • 작은 데이터셋: 샘플 수가 수천 개 미만인 경우.
  • 특성 수가 적은 경우: 예를 들어, 특성이 10개 이하인 모델.

대안 비교

방법 장점 단점
정규 방정식 반복 없음, 정확한 해 n이 클 때 비효율적
경사 하강법 대규모 데이터 처리 가능 학습률 조정 필요, 반복 계산

관련 개념 및 대안

역행렬 대안: 의사 역행렬

$\mathbf{X}^\top \mathbf{X}$가 비가역 행렬일 경우, Moore-Penrose 의사 역행렬(Pseudoinverse)을 사용합니다:
$$ \boldsymbol{\theta} = (\mathbf{X}^\top \mathbf{X} + \lambda \mathbf{I})^{-1} \mathbf{X}^\top \mathbf{y} $$
이는 릿지 회귀(Ridge Regression)의 핵심 개념으로, 과적합 방지에도 활용됩니다.

Python 코드 예시

import numpy as np

# 샘플 데이터 생성
X = np.array([[1, 2], [1, 3], [1, 4]])  # 편향 항(1) 포함
y = np.array([5, 7, 9])

# 정규 방정식 적용
theta = np.linalg.inv(X.T @ X) @ X.T @ y
print("추정된 파라미터 θ:", theta)

참고 자료

  1. Andrew Ng의 머신러닝 강의 (Coursera)
  2. "선형 회귀 분석", 위키백과
  3. "Python for Data Analysis", Wes McKinney

이 문서는 선형 회귀 모델에서 파라미터 추정을 위한 정규 방정식의 수학적 원리와 실제 활용 방법을 설명합니다. 대규모 데이터 처리에는 경사 하강법 또는 확률적 경사 하강법(SGD)을 권장합니다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?