Machine Learning?
머신러닝에 대한 정의는 두가지가 있는데, 오래전에 Arthur Samuel의 정의는 'the field of study that gives computers the ability to learn without being explicitly prgrammed'. 하지만 현재는 Tom Mitchell의 정의를 따르고 있습니다. "A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.". 풀어 말하면 하나의 사건에서 나오는 여러 경험들을 토대로 컴퓨터에게 학습을 시키고, 사건의 성능이 개선되도록 하는 알고리즘을 구현하는 것을 말합니다.
체스를 예로 들면
- E는 많은 체스 게임들의 경험 (어떻게 수를 두는지에 대한)
- T는 체스를 플레이하는 사건
- P는 다음 경기에서 프로그램이 이길 확률
E를 통해서 T의 P가 개선되도록 하는 알고리즘은 두가지로 분류가 됩니다.
- supervised learning
- unsupervised learning
Supervised Learning
Supervised Learning은 데이터 셋과 그에 대한 정답을 알고 있는 상태에 적용이 가능한 학습 방법을 말합니다. 즉, 입력값과 출력값의 관계가 있는 것을 말합니다. 예를 들면 사진이 주어지고, 이 사진이 고양이다. 라는 정답을 아는 상태에서 고양이 사진을 주면 이 사진은 고양이라고 대답해주는 문제를 말합니다.
supervised learning은 regrssion과 classification 문제로 나눌 수 있습니다. regrssion문제는 continuous output의 결과를 예측하는 문제입니다. 이 말은 continuous function에 input 값을 넣고 결과를 continuous output으로 받는다고 생각 할 수 있습니다. classification문제는 descrete output의 결과를 예측하는데 사용합니다.
두 문제의 예를 들면 regression은 단순하게 아파트의 가격은 아파트의 사이즈로 예측이 가능하다 라는 가정을 갖고 생각하면, 아파트의 사이즈는 continuous한 데이터이고, 결과적으로 continous한 결과인 가격을 예측을 합니다. classification은 학교, 나이, 수입, 성별 등의 features를 통해 이 사람이 은행에서 대출을 받을 것인가 아닌가를 예측할때, output을 yes 또는 no로 즉, descrete output의 결과를 예측합니다.
Unsupervised Learning
supervised learning과 다르게 unsupervised learning은 정답을 모르고 예측을 하는 방법입니다. 결과적으로 입력된 데이터의 값들 사이의 관계를 기반으로 데이터에서 clustering(군집화) 구조를 얻을 수 있습니다. unsupervised learning은 예측 결과를 기반으로 feedback을 주지 않습니다. 즉, 이게 정답인지 아닌지를 알 수가 없고, 내가 눈으로 확인을 할 수 밖에 없습니다.
clustering의 예를 들면, 1000개의 글이 있을때, 글을 자동적으로 그룹핑을 하고 싶습니다. 이때 글의 단어의 빈번도, 문장의 길이, 페이지의 개수 등을 통해서 각 글의 관계를 기반으로 clustering을 할 수 있습니다. 추후에 글이 들어오면 단어의 빈번도, 문장의 길이, 페이지 개수 등을 통해서 비슷한 성격의 문서와 함께 그룹핑이 될 것입니다.
'MachineLearning' 카테고리의 다른 글
RNN(Recursive Neural Networks) (0) | 2017.12.10 |
---|---|
RNN(Recurrent Nueral Networks) (0) | 2017.12.10 |
XGBoost parameters (0) | 2017.08.27 |
Imbalanced data를 처리하는 기술 7가지 (0) | 2017.08.27 |
Class imbalanced problem - 데이터 비대칭 문제 (oversampling, undersampling) (0) | 2017.08.27 |