SlideShare a Scribd company logo
1 of 25
Download to read offline
차원축소 기법 훑어보기
PCA, SVD, NMF
최범균, 2014-04-25
i1 i2 i3 ... i11998 i11999 i12000
u1 0 0 0 ... 1 0 0
u2 1 0 0 … 0 0 0
u3 1 0 1 ... 0 0 1
... ... ... ... ... ... ... ...
u499998 0 0 0 ... 0 0 0
u499999 0 0 0 ... 0 1 0
u500000 0 0 0 ... 0 0 0
u간 또는 i간 유사도를 구하려면?
많은 계산 필요, 0이 너무 많음
차원축소가 필요한 이유
• 계산 비용 축소
• 노이즈 제거
• 도출된 결과 이해
차원축소 알고리즘 몇 가지
• 주요 구성요소 분석(principal component
analysis; PCA)
• 특이 값 분해(Singular Value Decomposition;
SVD)
• 비음수 행렬 인수분해(Non-negative Matrix
Factorization; NMF)
* “머신러닝 인 액션”과 “집단 지성 프로그래밍” 책 참고
1. PCA
주요 구성요소 분석(PCA)
• PCA란?
o 데이터에서 두드러지게 데이터를 나누는
• PCA를 이용하면,
o 중요한 속성 도출
o 데이터 압축
o 얼굴 인식(eigenface)
o 기타 등등
PCA 구하기 과정 요약
• 데이터 집합에 대해 공분산 행렬 구함
o 데이터의 집합의 각 열을 데이터의 속성이라고 가정
 즉, 열이 n개면, 속성 x1, x2, …, xn개 존재
• 공분산 행렬에서 고유값과 고유벡터 구함
• 고유값 목록에서 값이 높은 k개 인덱스 구함
o 인덱스 값이 i1, i2, .., ik라고 할 경우
o xi1, xi2, .., xik가 주요 구성요소가 됨
PCA 구하기 1: 공분산 행렬 구하기
x1 x2 x3
2 1 3
8 4 7
1 4 4
2 8 2
Cov(x1, x1)
10.25
Cov(x1, x2)
-0.41666667
Cov(x1, x3)
6
Cov(x2, x1)
-0.41666667
Cov(x2, x2)
8.25
Cov(x2, x3)
-1.66666667
Cov(x3, x1)
6
Cov(x3, x2)
-1.66666667
Cov(x3, x3)
4.66666667
* 공분산: Cov(X, Y) = (∑ (x-x평균)(y-y평균)) / (n-1)
* Cov(X, X) = Var(X), 즉 분산
공분산 행렬
데이터 행렬: 세 개의 속성
PCA 구하기2: 고유값 구하기
• 공분산 행렬에서 고유값, 고유벡터 구함
Cov(x1, x1)
10.25
Cov(x1, x2)
-0.41666667
Cov(x1, x3)
6
Cov(x2, x1)
-0.41666667
Cov(x2, x2)
8.25
Cov(x2, x3)
-1.66666667
Cov(x3, x1)
6
Cov(x3, x2)
-1.66666667
Cov(x3, x3)
4.66666667
고유값 목록:
[ 0.6541291, 14.33608183, 8.17645574]
고유벡터 목록:
0.51879659 0.81567701 0.25597093
-0.15597286 -0.20408152 0.96644876
-0.84054897 0.54131484 -0.02134668
* n차 정사각 행렬 A가 있을 때, 고유벡터V와 고유값 λ의 관계: AV = Vλ
PCA 구하기3: 고유값 목록에서 주요 구
성요소 뽑기
x1 x2 x3
2 1 3
8 4 7
1 4 4
2 8 2
고유값 목록:
[ 0.6541291, 14.33608183, 8.17645574]
고유값 크기 순선에 따른 주요 구성요소의 순서:
x2 > x3 > x1
주요 구성 요소 2개를 추린다면,
97% 변화량을 반영하면서 3차원을 2차원으로 축소
x2 x3
1 3
4 7
4 4
8 2
두 속성이 전체 변화량의 97% 차지
(14.336+8.176) / (14.336+8.176+0.654)
PCA를 이용한 데이터 압축 1/3
행렬 A (m*n)
고유
벡터1
고유
벡터2
고유
벡터n
값1 값2 값n고유값
고유
벡터
각 열의
평균벡터 (1*n)
편차 행렬
dA (m*n)
고유값이 큰 상위 k개의
벡터로 행렬 구성
행렬A의 공분산행렬을
고유값 분해
차원 축소 고유값
벡터 행렬rEV (n*k)
고유
벡터
M1
…
고유
벡터
Mk
PCA를 이용한 데이터 압축 2/3
편차 행렬
dA (m*n)
차원 축소된 데
이터 행렬
rA (m*k)
차원 축소 고유값
벡터 행렬rEV (n*k)
고유
벡터
M1
…
고유
벡터
Mk
PCA를 이용한 데이터 압축 3/3
차원 축소된 데
이터 행렬
rA (m*k)
각 열의
평균벡터 (1*n)
복원 데이터 행
렬 M’
(m*n)
차원 축소 고유값
벡터 행렬rEV의
전치행렬 (k*n)
저장 대상
원본 데이터에서
주요 데이터의 특
성을 복원함
2. SVD
특이 값 분해singular value decomposition(SVD)
• 공식: A = U∑VT
o A: m * n 행렬
o U: m * m 직교 행렬 ( AAT = U(∑∑T)UT )
 U의 열벡터는 AAT의 고유벡터
