데이터 스터디/Stats\ML

03 + 머신러닝의 목표

케이와이엠 2022. 2. 9. 01:27

03 + 머신러닝의 목표

머신러닝에서의 가장 중요한 목표는 "generalization 일반화" 이다. 

 

generalization, 즉 일반화는 이전에 '관측되지 않은' 데이터에 대해 높은 성능으로 적용할 수 있는 능력을 말한다. 

그리고 이를 다른 말로 풀어써보자면, 만약 성능측정의 지표로 error rate을 사용한다고 했을 때, E_gen(=train에 사용하지 않은 이외의 모든 data들) = 0 이 됐을 때를 목표로 한다는 것이다. 

 

하지만, 우리는 E_gen(=generaization error)를 갖고 있는 데이터로 측정할 수 없기 때문에(전체 데이터는 모르는 상태이기 때문) better proxy로서 E_test(=test error)를 사용한다. 따라서 목표는 E_gen=0 에서 다시 E_test ~=0이 된 것이다. 

그리고 이건 또 다시 우리가 접근할 수 있게끔 2개의 하위목적으로 나뉘어진다. 

1) E_test와 E_train을 유사하게 만드는 generalization 단계

2) E_train을 0으로 만드는 approximation 단계

 

이때 둘은 trade_off의 관계에 높인다. 

이 그림은 approximation <-> generalization 사이의 trade_off

혹은 bias와 variance 사이의 trade_off, 혹은 위에서 다룬 내용을 참고하면 하위목적1과 하위목적2간의 trade_off이다. 

 

하위목적1인 E_test~E_train 을 같게 만들기 위해선 simple model is better 이지만, (실패하면 overfitting존으로 넘어가게 된다) 하위목적 2인 E_train을 0으로 만들기 위해서는 아무래도 complex model is better이다. 

 

※ 여기서 잠깐 그래프 안에 capacity라는 말이 등장하는데, 모델의 capacity라고 함은 모델의 복잡성을 말하는 것이다. 모델이 얼마나 다양한 함수와 fit될 수 있는지를 알려주고, 이는 즉 overfitting과 underfitting함을 가리는 기준이 된다. 

 

따라서 둘 사이의 trade_off가 존재하기 때문에 현실에서는 복잡한 데이터를 다루기 위해 simple한 모델보단 complex한 모델을 사용해주기도 한다. 하지만 잊지 말아야할 점은 complex모델을 쓰던 simple모델을 쓰던 unexpected한 데이터에 관해 일반화할 수 있도록 좋은 성능을 보여야한다는 것이다. 

 

 

+ 그러기 위해선 손실함수를 최소화해야한다.