사용자 도구

사이트 도구


최소제곱법

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
최소제곱법 [2026/04/14 18:40] – 최소제곱법 sync flyingtext최소제곱법 [2026/04/14 18:45] (현재) – 최소제곱법 sync flyingtext
줄 173: 줄 173:
 === 행렬 대수를 이용한 해법 === === 행렬 대수를 이용한 해법 ===
  
-관측 행렬과 설계 행렬을 이용해 최적 매개변수 벡터를 산하는 행렬 산 과정을 기술한다.+선형 최소제곱법의 해를 도출하는 과정은 [[선형대수학]](Linear Algebra)의 행렬 연산을 통해 체계적으로 정식화된다. $ n $개의 관측값과 $ p $개의 매개변수를 갖는 선형 모델을 고려할 때, 각 관측 식은 독립 변수들의 선형 결합으로 표현된다. 이를 행렬 형태로 나타내면 다음과 같은 기본 방정식을 얻는다. 
 + 
 +$$ \mathbf{y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\epsilon} $$ 
 + 
 +여기서 $  $는 $ n  $ 크기의 [[관측 벡터]](observation vector)이며, $  $는 독립 변수들의 값으로 구성된 $ n p $ 크기의 [[설계 행렬]](design matrix)이다. $  $는 추정하고자 하는 $ p  $ 크기의 매개변수 벡터이며, $  $은 모델로 설명되지 않는 오차를 나타내는 $ n  $ 크기의 [[오차항]] 벡터이다. 
 + 
 +최소제곱법의 목적은 [[잔차]](residual)의 제곱합을 최소화하는 최적의 매개변수 벡터 $  $를 찾는 것이다. 잔차 벡터 $  $는 실제 관측값과 모델에 의한 예측값의 차이로 정의되며, 다음과 같이 기술된다. 
 + 
 +$$ \mathbf{r} = \mathbf{y} - \mathbf{X}\hat{\boldsymbol{\beta}} $$ 
 + 
 +최소화의 대상이 되는 [[목적 함수]](objective function) $ S() $는 잔차 벡터의 내적, 즉 [[잔차 제곱합]](Sum of Squared Residuals, SSR)으로 정의된다. 
 + 
 +$$ S(\boldsymbol{\beta}) = \mathbf{r}^T \mathbf{r} = (\mathbf{y} - \mathbf{X}\boldsymbol{\beta})^T (\mathbf{y} - \mathbf{X}\boldsymbol{\beta}) $$ 
 + 
 +위 식을 [[전치 행렬]](transpose matrix)의 성질을 이용하여 전개하면 다음과 같은 형태가 된다. 
 + 
 +$$ S(\boldsymbol{\beta}) = \mathbf{y}^T \mathbf{y} - \mathbf{y}^T \mathbf{X}\boldsymbol{\beta} - \boldsymbol{\beta}^T \mathbf{X}^T \mathbf{y} + \boldsymbol{\beta}^T \mathbf{X}^T \mathbf{X} \boldsymbol{\beta} $$ 
 + 
 +이때 $ ^T  $는 스칼라 값이므로 그 전치인 $ ^T ^T  $와 동일하다. 따라서 목적 함수는 다음과 같이 정리된다. 
 + 
 +$$ S(\boldsymbol{\beta}) = \mathbf{y}^T \mathbf{y} - 2\boldsymbol{\beta}^T \mathbf{X}^T \mathbf{y} + \boldsymbol{\beta}^T \mathbf{X}^T \mathbf{X} \boldsymbol{\beta} $$ 
 + 
 +함수 $ S() $를 최소화하기 위해 매개변수 벡터 $  $에 대해 [[편미분]]을 수행하고, 그 결과를 영벡터로 둔다. 행렬 미분 법칙에 따라 미분하면 다음과 같은 조건을 얻는다. 
 + 
 +$$ \frac{\partial S}{\partial \boldsymbol{\beta}} = -2\mathbf{X}^T \mathbf{y} + 2\mathbf{X}^T \mathbf{X} \boldsymbol{\beta} = \mathbf{0} $$ 
 + 
 +이를 정리하면 선형 최소제곱법의 핵심인 [[정규 방정식]](Normal Equation)이 도출된다. 
 + 
 +$$ \mathbf{X}^T \mathbf{X} \hat{\boldsymbol{\beta}} = \mathbf{X}^T \mathbf{y} $$ 
 + 
 +만약 설계 행렬 $  $가 [[열 풀 랭크]](full column rank)를 가져 $ ^T  $의 [[역행렬]](inverse matrix)이 존재한다면, 최적 매개변수 벡터 $  $는 다음과 같이 유일하게 결정된다. 
 + 
 +$$ \hat{\boldsymbol{\beta}} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{y} $$ 
 + 
 +이 식에서 $ (^T )^{-1} ^T $ 부분은 [[무어-펜로즈 유사역행렬]](Moore-Penrose pseudoinverse)의 특수한 형태로 간주될 수 있다. 또한, 이를 통해 계된 예측값 $  =  $는 관측 벡터 $  $를 설계 행렬의 [[열 공간]](column space)으로 투영한 것과 같으며, 이때 작용하는 행렬 $  = (^T )^{-1} ^T $를 [[투영 행렬]](projection matrix) 또는 해트 행렬(hat matrix)이라 부른다. 
 + 
 +행렬 대수를 이용한 이러한 해법은 변수의 개수가 많은 복잡한 모델에서도 일관된 계산 절차를 제공하며, 컴퓨터를 이용한 수치 계산에서 매우 효율적으로 구현될 수 있다는 장점이 있다. 다만, 설계 행렬의 열들 사이에 강한 선형 상관관계가 존재하는 [[다중공선성]] 문제가 발생할 경우 $ ^T  $가 [[특이 행렬]](singular matrix)에 가까워져 수치적 불안정성이 초래될 수 있으므로 주의가 필요하다.
  
 ==== 단순 선형 회귀 ==== ==== 단순 선형 회귀 ====