o V: n * n 직교 행렬 ( ATA = V(∑T∑)VT )
 V의 열벡터는 ATA의 고유벡터
o ∑: m * n 특이 값 행렬!, 대각행렬
 AAT와 ATA의 0이 아닌 고유값의 루트 값 목록
 값의 순서 (1,1) > (2,2) > … > (n, n) (m>n 경우)
* 직교 행렬: AA-1=AAT=I 일 때, A를 직교 행렬이라 함
* I는 단위 행렬 (단위 행렬: AI=IA=A인 행렬 I, 대각선 1, 나머지 0)
* 대각 행렬: 대각선만 값을 갖고 나머지는 0인 행렬
SVD를 이용한 차원 축소: 데이터 축소
Am*n Um*m ∑m*n
VT
n*n
= * *
Am*n Um*k
∑k*k VT
k*n= * *
원본 데이터를 복원하는 데 필
요한 데이터,
이미지 압축 등에 활용
SVD를 이용한 차원 축소: 열 차원 축소
Am*n Um*m ∑m*n
VT
n*n
= * *
A’
m*k
=
U
m*k
∑
k*k
*열의 개수를 줄여서, 행 간
비교 연산 비용 낮춤.
행 간 유사도 연산 비용을
낮추는데 활용
SVD를 이용한 차원 축소: 행 차원 축소
Am*n Um*m ∑m*n
VT
n*n
= * *
A’k*n = ∑k*k VT
k*n*
행의 개수를 줄여서, 열 간
비교 연산 비용 낮춤.
열 간 유사도 연산 비용을
낮추는데 활용
SVD 적용 예, 유사도 분석을 위한 축소
샘플 행렬
109 * 141
열: 구매 아이템
행: 유저 SVD 연산
90%를 넘기는 특
이값은 71개
행렬 축소
109 * 71
열: 슈도아이템
(pseudo)
행: 유저
샘플 행렬
109 * 141
열: 아이템
행: 슈도유
저
(pseudo)
3. NMF
독립 특성
• 여러 데이터 중에서 주요 독립 특성을 이루는
데이터는?
o 예,
 기사들 중에서 주제(독립 특성)들을 뽑아내고, 각
