행렬은 행렬의 열공간(span of column vectors, or column space)으로의 선형변환으로 해석할 수 있다.

주어진 벡터
$$ \vec{x} = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = x_1 \begin{bmatrix} 1 \\ 0 \end{bmatrix} + x_2 \begin{bmatrix} 0 \\ 1 \end{bmatrix} = x_1 \vec{e_1} + x_2 \vec{e_2} $$
$$ A\vec{x} = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix} \vec{u} & \vec{v} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = x_1 \vec{u} + x_2 \vec{v} $$
행렬 간 곱셈이라고 다르지 않다.
$$
\begin{align*}
AX &= \begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix} x_{a} & x_{b} \\ x_{c} & x_{d} \end{bmatrix}\\
&= \begin{bmatrix} \vec{u} & \vec{v} \end{bmatrix} \begin{bmatrix} \vec{x_1} & \vec{x_2} \end{bmatrix}\\
&= \begin{bmatrix} \vec{u} & \vec{v} \end{bmatrix} \vec{x_1} \vec{e_1} + \begin{bmatrix} \vec{u} & \vec{v} \end{bmatrix} \vec{x_2} \vec{e_2}\\
&= \begin{bmatrix} \vec{u} & \vec{v} \end{bmatrix} \begin{bmatrix} x_a \\ x_c \end{bmatrix} \vec{e_1} + \begin{bmatrix} \vec{u} & \vec{v} \end{bmatrix} \begin{bmatrix} x_b \\ x_d \end{bmatrix} \vec{e_2}\\
&= \begin{pmatrix} x_a \vec{u} + x_c \vec{v} \end{pmatrix} \vec{e_1} + \begin{pmatrix} x_b \vec{u} + x_d \vec{v} \end{pmatrix} \vec{e_2}
\end{align*}
$$
위 식에 따라 AX의 각 열벡터는 A의 열벡터에 대한 선형결합으로 표현되며 이는 다시 A 열벡터의 basis인
A가 full rank 정사각행렬일 경우 두 열벡터
이 블로그에 아름다운 시각화 자료가 있다.
1. 역행렬
반대로 역행렬은 행렬의 열공간으로부터 원래공간(단위기저가
이 과정에서 단일 기저와 선형변환에 의해 변환된 기저 간 scaler가 determinant가 된다.
이 블로그에서 이에 대해 좋은 시각화자료를 안내한다.
$$ A^{-1} = det(A)^{-1} adj(A) $$
역행렬이 존재하지 않는다는 건 무엇을 의미할까?
이는 기존 공간에서 행렬의 열공간으로 매핑할 때 열공간의 기저가 이루는 단위 넓이(
다시 말해,
표현이 다소 어려울 수 있지만 우린 어떤 물건(3차원)을 손실없이 그림(2차원)으로 표현하는 게 불가능하다는 것을 이미 알고있다.
2. 유사역행렬
그렇다면 유사역행렬은 어떻게 해석할 수 있을까?
유사역행렬은 행렬의 열공간에 나타내지 못하는 벡터를 어떻게든 행렬의 열공간에 표현하려는 시도의 결과이다.
가장 단순한 시도로는 벡터를 행렬의 열공간에 사영(projection)하여 나타내는 것을 생각해볼 수 있는데, 이것이 바로 유사역행렬의 실체이다.
이에 따라 유사역행렬이 모든 행렬에 대해 유일하게 존재하고, 역행렬이 존재하는 경우 역행렬과 유사역행렬이 동치라는 것이 자명해진다.
이를 수식으로 확인해보자.
우선 본래의 문제, 주어진 벡터
$$
\begin{align*}
A\vec{x} &= \vec{b} \\
\vec{x} &= A^{-1} \vec{b}
\end{align*}
$$
그러나 A의 역행렬이 존재하지 않는 경우 해가 존재하지 않거나 유일하지 않다.
그러므로 아래와 같이 A의 열공간에
이에 위에서 언급했듯 유사역행렬을 계산하여 해를 계산(근사)한다.
먼저 위 그림처럼
그 경우
$$
\begin{align*}
A\vec{x} &= \vec{b’} \\
\vec{x} &= A^{-1} \vec{b’}
\end{align*}
$$
이 때, A의 열공간과
그러므로 A의 열공간과
$$ A^{T} \vec{h} = A^{T} (\vec{b} – \vec{b’}) = A^{T} (\vec{b} – A\vec{x}) = 0 $$
$$ A^{T}A\vec{x} = A^{T}\vec{b} $$
$$ \vec{x} = (A^{T}A)^{-1}A^{T}\vec{b} = A^{\dagger}\vec{b} $$
이 때의 역행렬
물론 위 식에서 틀린 부분이 있다.
A의 gram matrix
하지만 특이값 분해(SVD)를 적용하면 임의의 행렬 A에 대해 다음과 같이 유사역행렬을 계산할 수 있다.
$$
\begin{align*}
A &= U \Sigma V^T \\
A^{\dagger} &= V \Sigma^{-1} U^T
\end{align*}
$$
이 때, U는
그러므로
$$ \vec{x} = V \Sigma^{-1} U^T b $$
이후로도 이 notation을 사용할 수 있으나 표기를 깔끔하게 하기 위해 기존
Moore-Penrose 유사역행렬은 위 그림처럼
특이값 분해를 이용하여 유사역행렬을 기하학적으로 해석할 수도 있다.
애초에 특이값 분해는 임의의 행렬을 회전(rotation,
특이행렬은 unitary 행렬이므로 역행렬은 곧 전치행렬이 되며 특이값 행렬은 대각행렬이기에 역행렬을 아주 간단하게 풀어낼 수 있다.
이 블로그에서 좋은 시각화 자료를 제공하고 있다.
3. 정사영
정사영행렬을 보기에 앞서 정사영부터 살펴보자
벡터 p에 대한 벡터 a의 정사영을 다음 그림처럼 나타낼 수 있다.
내적은 두 벡터 간 정사영을 사용하기에 벡터 a와 벡터 p의 내적을 계산하면
$$ \vec{a} \cdot \vec{p} = |\vec{a}| |\vec{p}| \cos{\theta} $$
이고,
$$
\begin{align*}
\vec{a} \cdot \vec{p} &= |\vec{a}| |\vec{p}| \cos{\theta} \\
&= |\vec{a}| |\vec{p}| \frac{t|\vec{p}|}{|\vec{a}|} \\
&= t |\vec{p}| |\vec{p}| \\
&= t \vec{p} \cdot \vec{p}
\end{align*}
$$
그러므로 t는 다음과 같이 계산되고
$$ t = \frac{\vec{a} \cdot \vec{p}}{\vec{p} \cdot \vec{p}} $$
구하고자 하는 정사영은 다음과 같다.
$$ t \vec{p} = \frac{\vec{a} \cdot \vec{p}}{\vec{p} \cdot \vec{p}} \cdot \vec{p} $$
4. 정사영행렬
2에서 정의한 유사역행렬을 통해 정사영행렬을 간단히 구할 수 있다.
임의의
그러므로 정사영행렬을 구하는 방법은 아래 그림처럼 단순하게 나타내진다.
위 그림에서 1, 2의 순서를 따라가면 결국 임의의 벡터
이제 수식으로 살펴보자.
$$
\begin{align*}
\vec{x} &= A^{\dagger} \vec{b} \\
A \vec{x} &= A A^{\dagger} \vec{b} = A (A^{T}A)^{-1}A^{T} \vec{b} = \vec{b’}
\end{align*}
$$
그러므로 임의의 벡터
$$ \vec{b’} = A (A^{T}A)^{-1}A^{T} \vec{b} $$
조금 억지스럽지만 이 식을 아래처럼 바꿔보면 3에서 보았던 벡터 형태의 정사영 결과와 동일한 형태를 하고 있음을 알 수 있다.
$$ x’ = A (A^T A)^{-1} A^T x = \frac{A A^T x}{A^T A} = A \frac{A^T x}{A^T A} $$
물론 정사영행렬에 gram matrix 대신 SVD를 적용할 수도 있다.
$$ \vec{b’} = A V \Sigma^{T} U^T \vec{b} $$
당연히 V는 오른쪽 특이행렬, U는 왼쪽 특이행렬,
이로서 임의의 행렬 A에 대해 유사역행렬과 정사영행렬은 유일하게 존재하며 행렬 A가 full rank 행렬(가역행렬)이라면
5. 최소자승법 (Ordinary Least Square, OLS)
정사영행렬이 사용되는 가장 좋은 예시가 있다.
바로 선형회귀이다.
독립변수 X와 종속변수 y가 주어질 때 선형회귀는 다음과 같이 표현된다.
$$ y = X\beta + \epsilon $$
이제
이럴 때 사용하는 것이 정사영행렬이다.
위 그림처럼 독립변수 X로 표현이 불가능한 종속변수 y를 X의 열공간으로 정사영시켜
이 때, 추정 오차(MSE)는
$$ loss = ||X\vec{\beta} – \vec{y}||_2 $$
가 됨이 자명하다.
이는 파라미터
$$
\begin{align*}
loss &= ||X\vec{\beta} – \vec{y}||_2 \\
&= (X\vec{\beta} – \vec{y})^T (X\vec{\beta} – \vec{y}) \\
&= \vec{\beta}^T X^T X\vec{\beta} – (X\vec{\beta})^T \vec{y} – \vec{y}^T X\vec{\beta} – \vec{y}^T \vec{y} \\
\frac{\partial}{\partial \beta} loss &= 2X^T X \vec{\beta} – 2X^T \vec{y} \\
&= 0
\end{align*}
$$
이고, 이에 따라
$$ \beta = (X^T X)^{-1} X^T \vec{y} = X^{\dagger} \vec{y} $$
굳이 이렇게 식을 전개할 필요도 없이 위의 그림이나 정사영행렬 공식만으로 쉽게 알 수 있는 내용이다.