줄 264: 줄 300:
 === 가우스 뉴턴 방법 === === 가우스 뉴턴 방법 ===
  
-테일러 전개를 통해 선형 함수를 선형화하여 를 는 기인 반복법을 다다.+가우스 뉴턴 방법(Gauss-Newton method)은 비선형 최소제곱 문제를 해결하기 위해 고안된 가장 대표적인 반복적 최적화 알고리즘이다. [[선형 최소제곱법]]과 달리, 모델 함수가 매개변수에 대해 비선형적일 경우 최적해를 단번에 도출할 수 있는 [[정규 방정식]]이 존재하지 않는다. 따라서 가우스 뉴턴 방법은 매개변수의 현재 추정치 근방에서 비선형 함수를 [[테일러 전개]](Taylor expansion)를 통해 선형 함수로 근사한 뒤, 이 선형화된 문제에 대해 최소제곱해를 반복적으로 구함으로써 점진적으로 최적해에 도달한다. 이 기법은 [[아이작 뉴턴]]의 이름을 딴 [[뉴턴 방법]](Newton’s method)을 최소제곱 문제에 특화하여 변형한 것으로, [[헤세 행렬]](Hessian matrix)의 2차 미분항을 계산하는 복잡함을 피하면서도 빠른 수렴 속도를 제공하도록 설계되었다. 
 + 
 +가우스 뉴턴 방법의 핵심은 모델 함수를 선형화하는 과정에 있다. $ n $개의 데이터 포인트 $ (x_i, y_i) $와 $ p $개의 매개변수를 갖는 매개변수 벡터 $  $에 대하여, 비선형 모델 함수를 $ f(x_i, ) $라 하자. 이때 각 데이터 포인트에서의 [[잔차]](residual)는 $ r_i() = y_i - f(x_i, ) $로 정의된다. 최적화하고자 하는 목적 함수는 잔차 제곱합 $ S() = _{i=1}^{n} r_i()^2 $이다. 현재의 매개변수 추정치를 $ ^{(k)} $라고 할 때, 매우 작은 변화량 $  $에 대하여 모델 함수를 1차 테일러 전개하면 다음과 같은 선형 근사식을 얻는다. 
 + 
 +$$ f(x_i, \boldsymbol{\beta}^{(k)} + \Delta \boldsymbol{\beta}) \approx f(x_i, \boldsymbol{\beta}^{(k)}) + \sum_{j=1}^{p} \frac{\partial f(x_i, \boldsymbol{\beta}^{(k)})}{\partial \beta_j} \Delta \beta_j $$ 
 + 
 +위 식에서 각 매개변수에 대한 모델 함수의 편미분 계수들로 구성된 행렬을 [[야코비 행렬]](Jacobian matrix)이라 하며, 이를 $  $로 표한다. 야코비 행렬의 각 성분은 $ J_{ij} =  $로 정의된다. 이를 행렬 형태로 나타내면 잔차 벡터 $ (^{(k)} + ) $는 다음과 같이 근사된다. 
 + 
 +$$ \mathbf{r}(\boldsymbol{\beta}^{(k)} + \Delta \boldsymbol{\beta}) \approx \mathbf{r}(\boldsymbol{\beta}^{(k)}) - \mathbf{J} \Delta \boldsymbol{\beta} $$ 
 + 
 +이제 비선형 최소제곱 문제는 $  $에 대한 선형 최소제곱 문제로 치환된다. 이 선형화된 체계에서 잔차 제곱합을 최소화하는 증분 $  $를 찾기 위해 [[정규 방정식]]의 형태를 용하면 다음과 같은 선형 연립 방정식을 유도할 수 있다. 
 + 
 +$$ (\mathbf{J}^T \mathbf{J}) \Delta \boldsymbol{\beta} = \mathbf{J}^T \mathbf{r}(\boldsymbol{\beta}^{(k)}) $$ 
 + 
 +이 방정식을 풀어 얻은 $  $를 사용하여 매개변수를 $ ^{(k+1)} = ^{(k)} +  $와 같이 갱신한다. 이 과정을 잔차의 변화량이 충분히 작아지거나 미리 설정한 수렴 조건에 도달할 때까지 반복적으로 수행한다. 
 + 
 +가우스 뉴턴 방은 일반적인 [[뉴턴 방법]]과 비교했을 때 중요한 수학적 함의를 갖는. 뉴턴 방법은 목적 함수의 2차 미분 정보인 [[헤세 행렬]]을 필요로 하지만, 가우스 뉴턴 방법은 목적 함수가 잔차의 제곱합이라는 특수한 구조를 가짐을 이용한다. 목적 함수 $ S() $의 헤세 행렬을 직접 계산하면 야코비 행렬의 곱인 $ 2^T  $ 항과 잔차의 2차 미분이 포함된 항의 합으로 나타난다. 가우스 뉴턴 방법은 잔차가 0에 가깝거나 모델의 비선형성이 크지 않다는 가정하에 2차 미분항을 무시하고 $ 2^T  $만을 사용하여 헤세 행렬을 근사한다. 이는 복잡한 2차 미분 계산을 생략하면서도 최적점 근처에서 [[뉴턴 방법]]에 준하는 빠른 수렴 속도를 유지할 수 있게 한다. 
 + 
 +그러나 가우스 뉴턴 방법은 몇 가지 한계점을 지닌다. 우선, 초기 추정치 $ ^{(0)} $가 실제 최적해에서 멀리 떨어져 있을 경우, 선형 근사의 오류가 커져 알고리즘이 수렴하지 않고 발산할 위험이 있다. 또한, 야코비 행렬의 열들이 [[선형 독립]](linearly independent)이 아니거나 [[조건수]](condition number)가 매우 큰 경우, $ ^T  $의 역행렬을 구하는 과정에서 수치적 불안정성이 발생한다. 이러한 수렴 안정성 문제를 해결하기 위해 증분 $  $에 일정한 보정 계수를 도입하거나, [[레벤버그 마쿼트 알고리즘]](Levenberg-Marquardt algorithm)과 같이 행렬의 대각 성분에 댐핑 인자를 추가하는 변형된 기법들이 실무에서 널리 사용된다. 그럼에도 불구하고 가우스 뉴턴 방법은 비선형 모델링과 [[매개변수 추정]](parameter estimation) 분야에서 가장 기초적이면서도 강력한 수치적 도구로서 그 위상을 유지하고 있다.
  
 === 레벤버그 마쿼트 알고리즘 === === 레벤버그 마쿼트 알고리즘 ===
  
