본문 바로가기
데이터사이언스/인공지능을 처음공부하는 사람들을 위한 글

머신러닝과 AI에서 표본과 통계학이 중요한 이유

by 미스터탁 2022. 9. 6.

최근 2-3년간 데이터 사이언스 또는 인공지능 관련 교육이 우후죽순 늘어나고 있다. 이러한 교육 과정들은 각 과정들의 장점을 어필하고 있다. 취업과 연계된다는 점이나 실습위주의 강의를 진행하거나 포트폴리오 까지 제작을 도와주는 과정 등 다양한 장점을 지니고 있다. 분명 이 과정들은 DS 또는 AI를 공부하는데 분명히 도움이 될 수 있다. 코딩실력과 머신러닝 알고리즘 등도 물론 중요하지만, 많은 사람들이 실수하는 부분과 깊게 생각치 못하는 부분을 잠시 짚고 넘어가보고자 한다. 

 

우리가 데이터 분석을 할때에 모델을 만드는 이유를 생각해보자. 우리가 가지고 있는 데이터를 가지고 모델을 만드는 것은 새로운 데이터 또는 우리가 가지고 있지 않은 데이터를 예측하기 위함이다. 사실, 우리가 전체 데이터(모집단, population)를 가지고 있다면, 좋은 모델을 만들 필요가 없다. 과적합이 되는 모델을 만들면 되기 때문이다. 하지만, 우리는 일부 데이터(sample)만을 가지고 있으며, 이를 최대한 활용하여 정확도가 높은 모델을 만들어야 한다.    

 

 

 

 

그렇다면, 좋은 표본의 조건은 무엇일까? 

첫번째로, 표본은 모집단의 특성을 충분히 반영하고 있어야 한다. 그러기 위해서는, 표본의 크기는 클 수록 좋다. 표본의 크기가 클수록 모집단의 특성을 반영할 확률이 높기 때문이다. 머신 러닝을 공부하는 사람들은 대부분 알고 있듯이, 표본을 잘 예측하는 모델이 우리가 보지 못한 데이터 또한 잘 예측할 확률이 높다고 보장 할 수 없다. 학습에 활용한 데이터는 잘 예측하지만, 학습에 사용하지 못하는 데이터를 잘 예측하지 못하는 현상을 우리는 과적합(overfitting)이라 부른다. 과적합 문제는 DS/AI 분야에서 뗄래야 뗄수가 없는 문제이며, 앞으로도 이 문제를 해결하기 위해 많은 연구들이 진행 될 것이다. 

 

우리가 확보한 데이터를 사용하여 모델의 성능을 확인 하고 신뢰도를 얻기 위해선 적절한 실험 설계가 중요하다. 즉, 내가 만든 모델의 정확도가 우리가 보지 못한 데이터 또는 새로운 데이터를 예측 하는 70%다 라고 주장 하기 위해서는 실험 설계를 필요로 한다.

 

우리가 가지고 있는 데이터를 전체라고 볼 때, 학습에 사용하는 학습 데이터(Training data), 모델의 최적화를 위한 검증 데이터(Validation data), 그리고 마지막으로 모델의 성능을 측정하기 위한 테스트 데이터(Test data)로 나누고 실험한다. 하지만, 우리가 가지고 있는 데이터의 수는 소수일 가능성이 크다. 설령, 우리가 가진 데이터가 수만개 이상이 있다하더라도, 데이터의 수는 여전히 부족하다고 보는 것이 맞다. 그렇기 때문에, 학습 데이터와 테스트 데이터로 만 나누고 실험하기도 한다. 

 

 

 

여기서 전체 데이터를 분할 할때에는 랜덤하게 분할 해야한다. 랜덤하게 학습 데이터와 테스트 데이터를 분할하여 모델을 학습시키고 테스트 데이터에 예측하여 70%의 성능이 나왔다고 가정하자. 그렇다면, 다시한번 랜덤하게 데이터를 분할하여 평가 하였을때 성능이 70% 나올까? 절대 그렇지 않다. 데이터가 많으면 68 ~ 72%, 데이터가 적으면 55 ~ 80% 사이가 나올수도 있다(데이터가 매우 매우 많다면, 1% 미만의 오차가 나올 가능성이 크다). 즉, 데이터의 수와 특성에 따라 우리가 랜덤하게 실험 설계를 한다고 하더라도, 우리는 우리가 만든 모델의 성능을 제대로 측정하기 어렵다. 그렇게 때문에, 우리 모델의 신뢰도를 확보하기 위해서는 더욱이 실험 설계가 중요하다. 일반적으로, 실험 설계를 할때에는 랜덤하게 데이터를 분할하고, 테스트 데이터로 평가를 하고 이를 수 회 또는 수십 회 반복하여 평균을 낸다. 그렇다면, 우리는 고객에게 이러한 실험 설계를 통해 평균적으로 어느정도의 성능이 나왔다라고 이야기 할 수 있다.

 

국, 중요한 것은 데이터다. 데이터의 질이 좋고 양이 많다면 우리는 매우 좋은 (높은 성능의) 모델을 만들 수 있고, 신뢰도 또한 확보할 수 있다. 그렇지만, 우리는 대게 소수의 데이터만을 가지고 있고, 이 데이터를 최대한 활용하여 높은 성능의 모델을 만들고 그 모델의 신뢰도 또한 확보하여야 한다. 흔히들 많이하는 착각은 우리가 가진 데이터(sample)가 전체 데이터(모집단)을 어느정도 대표할 것이다는 것이다. 표본의 평균은 모집단의 평균이다. 즉, 표본이 매우 많아지면 그 표본의 특성은 모집단의 특성을 대표할 가능성이 매우 높다는 것이다. 그러나, 우리가 가지고 있는 데이터는 매우 일부의 표본이라는 것을 잊지 말자. 우리는 데이터분석 또는 모델을 학습할때에는 우리가 가진 데이터가 모집단을 대표한다고 절대 단정 짖지 말아야 한다. 그렇기에 필자는 최소한의 통계학이 DS/AI를 공부하는데 꼭 필요하다고 생각한다. 

 

 

 

 

반응형

댓글