소품집

[ML/DL] Data mining introduction 본문

AI

[ML/DL] Data mining introduction

sodayeong 2020. 4. 22. 11:06

Machine Learning?


원초적인 이야기부터 하자면, 아이는 어떻게 말할 수 있게 된 걸까요? 주변에서 '반복'하여 들려주는 다양한 말을 '학습'하게 되는데요. 즉, 학습과 경험을 통해 쌓은 데이터로 말이죠.

기계학습은 학습법에 따라 네 가지로 분류할 수 있습니다.

 

 

 

Different kinds of learning


Supervised Learning (지도학습)

  • 모델 학습을 위해 '정답'이 주어진 데이터가 필요
  • 정답이 주어진 데이터를 '분류'하는 작업에 이용 → Classification
  • 대표적인 분류모델
    1. Decision Trees
    2. Neural networks
    3. support vector machines

Unsupervised Learning (비지도학습)

  • 모델 학습에 '정답' 필요없음
  • 데이터만 있으면 학습이 가능
  • 데이터를 '군집화' 하는 작업에 이용 → Clustering
  • 대표적인 군집화 모델
    1. Hierarchical clustering
    2. K-means clustering
    3. 주의! 모델 정량평가(성능평가)를 위해서는 결국 '정답'이 필요

Semi-supervised

  • 일부 데이터만 '정답'이 존재
  • 정답이 없는 데이터도 학습에 도움이 될 것이라는 가정

Reinforcement

  • 행동(선택) → 보상(혹은 패널티)
  • 더 큰 보상을 얻는 방향으로 학습 진행
  •  

Learning 종류 비유


 

 

Feature


  • Feature == Attribute
  • '사람'의 feature
    • 키, 머리카락 색, 성별, 나이, 직업
  • Feature는 여러가지 Data type일 수 있음
    • Categorical (Normal) - 직업: 경찰, 의사, 청소부
    • String - 이름, 주소
    • Number - 나이
    • Real-Number - 키, 몸무게

 

 

빌려줄지 말지를 판단해보기 위해 예시를 보면서 설명할게요.

이 데이터를 보고 feature를 추가하려합니다.

그럼, 새로운 feature로 '머리카락 길이'를 넣는다면, 과연 적절한 걸까요?

  • Feature 개수 (feature dimension)
    • 문제에 따라 수백~수만개 이상이 될 수 있음 → but, 지양하진 않음
    • Classification의 경우, label 개수(Class 개수)보다는 많은 것이 일반적임
    • Data 개수보다는 적은 것이 일반적임
  • Feature 정의가 어떻게 되었느냐에 따라, 일반적인 기계학습 모델의 성능은 엄청나게 차이날 수 있다!
    • 즉, domain knowledge 혹은 전문 짓기이 요구됨
    • ex) 일본어 문장에 대한 감정분석
  • Feature를 무턱대로 늘리게 되면, curse of dimensionality (차원의 저주) 문제 발생
    • 차원 증가 → 각 차원의 다양한 값들에 대한 조합 개수가 exponential 하게 증가 →그만큼 필요 데이터도 증가 (feature 개수가 Data의 수 보다 더 많게 되면 안되니까!)
    • 차원에 비해 데이터가 너무 적으면 over fitting(틀렸는데 맞았다고 예측) 발생 가능성 증가

 

 

  • Deep learning의 경우, feature를 자동으로 각 층에서 인지하게 됨
  • 따라서, feature 정의 과정에 들어가는 노력이 매우 적음
  • 하지만! 뭐든 공짜는 없죠. feature 정의에 시간을 들이지 않는 만큼, 파마레터 인풋 개수를 막대하게 늘려줘야 합니다.

그래서 답으로는, feature 정의를 잘 해주어야 일반적인 기계학습 성능은 올라가는 것으로 판단할 수 있습니다.

 

 

 

 

Model


기계학습의 목적은? 기계에게 배우게 하는 것 입니다. 많은 학습을 통해 새로운 데이터에 대해서도 문제를 풀 수 있도록 학습하게 됩니다.

  • 그 기계의 실체 == '모델' (method)
    • 일단, 모델 기본 개념은 별 것 아님
    • 데이터 예시

1. 아래 모델 예시 중, 어떤 모델이 적합해 보이나요?

아마 첫 번째 모델식이라고 생각하셨을 겁니다. 일차함수의 선형성을 보여주고 있으니까요!

두 번째 식이 성립하려면, 이차함수로써의 변곡점이 있어야겠죠?

 

2. 그러면 두 모델 중 어느 모델이 더 복잡해 보이나요?

첫 번째 모델은 차원이 a,c 두 개, 두 번째 모델은 차원이 a, b, c 총 세개로 두 번째 모델이 더 복잡합니다.

 

 

 

Parametric, Non-Parametric


  • 비지도학습 모델을 Parametric, Non-Parametric로 나눌 수 있음
  • Parametric : 주어진 데이터가 '어떤 분포'로부터 생성된 건지 가정
    • 즉, '모델'을 가정하는 것이므로, 파라메터를 통해 문제 접근
  • Non-Parametric : '어떤 분포'인지조차도 가정이 없고, 파라메터 개수가 변하기도 함 (ex: 데이터가 많아짐에 따라 파라메터들도 많아지기도 함)
    • 순수 빈도수 기반 접근 (ex: 순위합검정), KNN 알고리즘 등

 

Generative, Discriminative


 

728x90
Comments