주제에 해당하는 기사 찾기
• 비음수 행렬 인수분해
o NMF(Non-negative Matrix Factorization)
o 독립 특성 추출 기법 중 하나
NMF
• 행렬 V가 있을 때, V를 W*H=V인 두 행렬 W
와 H로 분해
출처: 위키피디
인수분해 알고리즘 (증배 갱신 규칙multiplicative update rule 사용)
1. W, H에 임의 값을 채움
2. W*H와 V가 유사해 질 때까지 까지 아래 과정 반복
a. H 행렬 갱신
i. HN = WT * V, HD = WT * W * H + 0.000000001
ii. H(r,c) = H(r,c) * HN(r, c) / HD(r,c)
b. W 행렬 갱신
i. WN = V * HT, WD = W * H * HT + 0.000000001
ii. W(r,c) = W(r,c) * WN(r,c) / WD(r,c)
NMF의 해석
W의 각 열이 특성이 됨:
- 열 길이가 2일 때 특성 f1, f2가 존재
W의 각 행은 V의 같은 행이 ‘특성에 얼마나 적합’
한지(즉, 특성에 대한 가중치)를 나타낸다.
H의 각 행이 특성이 됨:
H의 각 열은 V의 같은 열이 ‘특성에 얼
마나 중요’한지를 나타낸다.
NMF를 독립 특성 발견에 활용
• 예, 온라인 기사의 주제 찾기
특성 행렬:
- 각 단어가 특성에 중요한 정도
- 각 행에서 값이 높은 단어 상위n
개가 해당 특성을 대표하는 단어가
됨 (즉, 주제가 됨)
가중치 행렬:
- 각 특성이 기사에 얼마나 적합한
가?
- 각 열에서 값이 높은 기사n개가
해당 특성을 갖는 기사
- 각 행에서 값이 높은 특성n개가
기사를 잘 반영하는 특성
* 특성의 개수 선택이 분류에 영향
NMF 활용 예, 구매자 금액대별 성향
구매자
구매금액대
~5 5~10 10~15 15~20 20~
구매자
특정
f1 f2 f3
특징
구매금액대
~5 5~10 10~15 15~20 20~
f1
f2
f3
NMF
1.44 0.004 0.023
0.089 0.895
0.003 0.006 0.495 0.107

More Related Content

What's hot

Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledgeLinux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledgeAngel Boy
 
Machine Learning and Data Mining: 10 Introduction to Classification
Machine Learning and Data Mining: 10 Introduction to ClassificationMachine Learning and Data Mining: 10 Introduction to Classification
Machine Learning and Data Mining: 10 Introduction to ClassificationPier Luca Lanzi
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해중선 곽
 
Heap exploitation
Heap exploitationHeap exploitation
Heap exploitationAngel Boy
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)Heungsub Lee
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016Taehoon Kim
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들Chris Ohk
 
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편Seongyun Byeon
 
강화학습의 개요
강화학습의 개요강화학습의 개요
강화학습의 개요Dongmin Lee
 
[PR12] intro. to gans jaejun yoo
[PR12] intro. to gans   jaejun yoo[PR12] intro. to gans   jaejun yoo
[PR12] intro. to gans jaejun yooJaeJun Yoo
 
Causal Inference : Primer (2019-06-01 잔디콘)
Causal Inference : Primer (2019-06-01 잔디콘)Causal Inference : Primer (2019-06-01 잔디콘)
Causal Inference : Primer (2019-06-01 잔디콘)Minho Lee
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전Modulabs
 
Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기KwangSeob Jeong
 
파이콘 한국 2019 튜토리얼 - LRP (Part 2)
파이콘 한국 2019 튜토리얼 - LRP (Part 2)파이콘 한국 2019 튜토리얼 - LRP (Part 2)
파이콘 한국 2019 튜토리얼 - LRP (Part 2)XAIC
 
Introduction to Recurrent Neural Network
Introduction to Recurrent Neural NetworkIntroduction to Recurrent Neural Network
Introduction to Recurrent Neural NetworkYan Xu
 
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기NAVER Engineering
 
머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)Byung-han Lee
 

What's hot (20)

Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledgeLinux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledge
 
Machine Learning and Data Mining: 10 Introduction to Classification
Machine Learning and Data Mining: 10 Introduction to ClassificationMachine Learning and Data Mining: 10 Introduction to Classification
Machine Learning and Data Mining: 10 Introduction to Classification
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해
 
Heap exploitation
Heap exploitationHeap exploitation
Heap exploitation
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 
Big data and Hadoop
Big data and HadoopBig data and Hadoop
Big data and Hadoop
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
 
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
 
