머신러닝(Machine Learning)이란😶
새로운 데이터를 잘 맞추는 모델을 데이터로부터 구축하고 학습시키는 것이다.
Data-Driven Approach, Supervised Learning이라고도 불린다. (정답이 있는 데이터를 학습시키는 것!)
정확하게 예측하는 것 + Generalization(기존 데이터가 아니라, 지금껏 보지 못한 새로운 데이터에 대한 예측) 모두를 고려한 모델을 구축하는 것에 초점을 맞춘 정의로 이해하자.
'Learning from Data to Achieve Model with Good Generalization.'
Mathematical Formula😶
아래는 ML과 관련한 기본적인 용어들이다.
✔️input: x
✔️output: y
✔️target function: f (x → y)
x로부터 y를 올바르게 예측하는 '가장 이상적인' 모델이다.
✔️data: (x(1), y(1)), ..., (x(N), y(N))
supervised learning이므로, 학습하는 데이터로는 input과 output이 주어진다.
✔️hypothesis: g (x → y)
사실 f를 구현하는 것은 거의 불가능하다. 따라서 머신러닝에서 우리의 목표는 f에 가장 가까운, 현실적인 모델 g를 만드는 것이다.
✔️N: target example의 수 이다.
f의 형태에 따른 ML의 분류😶
x를 input으로 넣으면 y를 ouput으로 예측하는 함수(f)가 결국 모델임을 알았다.
머신러닝은 f의 형태에 따라서 아래 두 가지 종류로 나뉜다.
✔️Non-Parametric
function(f)의 형태를 미리 가정하지 않는다. (No Assumption on the Form of Function)
training data의 양에 따라 모델 parameter의 수가 결정된다.
K-NN, Decision Tree, Random Forest 등이 대표적인 예시다.
✔️Parametric
함수의 형태를 미리 가정해놓고 출발하는 모델이다.
데이터의 양과 관계없이, parameter의 수가 고정되어 있다.
Logistic Regression, LDA, Neural Network 등이 대표적인 예시다.
Classification과 Regression😶
분류는 '카테고리'를 예측하는 것이고,
회귀는 '연속적인 양'(continuous quantity)을 예측하는 것이다.
모델의 'Capacity'😶
모델의 복잡도 정도이다. (K-NN에서 k와 같은 개념이라고 생각하면 쉽다.)
모델 capacity가 높다고 해서 좋은 모델은 아니다.
Overfitting문제가 발생할 수 있기 때문이다.
Capacity를 조정하는 것이 성능을 높이는 데 도움을 줄 수 있는데, 그 방법에는 아래 등이 있다.
✔️다항식의 차수를 조정하는 것 (Altering Degree of Polynomials)
차수를 높일수록 복잡한 모델이 만들어질 것이며, 반대로 차수를 낮추면 단순한 모델이 만들어질 것이다.
높은 차수의 다항식이 구불구불하게 생긴 것을 생각하면 쉽다.
✔️다항식의 Weights 제한을 조정하는 것 (Altering Constraint on Weights)
다항식의 계수들이 가질 수 있는 범위를 제한하는 것이 모델 성능에 도움이 될 수도 있다.
제한이 없다면 overfitting이 일어날 것을 예상할 수 있다.
(아래 그림처럼, 이차원에서 y의 절대값이 너무 큰 함수를 생각해보면 된다.)
'Data Science > ML | DL' 카테고리의 다른 글
[머신러닝] SVM으로 Binary Classification 다지기 (0) | 2022.08.14 |
---|---|
[머신러닝] Logistic Regression으로 Binary Classification 감 잡기 (0) | 2022.08.13 |
[머신러닝] Loss Function과 Cost Function (0) | 2022.08.13 |
[머신러닝] 까먹으면 안되는 K-NN 이론 (0) | 2022.08.13 |
Overfitting과 Underfitting, 그리고 Bias-Variance Trade Off (0) | 2022.08.12 |