ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SVD(Singular Value Decomposittion)
    Deep Learining/Deep Learning 기초지식 2016. 10. 13. 22:44

    SVD



    SVD(Singular Value Decomposition)는 행렬을 특정한 구조로 분해하는 방식으로, 신호처리와 통계학 등의 분야에서 자주 사용된다.

    SVD는 행렬의 스펙트럼 이론을 임의의 직사각형 행렬에 대해 일반화한 것으로 볼 수 있다. 스펙트럼을 이용하면 직교 정사각행렬을 고유값을 기저로 하여 대각행렬로 분해할 수 있다. 이러한 특이값 분해가 유용한 이유는 행렬이 정방행렬이든 아니든 모든 m x n행렬에 대해 적용가능하기 때문이다. 



    0. 특이값


    m x n 행렬 M에 대해 다음 두 조건을 만족하는 벡터 가 존재할 때, 음수가 아닌 실수 를 특이값이라 부른다.

    또한 u와 v를 각각 좌측 특이벡터와 우측 특이 벡터라 부른다.



    1. SVM (특이값 분해)


    실수나 복소수로 이루어진 m x n 행렬 M에 대해 , M은 다음과 같은 세 행렬의 곱으로 분해할 수 있다.



    1) U: m x m 직교행렬

    U는 를 고유값분해(eigen decomposition)해서 얻어진 직교행렬(orthogonal matrix)로 U의 열벡터들을 M의 좌측 특이벡터(Left singular vector)라고 부른다.


    2) ∑: m x n 직교행렬, 대각선상에 있는 원소의 값은 음수가 아니며 나머지 원소의 값이 모두 0인 대각행렬.

    ∑는 를 고유값 분해(eigen decomposition)해서 나오는 고유값(eigen value)들의 square root를 대각원소로 하는 m x n 직사각 대각행렬로 그 대각원소들을 M의 특이값(singular value)라고 부른다.


    3) V*:  V의 켤레전치 행렬, n x n 직교행렬

    V는 를 고유값분해(eigen decomposition)해서 얻어진 직교행렬(orthogonal matrix)로 V의 열벡터들을 M의 우측 특이벡터(Right singular vector)라고 부른다.


    행렬 M을 이와 같이 세 행렬의 곱으로 나타내는 것을 M의 특이값 분해라고 한다.

    ∑의 대각성분들은 M의 특이값이 되고 U와 V의 열들은 각각의 특이값에 해당하는 좌측 특이벡터와 우측 특이벡터가 된다.

    위 식은 다음과 같은 특징을 가진다.

    1) m x n 행렬 M은 최소한 한개, 최대 p=min(m, n)개의 서로 다른 특이값을 가진다.

    2) M의 좌측 특이벡터들을 포함하는, 의 유티터리 기저를 항상 찾을 수 있다.

    3) M의 우측 특이벡터들을 포함하는 Kⁿ의 유니터리 기저를 항상 찾을 수 있다.



    2. 예제


    다음과 같은 행렬 A가 있다고 하자.



    이 행렬 A의 SVD를 하면 다음과 같이  3개의 행렬로 분해할 수 있다.


    이때 분해 결과는 유일하지 않으므로 V*의 값이 아래값과 같이 될 수 있다.



    ※ 출저

    위키백과(https://ko.wikipedia.org/wiki/%ED%8A%B9%EC%9D%B4%EA%B0%92_%EB%B6%84%ED%95%B4)

    http://darkpgmr.tistory.com/106

    'Deep Learining > Deep Learning 기초지식' 카테고리의 다른 글

    Precision / Recall  (0) 2016.10.13
    Dropout  (0) 2016.10.03
    generating 모델에 대하여  (0) 2015.11.27
Designed by Tistory.