아롱이 탐험대

NMF의 기본 이론과 이해 본문

study/linear algebra

NMF의 기본 이론과 이해

ys_cs17 2022. 2. 14. 19:05
반응형

NMF (Non-netgative Matrix Factorization)

: 음수를 포함하지 않는 행렬 XX를 음수를 포함하지 않는 행렬 WWHH의 곱으로 분해하는 알고리즘이다.

X=WHX=WH

 

XRm×nwhere m:Num of datasamples, n:Dimension of data samples

만약 p개의 feature를 가지고 원래의 data set X를 분해한다면

WRm×p, HRp×n

NMF는 다른 분해법과는 달리 분해 후 non-netgativity 특성을 보존할 수 있고, PCA 및 SVD에 비해 각 feature들의 독립성을 잘 습득 할 수 있다. (PCA, SVD는 직교성이 보장되는 대신 feature vector들이 서로 직교하게 된다면 dataset의 실제 구조를 잘 반영하기 힘들다.)

 

사전 지식

(1) trace (대각합 연산)

A=(a11 a12 a13a21 a22 a23a31 a32 a33)tr(A)=a11+a22+a33

 

tr(A+B)=tr(A)+tr(B)tr(ABC)=tr(CAB)=tr(BCA)==tr(CBA)

 

x tr(AX)=ATx tr(XTA)=Ax tr(XTAX)=(A+AT)Xx tr(XAXT)=X(AT+A)

 

(2) Frobenius norm

A=(a bc d)AF=a2+b2+c2+d2

ATA=(a cb d)(a bc d)=(a2+c2 ab+cdab+cd b2+d2)

AF=tr(ATA)

AF=mi=1nj=1aij2=tr(ATA)

 

(3) Element-wise product

A=(1 23 4),B=(a bc d)AB=(1a 2b3c 4d)

 

NMF의 update 규칙

H:=HWTXWTWHW:=WXHTWHHT

 

유도과정

: X를 분해해서 얻은 W, H는 최대한 X에 가까워야 한다.

 

XWH2F=tr((XWH)T(XWH))Frobenius norm

 

H:=HηHHXWH2F     W:=WηWWXWH2F gradient descent   (a)

 

interative한 방식으로 분해를 진행한다.

 

Frobenius norm으로 표현한 수식을 아래와 같이 전개한다.

XWH2F=tr((XWH)T(XWH))=tr((XTHTWT)(XWH))=tr(XTXXTWHHTWTX+HTWTWH)

 

이를 통해  HXWH2F, WXWH2F 를 아래와 같이 전개한다.

HXWH2F=H{tr(XTX) tr(XTWH) tr(HTWTX)+tr(HTWTWH)}=0 (XTW)TWTX+(WTW+(WTW)T)H=2WTX+2WTWH(b)

 

WXWH2F==2XHT+2WHHT(c)

 

(a)(b), (c)를 대입한다. (상수곱은 무시)

H:=H+ηH(WTXWTWH)W:=W+ηW(XHTWHHT)

 

이 과정에서 뒤 term에 음수가 포함되므로 특별한 방식의 gradient descent를 수행한다.

learning rate인 η를 data-driven하게 정의한다.

ηH=HWTWH, ηW=WWHHTH:=H+HWTWH(WTXWTWH)=H+HWTXWTWHHWTWHWTWH

WTWHWTWH=I, HWTWHWTWH=H이므로

H+HWTXWTWHH=HWTXWTWHH:=HWTHWTWHW:=WXHTWHHT

Reference

https://angeloyeo.github.io/2020/10/15/NMF.html

https://nbviewer.org/github/fastai/numerical-linear-algebra/blob/master/nbs/2.%20Topic%20Modeling%20with%20NMF%20and%20SVD.ipynb#Non-negative-Matrix-Factorization-(NMF)

반응형