3.unsupervised learing
-
Upload
haesun-park -
Category
Software
-
view
753 -
download
7
Transcript of 3.unsupervised learing
Machine Learningwith Python
Unsupervised Learning
1
ContactsHaesun Park
Email : [email protected]
Meetup: https://www.meetup.com/Hongdae-Machine-Learning-Study/
Facebook : https://facebook.com/haesunrpark
Blog : https://tensorflow.blog
2
Book파이썬라이브러리를활용한머신러닝, 박해선.
(Introduction to Machine Learning with Python, Andreas Muller & Sarah Guido의번역서입니다.)
번역서의 1장과 2장은블로그에서무료로읽을수있습니다.
원서에대한프리뷰를온라인에서볼수있습니다.
Github: https://github.com/rickiepark/introduction_to_ml_with_python/
3
비지도학습
4
종류
비지도변환unsupervised transformation
사람이나머신러닝알고리즘을위해새로운데이터표현을만듦차원축소: PCA, NMF, t-SNE, 오토인코더autoencoder
토픽모델링: LDA (e.g. 소셜미디어토론그룹핑)
군집clustering
비슷한데이터샘플을모으는것 (e.g. 사진어플리케이션)k-평균, 병합, DBSCAN
데이터스케일링scaling
이상치탐지anomaly detection, GANgenerative adversarial networks
5
비지도학습의어려움
레이블이없기때문에올바르게학습되었는지알고리즘을평가하기가어려움
사진애플리케이션에서옆모습, 앞모습으로군집되었다해도직접눈으로확인하기전에는결과를평가하기가어려움
비지도학습은데이터를잘이해하기위해서(탐색적분석) 사용되거나,
지도학습알고리즘의정확도향상과메모리/시간절약을위해전처리단계로활용
6
데이터스케일조정
7
네가지스케일링
8
인위적으로만든이진분류데이터(특성 2개)
10~15
1~10
표준점수, z-점수: 평균 0, 분산 1𝑥 − �̅�𝜎
사분위값사용, 이상치에덜민감𝑥 − 𝑞&𝑞' − 𝑞(
𝑥 − 𝑥)*+𝑥),- − 𝑥)*+
모든특성이0과 1사이에위치
Normalizer(norm=‘l2’)다른방법과달리행(포인트) 별로적용
cancer + MinMaxScaler
9
y_train은사용하지않음
MinMaxScaler.transform
10
fit à transform
numpy 배열의min, max 메서드
최소와최댓값이0, 1로바뀜
transform(X_test)
11
훈련세트로학습시킨 scaler를사용해 X_test를변환
테스트세트의최소, 최댓값이 0~1 사이를벗어남
𝑥./0. − 𝑥.1,*+_)*+𝑥.1,*+_),- − 𝑥.1,*+_)*+
train과 test의스케일조정
12
<단축메서드>
13
transform 메서드를가진변환기클래스는모두 fit_transform 메서드를가지고있음
TransformerMixIn 클래스를상속하는대부분의경우 fit_transform은단순히scaler.fit().transform()처럼연이어호출
일부의경우 fit_transform 메서드가효율적인경우가있음(PCA)
scaler + SVC
14
PCA
15
주성분분석Principal component analysis
상관관계가없는특성으로데이터셋을변환(회전)하고일부특성을선택하는기술
16분산이가장큰방향(화살표방향은의미없음)
첫번째와직각이면서가장분산이큰방향
성분1, 2로데이터를변환(특성의수 == 성분의수)
두번째성분제거
다시원래특성차원으로변환
PCA와특이값분해
17
C𝑜𝑣 𝑋*, 𝑋8 =1
𝑛 − 1 [(𝑋* − 𝑋>*)(𝑋8 − 𝑋>8)]
행렬 X의공분산
평균을뺀행렬로표현하면
C𝑜𝑣 𝑋, 𝑋 =1
𝑛 − 1𝑋B𝑋
특이값분해(SVD) 𝑋 = 𝑈𝑆𝑉B로부터
C𝑜𝑣 𝑋, 𝑋 =1
𝑛 − 1𝑋B𝑋 =
1𝑛 − 1 𝑉𝑆𝑈B 𝑈𝑆𝑉B = 𝑉
𝑆&
𝑛 − 1VG
𝑉( 𝐶(,& 𝐶(,'𝐶(,& 𝑉& 𝐶&,'𝐶(,' 𝐶&,' 𝑉'
대칭행렬의고유벡터인 V가주성분의방향
𝑋IJ, = 𝑋𝑉 = 𝑈𝑆𝑉B𝑉 = 𝑈𝑆
행렬의고유벡터à크기만바뀌고방향은바뀌지않음
𝑦 = 𝐴𝑥 = 𝜆𝑥
공분산행렬의고유벡터à분산의주방향
PCA + cancer
18
특성의스케일을맞추기위해분산이 1이되도록변경
fitàtransform
pca.components_components_ 속성에주성분방향principal axis VT가저장되어있음
components_ 크기 (n_components, n_features)
19
𝑋 = 𝑈𝑆𝑉B𝑋IJ, = 𝑋𝑉 = 𝑈𝑆
[n_samples, n_features]∙[n_features, n_components]=[n_samples, n_components]
주성분방향을직관적으로설명하기어려움
LFW dataset메사추세츠애머스트주립대의비전랩에서만든 LFWLabeled Faces in the Wild 데이터셋
인터넷에서모은 2000년대초반유명인사의얼굴이미지
20
총 62명의얼굴3,023개à2,063개이미지각이미지는 87x65 사이즈à5,655 개의특성
k-NN + lfw(지도학습) 1-최근접이웃을적용
87x65 픽셀값의거리를계산하므로위치에매우민감해짐
21
무작위로분류할경우 1/62=1.6%
화이트닝whitening
백색소음에서이름이유래됨, 특성간의 (대각행렬을제외한) 공분산이모두 0이되고(PCA) 특성의분산이 1로되는변환
22
k-NN + whitening
23
주성분의갯수
픽셀수==특성의수==주성분의벡터방향
PCA as weighted sum
주성분방향으로변환한데이터(x)에주성분방향을곱하여원본샘플복원
[1 x 100] ∙ [100 x 5655] = [1 x 5655]
원본샘플을주성분의가중치합으로표현
24
비음수행렬분해(NMF)
25
NMFPCA와비슷하고차원축소에사용할수있음
원본 = 뽑아낸성분의가중치의합
음수가아닌성분과계수를만드므로양수로이루어진데이터에적용가능
예) 여러악기나목소리가섞인오디오트랙
26
NMF + 인공데이터셋
27
성분이특성개수만큼많다면데이터의끝부분을가리킴
하나일경우에는평균방향을가리킴
성분의개수를변경하면전체성분이모두바뀌고성분의순서가없음
NMF < PCANMF는주로데이터에있는패턴을분할하는데주로사용함
NMF + lfw
28
NMF - lfw의성분
NMF PCA성분이모두양수이므로얼굴이미지와가까운형태를띰
29
NMF + signal data
30
t-SNE
31
t-SNEt-Distributed Stochastic Neighbor Embedding
매니폴드학습manifold learning은비선형차원축소의기법
PCA는저차원의평면에투영하는효과를낸다고말할수있음
매니폴드학습은시각화에뛰어난성능을발휘함
탐색적데이터분석에사용(no transform 메서드)
2차원평면에데이터를퍼뜨린후원본특성에서의거리를유지하도록학습
32
load_digits8x8 흑백이미지의손글씨숫자데이터셋(MNIST 데이터셋아님)
33
PCA + load_digits2개의주성분으로데이터변환
34
TSNE + load_digitsv0.19에서버그수정됨
뛰어난클래스시각화능력
perplexity(5~50, default 30)가크면이웃을많이포함시킴(큰데이터셋)
early_exaggeration(default 1)에서초기과장단계의정도를지정함
35
k-평균군집
36
군집
데이터셋을클러스터cluster라는그룹으로나누는작업
한클러스터안의데이터는매우비슷하고다른클러스터와는구분되도록만듬
분류알고리즘처럼테스트데이터에대해서어느클러스터에속할지예측을만들수있음
• k-평균군집
• 병합군집
• DBSCAN
37
k-평균means 군집
가장간단하고널리사용됨
임의의클러스터중심에데이터포인트를할당하고평균을내어다시클러스터중심을계산함
클러스터에할당되는데이터포인트의변화가없으면알고리즘종료됨
38
k-평균 example
39
KMeans
40
레이블에어떤의미가없으며순서가무작위임(분류와다른점)
n_clusters=2 or 5n_clusters 매개변수에따라군집이크게좌우됨
41
k-평균의단점
클러스터가원형이고반경이동일하다고간주함
42
벡터양자화
PCA, NMF가데이터포인트를성분의합으로표현할수있는것처럼 k-평균은데이터포인트를하나의성분으로나타내는것으로볼수있음(벡터양자화)
43
클러스터평균
차원확대
44
두개의특성에서10개의특성으로늘어남e.g. [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]
KMeans.transform()각데이터포인트에서모든클러스터까지의거리를반환
10개의새로운특성으로활용가능
45
장단점
장점
이해와구현이쉬움비교적빠르고인기가높음대규모데이터셋에적용가능(MiniBatchKMeans)
단점
무작위로초기화하므로난수에따라결과가달라짐n_init(default 10) 매개변수만큼반복하여클러스터분산이작은결과를선택함클러스터모양에제한적임클러스터개수를해야함(실제로는알수없음)
46
병합군집
47
병합군집agglomerative clustering
데이터포인트를하나의클러스터로지정해지정된클러스터개수가될때까지두클러스터를합쳐나감
비슷한클러스터를선택하는방법을 linkage 매개변수에지정함
• ward: 기본값, 클러스터내의분산을가장작게만드는두클러스터를병합(클러스터의크기가비슷해짐)
• average: 클러스터포인트사이의평균거리가가장작은두클러스터를병합
• complete: 클러스터포인트사이의최대거리가가장짧은두클러스터를병합
48
병합군집 example
49n_clusters=3
AgglomerativeClustering새로운데이터에적용할수없음(fit_predict 만있음)
50
계층적군집
병합군집을사용하려면클러스터의개수를지정해야함
병합군집은계층적군집이므로클러스터가병합되는과정을살피면클러스터개수를선택하는데도움이됨
51
덴드로그램dendrogram
2차원이상의계층적군집을표현하기위한도구
scipy의연결linkage 함수와덴드로그램함수를사용
52
두클러스터가합쳐질때의거리
DBSCAN
53
DBSCAN 특징
클러스터개수를미리지정할필요없음
복잡한형상에적용가능, 노이즈포인트구분
k-평균이나병합군집보다는느림
데이터가많은밀집지역을찾아다른지역과구분하는클러스터를구성함
밀집지역의포인트를핵심샘플이라고부름
한데이터포인트에서 eps 안의거리에 min_samples 개수만큼데이터가있으면이포인트를핵심샘플로분류함. à클러스터가됨
54
DBSCAN 알고리즘
처음무작위로포인트를선택하고 eps 거리안의포인트를찾음
eps 거리안의포인트 < min_samples 이면잡음포인트(-1)로분류
eps 거리안의포인트 > min_samples 이면핵심포인트로분류, 새클러스터할당
핵심포인트안의 eps 안의포인트를확인하여클러스터할당이없으면핵심샘플의클러스터를할당함(경계포인트)
eps 안의포인트가이미핵심샘플이면그포인트의이웃을또차례로방문하여클러스터가자라남
아직방문하지못한포인트를다시선택해동일한과정을반복함
55
DBSCAN + 인공데이터셋
56
min_samples=5eps=0.5
잡음포인트
핵심포인트
경계포인트
클러스터증가
잡음포인트증가
eps, min_sampleseps가가까운포인트의범위를정하기때문에더중요함
eps가아주작으면핵심포인트가생성되지않고모두잡음으로분류됨
eps를아주크게하면모든포인트가하나의클러스터가됨
eps로클러스터의개수를간접적으로조정할수있음
StandardScaler나 MinMaxScaler로특성의스케일을조정할필요있음
min_samples는덜조밀한지역이잡음포인트가될지를결정함
min_samples 보다작은개수가모여있는지역은 잡음포인트가됨
57
DBSCAN + Two Moons
58
군집알고리즘비교, 평가
59
ARI, NMI0(무작위)~1(최적) 사이의값, ARI의최저값은 -0.5 혹은 -1 임
60
normalized_mutual_info_score
accuracy?군집의클래스레이블은의미가없음에도정확도는클래스레이블이같은지를확인함
61
실루엣silhouette 계수
ARI, NMI는타깃값이있어야가능, 애플리케이션보다알고리즘을개발할때도움이됨
타깃값필요없이클러스터의밀집정도를평가
-1: 잘못된군집, 0: 중첩된군집, 1: 가장좋은군집
모양이복잡할때는밀집정도를평가하는것이잘맞지않음
원형클러스터의실루엣점수가높게나옴
62
silhouette_score
63
군집평가의어려움
실루엣점수가높다하더라도찾아낸군집이흥미로운것인지는알수없음
사진애플리케이션이두개의클러스터를만들었다면
앞모습 vs 옆모습
밤사진 vs 낯사진
아이폰 vs 안드로이드
클러스터가기대한대로인지는직접확인해야만알수있습니다.
64
군집 + LFW
65
DBSCAN
66
2063x100
min_samples=5
잡음포인트
클러스터범위증가
DBSCAN 잡음포인트
67
LWF의클러스터
68
대다수의얼굴이미지는비슷하거나비슷하지않음
k-평균 + LWF
69
2063x100
pca.inverse_transfom(km.cluster_centers_)
10x100100x5655
k-평균의중심에서가깝고먼이미지
70
병합군집 + LWF
71
장단점
군집알고리즘은정성적분석과정이나탐색적분석단계에유용
k-평균, 병합군집: 클러스터개수지정
k-평균: 클러스터의중심을데이터포인트의분해방법으로볼수있음
DBSCAN: eps 매개변수로간접적으로클러스터크기를조정, 잡음포인트인식,클러스터개수자동인식, 복잡한형상파악가능
병합군집: 계층적군집으로덴드로그램을사용해표현할수있음
72