강화학습의 개요
강화학습의 개요강화학습의 개요
강화학습의 개요
 
[PR12] intro. to gans jaejun yoo
[PR12] intro. to gans   jaejun yoo[PR12] intro. to gans   jaejun yoo
[PR12] intro. to gans jaejun yoo
 
CNN Quantization
CNN QuantizationCNN Quantization
CNN Quantization
 
Causal Inference : Primer (2019-06-01 잔디콘)
Causal Inference : Primer (2019-06-01 잔디콘)Causal Inference : Primer (2019-06-01 잔디콘)
Causal Inference : Primer (2019-06-01 잔디콘)
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전
 
Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기
 
파이콘 한국 2019 튜토리얼 - LRP (Part 2)
파이콘 한국 2019 튜토리얼 - LRP (Part 2)파이콘 한국 2019 튜토리얼 - LRP (Part 2)
파이콘 한국 2019 튜토리얼 - LRP (Part 2)
 
Introduction to Recurrent Neural Network
Introduction to Recurrent Neural NetworkIntroduction to Recurrent Neural Network
Introduction to Recurrent Neural Network
 
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
 
머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)
 

Viewers also liked

Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀beom kyun choi
 
패스트캠퍼스 -Dss5 - Personal Project
패스트캠퍼스 -Dss5 - Personal Project패스트캠퍼스 -Dss5 - Personal Project
패스트캠퍼스 -Dss5 - Personal Projectha tae
 
[패스트캠퍼스] 야구 선수 연봉 예측
[패스트캠퍼스] 야구 선수 연봉 예측[패스트캠퍼스] 야구 선수 연봉 예측
[패스트캠퍼스] 야구 선수 연봉 예측Giwook Lee
 
Dimensionality Reduction
Dimensionality ReductionDimensionality Reduction
Dimensionality Reductionmrizwan969
 
​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기복연 이
 
재무상담안내
재무상담안내재무상담안내
재무상담안내Yeojin Choi
 
머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear Model머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear ModelJungkyu Lee
 
연구업적 데이터베이스를 활용한 빅데이터 분석시스템 (16 sep2014)
연구업적 데이터베이스를 활용한 빅데이터 분석시스템 (16 sep2014)연구업적 데이터베이스를 활용한 빅데이터 분석시스템 (16 sep2014)
연구업적 데이터베이스를 활용한 빅데이터 분석시스템 (16 sep2014)Han Woo PARK
 
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기 Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기 SEUNGWOO LEE
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)beom kyun choi
 
2.linear regression and logistic regression
2.linear regression and logistic regression2.linear regression and logistic regression
2.linear regression and logistic regressionHaesun Park
 
Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우Mario Cho
 
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표Taejoon Yoo
 
2016결산보고서 미디어이슈 1216
2016결산보고서 미디어이슈 12162016결산보고서 미디어이슈 1216
2016결산보고서 미디어이슈 1216Nasmedia
 
머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기Terry Cho
 
Basic Understanding of the Deep
Basic Understanding of the DeepBasic Understanding of the Deep
Basic Understanding of the DeepMad Scientists
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learingHaesun Park
 

Viewers also liked (18)

Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀
 
패스트캠퍼스 -Dss5 - Personal Project
패스트캠퍼스 -Dss5 - Personal Project패스트캠퍼스 -Dss5 - Personal Project
패스트캠퍼스 -Dss5 - Personal Project
 
[패스트캠퍼스] 야구 선수 연봉 예측
[패스트캠퍼스] 야구 선수 연봉 예측[패스트캠퍼스] 야구 선수 연봉 예측
[패스트캠퍼스] 야구 선수 연봉 예측
 
Dimensionality Reduction
Dimensionality ReductionDimensionality Reduction
Dimensionality Reduction
 
​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기
 
재무상담안내
재무상담안내재무상담안내
재무상담안내
 
머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear Model머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear Model
 
연구업적 데이터베이스를 활용한 빅데이터 분석시스템 (16 sep2014)
연구업적 데이터베이스를 활용한 빅데이터 분석시스템 (16 sep2014)연구업적 데이터베이스를 활용한 빅데이터 분석시스템 (16 sep2014)
연구업적 데이터베이스를 활용한 빅데이터 분석시스템 (16 sep2014)
 
