일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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분해 파이썬
- 학점은행제
- 한국기술교육대학교
- 알고리즘
- 메가존아이티평생교육원
- 김영평생교육원
- 머신러닝
- 원격평생교육진흥원
- 컴공수학
- 행렬식 파이썬
- 학사
- 여인수 전개
- 가우스조르당소거법
- 가우스조던소거법
- 라이프니츠 공식
- LU분해 알고리즘 구현
- 정규방정식
- 컴퓨터공학
- LU분해
- 선형회귀모델
- 한국데이터산업진흥원
- determinant
- lte라우터
- Today
- Total
gyeo-ri.com
사영(Projection)과 최소제곱법(Least Squared Method) 본문
사영(Orthogonal Projection)
사영(Projection)은 어떤 벡터의 성질을 유지한 채로 다른 벡터나 공간 위에 표현하는 것이라고 설명할 수 있다(엄밀한 정의는 아님). 이 중 정사영(Orthogonal Projection)은 어떤 벡터를 수직 방향으로 내려 표현하는 것을 의미하며, 일반적으로 projection한다는 것은 정사영을 의미한다. 벡터 va를 벡터 vb에 projection한 벡터는 projvbva와 같이 표기하며, 이 벡터는 다음의 공식으로 구할 수 있다.
va⋅vb||vb||2⋅vb
특정 벡터가 아닌 공간에도 projection할 수 있다. 벡터공간 Vspace에 대하여 벡터 va를 projection할 때, projVspaceva와 같이 표기한다. 이때 벡터 vb가 벡터공간 Vspace에 속하면서, va를 vb에 사영시킨 벡터 projVspaceva가 vb 위에 있다면, projVspaceva와 projvbva의 결과는 동일한 벡터이다.

벡터 v를 x에 대해 projection하여 다음과 같이 벡터 Projxv를 얻을 수 있다.
정사영 정리(Projection Theorem)
정사영 정리는 projection의 성질을 이용하여, 어떤 벡터 v가 공간 Rn에 속하고, v가 부분공간일 때 Rn의 벡터 x는 부분공간 v의 벡터 x1과 v에 수직인 부분공간 v⊥의 벡터 x2에 의해 x=x1+x2로 유일하게 표현된다는 사실과 관련된 정리이다.
정사영 정리에서 x1은 x를 v에 projection한 projvx이며, x2는 x를 v⊥에 projection한 projv⊥x이다. 벡터 v1,v2는 x=v1+v2를 표현하기 위해 정의된 벡터이므로, v1=x−v2, 즉 projv⊥x=x−projvx이다.
이때, 벡터 x1를 부분공간 v의 기저 집합 B를 a만큼 선형결합한 결과, 즉 B⋅a로 나타낼 수 있고, x2 또한 기저 B를 사용하여 x2=x−B⋅a로 표현할 수 있다. (a는 각 기저벡터에 대한 상수배) , x1,x2는 각각 벡터공간 v,⊥의 원소이며, 두 벡터공간은 직교하므로 원소인 두 벡터공간끼리도 직교, 두 벡터의 내적(Dot Product) x1⋅x2=0이다. 이것을 정리하여 x1의 선형결합 a에 대한 식을 만들 수 있다.
x1⋅x2=0
⇔B⋅a⋅(x−B⋅a)=0 ⇔a⋅BT⋅(x−B⋅a)=0 (∵)
\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 |