Upload
chul-ju-hong
View
49
Download
5
Embed Size (px)
Citation preview
Naive ML Overview
홍철주
발표자 소개
홍철주
• http://blog.fegs.kr
• https://github.com/FeGs
• Machine Learning Newbie
• SW Maestro 5th
2
목차
•기계 학습
•지도 학습
•분류
•회귀
•비지도 학습
•사례
3
머신러닝 개발 순서 中
•데이터 수집
•데이터 준비 (Data cleaning)
• 데이터 분석 (Data analysis, Feature engineering)
• 데이터 학습 (Modeling)
• 모델 성능 평가 (Evaluation)
오늘은 이 부분을 다룹니다
4
용어 정의
•Machine Learning
• Feature / Attribute
• Target variable / Label
• Training set / Testing set
5
기계 학습
• Supervised Learning (지도 학습)
•데이터 X에 대해 Y를 예측하는 것
•답이 있는 문제에서 답을 예측하는 것
• Unsupervised Learning (비지도 학습)
•데이터 X는 어떻게 설명될 수 있는가
•해석은 알아서
http://en.wikipedia.org/wiki/List_of_machine_learning_concepts
6
기계 학습
7
기계 학습
8
지도 학습 학습 단계
MachineFeatures Target variable
Modeling
9
지도 학습 테스트 단계
MachineFeatures Predicted target variable
predicted = model(features)
10
지도 학습 성능 평가 단계
MachineTraining Data Features (w/o target variable)
Predicted Target Variables
Accuracy = Correctly Predicted Target Variables / Total Predicted Target Variables
11
지도 학습 성능 평가 단계
Cross Validation 교차검증
Training Data Set 1/5
Training Data Set 2/5
Training Data Set 3/5
Training Data Set 4/5
Training Data Set 5/5
Training Data Set 2/5
Training Data Set 1/5
Training Data Set 3/5
Training Data Set 4/5
Training Data Set 5/5
…
Training Data Set 5/5
Training Data Set 1/5
Training Data Set 2/5
Training Data Set 4/5
Training Data Set 5/5
accuracy0 accuracy1 accuracy4
Final Accuracy = mean(accuracy0, accuracy1, …, accuracy4)
Test Data로 사용
Overfitting 판단에도 도움을 준다! Why?
12
Over/Underfitting
13
Further reading - Bias-Variance Tradeoff
High VarianceHigh bias
지도 학습
• Classification 분류
• Target variable: Discrete value
• Regression 회귀
• Target variable: Continuous value
14
분류 문제 예시• 스팸 메일 분류
• 필기체 인식
• 얼굴 인식
• 문서 분류
• 음성 인식 등..
15
분류 문제• Decision Trees
• Support Vector Machine
• k-NN
• Naive Bayes
• Neural Networks
16
Decision Trees
17
Ensemble of classifier
18
• Random Forest (Ensemble learning)
• ex) SVM + Logistic Regression + Random Forest
여러 분류기를 사용하는데
더 많은 분류기가 예측한 값을 최종 분류값으로 내놓음.
Overfitting도 피하고 정확도도 높여보고!
SVM
19
SVM
20
k-NN
21
Naive Bayes
22
Neural Networks
23
이건 다음에
Example: MNIST (kaggle)
Data : Handwritten digits image (28px * 28px, grayscale)
Target variable : digit number
0 1 2 3 4 5
24
Example: MNIST (kaggle)
Features : pixel0, pixel1, …, pixel783 (28 * 28)
[…, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 210, 254, 253, 159, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, …]
Target Variable : 0
접근 1 - 픽셀 하나하나를 Feature로 간주
25
Example: MNIST (kaggle)
[…, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 210, 254, 253, 159, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, …]
784차원 공간을 생각해보자 :
Method 1: k-NN
Method 2: SVM
Method 3: Random Forest, etc..
784차원 공간에서 가까이 있는 좌표의 label은?
784차원 공간을 783차원 초평면으로 갈라서 분류해보면?
이 위치에 하얀 픽셀이 있고 저기엔 없으면?
어떤 방법이 가장 좋은가?
26
Example: MNIST (kaggle)접근 2 - 이미지 프로세싱으로 Feature를 만들어내기
End point and junctions distribution
교차점, 끝점 갯수 등을
Feature로 이용함.
ex) 8은 교차점이 1개,
끝점은 0개
Feature Extraction
27
Example: MNIST (kaggle)높은 정확도와 Insight를 얻기 위한 시각화
Averaging Images
Visualizing Random Forest28
최적화
• 한 알고리즘에서 조건을 바꿔가며 성능 평가를 시행하
여 최적의 Parameter를 찾는 것
• Grid Search 등을 이용해서 찾을 수 있다.
30
회귀 문제• 1, 2, 3, 다음에 올 숫자는?
• 4? (d=1, 등차수열)
• 5? (피보나치)
• …
31
회귀 문제 예시• 가격 예측
• ?
32
회귀 문제• Linear Regression
• (+ Ridge, Lasso)
• Neural Networks
• Logistic Regression
33
Linear Regression
34
Neural Networks
35
이건 다음에
비지도 학습• Clustering 군집화
• Association Rule Learning 연관 규칙 학습
36
군집화 문제 예시
37
• 비슷한 문서 찾기
• Collaborative Filitering (추천 시스템)
군집화 문제
38
• k-Means clustering
• EM algorithm
k-Means Clustering
39
EM Algorithm
40
연관 규칙 학습 문제 예시
41
• 연관 상품 추천 (Continuous Production)
• 연관 웹페이지 추천 (Web Usage Mining)
• 등등
연관 규칙 학습
42
• Support
• Confidence
• A -> B?
사례 분석• 스팸 메일 분류
• 필기체 인식
• 음성 인식
• 얼굴 인식
• 상품 추천
43
스팸 메일 분류접근 : Bayesian filtering
간단히 Spam / Not spam (Ham) 을 구분하는 문제
내용만으로 분류를 하는 접근
Pr(S|W) = 단어 W가 들어있을 때 스팸일 확률
Pr(W|S) = 스팸에 단어 W가 있을 확률
Pr(S) = 스팸 확률
Pr(W|H) = 햄에 단어 W가 있을 확률
Pr(H) = 햄 확률
스팸에서 W가 등장하는 횟수 / 스팸 총 단어 수
통계적으로 0.2
햄에서 W가 등장하는 횟수 / 햄 총 단어 수
통계적으로 0.8
44
필기체 인식 (MNIST 문제를 어떻게 풀어봤나)접근 1: PCA + k-NN
단순히 k-NN을 쓰면 시간이 많이 소요된다.
그렇다면 차원을 낮추자! - PCA
10차원으로 낮췄을 때 : 92.6%
33차원으로 낮췄을 때 : 97.3%
5 3 8 9
56차원으로 낮췄을 때 : 97.2%
45
필기체 인식 (MNIST 문제를 어떻게 풀어봤나)접근 2: CNN (Convolutional Neural Networks)
이건 다음에
46
음성 인식접근 : Neural Networks
47
MFCCs
Zero Crossing Rate
Spectral Centroid
…
등을 feature로 사용이미지 픽셀을 쓰는거랑 비슷함
얼굴 인식접근 : SVM + Sliding Window
48
얼굴 데이터로만 학습
Window
이 영역이 얼굴인가? (분류)
상품 추천접근 1 : k-Means clustering
49
다른 사람도 봤던 상품이 무엇인지 알려주기
Features : product1, product2, …, productN (seen)
[…, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, …]
Product Vector
상품 추천접근 2 : EM algorithm Clustering
50
Pr(P2|P1) = 상품 P1을 봤던 사람이 상품 P2를 볼 확률
Pr(P1|P2) = 상품 P2를 봤던 사람이 상품 P1을 볼 확률
Pr(P2) = P2를 볼 확률
Pr(P1) = P1을 볼 확률
Pr(P2|P1) = Pr(P1|P2) * Pr(P2) / Pr(P1)
있을 법한 상품 조합 찾아내기
상품 추천접근 3 : Apriori algorithm (Associative Rule Learning)
51
상품간 연관 규칙 발견하기
접근 4 : TF-IDF (Content-based filtering)
상품간 유사성 발견하기
…
Tools• ipython
• numpy, scipy (scientific computing)
• matplotlib (ploting library)
• scikit-learn (general machine learning algorithm set)
• theano (for fast deep learning)
• gensim (topic modeling library)
52
실습합시다
EOF