← Junehyeok Lee

용수철로 보는 최소제곱 직선

설정

데이터 점 $(x_i, y_i)$, $i = 1, \dots, n$이 주어져 있다. 각 점에 수직 방향으로만 늘어나는 똑같은 용수철(상수 $k$)을 달고, 반대쪽 끝을 길고 단단한 막대

\[ \ell : \; y = a + bx \]

에 연결한다. 막대를 놓으면 계는 스스로 평형을 찾아간다.

그림의 점은 끌어서 옮길 수 있다. 빈 곳을 누르면 점이 생기고, 더블클릭(휴대폰에서는 길게 누르기)하면 지워진다. 막대도 잡아서 던질 수 있다.

에너지 관점

$i$번째 용수철이 늘어난 길이는 $y_i - a - bx_i$이므로 탄성에너지 총합은

\[ U(a, b) = \frac{k}{2} \sum_{i=1}^{n} \left( y_i - a - b x_i \right)^2 . \]

이는 최소제곱 목적함수에 상수 $k/2$를 곱한 것과 같다. 따라서

평형⟺에너지 최소⟺최소제곱 직선.

그림의 사각형 하나의 넓이가 $(y_i - a - bx_i)^2$이다.

$U$의 등고선. 가로축은 막대의 기울기 각, 세로축은 무게중심에서 잰 막대의 높이다. 검은 점이 지금 막대이고 ○가 최솟값이다. 그림을 누르면 막대를 그 자리로 옮길 수 있다.

정역학 조건으로 풀기

$i$번째 용수철이 막대의 $x = x_i$ 위치에 가하는 힘(위쪽을 양)은

\[ F_i = k\,(y_i - a - b x_i). \]

1. 힘 평형 $\sum F_i = 0$.

\[ \sum_{i=1}^{n} (y_i - a - b x_i) = 0 \;\Longrightarrow\; \bar y = a + b \bar x . \]

즉 막대는 무게중심 $(\bar x, \bar y)$를 지난다.

2. 무게중심 기준 토크 평형 $\sum \tau_i = 0$. 무게중심을 원점으로 하는 좌표

\[ X_i = x_i - \bar x, \qquad Y_i = y_i - \bar y \]

를 쓰면 막대는 $Y = bX$이고 $F_i = k\,(Y_i - b X_i)$이다. 무게중심에 대한 토크는 $\tau_i = X_i F_i$이므로

\[ \sum_{i=1}^{n} X_i \left( Y_i - b X_i \right) = 0 \] \[ \Longrightarrow\quad b = \frac{\sum X_i Y_i}{\sum X_i^2} = \frac{\sum (x_i - \bar x)(y_i - \bar y)}{\sum (x_i - \bar x)^2}. \]

정리

명제.최소제곱 직선의 정규방정식 두 개는 용수철–막대 계의 정역학 조건과 정확히 일치한다.

\[ \underbrace{\frac{\partial U}{\partial a} = 0}_{\text{병진 평형}: \ \sum F_i = 0} \qquad \underbrace{\frac{\partial U}{\partial b} = 0}_{\text{회전 평형}: \ \sum \tau_i = 0} \]

용수철을 수직이 아니라 막대에 수직으로 당기게 하면 수직거리 최소제곱(직교 회귀, PCA)이 된다.

그림은 지금 직교 모드다. 점선은 최소제곱 직선이다.