Naive ML Overview

Preview:

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

Example: MNIST• http://yann.lecun.com/exdb/mnist/

29

최적화

• 한 알고리즘에서 조건을 바꿔가며 성능 평가를 시행하

여 최적의 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