nathan_H
Machine Learning - Feature 와 Model. 본문
Feature와 Model에 들어가기 앞어
Machine Learning과 Deep Learnig에 어떻게
구현이 되는지 보면
사실 Deep Learnig은 Machine Learning범주 안에
포함되어 있는 학습 방법중 하나이다.
그래도 굳이 차이점이라면
Machine Learning은 Feature을 직접 만들어
학습시키고 분류하고
결과를 낸다면
Deep Learnig은
feature도 기계가 스스로 만들어 학습시키고
분류해 결과을 낸다는 점이라고 볼 수 있다.
*이 부분에 대해서 사실 나도 학부생이고 이제 공부를 시작해 깊은 지식이 없어
틀릴 수도 있으니 참고 바라고 틀렸다면 피드백을 주면 수정하겠다.
Feature
그럼 이제 Machine Learning에 있어 중요한
Feature 에 대한 개념을 알아보고자 한다.
Feature == attribute
즉 속성, 특성인데
예시를 들지ㅏ면
"사람"에 있어 Feature는
키, 색, 성별, 나이, 직업 ... 등
이렇게 사람이 가지고 있는 여러가지 특성들을 말한다.
그래서 왜 Machine Learning에서
Feature 을 사용하고 중요하다고 말하는 것일까?
그 이유는 데이터를 학습을 함에 있어
데이터를 어떤 속성을 가지고 학습을 시켜주느냐에 따라
결과가 천차 만별이기 때문이다.
이것도 예시를 들자면
여러명의 사람의 정보를 학습시키고 분류를 할때
Feature 을 "키" 로 했을때와 "나이"로 했을때의
결과는 천차만별인 것처럼
Machine Learning에서도
Feature 을 어떻게 정하느냐에 따라
결과가 완전히 달라진다는 것이다.
Feature 을 정함에 있어 유의사항? 에 대해 알아보자
Feature 의 개수 : 문제에 따라 수백개~ 수만개 이상 될수도 있다 하지만 Classification에 경우,
label(class) 개수 보다 많고 data 개수보다 적은 것이 일반적이다.
그렇다고 feature을 무턱대고 늘린다면?
curse of dimension 문제가 발생해 차원이 증가하고
차원이 증가함에 따라 다양한 값들의 조합 개수가 expontential 하게 증가해
필요 데이터가 증가하는 차원의 저주에 빠지게 된다.
Model
이제 다시 Machine Learning의 본질적인 목적에 대해 상기해보자
Machine Learning의 목적은 무엇인가?
기계를 학습 시켜서 배우는 것이다.
그 기계의 실체는 Model이라고 볼수 있다.
즉 모델은 머 다른 개념이 아니라
정말 학습 시키는 모델 즉 기계자체라고 볼 수 있다.
그럼 모델에 있어
몇가지 기준들을 알아보자.
1. complexity
complexity는 말그대로 복잡도를 이야기 한다.
1) 계산 복잡성 : 데이터 연산 수가 증가할수록
계산 된 연산의 수는 어떻게 증가합니까?
2) 데이터 (samplecomplexity / consistency) :
자료의 데이터 항목이 증가할수록,
그 효과는 얼마나 효과적입니까?
complexity은 위 두가지를 기준으로 보면 된다.
즉 최적의 모델을 만들기 위해서는
복잡성을 고려하면서 평가를 통해
최적의 모델을 만들어야 한다.
Parametric, Non-parmetric
Unsupervisedmodel들은Parametric,Non-parametric로나눌수있음
Parametric:주어진 데이터가 ‘어떤분포‘ 로부터 생성된 건지 가정한다.
즉,‘모델’을 가정 하는 것 이므로, 파라메터를 통해 문제 접근
Non-parametric:‘어떤분포‘ 인지조차도 가정이 없고, 파라메터 개수가 변하기도 한다
(예:데이터가 많아짐에 따라 파라메터들도 많아지기도 함)
- 순수빈도수기반접근(예:순위합검정),kNN알고리즘 등
Generative , Discriminative
Discriminative (변별, 차이)
대표적인 방식이 Logistic Regression이다.
그 외에도 Conditional Random Field, Support Vector Machine,
Linear Regression, Neural Network 등의 알고리즘들이 있다.
장점:
데이터가 충분할경우 좋은 성능을 보여준다.
단점:
데이터를 구분하는데 목표를 두고 있으므로, 데이터가 실제 어떤 모습인지 본질을 이해하기는 어렵다.
Generative (생성적인)
생성되는 입력과 결과 데이터는 분류 클래스별로 특정한 통계적 분포를 따른다고 가정하는 방식이다.
입력값과 출력값 사이에 분포규칙의 개념을 적용한 방식을 Generative(생성) Algorithm이라고 한다.
예) -Naive Bayes
장점:
데이터 셋이 적어도 할만하다.
데이터 자체의 특성을 파악하기에 좋다.
데이터를 생성해 내어 새로운 결과물을 얻어낼수 있다.
다른 다양한 목적들에 사용 가능.
단점:
데이터가 많은 경우, Discriminative에 비해 성능이 떨어 질수 있다.
설계 학습이 쉽지 않음.
no free lunch vs occam's razor
no free lunch - 공짜란 없다
> "모든 것에 최선인 알고리즘은 없다.
occam's razor - 쉽게 가자~
"단순함이 의외로 진리일 가능성이 있다."
'Big Data > ML' 카테고리의 다른 글
Bayesian network. (0) | 2019.04.10 |
---|---|
Decision Tree (0) | 2019.04.10 |
MLE, MAP (0) | 2019.04.09 |
PCA SVD, Linear Discriminant Analysis (0) | 2019.04.08 |
Evaluation (0) | 2019.04.05 |