행렬 곱의 네 가지 관점

유튜브 혁펜하임 영상 중 행렬 곱셈에 대한 네 가지 관점을 소개하는 부분이 인상적이었다. 이 네 가지 관점을 머릿속에서 자유자재로 오갈 수 있으면 선형대수학에 대한 이해가 훨씬 빠를 것으로 기대한다.

$A\in\mathbb{R}^{m\times n},\ B\in\mathbb{R}^{n\times p}$


1) 내적

$A$의 $i$번째 을 $a_i^T$, $B$의 $j$번째 을 $b_j$라 두면

\[A= \begin{bmatrix} a_1^T\\ a_2^T\\ \vdots\\ a_m^T \end{bmatrix}, \qquad B=[b_1\ b_2\ \cdots\ b_p]\]

그때 $C=AB$의 원소는

\[c_{ij}=a_i^T b_j\]

즉, “$C$의 $(i,j)$”는 $A$의 $i$번째 행$B$의 $j$번째 열의 내적이다.


2) rank-1 matrix들의 합

이번엔 $A$를 열벡터로, $B$를 행벡터로 풀어 쓰면,

\[A=[a_1\ a_2\ \cdots\ a_n], \qquad B= \begin{bmatrix} b_1^T\\ b_2^T\\ \vdots\\ b_n^T \end{bmatrix}\]
  • $a_k\in\mathbb{R}^{m}$: $A$의 $k$번째 열
  • $b_k^T\in\mathbb{R}^{1\times p}$: $B$의 $k$번째 행

그럼 행렬곱은

\[AB= a_1 b_1^T + a_2 b_2^T + \cdots + a_n b_n^T= \sum_{k=1}^{n} a_k b_k^T\]

즉 $AB$는 이런 rank-1 행렬들을 $k=1\sim n$까지 더한 것이다.


3) Column space 관점 = $Ax$

$A$를 열벡터로 나타내면,

\[A = [a_1\ a_2\ \cdots\ a_n] \quad (a_k \in \mathbb{R}^m)\]

그리고 $x\in\mathbb{R}^n$을

\[x=\begin{bmatrix}x_1\\ x_2\\ \vdots\\ x_n \end{bmatrix}\]

라고 하면,

\[Ax = [a_1\ a_2\ \cdots\ a_n] \begin{bmatrix}x_1\\ x_2\\ \vdots \\x_n \end{bmatrix} = x_1 a_1 + x_2 a_2 + \cdots + x_n a_n\]

$Ax$는 $A$의 열벡터 $a_k$들의 선형결합이라서 항상 $\mathrm{Col}(A)$에 있다.


4) Row space 관점 = $x^TA$

이번엔 $A$를 행벡터로 나타내면,

\[A = \begin{bmatrix} a_1^T\\ a_2^T\\ \vdots\\ a_m^T \end{bmatrix} \quad (a_i^T \in \mathbb{R}^{1\times n})\]

그리고 $x\in\mathbb{R}^m$을

\[x^T=[x_1\ x_2\ \cdots\ x_m]\]

라고 하면,

\[x^T A= [x_1\ x_2\ \cdots\ x_m] \begin{bmatrix} a_1^T\\ a_2^T\\ \vdots\\ a_m^T \end{bmatrix} = x_1 a_1^T + x_2 a_2^T + \cdots + x_m a_m^T\]

$x^T A$는 $A$의 행벡터 $a_i^T$들의 선형결합이라서 항상 $\mathrm{Row}(A)$에 있다.




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • How to teach your embedding model new words
  • classmethod vs staticmethod in Python
  • Powerful, and Thorough Unit Tests with pytest
  • Publishing a Package to PyPI
  • Ubuntu NetPlan