머신러닝 알고리즘의 종류
머신러닝 알고리즘은 그림과 같이 크게 3가지, 지도학습, 비지도학습, 그리고 강화학습으로 분류할 수 있습니다.
지도학습 알고리즘 (Supervised Learning Algorithms)
- 지도학습이란, 정답이 있는 데이터(labeled examples 또는 training set)를 활용하여 학습시키는 것을 말합니다.
- X data라고 할 수 있는 입력값과 그 입력값에 대한 Label, 즉 Y data를 주어 학습시킵니다.
- 아래 예시와 같이 이것이 고양이인지 강아지인지 머그잔인지 모자인지 라벨링이 된 데이터를 주고 학습을 시키면, 이 후 새로운 사진을 주었을 때 사진의 물체가 넷 중에 어느 카테고리에 들어가는지 분류합니다.
비지도학습 알고리즘 (Unsupervised Learning Algorithms)
- 비지도학습은, 지도학습에서는 training에 필요했던 label없이 학습하는 알고리즘을 말합니다.
- 일일히 label을 정해주기 어려울 때 사용됩니다.
- 비지도학습을 활용하는 예시로는, 구글 뉴스가 있습니다. 구글 뉴스는 자동적으로 유사한 뉴스들을 grouping 해주는데, 뉴스들을 일일히 labeling을 하기 어렵기 때문에 비지도학습 알고리즘을 사용합니다.
강화학습 알고리즘 (Reinforcement Learning Algorithms)
- 강화학습은 지도, 비지도 학습과는 조금 다른 개념입니다.
- 행동 심리학에서 나온 이론으로, 분류할 수 있는 데이터가 존재하는 것도 아니고 데이터가 있어도 정답이 따로 정해져 있지 않으며 자신이 한 행동에 대해 보상을 받으며 학습하는 것을 말합니다.
- 간단하게 설명하자면, 시스템은 가장 큰 보상을 얻기 위해 최상의 전략을 스스로 학습합니다.
- 강화학습을 이용한 대표적인 예는, 구글 딥마인드사에서 개발한 알파고가 있습니다.
지도학습 알고리즘의 종류
지도학습은 크게 분류 Classification과 회귀 Regression으로 나눌 수 있습니다.
분류 (Classification)
- 분류는 주어진 데이터를 정해진 카테고리(label)에 따라 분류하는 것을 말합니다.
- 분류는 맞다, 아니다와 같이 두 가지로 분류하는 이진 분류와 강아지, 고양이, 비둘기 등의 2가지 보다 더 많은 카테고리로 분류하는 다중 분류가 있습니다.
- 예를 들어, 입력 데이터로 공부한 시간을 주고 label을 Pass, fail 를 주고 학습을 시키면 시험을 본 학생이 공부한 시간에 따라 pass인지 fail인지를 분류할 수 있게 됩니다.
- 대표적인 분류(Classification) 알고리즘
- KNN (K-Nearest Neighbor)
- Decision Tree (의사결정 트리)
- Random Forest
- Naive Bayes
KNN (K-Nearest Neighbor)
- KNN은 데이터를 분류하고 새로운 데이터 포인트의 카테고리를 결정할 때 K개의 가장 가까운 포인트를 선정하고 그 중 가장 많이 선택된 포인트의 카테고리로 이 새로운 데이터를 분류하는 방법입니다.
- 화면의 그림을 예시로 보다면, 새로운 포인트로 그림의 초록점이 주어졌을 때 3개의 가장 가까운 포인트를 찾았고 그 중에서 Blue 카테고리인 포인트가 가장 많으므로 새로운 포인트는 Blue 카테고리로 분류됩니다.
Decision Tree (의사결정 트리)
- Decision Tree는 Tree 구조를 활용하여 모델을 그래프로 그리는 매우 단순한 구조의 알고리즘입니다. 이 방식은 root에서부터 적절한 node를 선택하면서 진행하다가 최종 결정을 내리게 되는 모델입니다.
Random Forest
- Random Forest는 Decision Tree가 여러개 모여 forest를 이룬 구조입니다. Decision tree보다 작은 tree가 여러개 모이게 되며, 모든 트리의 결과들을 합하여 더 많은 값을 최종 결과로 봅니다.
Naive Bayes
- Naive Bayes 알고리즘은 베이즈 정리에 기반한 통계적 분류 기법입니다.
- 가장 단순한 지도 학습 알고리즘 중 하나입니다.
- Naive라는 수식어가 붙은 이유는 데이터셋의 모든 feature가 동등하고 독립적이라고 가정하기 때문입니다.
회귀 (Regression)
회귀는 데이터의 feature를 이용해 연속인 값을 예측하는 방법입니다.
즉, 분류처럼 label이 딱 떨어지는 것이 아니고 어떤 수나 실수로 예측될 수 있습니다.
여기서 Feature란?
머신러닝과 딥러닝에서 데이터의 값을 잘 예측하기 위한 데이터의 특징들을 말합니다.
엑셀에서 attribute 또는 (column)이라고 불려지는 것을 머신러닝에서는 통계학의 영향으로 feature라고 부릅니다.
- 대표적인 회귀 (Regression) 알고리즘
- Linear Regression
- Polynomial Regression
- Logistic Regression
- Ridge Regression
- Lasso Regression
Linear Regression (선형 회귀)
- 머신러닝에서 가장 일반적인 회귀분석 모델이라고 할 수 있는 선형 회귀는 예측 변수와 종속 변수로 구성되며, 회귀선은 선형 모양입니다.
- 데이터를 가장 잘 대변하는 직선의 방정식을 찾는 것입니다.
- 방정식 Y = a + b * X + e 로 나타낼 수 있고, 여기서 a는 절편, b는 기울기, e는 오차를 나타냅니다.
Polynomial Regression (다항 회귀)
- Linear regression 비슷하지만 이름 그대로 다항식을 이용한 회귀법입니다. 데이터 분포의 형태가 직선이 아닌 곡선에 알맞는 모델입니다.
Logistic Regression
- Logistic Regression은 값이 true인지 false인지 예측할 때 사용합니다.
- 즉 종속변수 Y가 이진일 때 사용하는 회귀 분석입니다.
이외에도, Ridge Regression과 Lasso Regression 같은 모델을 많이 사용합니다.