Post

Matrix Decomposition

Based on the lecture “Mathematics for Artificial Intelligence (2022-1)” by Prof. Yeo Jin Chung, Dept. of AI, Big Data & Management, College of Business Administration, Kookmin Univ.

Matrix Decomposition


  • 정의 : 하나의 행렬을 특정한 구조를 가진 다른 행렬의 합과 곱으로 나타내는 작업

  • 종류

    • 스펙트럼 분해(Spectral Decomposition) : 대칭행렬에 대한 분해
    • 특이값 분해(Singular Value Decomposition; SVD) : 비대칭행렬에 대한 분해

Spectral Decomposition


  • 대칭행렬 $A_{n \times n}$ 와 그 고유값 $ \vert \lambda_{1} \vert \ge \vert \lambda_{2} \vert \ge \cdots \ge \vert \lambda_{n} \vert$, 고유벡터 $\overrightarrow{v_{1}},\overrightarrow{v_{2}},\cdots,\overrightarrow{v_{n}}$ 에 대하여, 직교행렬 $P$ 와 대각행렬 $\Lambda$ 를 다음과 같이 정의하자

    \[\begin{aligned} P &= \begin{bmatrix} \overrightarrow{v_{1}} & \overrightarrow{v_{2}} & \cdots & \overrightarrow{v_{n}} \end{bmatrix} \\ \Lambda &= diag(\lambda_1, \lambda_2, \cdots, \lambda_n) \end{aligned}\]
  • $A_{n \times n}$ 를 다음과 같이 분해하는 작업을 스펙트럼 분해라고 정의함

    \[\begin{aligned} A &= P \Lambda P^{T} \\ &= \lambda_1 \overrightarrow{v_{1}} \overrightarrow{v_{1}^T} + \lambda_2 \overrightarrow{v_{2}} \overrightarrow{v_{2}^T} + \cdots + \lambda_n \overrightarrow{v_{n}} \overrightarrow{v_{n}^T} \\ &= \displaystyle\sum_{i=1}^{n}\lambda_i \overrightarrow{v_{i}} \overrightarrow{v_{i}^T} \end{aligned}\]

Singular Value Decomposition


SVD

  • 비대칭행렬 $A_{m \times n}$ 에 대하여 다음과 같이 분해하는 작업을 특이값 분해라고 정의함

    \[\begin{aligned} A_{m \times n} = \begin{cases} U_{n \times m} D_{m \times m} (V_{n \times m})^T\;&if\;m \le n \\ U_{m \times n} D_{n \times n} (V_{n \times n})^T\;&if\;n \le m \\ \end{cases} \end{aligned}\]
  • 행렬 $U$ 는 행렬 $AA^{T}(=(A^{T}A)^T)$ 의 고유벡터 $\overrightarrow{u}$ 의 집합임

    \[\begin{aligned} U &= \begin{bmatrix} \overrightarrow{u_1}&\overrightarrow{u_2}&\cdots&\overrightarrow{u_k} \end{bmatrix}\\ k &= \min (m, n)\\ &= rank(A)\\ \overrightarrow{u_i} &\in \{\overrightarrow{u}\,|\,AA^{T}\overrightarrow{u} = \lambda \overrightarrow{u}\} \end{aligned}\]
  • 행렬 $V$ 는 행렬 $A^{T}A(=(AA^{T})^T)$ 의 고유벡터 $\overrightarrow{v}$ 의 집합임

    \[\begin{aligned} U &= \begin{bmatrix} \overrightarrow{v_1}&\overrightarrow{v_2}&\cdots&\overrightarrow{v_k} \end{bmatrix}\\ k &= \min (m, n)\\ &= rank(A)\\ \overrightarrow{v_i} &\in \{\overrightarrow{v}\,|\,A^{T}A\overrightarrow{v} = \lambda \overrightarrow{v}\} \end{aligned}\]
  • 행렬 $D$ 는 행렬 $AA^{T}$ 혹은 그 전치행렬 $A^{T}A$ 의 고유값의 제곱근 $\sqrt{\lambda_1} \ge \sqrt{\lambda_2} \ge \cdots \ge \sqrt{\lambda_k} > 0$ 을 대각원소로 가지는 대각행렬임

    \[\begin{aligned} D &= diag(\sqrt{\lambda_1}, \sqrt{\lambda_2}, \cdots, \sqrt{\lambda_k}) \\ &= \begin{pmatrix} \sqrt{\lambda_1} & 0 & \cdots & 0 \\ 0 & \sqrt{\lambda_2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \sqrt{\lambda_k} \end{pmatrix} \\ k &= \min (m, n)\\ &= rank(A) \end{aligned}\]

Singular Value & Vector

  • 특이값(Singular Value) : 대각행렬 $D$ 의 대각원소로서, 행렬 $AA^{T}$ 혹은 그 전치행렬 $A^{T}A$ 의 고유값의 제곱근

    \[\sqrt{\lambda_1} \ge \sqrt{\lambda_2} \ge \cdots \ge \sqrt{\lambda_k} > 0\]
  • 왼쪽 특이벡터(Left Singular Vector) : 행렬 $U$ 의 열벡터로서 행렬 $AA^{T}$ 의 고유벡터

    \[\begin{aligned} \overrightarrow{u_i} &\in \{\overrightarrow{u}\,|\,AA^{T}\overrightarrow{u} = \lambda \overrightarrow{u}\},\\ k &= \min (m, n)\\ &= rank(A) \end{aligned}\]
  • 오른쪽 특이벡터(Right Singular Vector) : 행렬 $V$ 의 열벡터로서 행렬 $AA^{T}$ 의 전치행렬 $A^{T}A$ 의 고유벡터

    \[\begin{aligned} \overrightarrow{v_i} &\in \{\overrightarrow{v}\,|\,A^{T}A\overrightarrow{v} = \lambda \overrightarrow{v}\},\\ k &= \min (m, n)\\ &= rank(A) \end{aligned}\]
  • 특이값 분해의 전개

    \[\begin{aligned} A_{m \times n} &= \begin{cases} U_{n \times m} D_{m \times m} (V_{n \times m})^T\;if\;m \le n \\ U_{m \times n} D_{n \times n} (V_{n \times n})^T\;if\;n \le m \\ \end{cases} \\ &= \displaystyle\sum_{i=1}^{\min (m,n)} \sqrt{\lambda_i} u_i v_i^T \end{aligned}\]
This post is licensed under CC BY 4.0 by the author.