-가우스 뉴턴 방법과 경사 하강법을 결합하여 수렴의 안정성을 높인 알고리즘을 설명한다.+[[비선형 최소제곱법]]의 반복적 해법 중 하나인 [[가우스 뉴턴 방법]]은 국소 최적해 근처에서 매우 빠른 수렴 속도를 보이지만, 초기 추정치가 최적해에서 멀리 떨어져 있거나 [[야코비 행렬]](Jacobian matrix)이 수치적으로 불안정하여 [[특이 행렬]](Singular matrix)에 가까워질 경우 수렴하지 못하고 발산하는 취약점을 지닌다. 반면 [[경사 하강법]](Gradient Descent)은 목적 함수의 기울기 정보를 이용하여 안정적으로 하강하지만, 최적해에 근접할수록 수렴 속도가 현저히 저하되는 특성이 있다. 이러한 두 방법의 장점을 결합하고 단점을 상호 보완하기 위해 고안된 기법이 [[레벤버그 마쿼트 알고리즘]](Levenberg-Marquardt Algorithm, LMA)이다. 
 + 
 +레벤버그 마쿼트 알고리즘은 케네스 레벤버그(Kenneth Levenberg)가 1944년에 처음 제안하고, 이후 1963년 도널드 마쿼트(Donald Marquardt)가 이를 독자적으로 발전시키며 수치 최적화의 표준적 기법으로 자리 잡았다. 이 알고리즘의 핵심은 매개변수의 업데이트 방향을 결정하는 방정식에 댐핑 매개변수(damping parameter) $ $를 도입하여 가우스 뉴턴 방법과 경사 하강법 사이를 적응적으로 전환하는 것이다. 비선형 모델 $ f(x_i, ) $에 대한 $ n $개의 [[잔차]](residual) 벡터를 $  $이라 하고, 매개변수 $  $에 대한 야코비 행렬을 $  $라고 할 때, LMA의 증분 벡터 $  $는 다음과 같은 감쇠 최소제곱(damped least squares) 방정식을 통해 산출된다. 
 + 
 +$$ (\mathbf{J}^\top \mathbf{J} + \lambda \mathbf{I}) \boldsymbol{\delta} = \mathbf{J}^\top \mathbf{r} $$ 
 + 
 +여기서 $  $는 [[단위 행렬]](Identity matrix)이다. 댐핑 인자 $ $는 알고리즘의 거동을 제어하는 핵심적인 역할을 수행한다. 만약 $ $의 값이 매우 크다면, 좌변의 항 중 $  $가 지배적으로 작용하여 업데이트 방향은 경사 하강법의 방향인 $ ^ $에 가까워진다. 이는 현재 지점에서 목적 함수가 감소하는 안전한 방향으로 이동하게 함으로써 초기 추정값이 부정확하거나 모델의 비선형성이 강할 때 알고리즘의 안정성을 보장한다. 반대로 $ $가 0에 가까워지면, 방정식은 가우스 뉴턴 방법의 형태와 일치하게 되어 최적해 근방에서 이차 수렴(quadratic convergence)에 준하는 빠른 속도로 해에 도달하게 된다. 
 + 
 +도널드 마쿼트는 단순히 단위 행렬을 사용하는 대신, 야코비 행렬의 정보를 반영한 대각 행렬을 사용할 것을 제하며 알고리즘을 개선하였다. 즉, $ (^ + (^))  = ^ $의 형태를 취함으로써, [[매개변수 공간]](Parameter space)에서 곡률이 작은 방향으로는 더 큰 보폭을 갖고 곡률이 큰 방향으로는 신중하게 이동하도록 조하였다. 이러한 변형은 특히 매개변수 간의 축적(scale) 차이가 크거나 특정 방향으로의 감도가 예민한 문제에서 수렴 을 크게 향상시켰다. 
 + 
 +결과적으로 레벤버그 마쿼트 알고리즘은 매 반복 단계마다 목적 함수의 감소 여부를 확인하며 $ $ 값을 동적으로 조정하는 전략을 취다. 특정 단계에서 목적 함수가 성공적으로 감소하면 $ $를 줄여 가우스 뉴턴의 빠른 수렴 속도를 활용하고, 만약 목적 함수가 오히려 증가한다면 $ $를 늘려 경사 하강법의 안정성을 확보하며 다시 시도한다. 이러한 유연성 덕분에 LMA는 비선형 최소제곱 문제를 해결하기 위한 [[수치 최적화]] 분야에서 가장 신뢰받는 알고리즘이 되었으며, 오늘날 [[컴퓨터 비전]]의 구조 복원, [[신경망]]의 역전파 학습, [[로보틱스]]의 기구학 분석 등 다양한 공학 및 과학 분야에서 광범위하게 활용되고 있다.
  
 ===== 통계적 성질과 타당성 ===== ===== 통계적 성질과 타당성 =====
