일반적으로 이용하는 행렬곱의 방법
필자는 고등학교 시절 7차 교육과정을 거치면서 고등학교 시절 행렬에 대해 배운 적이 있다.
그때 처음 배운 행렬의 곱셈 방식은 너무나도 독특했는데, 지금 생각해도 익숙하지 않다면 행렬의 곱은 “왜 이렇게 계산하지?”라고 생각이 들 정도로 이상하다.
행렬의 곱은 일반적으로 다음과 같이 생각한다.
그림 2. 행렬의 일반적인 곱셈 방법
수식을 이용해 조금 더 정확하게 쓰면 다음과 같다.
\[\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\begin{bmatrix}a & b \\ c & d\end{bmatrix} = \begin{bmatrix} 1 \cdot a +2\cdot c && 1\cdot b + 2\cdot d \\ 3\cdot a + 4\cdot c && 3\cdot b + 4 \cdot d \end{bmatrix}\]이것을 잘 뜯어 생각해보면, 왼쪽에 있는 행렬에서 행 하나를 가져오고 오른쪽에 있는 행렬에서 열 하나를 가져와서 계산하게 된다는 것을 알 수 있다.
행렬 곱이 이런 방식으로 정의되는 이유는 행렬이 일종의 함수라는 관점에서부터 얻어진다고 할 수 있다.
추후에 자세하게 다루겠지만, 행렬을 어떤 함수 $f, g: \Bbb{R}^2\rightarrow \Bbb{R}^2$라고 생각해보자.
즉, 2 차원 벡터를 입력 받아 2차원 벡터를 출력하는 함수의 기능을 한다고 보자는 것이다.
다시 말해, 벡터 $[x,y]^T$와 아래의 행렬 $f$, $g$에 대하여 (여기서는 mapping의 의미를 강조하여 $f$와 $g$로 씀)
\[f: \begin{bmatrix} a & b \\ c & d \end{bmatrix}\] \[g: \begin{bmatrix} p & q \\ r & s \end{bmatrix}\]각각의 매핑은 다음과 같다.
\[f\left(\begin{bmatrix} x \\ y\end{bmatrix}\right)=\begin{bmatrix}ax+by \\ cx+dy\end{bmatrix}\] \[g\left(\begin{bmatrix} x \\ y\end{bmatrix}\right)=\begin{bmatrix}px+qy \\ rx+sy\end{bmatrix}\]이 때 두 매핑의 합성 $f\bullet g$를 생각해보면,
\[f\bullet g\left(\begin{bmatrix} x \\ y\end{bmatrix}\right) =\begin{bmatrix}a(px+qy)+b(rx+sy) \\ c(px+qy)+d(rx+sy)\end{bmatrix}\] \[=\begin{bmatrix}(ap+br)x + (aq+bs)y \\ (cp+dr)x + (cq+ds)y\end{bmatrix}\]과 같다. 따라서 합성 매핑 $f\bullet g$는 다음과 같이 정의되면 된다.
\[f\bullet g=\begin{bmatrix} ap+br & aq+bs \\ cp+dr & cq+ds\end{bmatrix}\]이 합성 매핑을 행렬의 곱으로 정의하고, 특별한 연산 기호는 쓰지 않고 두 행렬을 나란히 써서 나타낸다1.
또, 가져온 행 혹은 열을 벡터로 생각한다면 계산된 행렬의 각 원소값은 벡터의 내적을 표현한 것임을 알 수 있다.
즉, 식(1)의 계산 결과에서 1행 1열의 원소값은 계산 되기 전 두 행렬 중 왼쪽 행렬의 1행의 행벡터와 오른쪽 행렬의 1열의 열벡터를 가져와 계산한 것임을 알 수 있다.
\[\begin{bmatrix}1 & 2\end{bmatrix}\begin{bmatrix}a\\c\end{bmatrix} = 1\cdot a + 2\cdot c\]즉, 일반적으로 이용하는 행렬곱의 관점은 행벡터와 열벡터 간의 내적(inner product)을 계산함으로써 행렬곱이 이루어진다는 것을 알 수 있다.
여기서 행벡터와 행벡터, 혹은 열벡터와 열벡터가 아닌, “행벡터와 열벡터 간의 연산”이 이루어진다는 점이 중요한데, 이 점에 대해서는 다음 포스트인 행벡터의 의미와 벡터의 내적 편을 참고하기를 추천한다.
참고로 이러한 관점을 응용한 개념으로는 공분산 행렬이 있으며, 공분산 행렬의 의미는 여러 종류의 feature들이 서로 얼마나 닮았는가(즉, 내적을 이용)를 의미한다.
열벡터의 선형 결합
또 다른 방식으로 행렬의 곱을 이해하는 방법은 열벡터의 선형결합으로 이해하는 방법이다.
이번에는 행렬과 벡터의 곱에 대해 생각해보자. 다시 말해 식 (1)에서 두 행렬을 곱했던 경우에서 오른쪽에 곱해지는 행렬의 한 열만 가져와서 결과를 확인해보자.
\[\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\begin{bmatrix}a \\ c \end{bmatrix} = \begin{bmatrix} 1 \cdot a +2\cdot c \\ 3\cdot a + 4\cdot c \end{bmatrix}\]이 결과를 보면 다음과 같이 생각할 수도 있다는 점을 알 수 있다.
\[\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\begin{bmatrix}a \\ c \end{bmatrix} = a\cdot\begin{bmatrix} 1\\ 3 \end{bmatrix} + c\cdot\begin{bmatrix} 2\\ 4 \end{bmatrix}\]다시 말해 행렬과 벡터의 곱은 행렬을 구성하고 있는 두 열벡터의 선형결합을 다른 방식으로 표현한 것이라고 할 수 있는 것이다.
열공간을 기반한 해석
벡터의 선형결합 부분에서 설명했던 것 처럼 벡터의 선형결합이 의미하는 것은 벡터 공간의 생성이다. 즉, 행렬과 벡터의 곱이라는 수식이 우리에게 묻는것은 “주어진 열벡터들을 이용해 만들 수 있는 벡터 공간(즉, 열공간(column space))에 대한 탐구”라는 점에서 매우 중요하다고 할 수 있다.
이런 관점에서 다음의 수식의 의미를 생각해보자.
\[A\vec{x} = \vec{b}\]예를 들어 아래와 같은 문제를 생각해보자.
\[\begin{bmatrix}1 & 2 \\ 3 & 4\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}3\\5\end{bmatrix}\]이 문제의 해답은 아래와 같다는 것은 연립방정식을 풀면 쉽게 알 수 있다.
\[\begin{cases} x+2y = 3 \\ 3x+4y = 5 \end{cases}\] \[\Rightarrow x=-1, \text{ }y=2\]하지만, 이번엔 이 식을 아래와 같이 생각해보자.
\[x\begin{bmatrix}1\\3\end{bmatrix}+y\begin{bmatrix}2\\4\end{bmatrix}=\begin{bmatrix}3\\5\end{bmatrix}\]위 식을 필자는 이렇게 해석하고 싶다.
이러한 관점을 이용한 선형대수학에서의 응용은 선형연립방정식의 풀이와 선형 회귀가 있다.
선형 변환을 기반한 해석
이 뿐 아니라, 행렬과 벡터의 곱이 열벡터의 선형결합이라는 해석이 우리에게 주는 또 다른 관점은 행렬과 벡터의 곱을 기저 벡터의 변형을 통한 벡터의 선형 변환으로 해석할 수 있도록 도움을 주기 때문이다.
예를 들어, 행렬
\[A=\begin{bmatrix} 2 & -3 \\ 1 & 1 \end{bmatrix}\]를 이용해 벡터
\[\vec x=\begin{bmatrix} 1 \\ 1 \end{bmatrix}\]를 변환시켜 보면,
\[A\vec x =\begin{bmatrix} 2 & -3 \\ 1 & 1 \end{bmatrix} \begin{bmatrix} 1 \\ 1 \end{bmatrix}=\begin{bmatrix} -1 \\ 2 \end{bmatrix}\]임을 알 수 있는데, 아래의 영상에서 처럼 이 값은 새로운 두 기저벡터의 1배와 1배의 합으로 표현될 수 있다.
이 내용에 대해서는 행렬과 선형변환편에서 자세히 다루었으므로 해당 포스트를 참고하는 것도 좋을 것 같다.
이러한 관점을 이용한 선형대수학에서의 응용은 고윳값과 고유벡터, 주성분 분석(PCA), 특이값 분해(SVD) 등이 있다.
-
8일 간의 선형대수학, 경문사, 박부성 지음 ↩