Css3 transforms
Css3 transformsCss3 transforms
Css3 transforms
 
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기 Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
 
2.linear regression and logistic regression
2.linear regression and logistic regression2.linear regression and logistic regression
2.linear regression and logistic regression
 
Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우
 
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표
 
2016결산보고서 미디어이슈 1216
2016결산보고서 미디어이슈 12162016결산보고서 미디어이슈 1216
2016결산보고서 미디어이슈 1216
 
머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기
 
Basic Understanding of the Deep
Basic Understanding of the DeepBasic Understanding of the Deep
Basic Understanding of the Deep
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learing
 

Similar to 차원축소 훑어보기 (PCA, SVD, NMF)

딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)WON JOON YOO
 
입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transform입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transformjdo
 
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)WON JOON YOO
 
(Handson ml)ch.8-dimensionality reduction
(Handson ml)ch.8-dimensionality reduction(Handson ml)ch.8-dimensionality reduction
(Handson ml)ch.8-dimensionality reductionHaesun Park
 
파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기Yong Joon Moon
 
Support Vector Machine Tutorial 한국어
Support Vector Machine Tutorial 한국어Support Vector Machine Tutorial 한국어
Support Vector Machine Tutorial 한국어Jungkyu Lee
 
해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1Haesun Park
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조영기 김
 
이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdftangtang1026
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기Yongha Yoo
 
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)Tae Young Lee
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산S.O.P.T - Shout Our Passion Together
 
파이썬+Operator+이해하기 20160409
파이썬+Operator+이해하기 20160409파이썬+Operator+이해하기 20160409
파이썬+Operator+이해하기 20160409Yong Joon Moon
 
Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명홍배 김
 
Cnn 발표자료
Cnn 발표자료Cnn 발표자료
Cnn 발표자료종현 최
 
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리중선 곽
 

Similar to 차원축소 훑어보기 (PCA, SVD, NMF) (20)

딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
 
R_datamining
R_dataminingR_datamining
R_datamining
 
입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transform입문 Visual SLAM 14강 - 3장 3d rigid body transform
입문 Visual SLAM 14강 - 3장 3d rigid body transform
 
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
 
(Handson ml)ch.8-dimensionality reduction
(Handson ml)ch.8-dimensionality reduction(Handson ml)ch.8-dimensionality reduction
(Handson ml)ch.8-dimensionality reduction
 
파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기
 
Sha1
Sha1Sha1
Sha1
 
Support Vector Machine Tutorial 한국어
Support Vector Machine Tutorial 한국어Support Vector Machine Tutorial 한국어
Support Vector Machine Tutorial 한국어
 
해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조
 
이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기
 
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
 
07. PCA
07. PCA07. PCA
07. PCA
 
파이썬+Operator+이해하기 20160409
파이썬+Operator+이해하기 20160409파이썬+Operator+이해하기 20160409
파이썬+Operator+이해하기 20160409
 
Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명
 
Cnn 발표자료
Cnn 발표자료Cnn 발표자료
Cnn 발표자료
 
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
 
Cop 3주차발표
Cop 3주차발표Cop 3주차발표
Cop 3주차발표
 

More from beom kyun choi

옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개beom kyun choi
 
DDD로 복잡함 다루기
DDD로 복잡함 다루기DDD로 복잡함 다루기
DDD로 복잡함 다루기beom kyun choi
 
TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나beom kyun choi
 
Ddd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksugDdd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksugbeom kyun choi
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초beom kyun choi
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128beom kyun choi
 
Event source 학습 내용 공유
Event source 학습 내용 공유Event source 학습 내용 공유
Event source 학습 내용 공유beom kyun choi
 
모델링 연습 리뷰
모델링 연습 리뷰모델링 연습 리뷰
모델링 연습 리뷰beom kyun choi
 
ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료beom kyun choi
 
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)beom kyun choi
 
리뷰의 기술 소개
리뷰의 기술 소개리뷰의 기술 소개
리뷰의 기술 소개beom kyun choi
 
