4. 머신러닝 개발 순서 中
• 데이터 수집
• 데이터 준비 (Data cleaning)
• 데이터 분석 (Data analysis, Feature engineering)
• 데이터 학습 (Modeling)
• 모델 성능 평가 (Evaluation)
오늘은 이 부분을 다룹니다
4
5. 용어 정의
• Machine Learning
• Feature / Attribute
• Target variable / Label
• Training set / Testing set
5
6. 기계 학습
• Supervised Learning (지도 학습)
• 데이터 X에 대해 Y를 예측하는 것
• 답이 있는 문제에서 답을 예측하는 것
• Unsupervised Learning (비지도 학습)
• 데이터 X는 어떻게 설명될 수 있는가
• 해석은 알아서
http://en.wikipedia.org/wiki/List_of_machine_learning_concepts
6
9. 지도 학습 학습 단계
MachineFeatures
Target variable
Modeling
9
10. 지도 학습 테스트 단계
MachineFeatures
Predicted
target variable
predicted = model(features)
10
11. 지도 학습 성능 평가 단계
Machine
Training Data Features
(w/o target variable)
Predicted Target Variables
Accuracy = Correctly Predicted Target Variables / Total Predicted Target Variables
11
12. 지도 학습 성능 평가 단계
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
18. Ensemble of classifier
18
• Random Forest (Ensemble learning)
• ex) SVM + Logistic Regression + Random Forest
여러 분류기를 사용하는데
더 많은 분류기가 예측한 값을 최종 분류값으로 내놓음.
Overfitting도 피하고 정확도도 높여보고!
26. 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
27. Example: MNIST (kaggle)
접근 2 - 이미지 프로세싱으로 Feature를 만들어내기
End point and junctions distribution
교차점, 끝점 갯수 등을
Feature로 이용함.
ex) 8은 교차점이 1개,
끝점은 0개
Feature Extraction
27
43. 사례 분석
• 스팸 메일 분류
• 필기체 인식
• 음성 인식
• 얼굴 인식
• 상품 추천
43
44. 스팸 메일 분류
접근 : 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
45. 필기체 인식 (MNIST 문제를 어떻게 풀어봤나)
접근 1: PCA + k-NN
단순히 k-NN을 쓰면 시간이 많이 소요된다.
그렇다면 차원을 낮추자! - PCA
10차원으로 낮췄을 때 : 92.6%
33차원으로 낮췄을 때 : 97.3%
5 3 8 9
56차원으로 낮췄을 때 : 97.2%
45
46. 필기체 인식 (MNIST 문제를 어떻게 풀어봤나)
접근 2: CNN (Convolutional Neural Networks)
이건 다음에
46
47. 음성 인식
접근 : Neural Networks
47
MFCCs
Zero Crossing Rate
Spectral Centroid
…
등을 feature로 사용
이미지 픽셀을 쓰는거랑 비슷함
48. 얼굴 인식
접근 : SVM + Sliding Window
48
얼굴 데이터로만 학습
Window
이 영역이 얼굴인가? (분류)
50. 상품 추천
접근 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)
있을 법한 상품 조합 찾아내기
51. 상품 추천
접근 3 : Apriori algorithm (Associative Rule Learning)
51
상품간 연관 규칙 발견하기
접근 4 : TF-IDF (Content-based filtering)
상품간 유사성 발견하기
…