줄 455: 줄 519:
 ==== 기계 학습과 인공지능 ==== ==== 기계 학습과 인공지능 ====
  
-데이터 학습 과정에서 손실 함수를 최소화하는 최적화 기법의 근간으로서 최소제곱법의 위을 고한다.+[[기계 학습]](Machine Learning)과 [[인공지능]](Artificial Intelligence)의 영역에서 [[최소제곱법]]은 데이터를 통해 모델을 학습시키는 최적화 기법의 가장 원초적이면서도 핵심적인 이론적 토대를 형성한다. 현대적인 의미의 기계 학습은 주어진 데이터셋을 가장 잘 설명할 수 있는 모델의 [[매개변수]](Parameter)를 찾아내는 과정으로 정의되며, 이 과정에서 모델의 예측값과 실제 관측값 사이의 차이를 정량화하는 [[손실 함수]](Loss Function)의 설정이 필수적이다. 최소제곱법은 이러한 손실 함수를 [[잔차]]의 제곱합으로 정의함으로써, 복잡한 비선형 시스템이나 대규모 신경망 구조에서도 보편적으로 적용될 수 있는 최적의 기준점을 제공한다. 
 + 
 +기계 학습의 [[지도 학습]](Supervised Learning) 회귀 문제에서 가장 널리 사용되는 [[평균 제곱 오차]](Mean Squared Error, MSE)는 최소제곱법의 원리를 통계적 학습의 영역으로 직접적으로 확장한 형태이다. $ n $개의 학습 데이터에 대여, 실제 타겟값 $ y_i $와 모델의 예측값 $ _i $ 사이의 평균 제곱 오차는 다음과 같이 정의된다. 
 + 
 +$$ MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 $$ 
 + 
 +이 수식을 소화하는 것은 기하학으로 데이터 포인트들과 모델 함수 사이의 유클리드 거리를 최소하는 것과 같으며, 이는 모델이 데이터의 중심 경향성을 학습하도록 유도한다((Least Squares Method from the View Point of Deep Learning, https://www.scirp.org/journal/paperinformation?paperid=84867 
 +)). 특히 [[딥러닝]](Deep Learning)의 초기 단계에서 [[신경망]](Neural Network)의 가중치를 업데이트하기 위한 목적 함수로 최소제곱 기준이 채택되었으며, 이는 이후 다양한 형태의 손실 함수가 고안되는 기초가 되었다. 
 + 
 +최소제곱이 기계 학습에서 강력한 정당성을 갖는 이유는 확률론적 관점에서의 [[최대 우도 추정]](Maximum Likelihood Estimation, MLE)과의 긴밀한 연관성에 있다. 만약 모델의 예측 오차가 서로 독립이며 동일한 [[가우시안 분포]](Gaussian Distribution)를 따른다고 가정할 경우, 데이터에 대한 로그 우도(Log-likelihood)를 최대화하는 문제는 수학적으로 잔차의 제곱합을 최소화하는 문제와 완전히 동일해진다((Gauss on least-squares and maximum-likelihood estimation, https://link.springer.com/content/pdf/10.1007/s00407-022-00291-w.pdf 
 +)). 이러한 통계적 동치성은 최소제곱법이 단순한 수치적 기법을 넘어, 데이터에 내재된 [[노이즈]](Noise)를 확률적으로 처리하는 합리적인 추론 방식임을 뒷받침한다. 
 + 
 +대규모 데이터를 다루는 현대 인공지능 환경에는 [[정규 방정식]]을 통해 해를 직접 구하는 방식보다 [[경사 하강법]](Gradient Descent)과 같은 반복적 최적화 알고리즘이 주로 사용된다. 최소제곱 목적 함수는 매개변수에 대해 [[볼록 함수]](Convex Function)의 특성을 갖는 경우가 많아, 경사 하강을 통해 전역 최적해(Global Optimum)에 안정적으로 수렴할 수 있는 장점을 제공한다. 또한, 모델의 복잡도가 증가함에 따라 발생하는 [[과적합]](Overfitting) 문제를 해결하기 해 최소제곱 함수에 L2 [[규제화]](Regularization) 항을 추가한 [[릿지 회귀]](Ridge Regression) 등은 현대 기계 학습 모델의 일반화 성능을 높이는 핵심적인 기법으로 자리 잡았다((Scaled Least Squares Estimator for GLMs in Large-Scale Problems, https://proceedings.neurips.cc/paper_files/paper/2016/file/e1696007be4eefb81b1a1d39ce48681b-Paper.pdf 
 +)). 
 + 
 +결과적으로 최소제곱법은 전적인 통계 분석의 도구에서 진화하여, 현대 인공지능의 복잡한 모델들이 데이터를 통해 지식을 습득하고 성능을 최적화하는 과정의 근간을 이루는 보편적 원리로 작용하고 있다.
  
최소제곱법.1776159633.txt.gz · 마지막으로 수정됨: 저자 flyingtext