스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해beom kyun choi
 
자바8 스트림 API 소개
자바8 스트림 API 소개자바8 스트림 API 소개
자바8 스트림 API 소개beom kyun choi
 
자바8 람다식 소개
자바8 람다식 소개자바8 람다식 소개
자바8 람다식 소개beom kyun choi
 
하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기beom kyun choi
 
객체 지향 발담그기 JCO 컨퍼런스 14회
객체 지향 발담그기 JCO 컨퍼런스 14회객체 지향 발담그기 JCO 컨퍼런스 14회
객체 지향 발담그기 JCO 컨퍼런스 14회beom kyun choi
 

More from beom kyun choi (20)

옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
 
DDD로 복잡함 다루기
DDD로 복잡함 다루기DDD로 복잡함 다루기
DDD로 복잡함 다루기
 
TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나
 
DDD 준비 서문래
DDD 준비 서문래DDD 준비 서문래
DDD 준비 서문래
 
Ddd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksugDdd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksug
 
MVP 패턴 소개
MVP 패턴 소개MVP 패턴 소개
MVP 패턴 소개
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128
 
Event source 학습 내용 공유
Event source 학습 내용 공유Event source 학습 내용 공유
Event source 학습 내용 공유
 
Spring Boot 소개
Spring Boot 소개Spring Boot 소개
Spring Boot 소개
 
모델링 연습 리뷰
모델링 연습 리뷰모델링 연습 리뷰
모델링 연습 리뷰
 
ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료
 
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)
 
리뷰의 기술 소개
리뷰의 기술 소개리뷰의 기술 소개
리뷰의 기술 소개
 
스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해
 
자바8 스트림 API 소개
자바8 스트림 API 소개자바8 스트림 API 소개
자바8 스트림 API 소개
 
자바8 람다식 소개
자바8 람다식 소개자바8 람다식 소개
자바8 람다식 소개
 
Zookeeper 소개
Zookeeper 소개Zookeeper 소개
Zookeeper 소개
 
하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기
 
객체 지향 발담그기 JCO 컨퍼런스 14회
객체 지향 발담그기 JCO 컨퍼런스 14회객체 지향 발담그기 JCO 컨퍼런스 14회
객체 지향 발담그기 JCO 컨퍼런스 14회
 

