Data Science/ML | DL

까먹지 않아야 할 머신러닝의 아주 기본

402번째 거북이 2022. 8. 12. 16:34

머신러닝(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의 절대값이 너무 큰 함수를 생각해보면 된다.)