2021. 4. 17. 01:29ㆍML&DL
이번 글은 유사도 검정을 통해 알게 된 NMF(Non-negative Matrix Factorization) 기법에 대해 알아보겠습니다. NMF은 유사도 검정 전 텍스트 데이터에서 특성을 추출하는 것 외에도 차원 축소, 토픽 모델링 등에 사용됩니다.
NMF는 하나의 객체정보를 음수를 포함하지 않은 두 개의 부분 정보로 인수분해하는 방법입니다. 즉, 음수를 포함하지 않은 행렬 m x n 행렬 R을 음수를 포함하지 않은 행렬 W, H의 곱으로 분해하여 의미 있는 특징을 추출하는 기법입니다. (위키백과) NMF의 목적은 공통 특성만을 가지고 정보를 줄이는 것입니다.이를 수식과 뉴스 기사에서 단어를 기반으로 특성을 추출하는 예시로 표현하면 아래와 같습니다.
행렬 R은 데이터셋으로 행은 샘플, 열은 feature를 나타냅니다. p는 잠재적인 특성을 얼마나 찾을 것인가?로 직접 설정해줘야하는 값입니다. 만약 토픽 모델링에 사용한다면 p는 토픽 개수, 차원 축소에 사용한다면 p는 몇 개의 차원으로 축소할 것인가? 가 됩니다. W 행렬은 Latent representation 행렬로 행렬 R과 같은 인덱스의 행에 특성이 얼마나 적합한지를 판단하는 가중치를 나타냅니다. 행렬 H는 행렬 R과 같은 열이 특성에 얼마나 중요한 지를 나타내는 Latent features 행렬입니다.
그렇다면 행렬 W, H에 값은 어떻게 채워질가요?
행렬 W, H에 초기값을 무작위로 설정하고 행렬 R와 WxH 간의 거리를 최소화하는 방향으로 값을 경신합니다. 거리를 최소화시키기 위해 사용하는 거리 함수나 목적함수에 따라 값이 달라지는데 주로 증배 갱신 규칙(multiplicative update rules)을 이용하여 채웁니다.
증배 갱신 규칙은 아래와 같습니다.
1. 네 개의 갱신 행렬 생성
2. 행렬 W를 갱신하기 위해 행렬 W의 모든 값을 (3) 내의 대응하는 값과 곱하고 식 (4) 내의 대응하는 값으로 나눈다.
3. 행렬 H를 갱신하기 위해 행렬 H 내의 모든 값을 식 (5) 내의 값과 곱하고 식(6) 내의 값으로 나눈다.
4. 위 과정을 행렬 R과 행렬 WxH의 차이가 0이 될 때까지 반복한다.
특징을 추출 또는 차원 축소를 하고 싶다면 행렬 W를 이용할 수 있고, 토픽 모델링과 같이 주제를 알고 싶다면 행렬 H를 사용할 수 있습니다.
PCA는 고차원 데이터로부터 데이터의 구조를 밝히거나 데이터의 차원을 낮추는데 많이 이용되는 다변량 통계 분석 방법인 반면 NMF는 대량의 정보를 의미 특징과 의미 변수로 나누어 효율적으로 표현할 수 있는 방법입니다. 또한, PCA는 공분산 행렬의 고유 벡터를 이용하여 분해하는 방법으로 항상 고유 벡터들이 직교합니다. 그러므로 데이터셋의 실제 데이터 구조를 잘 반영하지 못합니다.
참고
[1] urszulaczerwinska.github.io/DeconICA/DeconICA_introduction.html
'ML&DL' 카테고리의 다른 글
[ML] 유사도 검정 (2) | 2021.04.06 |
---|---|
[ML] 군집화란 무엇인가, 어떻게 작동하는지 알아보자. (0) | 2021.02.01 |
[ML] 직관적인 모델 의사결정나무와 강한 학습기 앙상블 (0) | 2021.01.31 |
심층 신경망 훈련하기 - 학습 속도를 높이는 방법 (0) | 2020.12.29 |
심층 신경망 훈련하기 - 레이블 된 데이터가 적을 때 복잡한 문제를 다루는 데 도움이 되는 전이 학습과 비지도 사전 훈련 하는 방법 (0) | 2020.12.29 |