차원축소 훑어보기 (PCA, SVD, NMF)

  • 1. 차원축소 기법 훑어보기 PCA, SVD, NMF 최범균, 2014-04-25
  • 2. i1 i2 i3 ... i11998 i11999 i12000 u1 0 0 0 ... 1 0 0 u2 1 0 0 … 0 0 0 u3 1 0 1 ... 0 0 1 ... ... ... ... ... ... ... ... u499998 0 0 0 ... 0 0 0 u499999 0 0 0 ... 0 1 0 u500000 0 0 0 ... 0 0 0 u간 또는 i간 유사도를 구하려면? 많은 계산 필요, 0이 너무 많음
  • 3. 차원축소가 필요한 이유 • 계산 비용 축소 • 노이즈 제거 • 도출된 결과 이해
  • 4. 차원축소 알고리즘 몇 가지 • 주요 구성요소 분석(principal component analysis; PCA) • 특이 값 분해(Singular Value Decomposition; SVD) • 비음수 행렬 인수분해(Non-negative Matrix Factorization; NMF) * “머신러닝 인 액션”과 “집단 지성 프로그래밍” 책 참고
  • 6. 주요 구성요소 분석(PCA) • PCA란? o 데이터에서 두드러지게 데이터를 나누는 • PCA를 이용하면, o 중요한 속성 도출 o 데이터 압축 o 얼굴 인식(eigenface) o 기타 등등
  • 7. PCA 구하기 과정 요약 • 데이터 집합에 대해 공분산 행렬 구함 o 데이터의 집합의 각 열을 데이터의 속성이라고 가정  즉, 열이 n개면, 속성 x1, x2, …, xn개 존재 • 공분산 행렬에서 고유값과 고유벡터 구함 • 고유값 목록에서 값이 높은 k개 인덱스 구함 o 인덱스 값이 i1, i2, .., ik라고 할 경우 o xi1, xi2, .., xik가 주요 구성요소가 됨
  • 8. PCA 구하기 1: 공분산 행렬 구하기 x1 x2 x3 2 1 3 8 4 7 1 4 4 2 8 2 Cov(x1, x1) 10.25 Cov(x1, x2) -0.41666667 Cov(x1, x3) 6 Cov(x2, x1) -0.41666667 Cov(x2, x2) 8.25 Cov(x2, x3) -1.66666667 Cov(x3, x1) 6 Cov(x3, x2) -1.66666667 Cov(x3, x3) 4.66666667 * 공분산: Cov(X, Y) = (∑ (x-x평균)(y-y평균)) / (n-1) * Cov(X, X) = Var(X), 즉 분산 공분산 행렬 데이터 행렬: 세 개의 속성
  • 9. PCA 구하기2: 고유값 구하기 • 공분산 행렬에서 고유값, 고유벡터 구함 Cov(x1, x1) 10.25 Cov(x1, x2) -0.41666667 Cov(x1, x3) 6 Cov(x2, x1) -0.41666667 Cov(x2, x2) 8.25 Cov(x2, x3) -1.66666667 Cov(x3, x1) 6 Cov(x3, x2) -1.66666667 Cov(x3, x3) 4.66666667 고유값 목록: [ 0.6541291, 14.33608183, 8.17645574] 고유벡터 목록: 0.51879659 0.81567701 0.25597093 -0.15597286 -0.20408152 0.96644876 -0.84054897 0.54131484 -0.02134668 * n차 정사각 행렬 A가 있을 때, 고유벡터V와 고유값 λ의 관계: AV = Vλ
  • 10. PCA 구하기3: 고유값 목록에서 주요 구 성요소 뽑기 x1 x2 x3 2 1 3 8 4 7 1 4 4 2 8 2 고유값 목록: [ 0.6541291, 14.33608183, 8.17645574] 고유값 크기 순선에 따른 주요 구성요소의 순서: x2 > x3 > x1 주요 구성 요소 2개를 추린다면, 97% 변화량을 반영하면서 3차원을 2차원으로 축소 x2 x3 1 3 4 7 4 4 8 2 두 속성이 전체 변화량의 97% 차지 (14.336+8.176) / (14.336+8.176+0.654)
  • 11. PCA를 이용한 데이터 압축 1/3 행렬 A (m*n) 고유 벡터1 고유 벡터2 고유 벡터n 값1 값2 값n고유값 고유 벡터 각 열의 평균벡터 (1*n) 편차 행렬 dA (m*n) 고유값이 큰 상위 k개의 벡터로 행렬 구성 행렬A의 공분산행렬을 고유값 분해 차원 축소 고유값 벡터 행렬rEV (n*k) 고유 벡터 M1 … 고유 벡터 Mk
  • 12. PCA를 이용한 데이터 압축 2/3 편차 행렬 dA (m*n) 차원 축소된 데 이터 행렬 rA (m*k) 차원 축소 고유값 벡터 행렬rEV (n*k) 고유 벡터 M1 … 고유 벡터 Mk
  • 13. PCA를 이용한 데이터 압축 3/3 차원 축소된 데 이터 행렬 rA (m*k) 각 열의 평균벡터 (1*n) 복원 데이터 행 렬 M’ (m*n) 차원 축소 고유값 벡터 행렬rEV의 전치행렬 (k*n) 저장 대상 원본 데이터에서 주요 데이터의 특 성을 복원함
  • 15. 특이 값 분해singular value decomposition(SVD) • 공식: A = U∑VT o A: m * n 행렬 o U: m * m 직교 행렬 ( AAT = U(∑∑T)UT )  U의 열벡터는 AAT의 고유벡터 o V: n * n 직교 행렬 ( ATA = V(∑T∑)VT )  V의 열벡터는 ATA의 고유벡터 o ∑: m * n 특이 값 행렬!, 대각행렬  AAT와 ATA의 0이 아닌 고유값의 루트 값 목록  값의 순서 (1,1) > (2,2) > … > (n, n) (m>n 경우) * 직교 행렬: AA-1=AAT=I 일 때, A를 직교 행렬이라 함 * I는 단위 행렬 (단위 행렬: AI=IA=A인 행렬 I, 대각선 1, 나머지 0) * 대각 행렬: 대각선만 값을 갖고 나머지는 0인 행렬
  • 16. SVD를 이용한 차원 축소: 데이터 축소 Am*n Um*m ∑m*n VT n*n = * * Am*n Um*k ∑k*k VT k*n= * * 원본 데이터를 복원하는 데 필 요한 데이터, 이미지 압축 등에 활용
  • 17. SVD를 이용한 차원 축소: 열 차원 축소 Am*n Um*m ∑m*n VT n*n = * * A’ m*k = U m*k ∑ k*k *열의 개수를 줄여서, 행 간 비교 연산 비용 낮춤. 행 간 유사도 연산 비용을 낮추는데 활용
  • 18. SVD를 이용한 차원 축소: 행 차원 축소 Am*n Um*m ∑m*n VT n*n = * * A’k*n = ∑k*k VT k*n* 행의 개수를 줄여서, 열 간 비교 연산 비용 낮춤. 열 간 유사도 연산 비용을 낮추는데 활용
  • 19. SVD 적용 예, 유사도 분석을 위한 축소 샘플 행렬 109 * 141 열: 구매 아이템 행: 유저 SVD 연산 90%를 넘기는 특 이값은 71개 행렬 축소 109 * 71 열: 슈도아이템 (pseudo) 행: 유저 샘플 행렬 109 * 141 열: 아이템 행: 슈도유 저 (pseudo)
  • 21. 독립 특성 • 여러 데이터 중에서 주요 독립 특성을 이루는 데이터는? o 예,  기사들 중에서 주제(독립 특성)들을 뽑아내고, 각 주제에 해당하는 기사 찾기 • 비음수 행렬 인수분해 o NMF(Non-negative Matrix Factorization) o 독립 특성 추출 기법 중 하나
  • 22. NMF • 행렬 V가 있을 때, V를 W*H=V인 두 행렬 W 와 H로 분해 출처: 위키피디 인수분해 알고리즘 (증배 갱신 규칙multiplicative update rule 사용) 1. W, H에 임의 값을 채움 2. W*H와 V가 유사해 질 때까지 까지 아래 과정 반복 a. H 행렬 갱신 i. HN = WT * V, HD = WT * W * H + 0.000000001 ii. H(r,c) = H(r,c) * HN(r, c) / HD(r,c) b. W 행렬 갱신 i. WN = V * HT, WD = W * H * HT + 0.000000001 ii. W(r,c) = W(r,c) * WN(r,c) / WD(r,c)
  • 23. NMF의 해석 W의 각 열이 특성이 됨: - 열 길이가 2일 때 특성 f1, f2가 존재 W의 각 행은 V의 같은 행이 ‘특성에 얼마나 적합’ 한지(즉, 특성에 대한 가중치)를 나타낸다. H의 각 행이 특성이 됨: H의 각 열은 V의 같은 열이 ‘특성에 얼 마나 중요’한지를 나타낸다.
  • 24. NMF를 독립 특성 발견에 활용 • 예, 온라인 기사의 주제 찾기 특성 행렬: - 각 단어가 특성에 중요한 정도 - 각 행에서 값이 높은 단어 상위n 개가 해당 특성을 대표하는 단어가 됨 (즉, 주제가 됨) 가중치 행렬: - 각 특성이 기사에 얼마나 적합한 가? - 각 열에서 값이 높은 기사n개가 해당 특성을 갖는 기사 - 각 행에서 값이 높은 특성n개가 기사를 잘 반영하는 특성 * 특성의 개수 선택이 분류에 영향
  • 25. NMF 활용 예, 구매자 금액대별 성향 구매자 구매금액대 ~5 5~10 10~15 15~20 20~ 구매자 특정 f1 f2 f3 특징 구매금액대 ~5 5~10 10~15 15~20 20~ f1 f2 f3 NMF 1.44 0.004 0.023 0.089 0.895 0.003 0.006 0.495 0.107