[ML] 딥러닝의 깊이 있는 이해를 위한 머신러닝 4-1 (K-MOOC)

daeungdaeung·2021년 6월 21일
0

Machine-Learning

목록 보기
7/25

Non-parametric 구분기 & KNN 모델

Decision Theory

이메일 분류기로 설명을 해보겠습니다.

  • 스팸이 아닌 메일을 스팸 메일로 처리하는 것 (False Positive)

  • 스팸 메일을 스팸이 아닌 메일로 처리하는 것 (False Negative)

위의 두 사항 중 무엇이 더 치명적일까요? \rarr 스팸이 아닌 메일을 스팸 메일로 처리하면 치명적인 상황 발생확률이 더 크다고 볼 수 있습니다.

따라서 Cost를 정의할 때 False Positive 경우에 Cost를 더 크게 설정합니다.

Parametric 모델

Parameter의 개수가 고정된 모델입니다.

Naive Bayes & Decision Tree 모두 Prametric Model의 일종입니다.

일반적으로 데이터가 많을수록 정확도가 높아집니다.

하지만 고정된 parameter로는 더 큰 데이터를 처리할 수 없는 한계가 있습니다.

Parametric 모델의 한계를 극복하기 위한 모델 \rarr Non-parametric Model

Non-parametric 모델

Parameter 개수가 데이터 샘플과 거의 동일하거나 데이터 샘플 개수에 비례합니다.

  • ex) Decision Tree가 모든 데이터를 나눈다면 데이터 샘플 개수만큼 splitting node를 가지게 됩니다. \rarr Non-parametric Model

  • 데이터가 많이 주어질수록 \rarr parameter 개수 증가 \rarr 모델 복잡성 증가

대표적인 알고리즘으로 KNN 알고리즘이 있습니다.

k-Nearest Neighbor(k-NN) Classifier

단순한 구조이며 빈번하게 쓰이는 알고리즘으로 잘 알아두면 좋습니다.

작동 과정 요약:

  • 모든 트레이닝 샘플들과 현재 새롭게 입력된 데이터와의 거리를 측정합니다.

  • 새로운 데이터에 가장 가까운 샘플에 해당되는 라벨을 그대로 달아줍니다.

가장 가까운 샘플들의 개수를 k로 설정합니다. (그래서 k-NN 이라 명명되었습니다.)

  • k 값이 작을수록 모델이 복잡해집니다.

  • k 값이 클수록 모델이 단순해집니다.

  • Overfitting 문제를 피하기 위해서는 일반적으로 k값을 키우는 선택을 합니다.

k-NN이 가정하는 것: 비슷한 피쳐를 가지고 있는 샘플들은 비슷한 라벨을 가질 것이다. (매우 직관적이라고 생각합니다.)

KNN 구분기의 구현

  • 학습단이 없습니다. \rarr 실제 코드 구현상에서 학습에 거의 시간이 들지 않습니다.

  • 학습 데이터와 테스트 데이터와의 거리를 계산해야 하므로 테스트 데이터 1개당 학습 데이터의 개수 * 피쳐 개수 (ndn\cdot d) 만큼 계산량이 요구됩니다.

Hierarchical Tree

  • 학습 데이터들을 대표하는 몇 개의 샘플에 대해서만 거리 계산

  • 학습 데이터의 모든 샘플과 비교하는 것에 비해서 요구되는 시간이 적을 것입니다.

KNN의 단점

학습 데이터의 개수(nn) 혹은 피쳐의 개수(dd)가 증가할수록 테스트 데이터의 결과를 도출하기 위해 요구되는 시간이 증가합니다.

또한 학습 데이터를 저장하기 위한 비용이 큽니다. \rarr 메모리 사용량이 커집니다.

Curse of Dimensionality

파라미터의 종류가 많아질수록 학습에 필요한 데이터 양이 기하 급수적으로 요구됩니다. (차원이 높아지는데 데이터 개수가 그대로라면 Similarity를 측정하는데 매우 어려울 것입니다.)

profile
개발자가 되고싶읍니다...

0개의 댓글