ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • OVERVIEW : SVD
    Math♾️/Singular Value Decomposition 2022. 10. 9. 23:48

    고윳값과 고유벡터

     

    위는 행렬 $A$, 고유벡터 $\vec{v}$, 고윳값 $\lambda$ 간의 관계를 나타내는 식이다. 위 식은 무엇을 의미할까?

     

    고유벡터 $\vec{v}$에 행렬을 곱하였더니 방향은 $\vec{v}$을 유지하며 벡터의 크기만 $\lambda$만큼 변화하였다.

     

    "고유벡터는 행렬이 곱해졌을 때 방향이 변하지 않는다" 이것이 고유벡터가 변화를 나타낼 때 유용하게 쓰이는 이유이다. 

     

    고유벡터가 아닌 벡터들은 행렬 곱으로 인한 변화가 방향과 크기 모두 일어나게 된다.

    따라서 서로 선형독립인 벡터들을 기저로 하는 좌표계를 사용하더라도 고유벡터가 아닐 경우

    행렬 곱으로 인한 변환이 각 기저벡터들의 방향을 변화시켜 각 축간의 중첩이 생겨 선형독립이 깨지게 되며

    해당 좌표계상에서 나타나던 값들이 행렬로 인해 어떻게 변화하였는지 알기가 어렵게 된다. 

     

    고유벡터의 경우에는 행렬 곱으로 인한 변화가 크기로만 나타난다. 

    행렬 곱으로 인한 변환에도 각 기저들은 방향을 유지하기 때문에 축간의 독립성이 유지되어 좌표계상에서 나타나던 값들의 변화를 파악하기 용이한 형태가 된다. 

     

    행렬 A의 고유벡터 $\vec{v}$를 기저로 하는 좌표계는 행렬 A곱으로 인한 변화가 각 기저의 $\lambda$만큼의 상수배(각 축의 신장) 형태로 나타난다. 

     

    이러한 관계를 이용하여 임의의 행렬 A로 인해 변화가 생길 때

    1. 원래 좌표계의 기저벡터 $\vec{x}$를 행렬 A의 고유벡터 $\vec{v}$로 바꾸는 좌표변환을 한다.

    2. 변환된 좌표상에서 행렬 A로 인한 변화를 고유벡터의 상수배 형태로 나타낸다.

    3. 상수배된 고유벡터를 다시 원래 좌표계를 이루던 기저벡터로 되돌린다.

     

    행렬의 곱으로 인한 변화가 일어나는 방향을 가진 기저벡터로 좌표변환을 하게 되면 변화가 단순 상수배 형태로 나타난다. 

     

    Singular Value Decomposition

    위와 같이 총 $m$명의 사람들의 얼굴 사진들을 행렬 $X$로 나타내었다.

    열벡터는 각 사람들의 얼굴사진을 구성하는 총 $n$개의 픽셀 값을 나열한 것이다. 

     

    얼굴사진 열벡터로 이루어진 행렬 $X$를 SVD를 이용해 분해하면 다음과 같이 나타난다. 

    left singular vector와 right singular vector는 unitary vector로서 고유벡터와 같이 변환되는 좌표계에서의 기저벡터의 역할을 한다. 

    singular value는 고유값과 같이 변환된 좌표계에서 기저벡터들의 방향으로의 값을 나타낸다. 

     

    행렬 $U$는 사람의 얼굴을 구분하는데 있어 필요한 정보들을 중요도 순으로 나열한 것이다. 

    예를 들어 $u_1$은 사람의 눈을 구성하는 성분들이 모인 '눈 기저'가 있고 $u_2$는 사람의 얼굴형을 구성하는 성분들이 모인 '얼굴형 기저'가 있다. 

     

    행렬 $\sigma$는 행렬 $U$의 각 얼굴 구성 요소 기저에서 사람들간의 구분을 위해 중요한 성분이 무엇인지를 순서대로 나타내기 위한 값들을 대각성분들로 나타낸 것이다. 

     

    행렬 $V^T$는 행렬 $U$의 각 기저들을 사람들 사진 별로 필요한 만큼 조합하여 원래의 사람의 얼굴을 만들기 위한 기저벡터이다. 

    예를들어 첫번째 사람을 $U$으로 나타난 얼굴 구성요소 기저들의 조합으로 만들기 위해서는 $u_1$ 21만큼 $u_2$를 17 만큼 주어야 원래의 첫번째 사람 얼굴을 만들 수 있으며 두번째 사람은 $u_1$을 14만큼 $u_2$를 49 만큼 주어야 만들 수 있다. 

    사람들별로 얼굴에서 구분되는 특징이 다르기 때문에 $v_m$은 각기 다른 값들을 갖는 열벡터를 구성하게 된다. 

     

    SVD를 이용하면 여러장의 얼굴 사진들을 얼굴을 구성하는 요소와 사람을 구분하는 요소로 분해할 수 있다.

     

    위처럼 같은 유형의 정보(얼굴사진)들을 가지는 여러 객체들(다른사람들)이 존재할때

    정보를 구성하는 것이 무엇인지, 객체를 구분하는 것이 무엇인지 분해하여 구성요소들을 알 수 있으며 

    분해된 구성요소들 중 정보를 구성하는 데,체를 구분하는데 중요한 요소들이 무엇인지 구분할 수 있게된다. 


     

    댓글

Designed by Tistory.