일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 가우스조르당소거법
- 선형대수학
- 컴공수학
- 중간고사
- 정보처리기사 후기
- 행렬식 파이썬
- LU분해 파이썬
- 가우스조던소거법
- 학사
- determinant
- 화웨이라우터
- 머신러닝
- LU분해 알고리즘 구현
- 정보처리기사 기출
- 한국기술교육대학교
- 선형회귀모델
- 컴퓨터공학
- 정규방정식
- 행렬식의 정의
- 학점은행제
- 여인수 전개
- 행렬식
- 김영평생교육원
- LU분해
- 원격평생교육진흥원
- 메가존아이티평생교육원
- 알고리즘
- 한국데이터산업진흥원
- 라이프니츠 공식
- lte라우터
- Today
- Total
gyeo-ri.com
사영(Projection)과 최소제곱법(Least Squared Method) 본문
사영(Orthogonal Projection)
사영(Projection)은 어떤 벡터의 성질을 유지한 채로 다른 벡터나 공간 위에 표현하는 것이라고 설명할 수 있다(엄밀한 정의는 아님). 이 중 정사영(Orthogonal Projection)은 어떤 벡터를 수직 방향으로 내려 표현하는 것을 의미하며, 일반적으로 projection한다는 것은 정사영을 의미한다. 벡터 $v_{a}$를 벡터 $v_{b}$에 projection한 벡터는 $proj_{v_{b}}v_{a}$와 같이 표기하며, 이 벡터는 다음의 공식으로 구할 수 있다.
$\Large \frac{v_{a} \cdot v_{b}}{||v_{b}||^{2}} \cdot v_{b}$
특정 벡터가 아닌 공간에도 projection할 수 있다. 벡터공간 $V_{space}$에 대하여 벡터 $v_{a}$를 projection할 때, $proj_{V_{space}}v_{a}$와 같이 표기한다. 이때 벡터 $v_{b}$가 벡터공간 $V_{space}$에 속하면서, $v_{a}$를 $v_{b}$에 사영시킨 벡터 $proj_{V_{space}} v_{a}$가 $v_{b}$ 위에 있다면, $proj_{V_{space}}v_{a}$와 $proj_{v_{b}}v_{a}$의 결과는 동일한 벡터이다.
벡터 $v$를 $x$에 대해 projection하여 다음과 같이 벡터 $Proj_{x}v$를 얻을 수 있다.
정사영 정리(Projection Theorem)
정사영 정리는 projection의 성질을 이용하여, 어떤 벡터 $v$가 공간 $\mathbb{R}^{n}$에 속하고, $v$가 부분공간일 때 $\mathbb{R}^{n}$의 벡터 $x$는 부분공간 $v$의 벡터 $x_{1}$과 $v$에 수직인 부분공간 $v^{\perp}$의 벡터 $x_{2}$에 의해 $x = x_{1} + x_{2}$로 유일하게 표현된다는 사실과 관련된 정리이다.
정사영 정리에서 $x_{1}$은 $x$를 $v$에 projection한 $proj_{v}x$이며, $x_{2}$는 $x$를 $v^{\perp}$에 projection한 $proj_{v^{\perp}}x$이다. 벡터 $v_{1},v_{2}$는 $x = v_{1} + v_{2}$를 표현하기 위해 정의된 벡터이므로, $v_{1} = x - v_{2}$, 즉 $proj_{v^{\perp}}x = x - proj_{v}x$이다.
이때, 벡터 $x_{1}$를 부분공간 $v$의 기저 집합 $B$를 $a$만큼 선형결합한 결과, 즉 $B \cdot a$로 나타낼 수 있고, $x_{2}$ 또한 기저 $B$를 사용하여 $x_{2} = x - B \cdot a $로 표현할 수 있다. ($a$는 각 기저벡터에 대한 상수배) , $x_{1}, x_{2}$는 각각 벡터공간 $v, ^{\perp}$의 원소이며, 두 벡터공간은 직교하므로 원소인 두 벡터공간끼리도 직교, 두 벡터의 내적(Dot Product) $x_{1} \cdot x_{2} = 0$이다. 이것을 정리하여 $x_{1}$의 선형결합 $a$에 대한 식을 만들 수 있다.
$x_{1} \cdot x_{2} = 0$
$\Leftrightarrow B \cdot a \cdot (x - B \cdot a) = 0 $ $\Leftrightarrow a \cdot B^{T} \cdot (x - B \cdot a) = 0 $ ($\because a \cdot B^{T} = B \cdot a$)
$\Leftrightarrow B^{T} \cdot x - B^{T} \cdot B \cdot a = 0 \cdot a = 0$
$\Leftrightarrow B^{T} \cdot x = B^{T} \cdot B \cdot a $
$\therefore a = (B^{T} \cdot B)^{-1} \cdot B^{T} \cdot x $ ($\because B^{T} \cdot B$는 가역행렬)
정사영 정리에 의해, 벡터 $x$와, $x$를 projection할 공간 $v$의 기저 $B$를 알면
$proj_{v}x = B \cdot (B^{T} \cdot B)^{-1} \cdot B^{T} \cdot x $
를 구할 수 있다.
최소제곱법(Least Squared Method)
최소제곱법은 벡터공간 $v$의 벡터 중 '어떤 벡터 $x$와 가장 가까운 벡터는 $proj_{v}x$라는 사실을 이용하여, 어떤 샘플이 주어졌을 때 비용함수(RMSE 등)를 최소화하는 회귀식, 즉 해당 샘플을 가장 잘 표현하는 추세선을 도출해 내는 방법이다.
선형회귀모델의 비용함수 중 하나인 MSE(평균제곱오차)는 실제 데이터인 $f(\textrm{x}) = \textrm{y}$와, 예측된 회귀식 $\textrm{x} \cdot \hat{\theta} = \hat{\textrm{y}}$의 차를 모두 제곱한 뒤 더하여 구한다($\textrm{x}$는 상수항 $x_{0}$을 포함한 입력값 벡터, $\hat{\theta}$는 $\textrm{x}$의 각 특성의 가중치(파라미터)). 즉 $MSE(\hat{\theta}) = ||\hat{\textrm{y}} - \textrm{y} ||^{2} = ||\textrm{x}\cdot \hat{\theta} - \textrm{y}||^{2} $이며, 식이 최소가 되는 $\hat{\theta}$ 값을 구하는 것이 결국 회귀식을 추정하는 것과 같다. 이것을 편미분(이전 포스트)하여 정규방정식이라는 최적해 공식을 바로 유도할 수도 있으나, 위에서 언급한 정사영 정리의 특성을 이용하여도 같은 식을 얻을 수 있다.
$\textrm{x} \cdot \hat{\theta}$는 $\textrm{x}$의 열벡터들의 선형결합, 즉 열공간인 $col(\textrm{x}) = [x^{1}, x^{2}, \cdots, x^{n}]$ ($x^{i}$는 $\textrm{x}$의 열벡터 = 데이터셋의 각 샘플) 로 표현할 수 있다. 따라서 공간 $col(\textrm{x})$위의 벡터 중 $\textrm{y}$와 최단거리의 벡터는 $proj_{col(\textrm{x})} \textrm{y}$이며, 이를 비용함수 공식에 대입하여 최종적으로 다음과 같이 유도할 수 있다.
$\textrm{x}\cdot \hat{\theta} - \textrm{y}$
$= proj_{col(\textrm{x})} \textrm{y} - \textrm{y}$
$= - proj_{col(\textrm{x})^{\perp}} \textrm{y}$ #벡터 $\textrm{y}$를 $col(\textrm{x})$와 그에 직교한 $col(\textrm{x})^{\perp}$의 벡터의 결합으로 표현
$ = - proj_{row(\textrm{x}^{T})^{\perp}} \textrm{y}$ #$ col(\textrm{x})^{\perp} = row(\textrm{x}^{T})^{\perp}$
$ = - proj_{null(\textrm{x}^{T})} $ #행공간의 직교여공간은 영공간(= 해공간)
$ \therefore MSE(\hat{\theta}) = \textrm{x}\cdot \hat{\theta} - \textrm{y} = - proj_{null(\textrm{x}^{T})}$
위 정리에 의해 비용함수 $MSE(\hat{\theta})$는 $\textrm{x}^{T}$ 영공간이라는 사실을 알 수 있고, 따라서
$\textrm{x}^{T} \cdot (\textrm{x}\cdot \hat{\theta} - \textrm{y}) = 0$
$\Leftrightarrow \textrm{x}^{T} \cdot \textrm{x}\cdot \hat{\theta} = \textrm{x}^{T} \cdot\textrm{y}$
이것을 $\hat{\theta}$에 대하여 정리하면 정규방정식 $\hat{\theta} = (\textrm{x}^{T} \cdot \textrm{x})^{-1} \cdot \textrm{x}^{T} \cdot\textrm{y}$을 얻을 수 있고, 이 $\hat{\theta}$가 선형회귀모델에서 각 변수(특성)에 대한 파라미터 값이다.
최소제곱법을 활용한 선형회귀식 추정
1차방정식 $f(x) = 2x + 1$에 대해, 0에서 5 사이의 실수를 원소로 하는 샘플 집합 $X$와, $X$의 원소를 $f(x)$에 대입했을 때 -1~1 사이의 무작위 오차가 반영되어 도출된 결과 집합 $Y$를 각각 정의하고, $X,Y$의 원소로 구성된 좌표 $(x,y)$를 좌표평면에 나타내면 다음과 같다.
여기서, 샘플을 생성한 회귀식이 $y= 2x + 1 + \epsilon$ 이라는 사실을 모를 때, 최소제곱법을 활용하여 근사치를 구할 수 있다. 정규방정식에 $X, Y$를 대입하여 추정된 파라미터 $\theta$를 구하는 것인데, 이때 $\theta$에는 각 특성의 파라미터인 $\theta_{1}, \theta_{2}, \cdot, \theta_{n}$과 함께 모델 편항(상수항)에 해당하는 $\theta_{0}$가 포함된다, 마찬가지로 $X$에는 상수항에 1을 곱해주기 위해 $x_{0} = 1$이 추가된다.
최소제곱법을 활용한 추정의 결과로 $\hat{y} = 1.998x + 1.144 + \epsilon$ 이 도출되었다(소숫점 셋째자리까지 반올림). 기존 식인$y = f(x)$와 유사하지만, 무작위오차의 존재로 인해 미묘한 차이가 발생한 것을 확인할 수 있다.
최소제곱법은 데이터셋인 $x$를 한꺼번에 사용하여 연산을 수행하기 때문에, 연산 시간이 샘플의 크기 및 특성의 수에많은 영향을 받는다. 위 예시와 같이 비교적 적은 수의 샘플을 사용할 경우 효율적으로 회귀식을 추정할 수 있겠지만, 대용량의 데이터셋을 다루는 경우에는 상대적으로 비효율적이다.
또한, $X^{T} \cdot T$의 역행렬이 존재하지 않는 경우가 있을 수 있다. 이 경우, 일반적인 방법으로는 정규방정식을 전개하지 못하지만, 유사역행렬(=의사역행렬 : pseudo inverse)을 사용하면 역시 해를 구할 수 있다. $X^{T} \cdot T$의역행렬이 존재하지 않는 것은 1) 데이터셋의 특성이 과도하게 많거나, 2) 특성 간에 선형성이 존재할 때이다(관련 브런치 참조).
참고자료
1. 프로그래머를 위한 선형대수(히라오카 카즈유키 저, 이창신 옮김) - 길벗(2017)
2. [Youtube] 쑤튜브 : 10분 선형대수 강의 모음(youtu.be/x-Ewz1ukXEA)
3. 핸즈온 머신러닝(오렐리앙 제롱 저, 박해선 옮김) - 한빛미디어(2020)
4. 정규방정식의 비가역성 관련 브런치(brunch.co.kr/@linecard/467)
'Study Note > 선형대수학' 카테고리의 다른 글
수반행렬의 성질과 크래머의 공식 (0) | 2021.01.14 |
---|---|
행렬식(Determinant) - 여인수 전개와 가우스 소거법을 이용한 방법 (0) | 2021.01.13 |
행렬식(Determinant) - 라이프니츠 공식 (0) | 2021.01.12 |
LU 분해(LU Decomposition) - (2) 해 도출(Forward/Back Substitution) (0) | 2021.01.11 |
LU 분해(LU Decomposition) - (1) 분해 과정 (2) | 2021.01.07 |