일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Computer Vision
- SVM margin
- 서포트벡터머신이란
- 논문분석
- support vector machine 리뷰
- Deep Learning
- CS231n
- fast r-cnn
- DeepLearning
- svdd
- darknet
- pytorch
- cs231n lecture5
- Object Detection
- CNN
- EfficientNet
- 데이터 전처리
- cnn 역사
- self-supervision
- SVM hard margin
- computervision
- RCNN
- libtorch
- SVM 이란
- TCP
- pytorch c++
- pytorch project
- yolo
- yolov3
- Faster R-CNN
- Today
- Total
아롱이 탐험대
NMF의 기본 이론과 이해 본문
NMF (Non-netgative Matrix Factorization)
: 음수를 포함하지 않는 행렬 XX를 음수를 포함하지 않는 행렬 WW와 HH의 곱으로 분해하는 알고리즘이다.
X=WHX=WH
X∈Rm×nwhere m:Num of datasamples, n:Dimension of data samples

만약 p개의 feature를 가지고 원래의 data set X를 분해한다면
W∈Rm×p, H∈Rp×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)=AT▽x tr(XTA)=A▽x tr(XTAX)=(A+AT)X▽x tr(XAXT)=X(AT+A)
(2) Frobenius norm
A=(a bc d)→‖A‖F=√a2+b2+c2+d2
ATA=(a cb d)(a bc d)=(a2+c2 ab+cdab+cd b2+d2)
→‖A‖F=√tr(ATA)
∴‖A‖F=√m∑i=1n∑j=1‖aij‖2=√tr(ATA)
(3) Element-wise product
A=(1 23 4),B=(a bc d)A∘B=(1a 2b3c 4d)
NMF의 update 규칙
H:=H∘WTXWTWHW:=W∘XHTWHHT
유도과정
: X를 분해해서 얻은 W, H는 최대한 X에 가까워야 한다.
‖X−WH‖2F=tr((X−WH)T(X−WH))⋯Frobenius norm
→H:=H−ηH∘▽H‖X−WH‖2F W:=W−ηW∘▽W‖X−WH‖2F ⋯gradient descent (a)
interative한 방식으로 분해를 진행한다.
Frobenius norm으로 표현한 수식을 아래와 같이 전개한다.
‖X−WH‖2F=tr((X−WH)T(X−WH))=tr((XT−HTWT)(X−WH))=tr(XTX−XTWH−HTWTX+HTWTWH)
이를 통해 ▽H‖X−WH‖2F, ▽W‖X−WH‖2F 를 아래와 같이 전개한다.
▽H‖X−WH‖2F=▽H{tr(XTX) −tr(XTWH) −tr(HTWTX)+tr(HTWTWH)}=0 −(XTW)T−WTX+(WTW+(WTW)T)H=−2WTX+2WTWH⋯(b)
▽W‖X−WH‖2F=⋯=−2XHT+2WHHT⋯(c)
(a)에 (b), (c)를 대입한다. (상수곱은 무시)
H:=H+ηH∘(WTX−WTWH)W:=W+ηW∘(XHT−WHHT)
이 과정에서 뒤 term에 음수가 포함되므로 특별한 방식의 gradient descent를 수행한다.
→ learning rate인 η를 data-driven하게 정의한다.
ηH=HWTWH, ηW=WWHHT→H:=H+HWTWH∘(WTX−WTWH)=H+H∘WTXWTWH−H∘WTWHWTWH
WTWHWTWH=I, H∘WTWHWTWH=H이므로
→H+H∘WTXWTWH−H=H∘WTXWTWH∴H:=H∘WTHWTWH∴W:=W∘XHTWHHT
Reference
'study > linear algebra' 카테고리의 다른 글
Broadcasting, Sparse matrix의 기본 이론과 이해 및 활용 (0) | 2022.02.22 |
---|---|
SVD의 기본 이론과 이해 및 활용 (1) | 2022.01.21 |