Machine Learning Overview
머신러닝 개요
- 인공지능의 한 분야로, 인공지능의 패턴인식과 계산 학습 이론에서 발전한 컴퓨터과학의 한 분야이다.
- 머신러닝에서는 주어진 데이터로부터 학습하고 예측할 수 있는 알고리즘을 연구한다.
- Data Mining을 통해 입력 데이터로 사용할 적합한 입력 변수를 선택하고,
Missing Data(입력에 빠진 데이터)를 보충하거나, Outlier(이상치)를 제거하고, 적절한 양의 데이터를 선택하는 과정이
머신러닝의 핵심이다.
* Data Mining (데이터 마이닝)
- 현재의 데이터를 탐색하고 정리하는 일련의 과정을 지칭하는 용어이다.
- 데이터 마이닝은 현재 데이터의 특징을 알아내는데 중점을 두고,
머신러닝은 현재 데이터를 통해 학습하여 미래를 예측하는데 중점을 두고 있다.
ML: Regression Algorithms (머신러닝: 회귀 알고리즘):
- Linear Regression (URL)
- Stochastic Gradient Descent Regression (SGD Regression)
- Support Vector Regression (SVR)
- Random Forest Regression
- Bayesian Regression
- Isotonic Regression
- Bayesian Automatic Relevance Determination Regression (Bayesian ARD Regression)
ML: Classification Algorithms (머신러닝: 분류 알고리즘):
- Naive Bayes Classifier
- Logistic Regression
- Support Vector Machine (SVM)
- Decision Tree
- K-Nearest Neighbor (K-NN) (URL)
- Random Forest
- Gradient Boosting Tree (GBT)
- SGD Classifier
- AdaBoost
ML: Clustering Algorithms (머신러닝: 군집화 알고리즘):
- K-means (최적분리)
- Fuzzy C-Mean
- Spectral Clustering
- Gaussian Mixtures
- Agglomerative Clustering
- Affinity Propagation
- Mean Shift
Pros and Cons of Machine Learning (머신러닝의 장단점)
머신러닝의 장점
- 학습을 위한 지식 표현이 필요 없다.
- 충분한 데이터, 적합한 알고리즘이 뒷받쳐 준다면 사람이 만든 모델보다 더 좋은 결과를 보여줄 수 있다.
- 고도의 수학적 지식, 프로그래밍 능력을 요구하지 않는다.
- 머신러닝의 학습, 최적의 파라미터 탐색, 결과에 대한 평가를 모두 자동화할 수 있다.
- 데이터를 제외한, 모든 과정은 자동화가 가능하므로 Cost가 저렴하다.
- 프로그램을 자신이 원하는 대로 사용할 수 있다.
머신러닝의 단점
- 데이터 준비에 많은 Cost가 발생한다.
(Supervised Learning(지도 학습)의 경우, 모든 개별 데이터에 결과치를 만들어주어야 한다.)
- 오류가 발생하기 쉽고, 높은 정확도의 모델을 만들기 어렵다.
(Error Prone)
- 생성된 모델이 Black Box이기 때문에 해석이 어렵다.
(한 번 생성된 모델은 해석하기 어렵고, 개선하기도 어렵다.)
- Overfitting(과적합) 문제가 발생할 수 있다.
(학습에 사용된 데이터들에 한해선 Predictive Power(높은 예측력)를 보이지만,
그렇지 않은 데이터들에서는 좋지 못한 예측력을 보인다.)
Machine Learning Types (머신러닝의 종류)
Supervised Learning (지도학습) |
- 분류된 데이터, 직접적 피드백, 예측 결과에 중점 - Classification (분류) - Regression (회귀) |
Unsupervised Learning (비지도학습) |
- 데이터 분류 X, 피드백 X - 숨겨진 구조 및 인사이트 찾기에 중점 - Clustering (군집화) - Dimension Reduction (차원 축소) - Underlying Probability Density Estimation (분포 추정) |
Reinforcement Learning (강화학습) |
- 의사결정 프로세스, 보상 제도 |
Supervised Learning (지도 학습)
- 입력과 출력으로 구성된 Tuple을 제공하고, 이를 통해 학습하게 하는 형태이다.
(즉, 문제(입력값)와 그에 대한 답(출력값)까지 인공지능에게 제시해주어야 한다.)
- 지도 학습 알고리즘은 주어진 입력에 대한 출력을 만들어내기 위한 최적의 모델을 구성해 나가는데,
이러한 모습에 착안하여, 지도 학습은 일종의 Optimization Problem(최적화 문제)라 여겨진다.
- 가장 많이 활용되는 머신러닝의 종류이다.
- 스팸메일 필터링, OCR 문자 인식 기술이 지도 학습의 결과물에 해당된다.
- 지도 학습의 장점은 아래와 같다:
- 이전 경험으로부터 데이터를 수집하거나 데이터 출력을 생성할 수 있다.
- 경험을 통해 성능 기준을 최적화할 수 있다. (다양한 문제를 해결할 수 있다.)
- 지도 학습의 단점은 아래와 같다:
- 출력값에 Labeling이 되어있어야 한다.
- 일반적으로, 학습에 많은 시간이 소요된다.
Unsupervised Learning (비지도 학습)
- 입력 데이터의 구조를 파악하거나 관계를 분석하는 방법이다.
(사람은 인공지능에게 입력만을 제공한다.)
- 학습의 결과로 생각치 못한 지식을 발견하거나, 입력 데이터 간의 특성을 발견할 수 있어,
비지도 학습을 Knowledge Discovery(지식 발견)이라 부르기도 한다.
- 학습 결과의 명확한 목적이 없어 학습 결과에 대한 평가가 어렵다.
- 일반적으로, 대부분의 Data Mining 기법이 비지도 학습에 해당된다.
Reinforcement Learning (강화 학습)
- 행동 심리학에서 영감을 받은 학습 방법으로, 어떤 환경 안에서 정의된 에이전트가 현재 상태를 인식하고,
선택 가능한 행동들 중 보상을 최대화하는 행동을 선택하는 방법이다.
- 강화 학습은 Exploration(탐색)과 Exploitation(이용)의 균형을 맞춰, 학습 과정에서의 성능을 제고시키는데 중점을 둔다.
(미지의 영역을 "탐험"하는 것과, 이미 알고 있는 지식을 "이용"하는 것 사이의 균형을 이루는 것을 목표로 한다.)
- 입력과 출력을 제공하지 않으며, 잘못된 결과에 대한 개선이 일어나지 않는다.
- 강화 학습의 문제는 일반적으로 MDP(Markov Decision Process, 마르코프 결정 과정)로 표현된다.
Machine Learning Techniques (머신러닝에 사용되는 기법들)
Regression (회귀) |
- 독립변수와 종속변수 간 연관성을 분석하는 과정 - Continuous Data(연속적 데이터)에 적용 |
Classification (분류) |
- 데이터가 어느 종류에 속하는지 판별하는 과정 - Categorical Data(범주형 데이터)에 적용 |
Clustering (군집화) |
- 비슷한 특성을 가진 데이터들을 Cluster(무리)로 묶는 과정 - 비지도학습에서 사용 - 입력 데이터만 제공 (출력 데이터는 제공하지 않음) |
Regression (회귀)
- Continuous Number Variable(연속적인 숫자 변수)들 간의 상관관계를 파악하는 과정이다.
- 특히, Independent Variable(독립변수)과 Dependent Variable(종속변수) 간의 연관성을 분석하는 것에 주안점을 둔다.
- 데이터 간 상관정도를 직관적으로 파악하기 위해 독립변수와 종속변수의 Scatter Plot(산점도, URL)를 그린다.
- 회귀를 통한 문제해결의 예시는 아래와 같다:
- 과거 온도 데이터들을 통해 내일 온도를 예측
- 주식시세 정보를 통해 미래 주식 가격을 예측
- 유동인구, 날씨, 가격정보를 이용해 음식점의 예상 매출을 예측
- 구매자의 나이, 연 소득을 이용해 특정 제품의 예상 판매량을 예측
Regression Algorithms (회귀 알고리즘) 의 종류는 아래와 같다:
- Linear Regression (URL)
- Stochastic Gradient Descent Regression (SGD Regression)
- Support Vector Regression (SVR)
- Random Forest Regression
- Bayesian Regression
- Isotonic Regression
- Bayesian Automatic Relevance Determination Regression (Bayesian ARD Regression)
Classification (분류) (URL)
- 데이터가 어느 종류에 속하는지를 판별하는 과정이다.
- 분류 또한, 회귀와 같이 데이터의 포함 관계를 밝히기 위해 산점도를 이용한다.
- 분류를 통한 문제해결의 예시는 아래와 같다:
- 컨텐츠 추천
- 스팸메일 분류
- 이미지·얼굴·글자·음성 인식
- 질병 진단
- 유전자 데이터 인식
- 재정 위험 파악과 관리
- 주가 예측
Classification Algorithms (분류 알고리즘)의 종류는 아래와 같다:
- Naive Bayes Classifier
- Logistic Regression
- Support Vector Machine (SVM)
- Decision Tree
- K-Nearest Neighbor (K-NN) (URL)
- Random Forest
- Gradient Boosting Tree (GBT)
- SGD Classifier
- AdaBoost
Clustering (군집화)
- 데이터들간 유사도를 계산해 비슷한 특성을 가졌다 판단되는 데이터들을 Cluster(무리)로 묶는 과정이다.
- 데이터의 특성을 파악하는 데 많이 적용된다.
- 비지도학습에서 사용하는 기법이다.
- 입력 데이터만으로 수행된다.
- 군집화를 통한 문제 해결의 예시로는 아래의 것들이 있다:
- 유사한 음악 취향을 가진 사용자 분류
- 천문학 데이터를 이용해 유사한 특성을 가진 별들을 분류
- 지진이 발생됐던 지역들의 특징에 의거한 지진 예측
- 전자상거래 사용자에게 제품 추천
Clustering Algorithms (군집화 알고리즘)의 종류는 아래와 같다:
- K-means (최적분리)
- Fuzzy C-Mean
- Spectral Clustering
- Gaussian Mixtures
- Agglomerative Clustering
- Affinity Propagation
- Mean Shift
Machine Learning Process (머신러닝 프로세스)
1st Pre-Processing |
Training Dataset |
2nd Pre-Processing |
Learning Algorithm Training |
Parameter Optimization |
Post-Processing |
Final Model |
1. 1st Pre-Processing
- Training Dataset을 준비하는 과정이다.
- Training Dataset은 머신러닝 학습에 사용될 데이터 집합을 의미한다.
- 학습에 사용될 데이터를 선별하고, Missing Data(누락 데이터)를 확인, Outlier(이상치) 처리를 수행한다.
- 필요에 따라 Normalization(정규화)을 수행한다.
2. Training Dataset
- 학습에 사용될 데이터를 만드는 과정이다.
- 지도학습의 경우, 입력과 출력 데이터,
비지도학습의 경우, 입력 데이터를 정해진 형태로 만든다.
3. 2nd Pre-Processing
- Feature Selection과 Feature Scaling을 수행하는 과정이다.
- Feature Selection은 Training Dataset에 포함된 변수 중 학습에 사용할 변수를 선택하는 작업이다.
- Feature Scaling은 데이터를 일정 범위로 변환하는 작업이다.
- 이 과정에서는 적용하려는 알고리즘에 더 우수한 학습이 이뤄지도록 데이터를 만드는 데 목적을 둔다.
4. Learning Algorithm Training
- 선택한 머신러닝 알고리즘과 Training Dataset을 이용해 학습을 수행하는 과정이다.
- 사람의 개입은 거의 이뤄지지 않는다.
5. Parameter Optimization
- 선택한 머신러닝 알고리즘에 적용할 파라미터 값들을 조정해 결과물의 품질을 높이는 과정이다.
- 사람이 조정하여 최적의 파라미터값을 찾거나,
Grid Search(격자 탐색)를 통해 머신러닝 프로그램에서 스스로 최적 파라미터 값을 찾아낸다.
- 파라미터 값을 조정한 후,
1st Pre-Processing 혹은 2nd Pre-Processing 과정으로 돌아가 원하는 결과가 나올 때 까지 반복한다.
6. Post-Processing
- 학습결과의 품질평가를 수행하는 과정이다.
- 선택한 모델과 알고리즘 중 가장 좋은 결과를 도출한 것을 파악하고,
각 알고리즘이 주어진 문제에 어떻게 반응하는지를 평가한다.
- 품질 평가 후,
1st Pre-Processing 혹은 2nd Pre-Processing 과정으로 돌아가 원하는 결과가 나올 때 까지 반복한다.
7. Final Model
- 완성된 모델을 이용해 Training Dataset이 아닌, 실제 데이터에 적용한다.
No Free Lunch Theorems for Optimization (URL)
- 특정한 문제에 최적화된 알고리즘은 다른 문제에서는 그렇지 못하다는 것을 수학적으로 증명한 정리이다.
Reference: 머신러닝을 이용한 알고리즘 트레이딩 시스템 개발
(안명호, 류미현 저, 한빛미디어, 2016)