정규방정식

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2025.09.19
조회수
35
버전
v1

정규방정식

개요

정규방정식(Normal Equation)은 선형회귀(Linear Regression) 문제를 해결하기 위한 해석적(analytical) 방법 중 하나로, 최소제곱법(Least Squares Method)을 사용하여 선형 모델의 계수를 직접 계산하는 수식이다. 이 방정식은 손실 함수인 잔차 제곱합(Sum of Squared Residuals)을 최소화하는 최적의 파라미터를 행렬 연산을 통해 구할 수 있게 해준다. 정규방정식은 기울기 하강법(Gradient Descent)과 같은 반복적 최적화 방법과 달리 반복 없이 한 번의 계산으로 해를 구할 수 있다는 장점이 있다.

정규방정식은 특히 변수의 수가 많지 않고 데이터 크기가 적당할 때 유용하며, 머신러닝, 통계학, 공학 등 다양한 분야에서 활용된다.


수학적 정의

선형회귀 모델은 다음과 같은 형태로 표현된다:

[ \mathbf{y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon} ]

여기서: - (\mathbf{y} \in \mathbb{R}^n): 관측된 종속 변수 벡터 (응답 변수) - (\mathbf{X} \in \mathbb{R}^{n \times p}): 독립 변수(설명 변수)의 설계 행렬 (Design Matrix) - (\boldsymbol{\beta} \in \mathbb{R}^p): 추정하고자 하는 회귀 계수 벡터 - (\boldsymbol{\varepsilon} \in \mathbb{R}^n): 오차 벡터

우리는 잔차 제곱합(Sum of Squared Residuals):

[ L(\boldsymbol{\beta}) = |\mathbf{y} - \mathbf{X}\boldsymbol{\beta}|^2 = (\mathbf{y} - \mathbf{X}\boldsymbol{\beta})^\top (\mathbf{y} - \mathbf{X}\boldsymbol{\beta}) ]

를 최소화하는 (\boldsymbol{\beta})를 찾고자 한다. 이를 위해 (L(\boldsymbol{\beta}))를 (\boldsymbol{\beta})에 대해 미분하고 0으로 놓는 과정을 거치면 다음의 정규방정식을 얻는다:

[ \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta} = \mathbf{X}^\top \mathbf{y} ]

이 방정식의 해는 다음과 같이 주어진다:

[ \boldsymbol{\hat{\beta}} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{y} ]

이 해는 (\mathbf{X}^\top \mathbf{X})가 가역(invertible)할 때 존재하며, 이 조건은 (\mathbf{X})의 열들이 선형 독립일 경우 만족된다.


정규방정식의 특성과 장단점

장점

  1. 해석적 해 제공: 반복 없이 한 번의 행렬 계산으로 최적 해를 구할 수 있음.
  2. 정확한 해: 수치적 오차가 적고, 해가 존재하면 정확한 최소제곱 해를 제공.
  3. 구현이 간단함: 행렬 연산만으로 구현 가능 (예: NumPy, MATLAB).

단점

  1. 계산 복잡도가 높음: (\mathbf{X}^\top \mathbf{X})의 역행렬을 계산해야 하므로, 변수 수 (p)가 클 경우 (O(p^3))의 시간 복잡도가 필요.
  2. 메모리 사용량 큼: 대규모 데이터셋에서는 메모리 부족 문제가 발생할 수 있음.
  3. (\mathbf{X}^\top \mathbf{X}) 가역성 보장 안됨: 변수 간 다중공선성(multicollinearity)이 있거나, (n < p)인 경우 역행렬이 존재하지 않음.

🔍 참고: (n)은 샘플 수, (p)는 변수(특성) 수.


정규방정식과 기울기 하강법 비교

항목 정규방정식 기울기 하강법
해의 형태 해석적 해 반복적 근사 해
계산 방식 행렬 역연산 반복적 업데이트
시간 복잡도 (O(p^3)) (O(knp)), (k): 반복 횟수
메모리 요구 높음 낮음
데이터 크기 적합성 소규모 대규모
다중공선성 처리 어려움 정규화로 완화 가능

정규화된 정규방정식 (Ridge 회귀)

다중공선성이나 과적합(overfitting) 문제를 해결하기 위해 정규방정식을 확장한 형태가 리지 회귀(Ridge Regression)이다. 이 경우 목적 함수에 L2 정규화 항이 추가된다:

[ L(\boldsymbol{\beta}) = |\mathbf{y} - \mathbf{X}\boldsymbol{\beta}|^2 + \lambda |\boldsymbol{\beta}|^2 ]

이에 대한 정규방정식은 다음과 같다:

[ (\mathbf{X}^\top \mathbf{X} + \lambda \mathbf{I}) \boldsymbol{\beta} = \mathbf{X}^\top \mathbf{y} ]

해는:

[ \boldsymbol{\hat{\beta}} = (\mathbf{X}^\top \mathbf{X} + \lambda \mathbf{I})^{-1} \mathbf{X}^\top \mathbf{y} ]

여기서 (\lambda > 0)은 정규화 강도를 조절하는 하이퍼파라미터이며, (\mathbf{I})는 단위행렬이다. 이 방법은 (\mathbf{X}^\top \mathbf{X})가 특이행렬(singular matrix)일 경우에도 역행렬을 안정적으로 구할 수 있도록 해준다.


활용 예시 (Python 코드)

import numpy as np

# 예시 데이터 생성
X = np.array([[1, 1], [1, 2], [1, 3], [1, 4]])  # 절편 항 포함
y = np.array([2, 3, 5, 7])

# 정규방정식 적용
beta_hat = np.linalg.inv(X.T @ X) @ X.T @ y
print("추정된 계수:", beta_hat)

출력:

추정된 계수: [0.5 1.6]

이 경우 모델은 (y = 0.5 + 1.6x) 형태의 직선이다.


관련 개념

  • 최소제곱법(Least Squares)
  • 행렬의 가역성(Matrix Invertibility)
  • 다중공선성(Multicollinearity)
  • 특잇값 분해(Singular Value Decomposition, SVD): 정규방정식의 수치적 안정성을 높이기 위한 대안
  • 의사역행렬(Pseudo-inverse): (\mathbf{X}^\top \mathbf{X})가 비가역일 때 사용

참고 자료

  1. Strang, G. (2016). Introduction to Linear Algebra (5th ed.). Wellesley-Cambridge Press.
  2. Boyd, S., & Vandenberghe, L. (2018). Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares. Cambridge University Press.
  3. Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer.
  4. NumPy Documentation - linalg.inv

정규방정식은 선형대수의 핵심 응용 사례 중 하나로, 이론적 깊이와 실용적 가치를 동시에 지닌 중요한 도구이다.

AI 생성 콘텐츠 안내

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

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

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